32 #ifndef CORE_BASIS_CRVCUBICHMT_H
33 #define CORE_BASIS_CRVCUBICHMT_H 1
47 static int dofs() {
return 4; }
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>
90 w[1] * this->
derivs_[cd.node0_index()][0] +
92 w[3] * this->
derivs_[cd.node1_index()][0]);
96 template <
class ElemData,
class VECTOR1,
class VECTOR2>
97 void derivate(
const VECTOR1 &coords,
const ElemData &cd,
98 VECTOR2 &derivs)
const
104 derivs[0] =
static_cast<typename VECTOR2::value_type
>(
106 w[1] * this->
derivs_[cd.node0_index()][0] +
108 w[3] * this->
derivs_[cd.node1_index()][0]);
112 template <
class ElemData,
class VECTOR>
114 const ElemData &cd)
const
117 return CL.
get_coords(
this, coords, value, cd);
121 template <
class ElemData>
124 return get_arc1d_length<CrvGaussian3<double> >(
this, edge, cd);
128 template <
class ElemData>
129 double get_area(
const unsigned ,
const ElemData & )
const
135 template <
class ElemData>
141 static const std::string
type_name(
int n = -1);
151 ASSERT((n >= -1) && n <= 1);
159 static const std::string nm(
"CrvCubicHmt");
180 std::string(__FILE__),
194 Pio(stream, this->derivs_);
Definition: CrvSamplingSchemes.h:43
Definition: CrvElementWeights.h:38
T interpolate(const VECTOR &coords, const ElemData &cd) const
get value at parametric coordinate
Definition: CrvCubicHmt.h:84
static int GaussianNum
Definition: CrvCubicHmt.h:64
Definition: Persistent.h:89
CrvCubicHmtUnitElement()
Definition: CrvCubicHmt.h:44
Definition: TypeDescription.h:45
std::vector< const TypeDescription * > td_vec
Definition: TypeDescription.h:56
static double GaussianWeights[3]
Definition: CrvCubicHmt.h:66
#define ASSERT(condition)
Definition: Assert.h:110
virtual ~CrvCubicHmt()
Definition: CrvCubicHmt.h:69
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
const string find_type_name(float *)
Definition: TypeName.cc:63
void get_cubic_weights(const VECTOR &coords, double *w) const
Definition: CrvElementWeights.h:78
Definition: CrvLinearLgn.h:139
Class for creating geometrical approximations of Crv meshes.
Definition: CrvLinearLgn.h:99
const char * name[]
Definition: BoostGraphExampleTests.cc:87
void derivate(const VECTOR1 &coords, const ElemData &cd, VECTOR2 &derivs) const
get first derivative at parametric coordinate
Definition: CrvCubicHmt.h:97
double get_arc_length(const unsigned edge, const ElemData &cd) const
get arc length for edge
Definition: CrvCubicHmt.h:122
T value_type
Definition: CrvCubicHmt.h:62
virtual ~CrvCubicHmtUnitElement()
Definition: CrvCubicHmt.h:45
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
virtual void io(Piostream &str)
Definition: CrvCubicHmt.h:190
static const std::string make_template_id(const std::string &templateName, const std::string &templateParam)
Definition: TypeName.h:62
static const std::string type_name(int n=-1)
Definition: CrvCubicHmt.h:149
CrvCubicHmt()
Definition: CrvCubicHmt.h:68
void Pio(Piostream &stream, Array1< T > &array)
Definition: Array1.h:65
static int dofs()
return degrees of freedom
Definition: CrvCubicHmt.h:47
std::vector< std::vector< T > > derivs_
Definition: Basis.h:160
virtual void end_class()
Definition: Persistent.cc:178
void get_weights(const VECTOR &coords, double *w) const
Definition: CrvCubicHmt.h:75
void get_derivate_weights(const VECTOR &coords, double *w) const
Definition: CrvCubicHmt.h:79
static int polynomial_order()
Definition: CrvCubicHmt.h:72
Definition: CrvCubicHmt.h:54
int n
Definition: eab.py:9
double get_volume(const ElemData &) const
get volume
Definition: CrvCubicHmt.h:136
bool get_coords(VECTOR &coords, const T &value, const ElemData &cd) const
get parametric coordinate for value within the element
Definition: CrvCubicHmt.h:113
const int CRVCUBICHMT_BASIS_VERSION
Definition: CrvCubicHmt.h:187
Class for describing unit geometry of CrvCubicHmt.
Definition: CrvCubicHmt.h:42
Class with weights and coordinates for 3rd order Gaussian integration.
Definition: CrvLinearLgn.h:237
double get_area(const unsigned, const ElemData &) const
get area
Definition: CrvCubicHmt.h:129
void get_cubic_derivate_weights(const VECTOR &coords, double *w) const
get derivative weight factors at parametric coordinate
Definition: CrvElementWeights.h:89
Definition: TypeDescription.h:49
const TypeDescription * get_type_description(Core::Basis::ConstantBasis< T > *)
Definition: Constant.h:209
static double GaussianPoints[3][1]
Definition: CrvCubicHmt.h:65