00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __itkFEMElement2DC0LinearLine_h
00019 #define __itkFEMElement2DC0LinearLine_h
00020
00021 #include "itkFEMElementStd.h"
00022
00023 namespace itk {
00024 namespace fem {
00025
00030 class Element2DC0LinearLine : public ElementStd<2,2>
00031 {
00032 typedef ElementStd<2,2> TemplatedParentClass;
00033 FEM_ABSTRACT_CLASS( Element2DC0LinearLine, TemplatedParentClass )
00034 public:
00035
00036
00038
00042 enum { DefaultIntegrationOrder = 1 };
00043
00044 virtual void GetIntegrationPointAndWeight(unsigned int i, VectorType& pt, Float& w, unsigned int order) const;
00045
00046 virtual unsigned int GetNumberOfIntegrationPoints(unsigned int order) const;
00047
00049
00053 virtual VectorType ShapeFunctions( const VectorType& pt ) const;
00054
00055 virtual void ShapeFunctionDerivatives( const VectorType& pt, MatrixType& shapeD ) const;
00056
00057
00058 virtual bool GetLocalFromGlobalCoordinates( const VectorType& globalPt, VectorType& localPt ) const;
00059
00069 virtual void Jacobian( const VectorType& pt, MatrixType& J, const MatrixType* pshapeD = 0 ) const;
00070
00074 #ifdef FEM_BUILD_VISUALIZATION
00075 void Draw(CDC* pDC, Solution::ConstPointer sol) const;
00076 #endif
00077
00078 };
00079
00080 }}
00081
00082 #endif // #ifndef __itkFEMElement2DC0LinearLine_h
00083