32 #ifndef CORE_BASIS_BASIS_H
33 #define CORE_BASIS_BASIS_H 1
37 #include <boost/array.hpp>
61 template <
class ElemData,
class VECTOR>
68 template <
class ElemData,
class VECTOR1,
class VECTOR2>
69 void derivate(
const VECTOR1& ,
const ElemData &,
76 template <
class ElemData,
class VECTOR>
78 const ElemData &)
const
84 template <
class ElemData>
91 template <
class ElemData>
92 double get_area(
const unsigned ,
const ElemData&)
const
98 template <
class ElemData>
179 template<
class INDEX>
182 template<
class INDEX>
190 template<
class INDEX>
void resize_node_values(SIZE s)
set the proper size
Definition: Basis.h:187
double get_area(const unsigned, const ElemData &) const
get area for face of element
Definition: Basis.h:92
virtual ~BasisAddNodes()
Definition: Basis.h:173
void get_node_value(T &p, INDEX i) const
Definition: Basis.h:183
int size_scalefactors()
return number of additional derivatives
Definition: Basis.h:258
void add_derivatives(const std::vector< T > &)
add a derivative value
Definition: Basis.h:131
virtual ~BasisAddDerivatives()
Definition: Basis.h:204
BasisAddDerivativesScaleFactors()
Definition: Basis.h:230
int size_derivatives()
return number of additional derivatives
Definition: Basis.h:143
void set_node_value(const T &p, INDEX i)
get and set node value
Definition: Basis.h:180
void set_deriv_value(const T &p, unsigned int i, unsigned int j)
get and set node value
Definition: Basis.h:213
std::vector< T > nodes_
Definition: Basis.h:159
Utility for specifying data invariants (Assertions)
double get_volume(const ElemData &) const
get volume for element
Definition: Basis.h:99
std::vector< T > & get_nodes()
Definition: Basis.h:148
Class for describing interfaces to basis elements.
Definition: Basis.h:48
void add_scalefactors(const std::vector< double > &p)
add scale factors (sdx, sdy) for nodes.
Definition: Basis.h:234
int size_derivatives()
return number of additional derivatives
Definition: Basis.h:220
BasisAddDerivativesScaleFactorsEdges()
Definition: Basis.h:250
std::vector< std::vector< T > > & get_derivs()
Definition: Basis.h:153
int size_scalefactors()
return number of additional derivatives
Definition: Basis.h:240
void add_node_value(const T &p)
add a node value corresponding to edge
Definition: Basis.h:176
BasisSimple()
Definition: Basis.h:51
void set_node_value(const T &, unsigned int)
Definition: Basis.h:110
Base class for persistent objects...
void get_node_value(T &, unsigned int) const
Definition: Basis.h:115
void get_deriv_value(T &p, unsigned int i, unsigned int j) const
Definition: Basis.h:214
void resize_deriv_values(size_t s)
set the proper size
Definition: Basis.h:217
virtual ~BasisAddDerivativesScaleFactorsEdges()
Definition: Basis.h:251
void resize_node_values(size_t)
Definition: Basis.h:120
bool get_coords(VECTOR &, const T &, const ElemData &) const
get parametric coordinate for value within the element
Definition: Basis.h:77
size_t size_node_values()
return number of additional nodes
Definition: Basis.h:125
void derivate(const VECTOR1 &, const ElemData &, VECTOR2 &) const
get first derivative at parametric coordinate
Definition: Basis.h:69
double get_arc_length(const unsigned, const ElemData &) const
get arc length for edge of element
Definition: Basis.h:85
std::vector< std::vector< double > > scalefactors_
Definition: Basis.h:161
T interpolate(const VECTOR &, const ElemData &) const
get value at parametric coordinate
Definition: Basis.h:62
BasisAddNodes()
Definition: Basis.h:172
Class for describing interfaces to basis elements with additional nodes.
Definition: Basis.h:169
#define REPORT_NOT_IMPLEMENTED(message)
Definition: Exception.h:106
virtual ~BasisSimple()
Definition: Basis.h:52
void add_derivatives(const std::vector< T > &p)
add derivative values (dx, dy, dxy) for nodes.
Definition: Basis.h:207
std::vector< double > scalefactorse_
Definition: Basis.h:162
std::vector< std::vector< T > > derivs_
Definition: Basis.h:160
BasisAddDerivatives()
Definition: Basis.h:203
void add_scalefactors(const std::vector< T > &)
add scale factors
Definition: Basis.h:137
T & node_values(INDEX i)
return node value
Definition: Basis.h:191
size_t size_node_values()
Definition: Basis.h:193
virtual ~BasisAddDerivativesScaleFactors()
Definition: Basis.h:231
void add_scalefactors(const std::vector< double > &p)
add scale factors (sdx, sdy) for nodes.
Definition: Basis.h:254
void add_node_value(const T &)
add a node value
Definition: Basis.h:105