19 #ifndef itkFEMElement3DC0LinearTriangular_h
20 #define itkFEMElement3DC0LinearTriangular_h
23 #include "ITKFEMExport.h"
70 enum { DefaultIntegrationOrder = 1 };
73 virtual void GetIntegrationPointAndWeight(
unsigned int i, VectorType & pt, Float & w,
unsigned int order)
const ITK_OVERRIDE;
76 virtual unsigned int GetNumberOfIntegrationPoints(
unsigned int order)
const ITK_OVERRIDE;
84 virtual VectorType ShapeFunctions(
const VectorType & pt)
const ITK_OVERRIDE;
87 virtual void ShapeFunctionDerivatives(
const VectorType & pt, MatrixType & shapeD)
const ITK_OVERRIDE;
90 virtual bool GetLocalFromGlobalCoordinates(
const VectorType & globalPt, VectorType & localPt)
const ITK_OVERRIDE;
93 virtual Float JacobianDeterminant(
const VectorType & pt,
const MatrixType *pJ = ITK_NULLPTR) const ITK_OVERRIDE;
96 virtual
void JacobianInverse(const VectorType & pt, MatrixType & invJ, const MatrixType *pJ = ITK_NULLPTR) const ITK_OVERRIDE;
99 virtual
void PopulateEdgeIds() ITK_OVERRIDE;
104 void ComputeNormalDirection(const VectorType & v1, const VectorType & v2, const VectorType & v3,
105 VectorType & n) const;
110 void GeneralizedProjectPoint(const VectorType & x, const VectorType & origin, const VectorType & normal,
111 VectorType & xproj) const;
114 itk::fem::
Element::Float Determinant2x2(const VectorType & c1, const VectorType & c2) const;
119 static const
Float trigGaussRuleInfo[6][7][4];
125 static const
unsigned int Nip[6];
128 virtual
void PrintSelf(std::ostream& os,
Indent indent) const ITK_OVERRIDE;
134 #endif // #ifndef itkFEMElement3DC0LinearTriangular_h
SmartPointer< const Self > ConstPointer
Implements standard node management in the element classes.
SmartPointer< Self > Pointer
ElementStd< 3, 3 > TemplatedParentClass
Abstract base element class.
3-noded, linear, C0 continuous finite element in 2D space.
Control indentation during Print() invocation.
Element3DC0LinearTriangular Self
TemplatedParentClass Superclass