19 #ifndef itkFEMRobustSolver_h
20 #define itkFEMRobustSolver_h
83 template <
unsigned int VDimension = 3>
124 itkSetMacro(ApproximationSteps,
unsigned int);
125 itkGetMacro(ApproximationSteps,
unsigned int);
131 itkSetMacro(OutlierRejectionSteps,
unsigned int);
132 itkGetMacro(OutlierRejectionSteps,
unsigned int);
140 itkSetMacro(ToleranceToLargestDisplacement,
double);
141 itkGetMacro(ToleranceToLargestDisplacement,
double);
150 itkSetMacro(TradeOffImageMeshEnergy,
double);
151 itkGetMacro(TradeOffImageMeshEnergy,
double);
158 itkSetMacro(FractionErrorRejected,
double);
159 itkGetMacro(FractionErrorRejected,
double);
167 itkSetMacro(UseInterpolationGrid,
bool);
168 itkGetMacro(UseInterpolationGrid,
bool);
188 virtual
void RunSolver(
void) ITK_OVERRIDE;
328 void operator=(const
Self &) ITK_DELETE_FUNCTION;
379 public std::binary_function<const
Load::
Pointer &, const
Load::Pointer &,
bool>
396 #ifndef ITK_MANUAL_INSTANTIATION
397 #include "itkFEMRobustSolver.hxx"
unsigned int m_OutlierRejectionSteps
FEMIndexType m_SolutionIndex
FEMIndexType m_ExternalForceIndex
void DeleteFromLandmarkBeginning(unsigned int numberOfRejectedLandmarksPerStep)
Light weight base class for most itk classes.
InterpolationGridType::PointType InterpolationGridPointType
void InitializeLandmarks()
unsigned int FEMIndexType
virtual void AssembleElementMatrixWithID(const Element::Pointer &e, unsigned int matrixIndex)
void RescaleLandmarkStiffnessMatrix(double oldPointTensorPonderation)
Superclass::FEMObjectType FEMObjectType
InterpolationGridType::SpacingType InterpolationGridSpacingType
Element::VectorType VectorType
double m_TradeOffImageMeshEnergy
void IncrementalSolverWithOutlierRejection()
void AssembleGlobalMatrixFromLandmarksAndMeshMatrices()
double m_FractionErrorRejected
Superclass::InterpolationGridSpacingType InterpolationGridSpacingType
itk::Image< Element::ConstPointer, VDimension > InterpolationGridType
Superclass::InterpolationGridIndexType InterpolationGridIndexType
float GetErrorNorm() const
ObjectType * GetPointer() const
static const double e
The base of the natural logarithm or Euler's number
FEMObjectType::LoadContainerIterator LoadContainerIterator
FEMObjectType::LoadContainerType LoadContainerType
FEMIndexType m_MeshStiffnessMatrixIndex
double m_ConjugateGradientPrecision
vnl_matrix< Float > MatrixType
itk::fem::FEMObject< VDimension > FEMObjectType
FEMIndexType m_ForceIndex
float GetLandmarkTensorPonderation() const
InterpolationGridType::RegionType InterpolationGridRegionType
void InitializeInterpolationGrid()
SmartPointer< Self > Pointer
double m_ToleranceToLargestDisplacement
unsigned int m_ApproximationSteps
InterpolationGridType::IndexType InterpolationGridIndexType
Superclass::VectorType VectorType
void CalculateExternalForces()
LinearSystemWrapperItpack m_Itpack
void AssembleLandmarkStiffnessMatrix()
InterpolationGridType::Pointer InterpolationGridPointerType
Superclass::InterpolationGridPointerType InterpolationGridPointerType
FEM solver used to generate a solution for a FE formulation.
void AddExternalForcesToSetMeshZeroEnergy()
FEMIndexType m_LandmarkForceIndex
FEMIndexType m_StiffnessMatrixIndex
Abstract base element class.
InterpolationGridType::SizeType InterpolationGridSizeType
bool operator()(const Load::Pointer &L1, const Load::Pointer &L2)
void AssembleMeshStiffnessMatrix()
void RemoveUnselectedLandmarkContributionInPointStiffnessMatrix()
Element::MatrixType MatrixType
void NthElementWRTDisplacementError(unsigned int numberOfRejectedBlocksPerStep)
void DeleteLandmarksOutOfMesh()
General abstract load base class.
void IncrementalSolverWithoutOutlierRejection()
void ComputeLandmarkTensor()
InterpolationGridType::DirectionType InterpolationGridDirectionType
LinearSystemWrapper class that uses Itpack numeric library functions to define and solve a sparse lin...
void ComputeLandmarkSimulatedDisplacementAndWeightedError()
void UnselectLandmarks(unsigned int numberOfRejectedBlocksPerStep)
FEMIndexType m_LandmarkStiffnessMatrixIndex
Superclass::InterpolationGridSizeType InterpolationGridSizeType
virtual void GenerateData() override
bool m_UseInterpolationGrid
Superclass::InterpolationGridType InterpolationGridType
FEMObjectType::NodeContainerType NodeContainerType
static const unsigned int FEMDimension
Superclass::InterpolationGridRegionType InterpolationGridRegionType
Superclass::InterpolationGridPointType InterpolationGridPointType
SmartPointer< const Self > ConstPointer
Solver< VDimension > Superclass
virtual void RunSolver(void) override