19 #ifndef itkFEMSolver_h
20 #define itkFEMSolver_h
68 template <
unsigned int VDimension = 3>
229 bb2[i] = size[i] - 1.0;
284 virtual
void PrintSelf(std::ostream& os,
Indent indent) const ITK_OVERRIDE;
355 void ApplyBC(
int dim = 0,
unsigned int matrix = 0);
437 #ifndef ITK_MANUAL_INSTANTIATION
438 #include "itkFEMSolver.hxx"
441 #endif // #ifndef itkFEMSolver_h
void ApplyBC(int dim=0, unsigned int matrix=0)
Float GetSolution(unsigned int i, unsigned int which=0)
Superclass::RegionType RegionType
void InitializeInterpolationGrid(const InterpolationGridSizeType &size)
Light weight base class for most itk classes.
InterpolationGridType::PointType InterpolationGridPointType
Implements N-dimensional Finite element (FE) models including elements, materials, and loads.
void FillInterpolationGrid()
void SetLinearSystemWrapper(LinearSystemWrapper::Pointer ls)
virtual void FinalizeMatrixAfterAssembly(void)
Represent the size (bounds) of a n-dimensional image.
InterpolationGridType::SpacingType InterpolationGridSpacingType
void InitializeInterpolationGrid(const InterpolationGridSizeType &size, const InterpolationGridPointType &bb1, const InterpolationGridPointType &bb2)
InterpolationGridType::DirectionType InterpolationGridDirectionType
InterpolationGridPointerType m_InterpolationGrid
InterpolationGridSpacingType m_Spacing
virtual void InitializeLinearSystemWrapper()
Element::VectorType VectorType
FEMObjectType::ConstPointer FEMObjectConstPointer
FEMObjectType::Pointer FEMObjectPointer
virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType) override
InterpolationGridDirectionType m_Direction
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
virtual void PrintSelf(std::ostream &os, Indent indent) const override
itk::Image< Element::ConstPointer, VDimension > InterpolationGridType
ObjectType * GetPointer() const
static const double e
The base of the natural logarithm or Euler's number
void Fill(const ValueType &)
itk::fem::FEMObject< VDimension > FEMObjectType
Load::ArrayType LoadArray
SmartPointer< Self > Pointer
InterpolationGridType::RegionType InterpolationGridRegionType
FEMObjectPointer m_FEMObject
static const unsigned int MaxDimensions
virtual void AssembleElementMatrix(Element::Pointer e)
LinearSystemWrapper::Pointer m_ls
FEMObjectType * GetOutput()
Defines all functions required by Solver class to allocate, assemble and solve a linear system of equ...
InterpolationGridType::IndexType InterpolationGridIndexType
virtual void AssembleLandmarkContribution(Element::ConstPointer e, float)
LinearSystemWrapper::Pointer GetLinearSystemWrapper()
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
virtual void SetTimeStep(Float dt)
Superclass::IndexType IndexType
vnl_vector< Float > VectorType
virtual void SetInput(const DataObjectIdentifierType &key, DataObject *input)
Protected method for setting indexed and named inputs.
InterpolationGridRegionType m_Region
Element::ArrayType ElementArray
InterpolationGridType::Pointer InterpolationGridPointerType
InterpolationGridPointType m_Origin
FEM solver used to generate a solution for a FE formulation.
LinearSystemWrapperVNL m_lsVNL
A region represents some portion or piece of data.
virtual void InitializeMatrixForAssembly(unsigned int N)
virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx)
Make a DataObject of the correct type to used as the specified output.
Element::Node::ArrayType NodeArray
virtual void SetInput(FEMObjectType *fem)
void operator=(const Self &)
void AssembleF(int dim=0)
Abstract base element class.
InterpolationGridType::SizeType InterpolationGridSizeType
static const unsigned int FEMDimension
void UpdateDisplacements()
ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
DataObject::Pointer DataObjectPointer
virtual Float GetTimeStep() const
const InterpolationGridType * GetInterpolationGrid(void) const
Control indentation during Print() invocation.
Float GetDeformationEnergy(unsigned int SolutionIndex=0)
FEMObjectType * GetInput()
virtual void GenerateData() override
const Element * GetElementAtPoint(const VectorType &pt) const
SmartPointer< const Self > ConstPointer
LinearSystemWrapper class that uses VNL numeric library functions to define a sparse linear system of...
Templated n-dimensional image class.
Material::ArrayType MaterialArray