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

Implements standard node management in the element classes. More...

#include <itkFEMElementStd.h>

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

Inheritance graph
[legend]

List of all members.

Public Types

enum  { InvalidDegreeOfFreedomID = Superclass::InvalidDegreeOfFreedomID }
enum  { NumberOfNodes = VNumberOfNodes }
enum  { NumberOfSpatialDimensions = VNumberOfSpatialDimensions }
typedef const SelfConstPointer
typedef
Superclass::DegreeOfFreedomIDType 
DegreeOfFreedomIDType
typedef Superclass::Float Float

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]


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 53 of file itkFEMElementStd.h.


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::Element2DC0LinearLineStress, itk::fem::Element2DC0LinearQuadrilateral, itk::fem::Element2DC0LinearQuadrilateralMembrane, itk::fem::Element2DC0LinearQuadrilateralStrain, itk::fem::Element2DC0LinearQuadrilateralStress, itk::fem::Element2DC0LinearTriangular, itk::fem::Element2DC0LinearTriangularMembrane, itk::fem::Element2DC0LinearTriangularStrain, itk::fem::Element2DC0LinearTriangularStress, itk::fem::Element2DC0QuadraticTriangular, itk::fem::Element2DC0QuadraticTriangularStrain, itk::fem::Element2DC0QuadraticTriangularStress, itk::fem::Element2DC1Beam, itk::fem::Element3DC0LinearHexahedron, itk::fem::Element3DC0LinearHexahedronMembrane, itk::fem::Element3DC0LinearHexahedronStrain, itk::fem::Element3DC0LinearTetrahedron, itk::fem::Element3DC0LinearTetrahedronMembrane, itk::fem::Element3DC0LinearTetrahedronStrain, itk::fem::Element1DStress< Element2DC0LinearLine >, itk::fem::Element2DMembrane< Element2DC0LinearTriangular >, itk::fem::Element2DMembrane< Element2DC0LinearQuadrilateral >, itk::fem::Element2DStrain< Element2DC0LinearTriangular >, itk::fem::Element2DStrain< Element2DC0QuadraticTriangular >, itk::fem::Element2DStrain< Element2DC0LinearQuadrilateral >, itk::fem::Element2DStress< Element2DC0LinearTriangular >, itk::fem::Element2DStress< Element2DC0QuadraticTriangular >, itk::fem::Element2DStress< Element2DC0LinearQuadrilateral >, itk::fem::Element3DMembrane< Element3DC0LinearTetrahedron >, itk::fem::Element3DMembrane< Element3DC0LinearHexahedron >, itk::fem::Element3DStrain< Element3DC0LinearTetrahedron >, and itk::fem::Element3DStrain< Element3DC0LinearHexahedron >.

Definition at line 55 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 67 of file itkFEMElementStd.h.

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

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

Definition at line 65 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 64 of file itkFEMElementStd.h.

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

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

Definition at line 68 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 66 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::Element2DC0LinearLineStress, itk::fem::Element2DC0LinearQuadrilateral, itk::fem::Element2DC0LinearQuadrilateralMembrane, itk::fem::Element2DC0LinearQuadrilateralStrain, itk::fem::Element2DC0LinearQuadrilateralStress, itk::fem::Element2DC0LinearTriangular, itk::fem::Element2DC0LinearTriangularMembrane, itk::fem::Element2DC0LinearTriangularStrain, itk::fem::Element2DC0LinearTriangularStress, itk::fem::Element2DC0QuadraticTriangular, itk::fem::Element2DC0QuadraticTriangularStrain, itk::fem::Element2DC0QuadraticTriangularStress, itk::fem::Element2DC1Beam, itk::fem::Element3DC0LinearHexahedron, itk::fem::Element3DC0LinearHexahedronMembrane, itk::fem::Element3DC0LinearHexahedronStrain, itk::fem::Element3DC0LinearTetrahedron, itk::fem::Element3DC0LinearTetrahedronMembrane, itk::fem::Element3DC0LinearTetrahedronStrain, itk::fem::Element1DStress< Element2DC0LinearLine >, itk::fem::Element2DMembrane< Element2DC0LinearTriangular >, itk::fem::Element2DMembrane< Element2DC0LinearQuadrilateral >, itk::fem::Element2DStrain< Element2DC0LinearTriangular >, itk::fem::Element2DStrain< Element2DC0QuadraticTriangular >, itk::fem::Element2DStrain< Element2DC0LinearQuadrilateral >, itk::fem::Element2DStress< Element2DC0LinearTriangular >, itk::fem::Element2DStress< Element2DC0QuadraticTriangular >, itk::fem::Element2DStress< Element2DC0LinearQuadrilateral >, itk::fem::Element3DMembrane< Element3DC0LinearTetrahedron >, itk::fem::Element3DMembrane< Element3DC0LinearHexahedron >, itk::fem::Element3DStrain< Element3DC0LinearTetrahedron >, and itk::fem::Element3DStrain< Element3DC0LinearHexahedron >.

Definition at line 55 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::Element2DC0LinearLineStress, itk::fem::Element2DC0LinearQuadrilateral, itk::fem::Element2DC0LinearQuadrilateralMembrane, itk::fem::Element2DC0LinearQuadrilateralStrain, itk::fem::Element2DC0LinearQuadrilateralStress, itk::fem::Element2DC0LinearTriangular, itk::fem::Element2DC0LinearTriangularMembrane, itk::fem::Element2DC0LinearTriangularStrain, itk::fem::Element2DC0LinearTriangularStress, itk::fem::Element2DC0QuadraticTriangular, itk::fem::Element2DC0QuadraticTriangularStrain, itk::fem::Element2DC0QuadraticTriangularStress, itk::fem::Element2DC1Beam, itk::fem::Element3DC0LinearHexahedron, itk::fem::Element3DC0LinearHexahedronMembrane, itk::fem::Element3DC0LinearHexahedronStrain, itk::fem::Element3DC0LinearTetrahedron, itk::fem::Element3DC0LinearTetrahedronMembrane, itk::fem::Element3DC0LinearTetrahedronStrain, itk::fem::Element1DStress< Element2DC0LinearLine >, itk::fem::Element2DMembrane< Element2DC0LinearTriangular >, itk::fem::Element2DMembrane< Element2DC0LinearQuadrilateral >, itk::fem::Element2DStrain< Element2DC0LinearTriangular >, itk::fem::Element2DStrain< Element2DC0QuadraticTriangular >, itk::fem::Element2DStrain< Element2DC0LinearQuadrilateral >, itk::fem::Element2DStress< Element2DC0LinearTriangular >, itk::fem::Element2DStress< Element2DC0QuadraticTriangular >, itk::fem::Element2DStress< Element2DC0LinearQuadrilateral >, itk::fem::Element3DMembrane< Element3DC0LinearTetrahedron >, itk::fem::Element3DMembrane< Element3DC0LinearHexahedron >, itk::fem::Element3DStrain< Element3DC0LinearTetrahedron >, and itk::fem::Element3DStrain< Element3DC0LinearHexahedron >.

Definition at line 55 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::Element2DC0LinearLineStress, itk::fem::Element2DC0LinearQuadrilateral, itk::fem::Element2DC0LinearQuadrilateralMembrane, itk::fem::Element2DC0LinearQuadrilateralStrain, itk::fem::Element2DC0LinearQuadrilateralStress, itk::fem::Element2DC0LinearTriangular, itk::fem::Element2DC0LinearTriangularMembrane, itk::fem::Element2DC0LinearTriangularStrain, itk::fem::Element2DC0LinearTriangularStress, itk::fem::Element2DC0QuadraticTriangular, itk::fem::Element2DC0QuadraticTriangularStrain, itk::fem::Element2DC0QuadraticTriangularStress, itk::fem::Element2DC1Beam, itk::fem::Element3DC0LinearHexahedron, itk::fem::Element3DC0LinearHexahedronMembrane, itk::fem::Element3DC0LinearHexahedronStrain, itk::fem::Element3DC0LinearTetrahedron, itk::fem::Element3DC0LinearTetrahedronMembrane, itk::fem::Element3DC0LinearTetrahedronStrain, itk::fem::Element1DStress< Element2DC0LinearLine >, itk::fem::Element2DMembrane< Element2DC0LinearTriangular >, itk::fem::Element2DMembrane< Element2DC0LinearQuadrilateral >, itk::fem::Element2DStrain< Element2DC0LinearTriangular >, itk::fem::Element2DStrain< Element2DC0QuadraticTriangular >, itk::fem::Element2DStrain< Element2DC0LinearQuadrilateral >, itk::fem::Element2DStress< Element2DC0LinearTriangular >, itk::fem::Element2DStress< Element2DC0QuadraticTriangular >, itk::fem::Element2DStress< Element2DC0LinearQuadrilateral >, itk::fem::Element3DMembrane< Element3DC0LinearTetrahedron >, itk::fem::Element3DMembrane< Element3DC0LinearHexahedron >, itk::fem::Element3DStrain< Element3DC0LinearTetrahedron >, and itk::fem::Element3DStrain< Element3DC0LinearHexahedron >.

Definition at line 55 of file itkFEMElementStd.h.

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


Member Enumeration Documentation

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

Enumerator:
InvalidDegreeOfFreedomID 

Definition at line 69 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 74 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 79 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 93 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 111 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]

Methods that define the geometry of an element

Definition at line 90 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 116 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]

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 102 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]


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 141 of file itkFEMElementStd.h.

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


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

Generated at Tue Sep 15 15:14:46 2009 for ITK by doxygen 1.5.8 written by Dimitri van Heesch, © 1997-2000