Orfeo Toolbox  3.16
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Attributes | Private Types
itk::fem::Element2DC0QuadraticTriangular Class Reference

3-noded, quadratic, C0 continuous finite element in 2D space. More...

#include <itkFEMElement2DC0QuadraticTriangular.h>

+ Inheritance diagram for itk::fem::Element2DC0QuadraticTriangular:
+ Collaboration diagram for itk::fem::Element2DC0QuadraticTriangular:

List of all members.

Public Types

enum  { DefaultIntegrationOrder = 2 }
enum  { InvalidDegreeOfFreedomID = 0xffffffff }
enum  { gaussMaxOrder = 10 }
enum  
enum  
enum  
typedef FEMPArray< ElementArrayType
typedef Self Baseclass
typedef const SelfConstPointer
typedef
Superclass::DegreeOfFreedomIDType 
DegreeOfFreedomIDType
typedef Superclass::Float Float
typedef Superclass::LoadPointer LoadPointer
typedef Superclass::LoadType LoadType
typedef Superclass::MatrixType MatrixType
typedef Superclass::Node Node
typedef Superclass::NodeIDType NodeIDType
typedef SelfPointer
typedef
Element2DC0QuadraticTriangular 
Self
typedef TemplatedParentClass Superclass
typedef Superclass::VectorType VectorType

Public Member Functions

virtual int ClassID () const =0
virtual Baseclass::Pointer Clone () const =0
DegreeOfFreedomIDType GetDegreeOfFreedom (unsigned int local_dof) const
virtual Float GetElementDeformationEnergy (MatrixType &LocalSolution) const
virtual VectorType GetGlobalFromLocalCoordinates (const VectorType &pt) const
virtual void GetIntegrationPointAndWeight (unsigned int i, VectorType &pt, Float &w, unsigned int order) const
virtual void GetLandmarkContributionMatrix (float eta, MatrixType &Le) const
virtual void GetLoadVector (LoadPointer l, VectorType &Fe) const =0
virtual bool GetLocalFromGlobalCoordinates (const VectorType &, VectorType &) const
virtual void GetMassMatrix (MatrixType &Me) const
virtual Material::ConstPointer GetMaterial (void) const
virtual void GetMaterialMatrix (MatrixType &D) const =0
virtual NodeIDType GetNode (unsigned int n) const
virtual const VectorTypeGetNodeCoordinates (unsigned int n) const
virtual unsigned int GetNumberOfDegreesOfFreedom (void) const
virtual unsigned int GetNumberOfDegreesOfFreedomPerNode (void) const =0
virtual unsigned int GetNumberOfIntegrationPoints (unsigned int order) const
virtual unsigned int GetNumberOfNodes (void) const
virtual unsigned int GetNumberOfSpatialDimensions () const
virtual void GetStiffnessMatrix (MatrixType &Ke) const
virtual void GetStrainDisplacementMatrix (MatrixType &B, const MatrixType &shapeDgl) const =0
virtual VectorType GetStrainsAtPoint (const VectorType &pt, const Solution &sol, unsigned int index) const
virtual VectorType GetStressesAtPoint (const VectorType &pt, const VectorType &e, const Solution &sol, unsigned int index) const
virtual VectorType InterpolateSolution (const VectorType &pt, const Solution &sol, unsigned int solutionIndex=0) const
virtual Float InterpolateSolutionN (const VectorType &pt, const Solution &sol, unsigned int f, unsigned int solutionIndex=0) const
virtual void Jacobian (const VectorType &pt, MatrixType &J, const MatrixType *pshapeD=0) const
virtual Float JacobianDeterminant (const VectorType &pt, const MatrixType *pJ=0) const
virtual void JacobianInverse (const VectorType &pt, MatrixType &invJ, const MatrixType *pJ=0) const
virtual void Read (std::istream &, void *info)
virtual void SetMaterial (Material::ConstPointer)
virtual void SetNode (unsigned int n, NodeIDType node)
virtual void ShapeFunctionDerivatives (const VectorType &pt, MatrixType &shapeD) const
virtual void ShapeFunctionGlobalDerivatives (const VectorType &pt, MatrixType &shapeDgl, const MatrixType *pJ=0, const MatrixType *pshapeD=0) const
virtual VectorType ShapeFunctions (const VectorType &pt) const
virtual void Write (std::ostream &f) const

Static Public Member Functions

static FEMLightObject::Pointer CreateFromStream (std::istream &f, void *info)
static void SkipWhiteSpace (std::istream &f)

Public Attributes

int GN

Static Public Attributes

static const Float gaussPoint [gaussMaxOrder+1][gaussMaxOrder]
static const Float gaussWeight [gaussMaxOrder+1][gaussMaxOrder]
static const std::string whitespaces = " \t\n\r"

Protected Attributes

NodeIDType m_node [NumberOfNodes]

Private Types

typedef ElementStd< 3, 2 > TemplatedParentClass

Detailed Description

3-noded, quadratic, C0 continuous finite element in 2D space.

Definition at line 30 of file itkFEMElement2DC0QuadraticTriangular.h.


Member Typedef Documentation

Array class that holds special pointers to the Element objects

Definition at line 86 of file itkFEMElementBase.h.

Store the base class typedef for easy access from derived classes. FEM_CLASS macro also expects this for the FEMOF...

Definition at line 62 of file itkFEMLightObject.h.

typedef Superclass::DegreeOfFreedomIDType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::DegreeOfFreedomIDType
inherited

Reimplemented from itk::fem::Element.

Definition at line 67 of file itkFEMElementStd.h.

typedef Superclass::Float itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::Float
inherited
typedef Superclass::LoadPointer itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::LoadPointer
inherited

Reimplemented from itk::fem::Element.

Definition at line 65 of file itkFEMElementStd.h.

typedef Superclass::LoadType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::LoadType
inherited

Reimplemented from itk::fem::Element.

Definition at line 64 of file itkFEMElementStd.h.

typedef Superclass::MatrixType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::MatrixType
inherited
typedef Superclass::Node itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::Node
inherited

Definition at line 68 of file itkFEMElementStd.h.

typedef Superclass::NodeIDType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::NodeIDType
inherited

Reimplemented from itk::fem::Element.

Definition at line 66 of file itkFEMElementStd.h.

Definition at line 32 of file itkFEMElement2DC0QuadraticTriangular.h.

typedef Superclass::VectorType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::VectorType
inherited

Member Enumeration Documentation

anonymous enum

Methods related to numeric integration

Enumerator:
DefaultIntegrationOrder 

Definition at line 41 of file itkFEMElement2DC0QuadraticTriangular.h.

anonymous enum
inherited

Constant that represents an invalid DegreeOfFreedomID object. If a degree of freedom is assigned this value, this means that that no specific value was (yet) assigned to this DOF.

Enumerator:
InvalidDegreeOfFreedomID 

Definition at line 122 of file itkFEMElementBase.h.

anonymous enum
inherited

Maximum supported order of 1D Gauss-Legendre integration. Integration points are defined for orders from 1 to gaussMaxOrder. Number of integration points is equal to the order of integration rule.

See also:
gaussPoint
Enumerator:
gaussMaxOrder 

Definition at line 465 of file itkFEMElementBase.h.

anonymous enum
inherited

Definition at line 69 of file itkFEMElementStd.h.

anonymous enum
inherited

Number of nodes that define the element.

Definition at line 74 of file itkFEMElementStd.h.

anonymous enum
inherited

Number of dimensions of space in which element can exist.

Definition at line 79 of file itkFEMElementStd.h.


Member Function Documentation

virtual int itk::fem::FEMLightObject::ClassID ( ) const
pure virtualinherited
virtual Baseclass::Pointer itk::fem::FEMLightObject::Clone ( ) const
pure virtualinherited
FEMLightObject::Pointer itk::fem::FEMLightObject::CreateFromStream ( std::istream &  f,
void *  info 
)
staticinherited

Read object of any derived type from stream.

This static function creates an object of a class, which is derived from FEMLightObject. The class of object is first determined from the stream, then the object of that class is constructed using the FEMObjectFactory. Finally the data for this object is read from the stream, by calling the Read() member function.

Read and create object of any derived class from stream

 Catch possible exceptions while 
 reading object's data from stream
 Return a pointer to a newly created object if all was OK
 Technically everithing should be fine here (a!=0), but we
 check again, just in case.
 Something went wrong.
 Reset the stream position to where it was before reading the object.

Definition at line 77 of file itkFEMLightObject.cxx.

References itk::fem::FEMObjectFactory< FEMLightObject >::ClassName2ID(), itk::fem::FEMObjectFactory< FEMLightObject >::Create(), itk::fem::FEMLightObject::Read(), itk::fem::FEMLightObject::SkipWhiteSpace(), and itk::fem::FEMLightObject::whitespaces.

Referenced by itk::fem::Solver::Read().

DegreeOfFreedomIDType itk::fem::Element::GetDegreeOfFreedom ( unsigned int  local_dof) const
inlineinherited
Element::Float itk::fem::Element::GetElementDeformationEnergy ( MatrixType LocalSolution) const
virtualinherited

Compute the physical energy, U, of the deformation (e.g. stress / strain ).

 T

U = u Ke u

The matrix LocalSolution contains the solution to use in the energy computation. Usually, this is the solution at the nodes.

Definition at line 268 of file itkFEMElementBase.cxx.

References itk::fem::Element::GetStiffnessMatrix().

Element::VectorType itk::fem::Element::GetGlobalFromLocalCoordinates ( const VectorType pt) const
virtualinherited

Transforms the given local element coordinates into global.

Parameters:
ptPoint in local element coordinates.

Definition at line 488 of file itkFEMElementBase.cxx.

References itk::fem::Element::GetNodeCoordinates(), itk::fem::Element::GetNumberOfNodes(), itk::fem::Element::GetNumberOfSpatialDimensions(), and itk::fem::Element::ShapeFunctions().

Referenced by itk::fem::LoadImplementationGenericBodyLoad::Implementation().

void itk::fem::Element2DC0QuadraticTriangular::GetIntegrationPointAndWeight ( unsigned int  i,
VectorType pt,
Float w,
unsigned int  order 
) const
virtual

Methods related to numeric integration Computes the vector representing the i-th integration point in local element coordinates for a Gauss-Legendre numerical integration over the element domain. It also computes the weight at this integration point.

Optionally you can also specify the order of integration. If order is not specified, it defaults to 0, which means that the derived element should use the optimal integration order specific for that element.

Note:
This function must be implemented in derived element classes, and is expected to provide valid integration points for up to gaussMaxOrder-th order of integration.
Parameters:
iIntegration point number 0<=i<GetNumberOfIntegrationPoints()
ptReference to object of class VectorType that will hold the integration point.
wReference to Float variable that will hold the weight.
orderOrder of integration.
See also:
GetNumberOfIntegrationPoints()

We provide implementation for 5 different integration rules as defined in chapter 24 - Implementation of Iso-P Truangular Elements, of http://titan.colorado.edu/courses.d/IFEM.d/.

Note that the order parameter here does not correspond to the actual order of integration, but rather the degree of polynomials that are exactly integrated. In addition, there are two integration rules for polynomials of 2nd degree. In order to allow using both of them, we assign the index number 3 to the second one. Note that this does not mean that the rule is capable of integrating the polynomials of 3rd degree. It's just an index of a rule.

Implements itk::fem::Element.

Definition at line 26 of file itkFEMElement2DC0QuadraticTriangular.cxx.

References itk::fem::Element2DC0LinearTriangular::trigGaussRuleInfo.

void itk::fem::Element::GetLandmarkContributionMatrix ( float  eta,
MatrixType Le 
) const
virtualinherited

Compute and return landmark contribution to element stiffness matrix (Le) in global coordinate system.

b             T

int (1/eta)^2 N(x) N(x) dx a

where (eta ) is the landmark weight. Implementation is similar to GetMassMatrix.

Definition at line 229 of file itkFEMElementBase.cxx.

References itk::fem::Element::GetIntegrationPointAndWeight(), itk::fem::Element::GetNumberOfDegreesOfFreedom(), itk::fem::Element::GetNumberOfDegreesOfFreedomPerNode(), itk::fem::Element::GetNumberOfIntegrationPoints(), itk::fem::Element::GetNumberOfNodes(), and itk::fem::Element::ShapeFunctions().

Referenced by itk::fem::SolverCrankNicolson::AssembleKandM(), and itk::fem::Solver::AssembleLandmarkContribution().

virtual void itk::fem::Element::GetLoadVector ( LoadPointer  l,
VectorType Fe 
) const
pure virtualinherited

Compute and return the element load vector for a given external load. The class of load object determines the type of load acting on the elemnent. Basically this is the contribution of this element on the right side of the master matrix equation, due to the specified load. Returned vector includes only nodal forces that correspond to the given Load object.

Visitor design pattern is used in the loads implementation. This function only selects and calls the proper function based on the given class of load object. The code that performs the actual conversion to the corresponding nodal loads is defined elswhere.

Note:
Each derived class must implement its own version of this function. This is automated by calling the LOAD_FUNCTION() macro within the class declaration (in the public: block).

For example on how to define specific element load, see funtion LoadImplementationPoint_Bar2D.

Note:
: Before a load can be applied to an element, the function that implements a load must be registered with the VisitorDispactcher class.
Parameters:
lPointer to a load object.
FeReference to vector object that will store nodal forces.
See also:
VisitorDispatcher

Referenced by itk::fem::Solver::AssembleF().

virtual bool itk::fem::Element2DC0QuadraticTriangular::GetLocalFromGlobalCoordinates ( const VectorType globalPt,
VectorType localPt 
) const
inlinevirtual

Transforms the given global element coordinates into local. Returns false if the point is outside.

Parameters:
globalPtReference to vector containing a point in global (world) coordinates.
localPtReference to the vector that will store the local coordinate.

Implements itk::fem::Element.

Definition at line 57 of file itkFEMElement2DC0QuadraticTriangular.h.

void itk::fem::Element::GetMassMatrix ( MatrixType Me) const
virtualinherited

Compute and return element mass matrix (Me) in global coordinate system.

b   T

int N(x) (rho c) N(x) dx a

where (rho c) is constant (element density), which is here assumed to be equal to one. If this is not the case, this function must be overriden in a derived class. Implementation is similar to GetStiffnessMatrix.

Reimplemented in itk::fem::Element2DMembrane< Element2DC0LinearQuadrilateral >, itk::fem::Element2DMembrane< Element2DC0LinearTriangular >, itk::fem::Element2DStrain< Element2DC0QuadraticTriangular >, itk::fem::Element2DStrain< Element2DC0LinearQuadrilateral >, itk::fem::Element2DStrain< Element2DC0LinearTriangular >, itk::fem::Element2DStress< Element2DC0QuadraticTriangular >, itk::fem::Element2DStress< Element2DC0LinearQuadrilateral >, itk::fem::Element2DStress< Element2DC0LinearTriangular >, itk::fem::Element3DMembrane< Element3DC0LinearHexahedron >, itk::fem::Element3DMembrane< Element3DC0LinearTetrahedron >, itk::fem::Element2DC1Beam, and itk::fem::Element2DC0LinearLineStress.

Definition at line 281 of file itkFEMElementBase.cxx.

References itk::fem::Element::GetIntegrationPointAndWeight(), itk::fem::Element::GetNumberOfDegreesOfFreedom(), itk::fem::Element::GetNumberOfDegreesOfFreedomPerNode(), itk::fem::Element::GetNumberOfIntegrationPoints(), itk::fem::Element::GetNumberOfNodes(), itk::fem::Element::Jacobian(), itk::fem::Element::JacobianDeterminant(), itk::fem::Element::ShapeFunctionDerivatives(), and itk::fem::Element::ShapeFunctions().

Referenced by itk::fem::SolverHyperbolic::AssembleElementMatrix().

virtual Material::ConstPointer itk::fem::Element::GetMaterial ( void  ) const
inlinevirtualinherited

Return the pointer to the Material object used by the element. All derived classes, which use objects of Material class should override this method to provide access to the material from the base class.

Note:
Derived Element classes don't have to use a material class, but since the majority of the final Element classes uses Material classes to specify phhysical constants that the element depends on, we provide this virtual function that enables easy access to this pointer from the base class. If the derived class does not override this function, the returned pointer is 0 by default, signaling that there is no Material object.
See also:
SetMaterial

Reimplemented in itk::fem::Element2DC1Beam, itk::fem::Element1DStress< Element2DC0LinearLine >, itk::fem::Element2DMembrane< Element2DC0LinearQuadrilateral >, itk::fem::Element2DMembrane< Element2DC0LinearTriangular >, itk::fem::Element2DStrain< Element2DC0QuadraticTriangular >, itk::fem::Element2DStrain< Element2DC0LinearQuadrilateral >, itk::fem::Element2DStrain< Element2DC0LinearTriangular >, itk::fem::Element2DStress< Element2DC0QuadraticTriangular >, itk::fem::Element2DStress< Element2DC0LinearQuadrilateral >, itk::fem::Element2DStress< Element2DC0LinearTriangular >, itk::fem::Element3DMembrane< Element3DC0LinearHexahedron >, itk::fem::Element3DMembrane< Element3DC0LinearTetrahedron >, itk::fem::Element3DStrain< Element3DC0LinearHexahedron >, and itk::fem::Element3DStrain< Element3DC0LinearTetrahedron >.

Definition at line 404 of file itkFEMElementBase.h.

virtual void itk::fem::Element::GetMaterialMatrix ( MatrixType D) const
pure virtualinherited
virtual NodeIDType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::GetNode ( unsigned int  n) const
inlinevirtualinherited

Implements itk::fem::Element.

Definition at line 93 of file itkFEMElementStd.h.

virtual const VectorType& itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::GetNodeCoordinates ( unsigned int  n) const
inlinevirtualinherited

Implements itk::fem::Element.

Definition at line 111 of file itkFEMElementStd.h.

virtual unsigned int itk::fem::Element::GetNumberOfDegreesOfFreedom ( void  ) const
inlinevirtualinherited
virtual unsigned int itk::fem::Element::GetNumberOfDegreesOfFreedomPerNode ( void  ) const
pure virtualinherited
unsigned int itk::fem::Element2DC0QuadraticTriangular::GetNumberOfIntegrationPoints ( unsigned int  order) const
virtual

Returns total number of integration points, for given order of Gauss-Legendre numerical integration rule.

Note:
This function must be implemented in derived element classes, and is expected to provide valid number of integration points for up to gaussMaxOrder-th order of integration.
See also:
GetIntegrationPointAndWeight()

Implements itk::fem::Element.

Definition at line 57 of file itkFEMElement2DC0QuadraticTriangular.cxx.

References itk::fem::Element2DC0LinearTriangular::Nip.

virtual unsigned int itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::GetNumberOfNodes ( void  ) const
inlinevirtualinherited

Methods that define the geometry of an element

Implements itk::fem::Element.

Definition at line 90 of file itkFEMElementStd.h.

virtual unsigned int itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::GetNumberOfSpatialDimensions ( ) const
inlinevirtualinherited

Implements itk::fem::Element.

Definition at line 116 of file itkFEMElementStd.h.

void itk::fem::Element::GetStiffnessMatrix ( MatrixType Ke) const
virtualinherited

Compute and return element stiffnes matrix (Ke) in global coordinate system. The base class provides a general implementation which only computes

b   T

int B(x) D B(x) dx a

using the Gaussian numeric integration method. The function calls GetIntegrationPointAndWeight() / GetNumberOfIntegrationPoints() to obtain the integration points. It also calls the GetStrainDisplacementMatrix() and GetMaterialMatrix() member functions.

Parameters:
KeReference to the resulting stiffnes matrix.
Note:
This is a very generic implementation of the stiffness matrix that is suitable for any problem/element definition. A specifc element may override this implementation with its own simple one.

Physics of a problem.

Reimplemented in itk::fem::Element1DStress< Element2DC0LinearLine >, and itk::fem::Element2DC1Beam.

Definition at line 155 of file itkFEMElementBase.cxx.

References itk::fem::Element::GetIntegrationPointAndWeight(), itk::fem::Element::GetMaterialMatrix(), itk::fem::Element::GetNumberOfIntegrationPoints(), itk::fem::Element::GetStrainDisplacementMatrix(), itk::fem::Element::Jacobian(), itk::fem::Element::JacobianDeterminant(), itk::fem::Element::ShapeFunctionDerivatives(), and itk::fem::Element::ShapeFunctionGlobalDerivatives().

Referenced by itk::fem::SolverHyperbolic::AssembleElementMatrix(), itk::fem::Solver::AssembleElementMatrix(), and itk::fem::Element::GetElementDeformationEnergy().

virtual void itk::fem::Element::GetStrainDisplacementMatrix ( MatrixType B,
const MatrixType shapeDgl 
) const
pure virtualinherited
Element::VectorType itk::fem::Element::GetStrainsAtPoint ( const VectorType pt,
const Solution sol,
unsigned int  index 
) const
virtualinherited
Element::VectorType itk::fem::Element::GetStressesAtPoint ( const VectorType pt,
const VectorType e,
const Solution sol,
unsigned int  index 
) const
virtualinherited

Definition at line 213 of file itkFEMElementBase.cxx.

References itk::fem::Element::GetMaterialMatrix().

Element::VectorType itk::fem::Element::InterpolateSolution ( const VectorType pt,
const Solution sol,
unsigned int  solutionIndex = 0 
) const
virtualinherited

Return interpolated value of all unknown functions at given local point.

Parameters:
ptPoint in local element coordinates.
solReference to the master solution object. This object is created by the Solver object when the whole FEM problem is solved and contains the values of unknown functions at nodes (degrees of freedom).
solutionIndexWe allow more than one solution vector to be stored - this selects which to use in interpolation.

Definition at line 327 of file itkFEMElementBase.cxx.

References itk::fem::Element::GetDegreeOfFreedom(), itk::fem::Element::GetNode(), itk::fem::Element::GetNumberOfDegreesOfFreedomPerNode(), itk::fem::Element::GetNumberOfNodes(), itk::fem::Solution::GetSolutionValue(), and itk::fem::Element::ShapeFunctions().

Referenced by itk::fem::Element::GetStrainsAtPoint(), and itk::fem::LoadImplementationGenericLandmarkLoad::Implementation().

Element::Float itk::fem::Element::InterpolateSolutionN ( const VectorType pt,
const Solution sol,
unsigned int  f,
unsigned int  solutionIndex = 0 
) const
virtualinherited

Return interpolated value of f-th unknown function at given local point.

Parameters:
ptPoint in local element coordinates.
solReference to the master solution object. This object is created by the Solver object when the whole FEM problem is solved and contains the values of unknown functions at nodes (degrees of freedom).
fNumber of unknown function to interpolate. Must be 0 <= f < GetNumberOfDegreesOfFreedomPerNode().
solutionIndexWe allow more than one solution vector to be stored - this selects which to use in interpolation.

Definition at line 355 of file itkFEMElementBase.cxx.

References itk::fem::Element::GetDegreeOfFreedom(), itk::fem::Element::GetNode(), itk::fem::Element::GetNumberOfNodes(), itk::fem::Solution::GetSolutionValue(), and itk::fem::Element::ShapeFunctions().

void itk::fem::Element::Jacobian ( const VectorType pt,
MatrixType J,
const MatrixType pshapeD = 0 
) const
virtualinherited

Compute the Jacobian matrix of the transformation from local to global coordinates at a given local point.

A column in this matrix corresponds to a global coordinate, while a row corresponds to different local coordinates. E.g. element at row 2, col 3 contains derivative of the third global coordinate with respect to local coordinate number 2.

In order to compute the Jacobian, we normally need the shape function derivatives. If they are known, you should pass a pointer to an object of MatrixType that contains the shape function derivatives. If they are not known, pass null pointer and they will be computed automatically.

Parameters:
ptPoint in local coordinates
Jreferece to matrix object, which will contain the jacobian
pshapeDA pointer to derivatives of shape functions at point pt. If this pointer is 0, derivatives will be computed as necessary.

Geometry of a problem.

Reimplemented in itk::fem::Element2DC0LinearLine.

Definition at line 376 of file itkFEMElementBase.cxx.

References itk::fem::Element::GetNodeCoordinates(), itk::fem::Element::GetNumberOfSpatialDimensions(), and itk::fem::Element::ShapeFunctionDerivatives().

Referenced by itk::fem::Element::GetMassMatrix(), itk::fem::Element::GetStiffnessMatrix(), itk::fem::Element::GetStrainsAtPoint(), itk::fem::Element::JacobianDeterminant(), itk::fem::Element::JacobianInverse(), and itk::fem::Element::ShapeFunctionGlobalDerivatives().

Element2DC0QuadraticTriangular::Float itk::fem::Element2DC0QuadraticTriangular::JacobianDeterminant ( const VectorType pt,
const MatrixType pJ = 0 
) const
virtual

Compute the determinant of the Jacobian matrix at a given point with respect to the local coordinate system.

Parameters:
ptPoint in local element coordinates.
pJOptional pointer to Jacobian matrix computed at point pt. If this is set to 0, the Jacobian will be computed as necessary.

Reimplemented from itk::fem::Element.

Definition at line 111 of file itkFEMElement2DC0QuadraticTriangular.cxx.

void itk::fem::Element2DC0QuadraticTriangular::JacobianInverse ( const VectorType pt,
MatrixType invJ,
const MatrixType pJ = 0 
) const
virtual

Compute the inverse of the Jacobian matrix at a given point with respect to the local coordinate system.

Parameters:
ptPoint in local element coordinates.
invJReference to the object of MatrixType that will store the computed inverse if Jacobian.
pJOptional pointer to Jacobian matrix computed at point pt. If this is set to 0, the Jacobian will be computed as necessary.

Reimplemented from itk::fem::Element.

Definition at line 138 of file itkFEMElement2DC0QuadraticTriangular.cxx.

virtual void itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::Read ( std::istream &  ,
void *  info 
)
virtualinherited

Methods related to I/O Read data for this class from input stream

Reimplemented from itk::fem::FEMLightObject.

Reimplemented in itk::fem::Element2DStrain< Element2DC0QuadraticTriangular >, and itk::fem::Element2DStress< Element2DC0QuadraticTriangular >.

virtual void itk::fem::Element::SetMaterial ( Material::ConstPointer  )
inlinevirtualinherited
virtual void itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::SetNode ( unsigned int  n,
NodeIDType  node 
)
inlinevirtualinherited

Implements itk::fem::Element.

Definition at line 102 of file itkFEMElementStd.h.

void itk::fem::Element2DC0QuadraticTriangular::ShapeFunctionDerivatives ( const VectorType pt,
MatrixType shapeD 
) const
virtual

Compute the matrix of values of the shape functions derivatives with respect to local coordinates of this element at a given point.

A column in this matrix corresponds to a specific shape function, while a row corresponds to different local coordinates. E.g. element at row 2, col 3 contains derivative of shape function number 3 with respect to local coordinate number 2.

Parameters:
ptPoint in local element coordinates.
shapeDReference to a matrix object, which will be filled with values of shape function derivatives.
See also:
ShapeFunctionGlobalDerivatives

Implements itk::fem::Element.

Definition at line 88 of file itkFEMElement2DC0QuadraticTriangular.cxx.

void itk::fem::Element::ShapeFunctionGlobalDerivatives ( const VectorType pt,
MatrixType shapeDgl,
const MatrixType pJ = 0,
const MatrixType pshapeD = 0 
) const
virtualinherited

Compute matrix of shape function derivatives with respect to global coordinates.

A column in this matrix corresponds to a specific shape function, while a row corresponds to different global coordinates.

Parameters:
ptPoint in local element coordinates.
shapeDglReference to a matrix object, which will be filled with values of shape function derivatives w.r.t. global (world) element coordinates.
pJOptional pointer to Jacobian matrix computed at point pt. If this is set to 0, the Jacobian will be computed as necessary.
pshapeDA pointer to derivatives of shape functions at point pt. If this pointer is 0, derivatives will be computed as necessary.
See also:
ShapeFunctionDerivatives

Definition at line 453 of file itkFEMElementBase.cxx.

References itk::fem::Element::Jacobian(), itk::fem::Element::JacobianInverse(), and itk::fem::Element::ShapeFunctionDerivatives().

Referenced by itk::fem::Element::GetStiffnessMatrix(), and itk::fem::Element::GetStrainsAtPoint().

Element2DC0QuadraticTriangular::VectorType itk::fem::Element2DC0QuadraticTriangular::ShapeFunctions ( const VectorType pt) const
virtual

Methods related to the geometry of an element

Implements itk::fem::Element.

Definition at line 69 of file itkFEMElement2DC0QuadraticTriangular.cxx.

void itk::fem::FEMLightObject::SkipWhiteSpace ( std::istream &  f)
staticinherited
virtual void itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::Write ( std::ostream &  f) const
virtualinherited

Member Data Documentation

const Element::Float itk::fem::Element::gaussPoint
staticinherited
Initial value:
{
{ 0.0 },
{ 0.000000000000000 },
{ 0.577350269189626,-0.577350269189626 },
{ 0.774596669241483, 0.000000000000000,-0.774596669241483 },
{ 0.861136311594053, 0.339981043584856,-0.339981043584856,-0.861136311594053 },
{ 0.906179845938664, 0.538469310105683, 0.000000000000000,-0.538469310105683,-0.906179845938664},
{ 0.932469514203152, 0.661209386466264, 0.238619186083197,-0.238619186083197,-0.661209386466264,-0.932469514203152 },
{ 0.949107912342759, 0.741531185599394, 0.405845151377397, 0.000000000000000,-0.405845151377397,-0.741531185599394,-0.949107912342759 },
{ 0.960289856497536, 0.796666477413627, 0.525532409916329, 0.183434642495650,-0.183434642495650,-0.525532409916329,-0.796666477413627,-0.960289856497536 },
{ 0.968160239507626, 0.836031107326636, 0.613371432700590, 0.324253423403809, 0.000000000000000,-0.324253423403809,-0.613371432700590,-0.836031107326636,-0.968160239507626 },
{ 0.973906528517172, 0.865063366688985, 0.679409568299024, 0.433395394129247, 0.148874338981631,-0.148874338981631,-0.433395394129247,-0.679409568299024,-0.865063366688985,-0.973906528517172 }
}

Points for 1D Gauss-Legendre integration from -1 to 1. First index is order of integration, second index is the number of integration point.

Example: gaussPoint[4][2] returns third point of the 4th order integration rule. Subarray gaussPoint[0][...] does not provide useful information. It is there only to keep order index correct.

See also:
gaussWeight

Definition at line 478 of file itkFEMElementBase.h.

const Element::Float itk::fem::Element::gaussWeight
staticinherited
Initial value:
{
{ 0.0 },
{ 2.000000000000000 },
{ 1.000000000000000, 1.000000000000000 },
{ 0.555555555555555, 0.888888888888889, 0.555555555555555 },
{ 0.347854845137454, 0.652145154862546, 0.652145154862546, 0.347854845137454 },
{ 0.236926885056189, 0.478628670499366, 0.568888888888889, 0.478628670499366, 0.236926885056189 },
{ 0.171324492379170, 0.360761573048139, 0.467913934572691, 0.467913934572691, 0.360761573048139, 0.171324492379170 },
{ 0.129484966168869, 0.279705391489277, 0.381830050505119, 0.417959183673469, 0.381830050505119, 0.279705391489277, 0.129484966168869 },
{ 0.101228536290376, 0.222381034453374, 0.313706645877887, 0.362683783378362, 0.362683783378362, 0.313706645877887, 0.222381034453374, 0.101228536290376 },
{ 0.081274388361575, 0.180648160694858, 0.260610696402935, 0.312347077040003, 0.330239355001260, 0.312347077040003, 0.260610696402935, 0.180648160694858, 0.081274388361575 },
{ 0.066671344308688, 0.149451349150581, 0.219086362515982, 0.269266719309996, 0.295524224714753, 0.295524224714753, 0.269266719309996, 0.219086362515982, 0.149451349150581, 0.066671344308688 }
}

Weights for Gauss-Legendre integration.

See also:
gaussPoint

Definition at line 485 of file itkFEMElementBase.h.

int itk::fem::FEMLightObject::GN
inherited

Global number of an object (ID of an object) In general the ID's are required to be unique only within a specific type of derived classes (Elements, Nodes, ...) If the GN is not required, it can be ignored. (normally you need the GN when writing or reading objects to/from stream.

Definition at line 163 of file itkFEMLightObject.h.

Referenced by itk::fem::FEMLightObject::FEMLightObject(), itk::fem::Generate2DRectilinearMesh(), itk::fem::Generate3DRectilinearMesh(), itk::fem::FEMLightObject::Read(), itk::fem::LoadNode::Write(), itk::fem::LoadBC::Write(), and itk::fem::FEMLightObject::Write().

NodeIDType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::m_node[NumberOfNodes]
protectedinherited

Array of pointers to point objects that define the element

Definition at line 141 of file itkFEMElementStd.h.

const std::string itk::fem::FEMLightObject::whitespaces = " \t\n\r"
staticinherited

Const string of all whitespace characters. This string is used by SkipWhiteSpace function.

Definition at line 133 of file itkFEMLightObject.h.

Referenced by itk::fem::FEMLightObject::CreateFromStream(), and itk::fem::MaterialLinearElasticity::Read().


The documentation for this class was generated from the following files:

Generated at Sun Feb 3 2013 02:56:13 for Orfeo Toolbox with doxygen 1.8.1.1