Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass > Class Template Reference

#include <itkFEMElementStd.h>

Inheritance diagram for itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >:

Inheritance graph
[legend]
List of all members.

Detailed Description

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
class itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >

Implements standard node management in the element classes.

This is a templated helper class that automatically defines some of the virtual functions in elements. It is used to avoid code duplication.

If a derived element class has DOFs associated only with points that define the geometry of the element, you can derive from this class to automatically create all the functions required for proper node management.

You must specify three or four template parameters:

VNumberOfNodes - Number of nodes that define the element (e.g. four for quadrilateral)

VNumberOfSpatialDimensions - Number of dimensions of space in which the element is defined. This is also the size of a vector returned by GetNodeCoordinates() member funtion.

TBaseClass - Class from which ElementStd is derived. TBaseClass must be derived from the Element base class. This enables you to use this class at any level of element definition. If not specified, it defaults to the Element class.

Definition at line 56 of file itkFEMElementStd.h.

Public Types

enum  { InvalidDegreeOfFreedomID = Superclass::InvalidDegreeOfFreedomID }
enum  { NumberOfNodes = VNumberOfNodes }
enum  { NumberOfSpatialDimensions = VNumberOfSpatialDimensions }
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 ElementStd Self
typedef TBaseClass Superclass
typedef Superclass::VectorType VectorType

Public Member Functions

 ElementStd ()
virtual NodeIDType GetNode (unsigned int n) const
virtual const VectorTypeGetNodeCoordinates (unsigned int n) const
virtual unsigned int GetNumberOfNodes (void) const
virtual unsigned int GetNumberOfSpatialDimensions () const
virtual void Read (std::istream &, void *info)
virtual void SetNode (unsigned int n, NodeIDType node)
virtual void Write (std::ostream &f) const

Protected Attributes

NodeIDType m_node [NumberOfNodes]


Member Typedef Documentation

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
typedef const Self* itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::ConstPointer

Const pointer or SmartPointer to an object.

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

Definition at line 58 of file itkFEMElementStd.h.

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
typedef Superclass::DegreeOfFreedomIDType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::DegreeOfFreedomIDType

Definition at line 70 of file itkFEMElementStd.h.

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
typedef Superclass::Float itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::Float

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

Definition at line 64 of file itkFEMElementStd.h.

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
typedef Superclass::LoadPointer itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::LoadPointer

Definition at line 68 of file itkFEMElementStd.h.

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
typedef Superclass::LoadType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::LoadType

Definition at line 67 of file itkFEMElementStd.h.

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
typedef Superclass::MatrixType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::MatrixType

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

Definition at line 65 of file itkFEMElementStd.h.

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
typedef Superclass::Node itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::Node

Definition at line 71 of file itkFEMElementStd.h.

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
typedef Superclass::NodeIDType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::NodeIDType

Definition at line 69 of file itkFEMElementStd.h.

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
typedef Self* itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::Pointer

Pointer or SmartPointer to an object.

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

Definition at line 58 of file itkFEMElementStd.h.

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
typedef ElementStd itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::Self

Standard Self typedef.

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

Definition at line 58 of file itkFEMElementStd.h.

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
typedef TBaseClass itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::Superclass

Standard Superclass typedef.

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

Definition at line 58 of file itkFEMElementStd.h.

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
typedef Superclass::VectorType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::VectorType

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

Definition at line 66 of file itkFEMElementStd.h.


Member Enumeration Documentation

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
anonymous enum

Enumerator:
InvalidDegreeOfFreedomID 

Definition at line 72 of file itkFEMElementStd.h.

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
anonymous enum

Number of nodes that define the element.

Enumerator:
NumberOfNodes 

Definition at line 77 of file itkFEMElementStd.h.

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
anonymous enum

Number of dimensions of space in which element can exist.

Enumerator:
NumberOfSpatialDimensions 

Definition at line 82 of file itkFEMElementStd.h.


Constructor & Destructor Documentation

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::ElementStd (  ) 

Default constructor just clears the ivars


Member Function Documentation

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
virtual NodeIDType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::GetNode ( unsigned int  n  )  const [inline, virtual]

Definition at line 101 of file itkFEMElementStd.h.

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
virtual const VectorType& itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::GetNodeCoordinates ( unsigned int  n  )  const [inline, virtual]

Definition at line 116 of file itkFEMElementStd.h.

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
virtual unsigned int itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::GetNumberOfNodes ( void   )  const [inline, virtual]

Definition at line 98 of file itkFEMElementStd.h.

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
virtual unsigned int itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::GetNumberOfSpatialDimensions (  )  const [inline, virtual]

Definition at line 121 of file itkFEMElementStd.h.

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
virtual void itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::Read ( std::istream &  ,
void *  info 
) [virtual]

Read data for this class from input stream

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

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
virtual void itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::SetNode ( unsigned int  n,
NodeIDType  node 
) [inline, virtual]

Definition at line 110 of file itkFEMElementStd.h.

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
virtual void itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::Write ( std::ostream &  f  )  const [virtual]

Write data for this class to output stream

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


Member Data Documentation

template<unsigned int VNumberOfNodes, unsigned int VNumberOfSpatialDimensions, class TBaseClass = Element>
NodeIDType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::m_node[NumberOfNodes] [protected]

Array of pointers to point objects that define the element

Definition at line 152 of file itkFEMElementStd.h.

Referenced by itk::fem::ElementStd< 4, 2 >::GetNode(), itk::fem::ElementStd< 4, 2 >::GetNodeCoordinates(), and itk::fem::ElementStd< 4, 2 >::SetNode().


The documentation for this class was generated from the following file:
Generated at Sun Sep 23 22:46:54 2007 for ITK by doxygen 1.5.1 written by Dimitri van Heesch, © 1997-2000