ITK
4.8.0
Insight Segmentation and Registration Toolkit
|
#include <itkFEMElementStd.h>
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 two or three 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 function.
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 SmartPointer< 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 SmartPointer< Self > | Pointer |
typedef ElementStd | Self |
typedef TBaseClass | Superclass |
typedef Superclass::VectorType | VectorType |
Public Member Functions | |
ElementStd () | |
virtual const char * | GetNameOfClass () const |
virtual NodeIDType | GetNode (unsigned int n) const override |
virtual const VectorType & | GetNodeCoordinates (unsigned int n) const override |
virtual unsigned int | GetNumberOfNodes (void) const override |
virtual unsigned int | GetNumberOfSpatialDimensions () const override |
virtual void | SetNode (unsigned int n, NodeIDType node) override |
virtual void | SetNode (unsigned int n, typename Superclass::Node::Pointer node) override |
Protected Member Functions | |
virtual void | PrintSelf (std::ostream &os, Indent indent) const override |
virtual void | SetNodeInternal (unsigned int n, const Node *node) |
Protected Attributes | |
const Node * | m_node [NumberOfNodes] |
typedef SmartPointer<const Self> itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::ConstPointer |
Definition at line 64 of file itkFEMElementStd.h.
typedef Superclass::DegreeOfFreedomIDType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::DegreeOfFreedomIDType |
Definition at line 79 of file itkFEMElementStd.h.
typedef Superclass::Float itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::Float |
Definition at line 67 of file itkFEMElementStd.h.
typedef Superclass::LoadPointer itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::LoadPointer |
Definition at line 77 of file itkFEMElementStd.h.
typedef Superclass::LoadType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::LoadType |
Definition at line 76 of file itkFEMElementStd.h.
typedef Superclass::MatrixType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::MatrixType |
Definition at line 74 of file itkFEMElementStd.h.
typedef Superclass::Node itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::Node |
Definition at line 80 of file itkFEMElementStd.h.
typedef Superclass::NodeIDType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::NodeIDType |
Definition at line 78 of file itkFEMElementStd.h.
typedef SmartPointer<Self> itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::Pointer |
Definition at line 63 of file itkFEMElementStd.h.
typedef ElementStd itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::Self |
Standard class typedefs.
Definition at line 61 of file itkFEMElementStd.h.
typedef TBaseClass itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::Superclass |
Definition at line 62 of file itkFEMElementStd.h.
typedef Superclass::VectorType itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::VectorType |
Definition at line 75 of file itkFEMElementStd.h.
anonymous enum |
Enumerator | |
---|---|
InvalidDegreeOfFreedomID |
Definition at line 81 of file itkFEMElementStd.h.
anonymous enum |
Number of nodes that define the element.
Enumerator | |
---|---|
NumberOfNodes |
Definition at line 86 of file itkFEMElementStd.h.
anonymous enum |
Number of dimensions of space in which element can exist.
Enumerator | |
---|---|
NumberOfSpatialDimensions |
Definition at line 91 of file itkFEMElementStd.h.
itk::fem::ElementStd< VNumberOfNodes, VNumberOfSpatialDimensions, TBaseClass >::ElementStd | ( | ) |
Default constructor just clears the ivars
|
virtual |
Run-time type information (and related methods).
Reimplemented in itk::fem::Element2DC0LinearTriangularMembrane, itk::fem::Element2DC0QuadraticTriangularStrain, itk::fem::Element3DC0LinearHexahedron, itk::fem::Element2DC0LinearTriangularStrain, itk::fem::Element3DC0LinearTetrahedron, itk::fem::Element2DC0QuadraticTriangularStress, itk::fem::Element2DC0LinearQuadrilateralMembrane, itk::fem::Element2DC0LinearQuadrilateralStress, itk::fem::Element2DC0LinearQuadrilateralStrain, itk::fem::Element2DC0LinearTriangular, itk::fem::Element2DC0QuadraticTriangular, itk::fem::Element2DC0LinearQuadrilateral, itk::fem::Element2DMembrane< Element2DC0LinearQuadrilateral >, itk::fem::Element2DMembrane< Element2DC0LinearTriangular >, itk::fem::Element3DC0LinearTriangular, itk::fem::Element2DStrain< Element2DC0QuadraticTriangular >, itk::fem::Element2DStrain< Element2DC0LinearQuadrilateral >, itk::fem::Element2DStrain< Element2DC0LinearTriangular >, itk::fem::Element3DMembrane< Element3DC0LinearHexahedron >, itk::fem::Element3DMembrane< Element3DC0LinearTetrahedron >, itk::fem::Element3DMembrane< Element3DC0LinearTriangular >, itk::fem::Element3DC0LinearHexahedronMembrane, itk::fem::Element3DC0LinearHexahedronStrain, itk::fem::Element2DC0LinearTriangularStress, itk::fem::Element3DC0LinearTetrahedronMembrane, itk::fem::Element3DStrain< Element3DC0LinearHexahedron >, itk::fem::Element3DStrain< Element3DC0LinearTetrahedron >, itk::fem::Element3DC0LinearTetrahedronStrain, itk::fem::Element3DC0LinearTriangularLaplaceBeltrami, itk::fem::Element1DStress< Element2DC0LinearLine >, itk::fem::Element2DStress< Element2DC0QuadraticTriangular >, itk::fem::Element2DStress< Element2DC0LinearQuadrilateral >, itk::fem::Element2DStress< Element2DC0LinearTriangular >, itk::fem::Element3DMembrane1DOF< Element3DC0LinearTriangular >, itk::fem::Element3DC0LinearTriangularMembrane, itk::fem::Element2DC1Beam, itk::fem::Element2DC0LinearLineStress, and itk::fem::Element2DC0LinearLine.
|
inlineoverridevirtual |
Get/Set the Nodes that define the element
Definition at line 111 of file itkFEMElementStd.h.
|
inlineoverridevirtual |
Get the nodal coordinates
Definition at line 130 of file itkFEMElementStd.h.
|
inlineoverridevirtual |
Methods that define the geometry of an element
Definition at line 102 of file itkFEMElementStd.h.
|
inlineoverridevirtual |
Get the number of spatial dimensions
Definition at line 136 of file itkFEMElementStd.h.
|
overrideprotectedvirtual |
Reimplemented in itk::fem::Element2DC1Beam, itk::fem::Element3DC0LinearTriangular, itk::fem::Element2DC0LinearTriangular, itk::fem::Element2DMembrane< Element2DC0LinearQuadrilateral >, itk::fem::Element2DMembrane< Element2DC0LinearTriangular >, itk::fem::Element2DStrain< Element2DC0QuadraticTriangular >, itk::fem::Element2DStrain< Element2DC0LinearQuadrilateral >, itk::fem::Element2DStrain< Element2DC0LinearTriangular >, itk::fem::Element1DStress< Element2DC0LinearLine >, itk::fem::Element3DMembrane< Element3DC0LinearHexahedron >, itk::fem::Element3DMembrane< Element3DC0LinearTetrahedron >, itk::fem::Element3DMembrane< Element3DC0LinearTriangular >, itk::fem::Element2DStress< Element2DC0QuadraticTriangular >, itk::fem::Element2DStress< Element2DC0LinearQuadrilateral >, itk::fem::Element2DStress< Element2DC0LinearTriangular >, itk::fem::Element3DMembrane1DOF< Element3DC0LinearTriangular >, itk::fem::Element3DC0LinearHexahedron, itk::fem::Element2DC0LinearQuadrilateral, itk::fem::Element3DStrain< Element3DC0LinearHexahedron >, itk::fem::Element3DStrain< Element3DC0LinearTetrahedron >, itk::fem::Element2DC0QuadraticTriangular, itk::fem::Element3DC0LinearTetrahedron, itk::fem::Element2DC0LinearLine, itk::fem::Element2DC0QuadraticTriangularStrain, itk::fem::Element2DC0QuadraticTriangularStress, itk::fem::Element2DC0LinearQuadrilateralMembrane, itk::fem::Element2DC0LinearQuadrilateralStress, itk::fem::Element2DC0LinearTriangularMembrane, itk::fem::Element2DC0LinearQuadrilateralStrain, itk::fem::Element2DC0LinearTriangularStrain, itk::fem::Element3DC0LinearTriangularLaplaceBeltrami, itk::fem::Element2DC0LinearTriangularStress, itk::fem::Element3DC0LinearHexahedronMembrane, itk::fem::Element3DC0LinearHexahedronStrain, itk::fem::Element3DC0LinearTetrahedronMembrane, itk::fem::Element3DC0LinearTetrahedronStrain, itk::fem::Element2DC0LinearLineStress, and itk::fem::Element3DC0LinearTriangularMembrane.
|
inlineoverridevirtual |
Definition at line 120 of file itkFEMElementStd.h.
|
inlineoverridevirtual |
Definition at line 124 of file itkFEMElementStd.h.
|
inlineprotectedvirtual |
Definition at line 147 of file itkFEMElementStd.h.
Referenced by itk::fem::ElementStd< 3, 3 >::SetNode().
|
protected |
Array of pointers to point objects that define the element
Definition at line 158 of file itkFEMElementStd.h.
Referenced by itk::fem::ElementStd< 3, 3 >::GetNode(), itk::fem::ElementStd< 3, 3 >::GetNodeCoordinates(), and itk::fem::ElementStd< 3, 3 >::SetNodeInternal().