32 #ifndef CORE_BASIS_CRVQUADRATICLGN_H
33 #define CORE_BASIS_CRVQUADRATICLGN_H 1
45 static double unit_vertices[3][1];
51 static int dofs() {
return 3; }
74 template<
class VECTOR>
75 inline void get_weights(
const VECTOR& coords,
double *w)
const
78 template<
class VECTOR>
83 template <
class ElemData,
class VECTOR>
92 w[2] * this->
nodes_[cd.edge0_index()]);
99 template <
class ElemData,
class VECTOR1,
class VECTOR2>
100 void derivate(
const VECTOR1 &coords,
const ElemData &cd,
101 VECTOR2 &derivs)
const
107 derivs[0] =
static_cast<typename VECTOR2::value_type
>(
110 + w[2] * this->
nodes_[cd.edge0_index()]);
114 template <
class ElemData,
class VECTOR>
116 const ElemData &cd)
const
119 return CL.
get_coords(
this, coords, value, cd);
123 template <
class ElemData>
126 return get_arc1d_length<CrvGaussian2<double> >(
this, edge, cd);
130 template <
class ElemData>
131 double get_area(
const unsigned ,
const ElemData & )
const
137 template <
class ElemData>
144 static const std::string
type_name(
int n = -1);
155 ASSERT((n >= -1) && n <= 1);
163 static const std::string nm(
"CrvQuadraticLgn");
184 std::string(__FILE__),
198 Pio(stream, this->nodes_);
virtual ~CrvQuadraticLgnUnitElement()
Definition: CrvQuadraticLgn.h:48
double get_area(const unsigned, const ElemData &) const
get area
Definition: CrvQuadraticLgn.h:131
CrvQuadraticLgnUnitElement()
Definition: CrvQuadraticLgn.h:47
Definition: CrvSamplingSchemes.h:43
Definition: CrvElementWeights.h:38
Definition: CrvQuadraticLgn.h:59
T interpolate(const VECTOR &coords, const ElemData &cd) const
get value at parametric coordinate
Definition: CrvQuadraticLgn.h:84
Definition: Persistent.h:89
Definition: TypeDescription.h:45
#define SCISHARE
Definition: share.h:39
std::vector< const TypeDescription * > td_vec
Definition: TypeDescription.h:56
static const std::string type_name(int n=-1)
Definition: CrvQuadraticLgn.h:153
std::vector< T > nodes_
Definition: Basis.h:159
#define ASSERT(condition)
Definition: Assert.h:110
Class for describing unit geometry of CrvLinearLgn.
Definition: CrvLinearLgn.h:50
virtual int begin_class(const std::string &name, int current_version)
Definition: Persistent.cc:143
bool get_coords(VECTOR &coords, const T &value, const ElemData &cd) const
get parametric coordinate for value within the element
Definition: CrvQuadraticLgn.h:115
static int dofs()
return degrees of freedom
Definition: CrvQuadraticLgn.h:51
const string find_type_name(float *)
Definition: TypeName.cc:63
static int number_of_vertices()
return number of vertices
Definition: CrvQuadraticLgn.h:50
static int polynomial_order()
Definition: CrvQuadraticLgn.h:72
void get_quadratic_derivate_weights(const VECTOR &coords, double *w) const
get weight factors of derivative at parametric coordinate
Definition: CrvElementWeights.h:69
Definition: CrvLinearLgn.h:139
Class for creating geometrical approximations of Crv meshes.
Definition: CrvLinearLgn.h:99
const char * name[]
Definition: BoostGraphExampleTests.cc:87
T value_type
Definition: CrvQuadraticLgn.h:67
void get_weights(const VECTOR &coords, double *w) const
Definition: CrvQuadraticLgn.h:75
bool get_coords(const ElemBasis *pEB, VECTOR &coords, const T &value, const ElemData &cd) const
find coordinate in interpolation for given value
Definition: CrvLinearLgn.h:148
Class for describing interfaces to basis elements with additional nodes.
Definition: Basis.h:169
Class with weights and coordinates for 2nd order Gaussian integration.
Definition: CrvLinearLgn.h:218
static const std::string make_template_id(const std::string &templateName, const std::string &templateParam)
Definition: TypeName.h:62
void get_quadratic_weights(const VECTOR &coords, double *w) const
get weight factors at parametric coordinate
Definition: CrvElementWeights.h:59
CrvQuadraticLgn()
Definition: CrvQuadraticLgn.h:69
void Pio(Piostream &stream, Array1< T > &array)
Definition: Array1.h:65
const int CRVQUADRATICLGN_VERSION
Definition: CrvQuadraticLgn.h:191
virtual void end_class()
Definition: Persistent.cc:178
virtual ~CrvQuadraticLgn()
Definition: CrvQuadraticLgn.h:70
void derivate(const VECTOR1 &coords, const ElemData &cd, VECTOR2 &derivs) const
get derivative weight factors at parametric coordinate
Definition: CrvQuadraticLgn.h:100
virtual void io(Piostream &str)
Definition: CrvQuadraticLgn.h:194
int n
Definition: eab.py:9
double get_arc_length(const unsigned edge, const ElemData &cd) const
get arc length for edge
Definition: CrvQuadraticLgn.h:124
double get_volume(const ElemData &) const
get volume
Definition: CrvQuadraticLgn.h:138
void get_derivate_weights(const VECTOR &coords, double *w) const
Definition: CrvQuadraticLgn.h:79
Class for describing unit geometry of CrvLinearLgn.
Definition: CrvQuadraticLgn.h:43
Definition: TypeDescription.h:49
const TypeDescription * get_type_description(Core::Basis::ConstantBasis< T > *)
Definition: Constant.h:209