#include <itkFEMElementStd.h>
Inheritance diagram for itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >:
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 Self * | ConstPointer |
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 Self * | Pointer |
typedef ElementStd | Self |
typedef TBaseClass | Superclass |
typedef Superclass::VectorType | VectorType |
Public Member Functions | |
ElementStd () | |
virtual NodeIDType | GetNode (unsigned int n) const |
virtual const VectorType & | GetNodeCoordinates (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] |
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.
typedef Superclass::DegreeOfFreedomIDType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::DegreeOfFreedomIDType |
Definition at line 70 of file itkFEMElementStd.h.
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.
typedef Superclass::LoadPointer itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::LoadPointer |
Definition at line 68 of file itkFEMElementStd.h.
typedef Superclass::LoadType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::LoadType |
Definition at line 67 of file itkFEMElementStd.h.
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.
typedef Superclass::Node itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::Node |
Definition at line 71 of file itkFEMElementStd.h.
typedef Superclass::NodeIDType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::NodeIDType |
Definition at line 69 of file itkFEMElementStd.h.
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.
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.
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.
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.
anonymous enum |
anonymous enum |
Number of nodes that define the element.
Definition at line 77 of file itkFEMElementStd.h.
anonymous enum |
Number of dimensions of space in which element can exist.
Definition at line 82 of file itkFEMElementStd.h.
itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::ElementStd | ( | ) |
Default constructor just clears the ivars
virtual NodeIDType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::GetNode | ( | unsigned int | n | ) | const [inline, virtual] |
Definition at line 101 of file itkFEMElementStd.h.
virtual const VectorType& itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::GetNodeCoordinates | ( | unsigned int | n | ) | const [inline, virtual] |
Definition at line 116 of file itkFEMElementStd.h.
virtual unsigned int itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::GetNumberOfNodes | ( | void | ) | const [inline, virtual] |
Definition at line 98 of file itkFEMElementStd.h.
virtual unsigned int itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::GetNumberOfSpatialDimensions | ( | ) | const [inline, virtual] |
Definition at line 121 of file itkFEMElementStd.h.
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 >.
virtual void itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::SetNode | ( | unsigned int | n, | |
NodeIDType | node | |||
) | [inline, virtual] |
Definition at line 110 of file itkFEMElementStd.h.
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 >.
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().