36 #ifndef __H__UG__LIB_DISC__SPATIAL_DISC__USER_DATA__LINE_USER_DATA__
37 #define __H__UG__LIB_DISC__SPATIAL_DISC__USER_DATA__LINE_USER_DATA__
49 template <
typename TDomain>
51 :
public StdUserData<EdgeOrientation<TDomain>, MathVector<TDomain::dim>, TDomain::dim>
80 {
UG_THROW(
"SubsetIndicatorUserData: Element required for evaluation, but not passed. Cannot evaluate."); }
84 {
UG_THROW(
"SubsetIndicatorUserData: Element required for evaluation, but not passed. Cannot evaluate."); }
100 template <
int refDim>
119 for (
size_t i = 0; i < nip; i++)
Type based UserData.
Definition: user_data.h:501
size_t num_ip(size_t s) const
returns the number of integration points
Definition: user_data.h:327
size_t num_series() const
explicitly forward some functions
Definition: user_data.h:324
const TData & value(size_t s, size_t ip) const
returns the value at ip
Definition: user_data.h:512
User data for the orientation of a line element.
Definition: element_orientation_data.h:52
SmartPtr< TDomain > m_spDomain
Definition: element_orientation_data.h:146
void elem_evaluate(return_type &delta, GridObject *elem) const
Definition: element_orientation_data.h:87
virtual bool requires_grid_fct() const
Returns true to get the grid element in the evaluation routine.
Definition: element_orientation_data.h:76
static const int dim
World dimension.
Definition: element_orientation_data.h:55
virtual void compute(LocalVectorTimeSeries *u, GridObject *elem, const MathVector< dim > vCornerCoords[], bool bDeriv=false)
implement as a UserData
Definition: element_orientation_data.h:136
EdgeOrientation(SmartPtr< TDomain > domain)
Constructor.
Definition: element_orientation_data.h:69
virtual void compute(LocalVector *u, GridObject *elem, const MathVector< dim > vCornerCoords[], bool bDeriv=false)
implement as a UserData
Definition: element_orientation_data.h:127
virtual bool continuous() const
Indicator functions are discontinuous.
Definition: element_orientation_data.h:73
StdUserData< EdgeOrientation< TDomain >, MathVector< TDomain::dim >, TDomain::dim, void > base_type
Type of domain.
Definition: element_orientation_data.h:61
MathVector< dim > return_type
Return type.
Definition: element_orientation_data.h:58
CplUserData< MathVector< TDomain::dim >, TDomain::dim > cpl_user_data
Definition: element_orientation_data.h:62
void evaluate(return_type vValue[], const MathVector< dim > vGlobIP[], number time, int si, GridObject *elem, const MathVector< dim > vCornerCoords[], const MathVector< refDim > vLocIP[], const size_t nip, LocalVector *u, const MathMatrix< refDim, dim > *vJT=NULL) const
Evaluator.
Definition: element_orientation_data.h:102
void operator()(return_type &vValue, const MathVector< dim > &globIP, number time, int si) const
This function should not be used.
Definition: element_orientation_data.h:79
holds the vertices of an Edge or an EdgeDescriptor.
Definition: grid_base_objects.h:362
virtual Vertex * vertex(size_t index) const
Definition: grid_base_objects.h:366
The base class for all geometric objects, such as vertices, edges, faces, volumes,...
Definition: grid_base_objects.h:157
const MathVector< dim > & ip(size_t s, size_t ip) const
returns global ip
Definition: user_data.h:401
number time() const
get the current evaluation time
Definition: user_data.h:285
Definition: local_algebra.h:198
time series of local vectors
Definition: solution_time_series.h:167
A class for fixed size, dense matrices.
Definition: math_matrix.h:52
Definition: std_user_data.h:63
#define UG_ASSERT(expr, msg)
Definition: assert.h:70
#define UG_THROW(msg)
Definition: error.h:57
double number
Definition: types.h:124
vector_t::value_type VecLength(const vector_t &v)
returns the length of v. Slower than VecLengthSq.
Definition: math_vector_functions_common_impl.hpp:341
void VecSubtract(vector_t &vOut, const vector_t &v1, const vector_t &v2)
subtracts v2 from v1 and stores the result in a vOut
Definition: math_vector_functions_common_impl.hpp:226