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:

Inheritance graph
[legend]
List of all members.

Public Types

typedef ElementStd Self
typedef TBaseClass Superclass
typedef SelfPointer
typedef const SelfConstPointer
typedef Superclass::Float Float
typedef Superclass::MatrixType MatrixType
typedef Superclass::VectorType VectorType
typedef Superclass::LoadType LoadType
typedef Superclass::LoadPointer LoadPointer
typedef Superclass::NodeIDType NodeIDType
typedef Superclass::DegreeOfFreedomIDType DegreeOfFreedomIDType
typedef Superclass::Node Node
enum  { NumberOfNodes = VNumberOfNodes }
enum  { NumberOfSpatialDimensions = VNumberOfSpatialDimensions }

Public Methods

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

Public Attributes

enum InvalidDegreeOfFreedomID = Superclass::InvalidDegreeOfFreedomID }

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 56 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::Element2DC0LinearQuadrilateralStress, itk::fem::Element2DC0LinearTriangular, itk::fem::Element2DC0LinearTriangularMembrane, itk::fem::Element2DC0LinearTriangularStress, itk::fem::Element2DC0QuadraticTriangular, 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< Element2DC0LinearQuadrilateral >, itk::fem::Element2DMembrane< 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 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< Element2DC0LinearLine >, itk::fem::Element2DMembrane< Element2DC0LinearQuadrilateral >, itk::fem::Element2DMembrane< 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 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< Element2DC0LinearLine >, itk::fem::Element2DMembrane< Element2DC0LinearQuadrilateral >, itk::fem::Element2DMembrane< 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 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.

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

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::Element2DC0LinearQuadrilateralStress, itk::fem::Element2DC0LinearTriangular, itk::fem::Element2DC0LinearTriangularMembrane, itk::fem::Element2DC0LinearTriangularStress, itk::fem::Element2DC0QuadraticTriangular, 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< Element2DC0LinearQuadrilateral >, itk::fem::Element2DMembrane< 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 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::Element2DC0LinearLineStress, itk::fem::Element2DC0LinearQuadrilateral, itk::fem::Element2DC0LinearQuadrilateralMembrane, itk::fem::Element2DC0LinearQuadrilateralStress, itk::fem::Element2DC0LinearTriangular, itk::fem::Element2DC0LinearTriangularMembrane, itk::fem::Element2DC0LinearTriangularStress, itk::fem::Element2DC0QuadraticTriangular, 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< Element2DC0LinearQuadrilateral >, itk::fem::Element2DMembrane< 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 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::Element2DC0LinearLineStress, itk::fem::Element2DC0LinearQuadrilateral, itk::fem::Element2DC0LinearQuadrilateralMembrane, itk::fem::Element2DC0LinearQuadrilateralStress, itk::fem::Element2DC0LinearTriangular, itk::fem::Element2DC0LinearTriangularMembrane, itk::fem::Element2DC0LinearTriangularStress, itk::fem::Element2DC0QuadraticTriangular, 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< Element2DC0LinearQuadrilateral >, itk::fem::Element2DMembrane< 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 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< Element2DC0LinearLine >, itk::fem::Element2DMembrane< Element2DC0LinearQuadrilateral >, itk::fem::Element2DMembrane< 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 66 of file itkFEMElementStd.h.

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


Member Enumeration Documentation

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

Number of nodes that define the element.

Enumeration values:
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.

Enumeration values:
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< Element2DC0LinearLine >, itk::fem::Element2DMembrane< Element2DC0LinearQuadrilateral >, itk::fem::Element2DMembrane< 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 >.

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< Element2DC0LinearLine >, itk::fem::Element2DMembrane< Element2DC0LinearQuadrilateral >, itk::fem::Element2DMembrane< 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 >.


Member Data Documentation

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

Definition at line 72 of file itkFEMElementStd.h.

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 Fri May 21 01:50:39 2004 for ITK by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2000