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

4-noded finite element class in 2D space for linear elasticity problem More...

#include <itkFEMElement2DC0LinearQuadrilateralStrain.h>

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

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
Element2DC0LinearQuadrilateralStrain 
Self
typedef Element2DStrain
< Element2DC0LinearQuadrilateral
Superclass
typedef Superclass::VectorType VectorType

Public Member Functions

 Element2DC0LinearQuadrilateralStrain ()
 Element2DC0LinearQuadrilateralStrain (NodeIDType n1_, NodeIDType n2_, NodeIDType n3_, NodeIDType n4_, Material::ConstPointer p_)
virtual int ClassID () const
virtual Baseclass::Pointer Clone () const
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 &globalPt, VectorType &localPt) const
void GetMassMatrix (MatrixType &Me) const
virtual Material::ConstPointer GetMaterial (void) const
virtual void GetMaterialMatrix (MatrixType &D) const
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
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
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
 HANDLE_ELEMENT_LOADS ()
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 mat_)
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 Self::Pointer New ()
static void SkipWhiteSpace (std::istream &f)

Public Attributes

int GN
MaterialLinearElasticity::ConstPointer m_mat

Static Public Attributes

static const int CLID
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]

Detailed Description

4-noded finite element class in 2D space for linear elasticity problem

Definition at line 31 of file itkFEMElement2DC0LinearQuadrilateralStrain.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.

Const pointer or SmartPointer to an object.

Reimplemented from itk::fem::Element2DStrain< Element2DC0LinearQuadrilateral >.

Definition at line 33 of file itkFEMElement2DC0LinearQuadrilateralStrain.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.

Reimplemented from itk::fem::ElementStd< 4, 2 >.

Definition at line 48 of file itkFEMElement2DStrain.h.

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.

Reimplemented from itk::fem::ElementStd< 4, 2 >.

Definition at line 49 of file itkFEMElement2DStrain.h.

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.

Pointer or SmartPointer to an object.

Reimplemented from itk::fem::Element2DStrain< Element2DC0LinearQuadrilateral >.

Definition at line 33 of file itkFEMElement2DC0LinearQuadrilateralStrain.h.

Standard Self typedef.

Reimplemented from itk::fem::Element2DStrain< Element2DC0LinearQuadrilateral >.

Definition at line 33 of file itkFEMElement2DC0LinearQuadrilateralStrain.h.

Standard Superclass typedef.

Reimplemented from itk::fem::Element2DStrain< Element2DC0LinearQuadrilateral >.

Definition at line 33 of file itkFEMElement2DC0LinearQuadrilateralStrain.h.

Reimplemented from itk::fem::ElementStd< 4, 2 >.

Definition at line 50 of file itkFEMElement2DStrain.h.


Member Enumeration Documentation

anonymous enum
inherited

Methods related to numeric integration

Enumerator:
DefaultIntegrationOrder 

Definition at line 41 of file itkFEMElement2DC0LinearQuadrilateral.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.


Constructor & Destructor Documentation

itk::fem::Element2DC0LinearQuadrilateralStrain::Element2DC0LinearQuadrilateralStrain ( )

Default constructor only clears the internal storage

Definition at line 29 of file itkFEMElement2DC0LinearQuadrilateralStrain.cxx.

itk::fem::Element2DC0LinearQuadrilateralStrain::Element2DC0LinearQuadrilateralStrain ( NodeIDType  n1_,
NodeIDType  n2_,
NodeIDType  n3_,
NodeIDType  n4_,
Material::ConstPointer  p_ 
)

Construct an element by specifying pointers to 4 points and a material.

Definition at line 34 of file itkFEMElement2DC0LinearQuadrilateralStrain.cxx.


Member Function Documentation

virtual int itk::fem::Element2DC0LinearQuadrilateralStrain::ClassID ( ) const
inlinevirtual

Virtual function to access the class ID

Implements itk::fem::FEMLightObject.

Definition at line 33 of file itkFEMElement2DC0LinearQuadrilateralStrain.h.

virtual Baseclass::Pointer itk::fem::Element2DC0LinearQuadrilateralStrain::Clone ( ) const
virtual

Create a new object from the existing one

Implements itk::fem::FEMLightObject.

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::Element2DC0LinearQuadrilateral::GetIntegrationPointAndWeight ( unsigned int  i,
VectorType pt,
Float w,
unsigned int  order 
) const
virtualinherited

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()

Implements itk::fem::Element.

Definition at line 31 of file itkFEMElement2DC0LinearQuadrilateral.cxx.

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().

bool itk::fem::Element2DC0LinearQuadrilateral::GetLocalFromGlobalCoordinates ( const VectorType globalPt,
VectorType localPt 
) const
virtualinherited

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 123 of file itkFEMElement2DC0LinearQuadrilateral.cxx.

void itk::fem::Element2DStrain< Element2DC0LinearQuadrilateral >::GetMassMatrix ( MatrixType Me) const
virtualinherited

Compute the mass matrix specific for 2D strain problems.

Reimplemented from itk::fem::Element.

virtual Material::ConstPointer itk::fem::Element2DStrain< Element2DC0LinearQuadrilateral >::GetMaterial ( void  ) const
inlinevirtualinherited

Reimplemented from itk::fem::Element.

Definition at line 100 of file itkFEMElement2DStrain.h.

virtual void itk::fem::Element2DStrain< Element2DC0LinearQuadrilateral >::GetMaterialMatrix ( MatrixType D) const
virtualinherited

Compute the D matrix.

Implements itk::fem::Element.

virtual NodeIDType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::GetNode ( unsigned int  n) const
inlinevirtualinherited
virtual const VectorType& itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::GetNodeCoordinates ( unsigned int  n) const
inlinevirtualinherited
virtual unsigned int itk::fem::Element::GetNumberOfDegreesOfFreedom ( void  ) const
inlinevirtualinherited
virtual unsigned int itk::fem::Element2DStrain< Element2DC0LinearQuadrilateral >::GetNumberOfDegreesOfFreedomPerNode ( void  ) const
inlinevirtualinherited

2D strain elements have 2 DOFs per node.

Implements itk::fem::Element.

Definition at line 91 of file itkFEMElement2DStrain.h.

unsigned int itk::fem::Element2DC0LinearQuadrilateral::GetNumberOfIntegrationPoints ( unsigned int  order) const
virtualinherited

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 49 of file itkFEMElement2DC0LinearQuadrilateral.cxx.

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.

References itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::NumberOfNodes.

virtual unsigned int itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::GetNumberOfSpatialDimensions ( ) const
inlinevirtualinherited
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::Element2DStrain< Element2DC0LinearQuadrilateral >::GetStrainDisplacementMatrix ( MatrixType B,
const MatrixType shapeDgl 
) const
virtualinherited

Methods related to the physics of the problem. Compute the B matrix.

Methods related to the physics of the problem.

Implements itk::fem::Element.

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().

itk::fem::Element2DC0LinearQuadrilateralStrain::HANDLE_ELEMENT_LOADS ( )
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().

Element::Float itk::fem::Element::JacobianDeterminant ( const VectorType pt,
const MatrixType pJ = 0 
) const
virtualinherited

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 in itk::fem::Element2DC1Beam, itk::fem::Element2DC0QuadraticTriangular, and itk::fem::Element2DC0LinearTriangular.

Definition at line 409 of file itkFEMElementBase.cxx.

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

Referenced by itk::fem::Element::GetMassMatrix(), itk::fem::Element::GetStiffnessMatrix(), itk::fem::ImageMetricLoadImplementation< TLoadClass >::Implementation(), and itk::fem::LoadImplementationGenericBodyLoad::Implementation().

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

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 in itk::fem::Element2DC0QuadraticTriangular, and itk::fem::Element2DC0LinearTriangular.

Definition at line 432 of file itkFEMElementBase.cxx.

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

Referenced by itk::fem::Element::ShapeFunctionGlobalDerivatives().

static Self::Pointer itk::fem::Element2DC0LinearQuadrilateralStrain::New ( void  )
inlinestatic

Object creation in an itk compatible way

Definition at line 33 of file itkFEMElement2DC0LinearQuadrilateralStrain.h.

virtual void itk::fem::Element2DStrain< Element2DC0LinearQuadrilateral >::Read ( std::istream &  ,
void *  info 
)
virtualinherited

Read data for this class from input stream

Reimplemented from itk::fem::ElementStd< 4, 2 >.

virtual void itk::fem::Element2DStrain< Element2DC0LinearQuadrilateral >::SetMaterial ( Material::ConstPointer  )
inlinevirtualinherited

Reimplemented from itk::fem::Element.

Definition at line 101 of file itkFEMElement2DStrain.h.

virtual void itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, Element >::SetNode ( unsigned int  n,
NodeIDType  node 
)
inlinevirtualinherited
void itk::fem::Element2DC0LinearQuadrilateral::ShapeFunctionDerivatives ( const VectorType pt,
MatrixType shapeD 
) const
virtualinherited

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

functions at directions r and s.

Derivative w.r.t r for shape function 1 (node 1)

Derivative w.r.t s for shape function 1 (node 1)

Derivative w.r.t r for shape function 2 (node 2)

Derivative w.r.t s for shape function 2 (node 2)

Derivative w.r.t r for shape function 3 (node 3)

Derivative w.r.t s for shape function 3 (node 3)

Derivative w.r.t r for shape function 4 (node 4)

Derivative w.r.t s for shape function 4 (node 4)

Implements itk::fem::Element.

Definition at line 90 of file itkFEMElement2DC0LinearQuadrilateral.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().

Element2DC0LinearQuadrilateral::VectorType itk::fem::Element2DC0LinearQuadrilateral::ShapeFunctions ( const VectorType pt) const
virtualinherited

Methods related to the geometry of an element

Linear quadrilateral element has local coordinates (-1,-1), (1,-1), (1,1), and (-1,1)

Implements itk::fem::Element.

Definition at line 61 of file itkFEMElement2DC0LinearQuadrilateral.cxx.

void itk::fem::FEMLightObject::SkipWhiteSpace ( std::istream &  f)
staticinherited
virtual void itk::fem::Element2DStrain< Element2DC0LinearQuadrilateral >::Write ( std::ostream &  f) const
virtualinherited

Write this class to output stream

Reimplemented from itk::fem::ElementStd< 4, 2 >.


Member Data Documentation

const int itk::fem::Element2DC0LinearQuadrilateralStrain::CLID
static

Class ID for FEM object factory

Definition at line 33 of file itkFEMElement2DC0LinearQuadrilateralStrain.h.

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().

Pointer to material properties of the element

Definition at line 99 of file itkFEMElement2DStrain.h.

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:54:55 for Orfeo Toolbox with doxygen 1.8.1.1