1 #ifndef __BASEFUNCTIONSETSHELLFE_H 2 #define __BASEFUNCTIONSETSHELLFE_H 11 template <
typename DataTypeContainer,
class QuadRuleType >
15 typedef typename DataTypeContainer::DomVecType
DomVecType;
21 return QuadRuleType::numQuadPoints;
26 return _quadRule.getWeight ( QuadPoint );
30 inline const DomVecType&
getRefCoord (
int QuadPoint )
const {
31 return _quadRule.getRefCoord ( QuadPoint );
40 template <
typename DataTypeContainer,
typename QuadType,
typename TriangleType>
44 typedef typename DataTypeContainer::DomVecType
DomVecType;
47 static RealType
_b1 (
const DomVecType &c ) {
return 1. - c[0] - c[1]; }
48 static RealType
_b2 (
const DomVecType &c ) {
return c[0]; }
49 static RealType
_b3 (
const DomVecType &c ) {
return c[1]; }
51 typedef RealType ( *BASIS_FUNC_TYPE ) (
const DomVecType &RefCoord );
52 BASIS_FUNC_TYPE _basis[3];
54 const typename DataTypeContainer::TangentVecType _d1b,
_d2b;
64 enum { numBaseFuncs = 3 };
72 void evaluateGradient (
int BaseFuncNum,
const DomVecType &, DomVecType &Gradient )
const {
73 Gradient[0] = _d1b[BaseFuncNum];
74 Gradient[1] = _d2b[BaseFuncNum];
82 return DomVecType( _d1b[BaseFuncNum], _d2b[BaseFuncNum] );
89 RealType
evaluate (
int BaseFuncNum,
const DomVecType &RefCoord )
const {
90 return _basis[BaseFuncNum] ( RefCoord );
97 inline const RealType
evaluate (
int BaseFuncNum,
int QuadPoint )
const {
98 return evaluate ( BaseFuncNum, this->_quadRule.getRefCoord ( QuadPoint ) );
107 #endif //__BASEFUNCTIONSETSHELLFE_H UnitTriangleBaseFunctionSetInterface()
void setTriangle(const TriangleType &)
const DataTypeContainer::TangentVecType _d2b
DataTypeContainer::RealType RealType
RealType evaluate(int BaseFuncNum, const DomVecType &RefCoord) const
Evaluates a base function at.
int numQuadPoints() const
Returns the number of quadrature points.
DataTypeContainer::RealType RealType
RealType getWeight(int QuadPoint) const
Returns the quadrature weight at QuadPointa quadrature point.
DataTypeContainer::DomVecType DomVecType
void evaluateGradient(int BaseFuncNum, const DomVecType &, DomVecType &Gradient) const
Evaluates the gradient of a base function at RefCoord.
const DomVecType & getRefCoord(int QuadPoint) const
Returns the coordinates of a quadrature point.
DomVecType evaluateGradient(int BaseFuncNum, int) const
Evaluates the gradient of a base function in a quadrature point.
static RealType _b2(const DomVecType &c)
DataTypeContainer::DomVecType DomVecType
UnitTriangMeshBaseFunctionSetP1()
const RealType evaluate(int BaseFuncNum, int QuadPoint) const
Evaluates a base function in a quadrature point.
static RealType _b1(const DomVecType &c)
Base function set for unit triangle. Unit triangle embedded in R^2 is given by the three positions (0...
Triangle which has a tangent space at each node.
static RealType _b3(const DomVecType &c)