Contains finite element modeling (FEM) classes and support routines. More...
Classes | |
class | Element |
Abstract base element class. More... | |
class | Element1DStress |
Class that is used to define linear elasticity problem in 1D space. More... | |
class | Element2DC0LinearLine |
2-noded, linear, C0 continuous line element in 2D space. More... | |
class | Element2DC0LinearLineStress |
2-noded finite element class in 2D space for linear elasticity problem. More... | |
class | Element2DC0LinearQuadrilateral |
4-noded, linear, C0 continuous finite element in 2D space. More... | |
class | Element2DC0LinearQuadrilateralMembrane |
4-noded finite element class in 2D space for linear elasticity problem More... | |
class | Element2DC0LinearQuadrilateralStrain |
4-noded finite element class in 2D space for linear elasticity problem More... | |
class | Element2DC0LinearQuadrilateralStress |
4-noded finite element class in 2D space for linear elasticity problem More... | |
class | Element2DC0LinearTriangular |
3-noded, linear, C0 continuous finite element in 2D space. More... | |
class | Element2DC0LinearTriangularMembrane |
3-noded finite element class in 2D space for linear elasticity problem. More... | |
class | Element2DC0LinearTriangularStrain |
3-noded finite element class in 2D space for linear elasticity problem. More... | |
class | Element2DC0LinearTriangularStress |
3-noded finite element class in 2D space for linear elasticity problem. More... | |
class | Element2DC0QuadraticTriangular |
3-noded, quadratic, C0 continuous finite element in 2D space. More... | |
class | Element2DC0QuadraticTriangularStrain |
3-noded finite element class in 2D space for linear elasticity problem. More... | |
class | Element2DC0QuadraticTriangularStress |
3-noded finite element class in 2D space for linear elasticity problem. More... | |
class | Element2DC1Beam |
1D Beam (spring that also bends) finite element in 2D space. More... | |
class | Element2DMembrane |
Class that is used to define a membrane energy problem in 2D space. More... | |
class | Element2DStrain |
Class that is used to define linear elasticity problem in 2D space. More... | |
class | Element2DStress |
Class that is used to define linear elasticity problem in 2D space. More... | |
class | Element3DC0LinearHexahedron |
8-noded, linear, C0 continuous finite element in 3D space. More... | |
class | Element3DC0LinearHexahedronMembrane |
8-noded finite element class in 3D space for linear elasticity problem More... | |
class | Element3DC0LinearHexahedronStrain |
8-noded finite element class in 3D space for linear elasticity problem More... | |
class | Element3DC0LinearTetrahedron |
4-noded, linear, C0 continuous finite element in 3D space. More... | |
class | Element3DC0LinearTetrahedronMembrane |
4-noded finite element class in 3D space for linear elasticity problem More... | |
class | Element3DC0LinearTetrahedronStrain |
4-noded finite element class in 3D space for linear elasticity problem More... | |
class | Element3DMembrane |
Class that is used to define a membrane energy problem in 3D space. More... | |
class | Element3DStrain |
Class that is used to define linear elasticity problem in 3D space. More... | |
class | ElementStd |
Implements standard node management in the element classes. More... | |
class | FEMException |
Base class for all exception's that can occur within FEM classes. More... | |
class | FEMExceptionIO |
Base class for all IO exception's that can occur within FEM classe. More... | |
class | FEMExceptionItpackSolver |
handles errors that occur in itpack solving routines More... | |
class | FEMExceptionItpackSparseMatrixSbagn |
handles errors that occur when unfinalizing the matrix More... | |
class | FEMExceptionItpackSparseMatrixSbsij |
handles errors that occur when building the matrix More... | |
class | FEMExceptionLinearSystem |
class | FEMExceptionLinearSystemBounds |
class | FEMExceptionObjectNotFound |
Object not found exception. More... | |
class | FEMExceptionSolution |
Base class for all exceptions that can occur when solving FEM problem. More... | |
class | FEMExceptionWrongClass |
Bad object exception. More... | |
class | FEMInitialization |
FEM Library initialization and housekeeping. More... | |
class | FEMLightObject |
Base class for all classes that define the FEM system. More... | |
class | FEMObjectFactory |
Create objects of derived classes by specifying a class ID. More... | |
class | FEMP |
Pointer used to store polymorphic elements in STL arrays. More... | |
class | FEMPArray |
Array for FEMP objects. More... | |
class | FEMRegistrationFilter |
FEM Image registration filter. The image registration problem is modeled here with the finite element method. Image registration is, in general, an ill-posed problem. Thus, we use an optimization scheme where the optimization criterion is given by a regularized variational energy. The variational energy arises from modeling the image as a physical body on which external forces act. The body is allowed to deform so as to minimize the applied force. The resistance of the physical body to deformation, determined by the physics associated with the body, serves to regularize the solution. The forces applied to the body are, generally, highly non-linear and so the body is allowed to deform slowly and incrementally. The direction it deforms follows the gradient of the potential energy (the force) we define. The potential energies we may choose from are given by the itk image-to-image metrics. The choices and the associated direction of descent are : Mean Squares (minimize), Normalized Cross-Correlation (maximize) Mutual Information (maximize). Note that we have to set the direction (SetDescentDirection) when we choose a metric. The forces driving the problem may also be given by user-supplied landmarks. The corners of the image, in this example, are always pinned. This example is designed for 2D or 3D images. A rectilinear mesh is generated automatically given the correct element type (Quadrilateral or Hexahedral). Our specific Solver for this example uses trapezoidal time stepping. This is a method for solving a second-order PDE in time. The solution is penalized by the zeroth (mass matrix) and first derivatives (stiffness matrix) of the shape functions. There is an option to perform a line search on the energy after each iteration. Optimal parameter settings require experimentation. The following approach tends to work well : Choose the relative size of density to elasticity (e.g. Rho / E ~= 1.) such that the image deforms locally and slowly. This also affects the stability of the solution. Choose the time step to control the size of the deformation at each step. Choose enough iterations to allow the solution to converge (this may be automated). More... | |
class | FiniteDifferenceFunctionLoad |
General image pair load that uses the itkFiniteDifferenceFunctions. More... | |
class | GaussIntegrate |
Use the Gauss-Legendre formula to perform integration. More... | |
class | ImageMetricLoad |
General image pair load that uses the itkImageToImageMetrics. More... | |
class | ImageMetricLoadImplementation |
class | INITClass |
Class that is used in FEM_CLASS_INIT macro. More... | |
class | ItpackSparseMatrix |
a compressed row sparse matrix representation that makes use of itpack to dynamically assemble the matrix More... | |
class | LinearSystemWrapper |
Defines all functions required by Solver class to allocate, assemble and solve a linear system of equation. More... | |
class | LinearSystemWrapperDenseVNL |
LinearSystemWrapper class that uses VNL numeric library functions to define a sparse linear system of equations. More... | |
class | LinearSystemWrapperItpack |
LinearSystemWrapper class that uses Itpack numeric library functions to define and solve a sparse linear system of equations. More... | |
class | LinearSystemWrapperVNL |
LinearSystemWrapper class that uses VNL numeric library functions to define a sparse linear system of equations. More... | |
class | Load |
General abstract load base class. More... | |
class | LoadBC |
Generic essential (Dirichlet) boundary conditions. More... | |
class | LoadBCMFC |
Generic linear multi freedom displacement constraint in global coordinate system. More... | |
class | LoadEdge |
A generic load that can be applied to an edge of the element. More... | |
class | LoadElement |
Virtual element load base class. More... | |
class | LoadGrav |
Abstract gravity load class. More... | |
class | LoadGravConst |
Constant gravity load class. More... | |
class | LoadImplementationGenericBodyLoad |
Class that holds a templated generic body load implementation. More... | |
class | LoadImplementationGenericLandmarkLoad |
Class that holds a templated generic landmark load implementation. More... | |
class | LoadImplementationTest |
Example implementation of templated LoadTest class. More... | |
class | LoadLandmark |
This load is derived from the motion of a specific landmark. More... | |
class | LoadNode |
This load is applied on a specific point within the system. More... | |
class | LoadPoint |
This load is applied on a point in an element. More... | |
class | LoadTest |
Example to show how to define templated load classes. More... | |
class | Material |
Base class for storing all the implicit material and other properties required to fully define the element class. More... | |
class | MaterialLinearElasticity |
Linear elasticity material class. More... | |
class | ReadInfoType |
Helper class for storing additional information that is required when reading FEM objects from stream. More... | |
class | Solution |
Provides functions to access the values of the solution vector. More... | |
class | Solver |
Main FEM solver. More... | |
class | SolverCrankNicolson |
FEM Solver for time dependent problems; uses Crank-Nicolson implicit discretization scheme. More... | |
class | SolverHyperbolic |
Solver class suitable for hyperbolic problems. More... | |
class | VisitorDispatcher |
This class provides the functionality needed to apply the correct visitor function to object of some class. The specific visitor function is choosen, based on a given pointer to some object. More... | |
class | VisitorDispatcherTemplateHelper |
Typedefs | |
typedef FEMObjectFactory < FEMLightObject > | FEMOF |
typedef Element::Node | Node |
typedef void(* | c_void_cast )() |
Functions | |
void | Generate2DRectilinearMesh (itk::fem::Element::ConstPointer e0, Solver &S, vnl_vector< double > &orig, vnl_vector< double > &size, vnl_vector< double > &Nel) |
void | Generate3DRectilinearMesh (itk::fem::Element::ConstPointer e0, Solver &S, vnl_vector< double > &orig, vnl_vector< double > &size, vnl_vector< double > &Nel) |
static INITClass | Initializer_ElementNode (Element::Node::CLID()) |
| |
typedef void(* | LoadImplementationFunctionPointer )(ConstPointer, Element::LoadPointer, Element::VectorType &) |
virtual void | GetLoadVector (Element::LoadPointer l, Element::VectorType &Fe) const |
Contains finite element modeling (FEM) classes and support routines.
typedef void(* itk::fem::c_void_cast)() |
Definition at line 215 of file itkFEMObjectFactory.h.
Short alias for FEMObjectFactory<FEMLightObject>
Definition at line 173 of file itkFEMLightObject.h.
typedef void(* itk::fem::LoadImplementationFunctionPointer)(ConstPointer, Element::LoadPointer, Element::VectorType &) |
Pointer type that specifies functions that can handle loads on this element
Definition at line 70 of file itkFEMElementBase.h.
typedef Element::Node itk::fem::Node |
Definition at line 685 of file itkFEMElementBase.h.
void itk::fem::Generate2DRectilinearMesh | ( | itk::fem::Element::ConstPointer | e0, | |
Solver & | S, | |||
vnl_vector< double > & | orig, | |||
vnl_vector< double > & | size, | |||
vnl_vector< double > & | Nel | |||
) |
Use this function to generate 2D meshes in Solver.
Generate2DRectilinearMesh This function uses the generic quadrilateral elements to build meshes that can be used with specific elements for solving membrane or linear elasticity problems.
See other functions if you need to constuct the mesh from other types of elements.
void itk::fem::Generate3DRectilinearMesh | ( | itk::fem::Element::ConstPointer | e0, | |
Solver & | S, | |||
vnl_vector< double > & | orig, | |||
vnl_vector< double > & | size, | |||
vnl_vector< double > & | Nel | |||
) |
Use this function to generate 3D meshes in Solver.
Generate3DRectilinearMesh Generate a rectangular mesh of hexahedron elements.
virtual void itk::fem::GetLoadVector | ( | Element::LoadPointer | l, | |
Element::VectorType & | Fe | |||
) | const [virtual] |
Pointer type that specifies functions that can handle loads on this element
Definition at line 71 of file itkFEMElementBase.h.
References itk::fem::VisitorDispatcher< TVisitedClass, TVisitorBase, TVisitFunctionPointerType >::Visit().
static INITClass itk::fem::Initializer_ElementNode | ( | Element::Node:: | CLID() | ) | [static] |