ITK  4.2.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
itk::fem::SolverCrankNicolson< TDimension > Class Template Reference

#include <itkFEMSolverCrankNicolson.h>

+ Inheritance diagram for itk::fem::SolverCrankNicolson< TDimension >:
+ Collaboration diagram for itk::fem::SolverCrankNicolson< TDimension >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef Element::Float Float
typedef SmartPointer< SelfPointer
typedef SolverCrankNicolson Self
typedef Solver< TDimension > Superclass
- Public Types inherited from itk::fem::Solver< TDimension >
typedef DataObject::Pointer DataObjectPointer
typedef Element::ArrayType ElementArray
typedef FEMObjectType::ConstPointer FEMObjectConstPointer
typedef FEMObjectType::Pointer FEMObjectPointer
typedef itk::fem::FEMObject
< VDimension > 
FEMObjectType
typedef
InterpolationGridType::DirectionType 
InterpolationGridDirectionType
typedef
InterpolationGridType::IndexType 
InterpolationGridIndexType
typedef
InterpolationGridType::Pointer 
InterpolationGridPointerType
typedef
InterpolationGridType::PointType 
InterpolationGridPointType
typedef
InterpolationGridType::RegionType 
InterpolationGridRegionType
typedef
InterpolationGridType::SizeType 
InterpolationGridSizeType
typedef
InterpolationGridType::SpacingType 
InterpolationGridSpacingType
typedef itk::Image
< Element::ConstPointer,
VDimension > 
InterpolationGridType
typedef Load::ArrayType LoadArray
typedef Material::ArrayType MaterialArray
typedef Element::Node::ArrayType NodeArray
typedef Element::VectorType VectorType
typedef
ProcessObject::DataObjectPointerArraySizeType 
DataObjectPointerArraySizeType
- Public Types inherited from itk::ProcessObject
typedef
DataObject::DataObjectIdentifierType 
DataObjectIdentifierType
typedef std::vector
< DataObjectPointer
DataObjectPointerArray
typedef std::vector
< DataObjectIdentifierType
NameArray
- Public Types inherited from itk::Object
- Public Types inherited from itk::LightObject

Public Member Functions

void AddToDisplacements (Float optimum=1.0)
void AverageLastTwoDisplacements (Float t=0.5)
Float BrentsMethod (Float tol=0.01, unsigned int MaxIters=25)
Float EvaluateResidual (Float t=1.0)
void FindBracketingTriplet (Float *a, Float *b, Float *c)
Float GetCurrentMaxSolution ()
Float GetDeformationEnergy (Float t=1.0)
LinearSystemWrapperGetLS ()
virtual Float GetTimeStep (void) const
Float GoldenSection (Float tol=0.01, unsigned int MaxIters=25)
Float GSMax (Float a, Float b)
Float GSSign (Float a, Float b)
 itkGetConstMacro (Iterations, unsigned int)
 itkGetMacro (TotalSolutionIndex, unsigned int)
 itkGetMacro (SolutionTMinus1Index, unsigned int)
 itkNewMacro (Self)
 itkTypeMacro (SolverCrankNicolson, Solver< TDimension >)
void PrintDisplacements ()
void PrintForce ()
void PrintMinMaxOfSolution ()
void RecomputeForceVector (unsigned int index)
void ResetIterations (void)
void SetEnergyToMin (Float xmin)
virtual void SetTimeStep (Float dt)
void ZeroVector (int which=0)
 itkSetMacro (UseMassMatrix, bool)
 itkGetMacro (UseMassMatrix, bool)
 itkSetMacro (Alpha, Float)
 itkGetMacro (Alpha, Float)
 itkSetMacro (Rho, Float)
 itkGetMacro (Rho, Float)
- Public Member Functions inherited from itk::fem::Solver< TDimension >
virtual ::itk::LightObject::Pointer CreateAnother (void) const
Float GetDeformationEnergy (unsigned int SolutionIndex=0)
virtual
InterpolationGridDirectionType 
GetDirection ()
const ElementGetElementAtPoint (const VectorType &pt) const
FEMObjectTypeGetInput (void)
FEMObjectTypeGetInput (unsigned int idx)
LinearSystemWrapper::Pointer GetLinearSystemWrapper ()
virtual const char * GetNameOfClass () const
virtual InterpolationGridPointType GetOrigin ()
virtual InterpolationGridRegionType GetRegion ()
Float GetSolution (unsigned int i, unsigned int which=0)
virtual
InterpolationGridSpacingType 
GetSpacing ()
void InitializeInterpolationGrid (const InterpolationGridSizeType &size, const InterpolationGridPointType &bb1, const InterpolationGridPointType &bb2)
virtual void SetDirection (InterpolationGridDirectionType _arg)
virtual void SetInput (FEMObjectType *fem)
virtual void SetInput (unsigned int, FEMObjectType *fem)
void SetLinearSystemWrapper (LinearSystemWrapper::Pointer ls)
virtual void SetOrigin (InterpolationGridPointType _arg)
virtual void SetRegion (InterpolationGridRegionType _arg)
virtual void SetSpacing (InterpolationGridSpacingType _arg)
void InitializeInterpolationGrid (const InterpolationGridSizeType &size)
void InitializeInterpolationGrid (const InterpolationGridRegionType &region, const InterpolationGridPointType &origin, const InterpolationGridSpacingType &spacing, const InterpolationGridDirectionType &direction)
const InterpolationGridTypeGetInterpolationGrid (void) const
virtual DataObjectPointer MakeOutput (DataObjectPointerArraySizeType)
FEMObjectTypeGetOutput (void)
FEMObjectTypeGetOutput (unsigned int idx)
- Public Member Functions inherited from itk::ProcessObject
virtual void AbortGenerateDataOff ()
virtual void AbortGenerateDataOn ()
virtual void EnlargeOutputRequestedRegion (DataObject *)
virtual const bool & GetAbortGenerateData ()
NameArray GetInputNames () const
MultiThreader * GetMultiThreader () const
DataObjectPointerArraySizeType GetNumberOfIndexedInputs () const
DataObjectPointerArraySizeType GetNumberOfInputs () const
DataObjectPointerArraySizeType GetNumberOfOutputs () const
virtual
DataObjectPointerArraySizeType 
GetNumberOfValidRequiredInputs () const
NameArray GetOutputNames () const
virtual const float & GetProgress ()
NameArray GetRequiredInputNames () const
bool HasInput (const DataObjectIdentifierType &key) const
bool HasOutput (const DataObjectIdentifierType &key) const
virtual DataObjectPointer MakeOutput (const DataObjectIdentifierType &)
virtual void PrepareOutputs ()
virtual void PropagateRequestedRegion (DataObject *output)
virtual void ResetPipeline ()
virtual void SetAbortGenerateData (bool _arg)
virtual void SetProgress (float _arg)
virtual void Update ()
virtual void UpdateLargestPossibleRegion ()
virtual void UpdateOutputData (DataObject *output)
virtual void UpdateOutputInformation ()
void UpdateProgress (float amount)
DataObjectPointerArray GetInputs ()
DataObjectPointerArray GetOutputs ()
DataObjectPointerArray GetIndexedInputs ()
DataObjectPointerArray GetIndexedOutputs ()
DataObjectPointerArraySizeType GetNumberOfIndexedOutputs () const
virtual void SetReleaseDataFlag (bool flag)
virtual bool GetReleaseDataFlag () const
void ReleaseDataFlagOn ()
void ReleaseDataFlagOff ()
virtual void SetReleaseDataBeforeUpdateFlag (bool _arg)
virtual const bool & GetReleaseDataBeforeUpdateFlag ()
virtual void ReleaseDataBeforeUpdateFlagOn ()
virtual void ReleaseDataBeforeUpdateFlagOff ()
virtual void SetNumberOfThreads (ThreadIdType _arg)
virtual const ThreadIdTypeGetNumberOfThreads ()
- Public Member Functions inherited from itk::Object
unsigned long AddObserver (const EventObject &event, Command *)
unsigned long AddObserver (const EventObject &event, Command *) const
virtual void DebugOff () const
virtual void DebugOn () const
CommandGetCommand (unsigned long tag)
bool GetDebug () const
MetaDataDictionaryGetMetaDataDictionary (void)
const MetaDataDictionaryGetMetaDataDictionary (void) const
virtual unsigned long GetMTime () const
virtual const TimeStampGetTimeStamp () const
bool HasObserver (const EventObject &event) const
void InvokeEvent (const EventObject &)
void InvokeEvent (const EventObject &) const
virtual void Modified () const
virtual void Register () const
void RemoveAllObservers ()
void RemoveObserver (unsigned long tag)
void SetDebug (bool debugFlag) const
void SetMetaDataDictionary (const MetaDataDictionary &rhs)
virtual void SetReferenceCount (int)
virtual void UnRegister () const
- Public Member Functions inherited from itk::LightObject
virtual void Delete ()
virtual int GetReferenceCount () const
 itkCloneMacro (Self)
void Print (std::ostream &os, Indent indent=0) const

Protected Member Functions

void AssembleFforTimeStep (int dim=0)
void AssembleKandM ()
void GenerateData ()
void InitializeForSolution ()
virtual void RunSolver (void)
 SolverCrankNicolson ()
 ~SolverCrankNicolson ()
 Solver ()
virtual ~Solver ()
void PrintSelf (std::ostream &os, Indent indent) const
void AssembleK ()
virtual void InitializeMatrixForAssembly (unsigned int N)
virtual void FinalizeMatrixAfterAssembly (void)
virtual void AssembleElementMatrix (Element::Pointer e)
virtual void AssembleLandmarkContribution (Element::ConstPointer e, float)
void ApplyBC (int dim=0, unsigned int matrix=0)
void AssembleF (int dim=0)
void DecomposeK (void)
void UpdateDisplacements (void)
void FillInterpolationGrid (void)
virtual void InitializeLinearSystemWrapper (void)
- Protected Member Functions inherited from itk::ProcessObject
virtual void AddInput (DataObject *input)
virtual void AddOutput (DataObject *output)
bool AddRequiredInputName (const DataObjectIdentifierType &)
virtual void CacheInputReleaseDataFlags ()
virtual void GenerateInputRequestedRegion ()
virtual void GenerateOutputInformation ()
virtual void GenerateOutputRequestedRegion (DataObject *output)
virtual const
DataObjectPointerArraySizeType
GetNumberOfRequiredInputs ()
virtual const
DataObjectPointerArraySizeType
GetNumberOfRequiredOutputs ()
bool IsIndexedName (const DataObjectIdentifierType &) const
bool IsRequiredInputName (const DataObjectIdentifierType &) const
 itkLegacyMacro (virtual void RemoveInput(DataObject *input))
 itkLegacyMacro (virtual void RemoveOutput(DataObject *output))
 itkLegacyMacro (void SetNumberOfInputs(DataObjectPointerArraySizeType num))
 itkLegacyMacro (void SetNumberOfOutputs(DataObjectPointerArraySizeType num))
DataObjectPointerArraySizeType MakeIndexFromName (const DataObjectIdentifierType &) const
DataObjectIdentifierType MakeNameFromIndex (DataObjectPointerArraySizeType) const
 ProcessObject ()
virtual void PropagateResetPipeline ()
virtual void ReleaseInputs ()
virtual void RemoveInput (const DataObjectIdentifierType &key)
virtual void RemoveInput (DataObjectPointerArraySizeType)
virtual void RemoveOutput (const DataObjectIdentifierType &key)
virtual void RemoveOutput (DataObjectPointerArraySizeType idx)
bool RemoveRequiredInputName (const DataObjectIdentifierType &)
virtual void RestoreInputReleaseDataFlags ()
virtual void SetInput (const DataObjectIdentifierType &key, DataObject *input)
virtual void SetNthInput (DataObjectPointerArraySizeType num, DataObject *input)
virtual void SetNthOutput (DataObjectPointerArraySizeType num, DataObject *output)
void SetNumberOfIndexedInputs (DataObjectPointerArraySizeType num)
void SetNumberOfIndexedOutputs (DataObjectPointerArraySizeType num)
virtual void SetNumberOfRequiredInputs (DataObjectPointerArraySizeType)
virtual void SetNumberOfRequiredOutputs (DataObjectPointerArraySizeType _arg)
virtual void SetOutput (const DataObjectIdentifierType &key, DataObject *output)
virtual void SetPrimaryInput (DataObject *input)
virtual void SetPrimaryOutput (DataObject *output)
void SetRequiredInputNames (const NameArray &)
virtual void VerifyInputInformation ()
virtual void VerifyPreconditions ()
 ~ProcessObject ()
DataObjectGetInput (const DataObjectIdentifierType &key)
const DataObjectGetInput (const DataObjectIdentifierType &key) const
DataObjectGetInput (DataObjectPointerArraySizeType)
const DataObjectGetInput (DataObjectPointerArraySizeType idx) const
DataObjectGetPrimaryInput ()
const DataObjectGetPrimaryInput () const
DataObjectGetOutput (const DataObjectIdentifierType &key)
const DataObjectGetOutput (const DataObjectIdentifierType &key) const
DataObjectGetOutput (DataObjectPointerArraySizeType idx)
const DataObjectGetOutput (DataObjectPointerArraySizeType idx) const
DataObjectGetPrimaryOutput ()
const DataObjectGetPrimaryOutput () const
virtual void PushBackInput (const DataObject *input)
virtual void PopBackInput ()
virtual void PushFrontInput (const DataObject *input)
virtual void PopFrontInput ()
- Protected Member Functions inherited from itk::Object
 Object ()
bool PrintObservers (std::ostream &os, Indent indent) const
virtual void SetTimeStamp (const TimeStamp &time)
virtual ~Object ()
- Protected Member Functions inherited from itk::LightObject
virtual LightObject::Pointer InternalClone () const
 LightObject ()
virtual void PrintHeader (std::ostream &os, Indent indent) const
virtual void PrintTrailer (std::ostream &os, Indent indent) const
virtual ~LightObject ()

Protected Attributes

Float m_Alpha
Float m_CurrentMaxSolution
unsigned int m_DifferenceMatrixIndex
unsigned int m_DiffMatrixBySolutionTMinus1Index
unsigned int m_ForceTIndex
unsigned int m_ForceTMinus1Index
unsigned int m_ForceTotalIndex
unsigned int m_Iterations
Float m_Rho
unsigned int m_SolutionTIndex
unsigned int m_SolutionTMinus1Index
unsigned int m_SolutionVectorTMinus1Index
unsigned int m_SumMatrixIndex
Float m_TimeStep
unsigned int m_TotalSolutionIndex
bool m_UseMassMatrix
unsigned int m_NGFN
unsigned int m_NMFC
LinearSystemWrapper::Pointer m_ls
LinearSystemWrapperVNL m_lsVNL
InterpolationGridPointerType m_InterpolationGrid
FEMObjectPointer m_FEMObject
- Protected Attributes inherited from itk::ProcessObject
bool m_Updating
TimeStamp m_OutputInformationMTime

Private Member Functions

void operator= (const Self &)
 SolverCrankNicolson (const Self &)

Additional Inherited Members

- Static Public Member Functions inherited from itk::fem::Solver< TDimension >
static Pointer New ()
- Static Public Attributes inherited from itk::fem::Solver< TDimension >
static const unsigned int FEMDimension
static const unsigned int MaxDimensions

Detailed Description

template<unsigned int TDimension = 3>
class itk::fem::SolverCrankNicolson< TDimension >

FEM Solver for time dependent problems; uses Crank-Nicolson implicit discretization scheme.

This is the main class used for solving FEM time-dependent problems. It solves the following problem:

\[ ( M + \alpha*dt* K )*U_t=(M - (1.- \alpha)*dt* K)* U_{t-1} + dt*(\alpha*f_{n+1} + (1-\alpha)*f_n) \]

which is the Crank-Nicolson formulation of the static problem if $\alpha=0.5$. The static solution is gained if : $\rho = 0.0$; $\alpha = 1.0$; $dt = 1.0$; Practically, it is good to set rho to something small (for the itpack solver). The advantage of choosing $\alpha=0.5$ is that the solution is then stable for any choice of time step, dt. This class inherits and uses most of the Solver class functionality.

Updated: The calls to to AssembleKandM (or AssembleK) and AssembleFforTimeStep (or AssembleF) are now handled internally by calling Update().

FIXME: 1) We should also account for the contribution to the force from essential BCs. Basically there are terms involving $ M * (\dot g_b) $ and $ K * g_b $ where $ g_b$ is the essential BC vector.

Definition at line 72 of file itkFEMSolverCrankNicolson.h.


Member Typedef Documentation

template<unsigned int TDimension = 3>
typedef SmartPointer<const Self> itk::fem::SolverCrankNicolson< TDimension >::ConstPointer

Reimplemented from itk::fem::Solver< TDimension >.

Definition at line 78 of file itkFEMSolverCrankNicolson.h.

template<unsigned int TDimension = 3>
typedef Element::Float itk::fem::SolverCrankNicolson< TDimension >::Float

Some convenient typedefs.

Reimplemented from itk::fem::Solver< TDimension >.

Definition at line 86 of file itkFEMSolverCrankNicolson.h.

template<unsigned int TDimension = 3>
typedef SmartPointer<Self> itk::fem::SolverCrankNicolson< TDimension >::Pointer

Reimplemented from itk::fem::Solver< TDimension >.

Definition at line 77 of file itkFEMSolverCrankNicolson.h.

template<unsigned int TDimension = 3>
typedef SolverCrankNicolson itk::fem::SolverCrankNicolson< TDimension >::Self

Standard class typedefs.

Reimplemented from itk::fem::Solver< TDimension >.

Definition at line 75 of file itkFEMSolverCrankNicolson.h.

template<unsigned int TDimension = 3>
typedef Solver<TDimension> itk::fem::SolverCrankNicolson< TDimension >::Superclass

Reimplemented from itk::fem::Solver< TDimension >.

Definition at line 76 of file itkFEMSolverCrankNicolson.h.


Constructor & Destructor Documentation

template<unsigned int TDimension = 3>
itk::fem::SolverCrankNicolson< TDimension >::SolverCrankNicolson ( )
protected
template<unsigned int TDimension = 3>
itk::fem::SolverCrankNicolson< TDimension >::~SolverCrankNicolson ( )
inlineprotected

Definition at line 207 of file itkFEMSolverCrankNicolson.h.

template<unsigned int TDimension = 3>
itk::fem::SolverCrankNicolson< TDimension >::SolverCrankNicolson ( const Self )
private

Member Function Documentation

template<unsigned int TDimension = 3>
void itk::fem::SolverCrankNicolson< TDimension >::AddToDisplacements ( Float  optimum = 1.0)

Add solution vector u to the corresponding nodal values, which are stored in node objects). This is standard post processing of the solution

template<unsigned int TDimension = 3>
void itk::fem::SolverCrankNicolson< TDimension >::AssembleFforTimeStep ( int  dim = 0)
protected

Assemble the master force vector at a given time.

Parameters:
dimThis is a parameter that can be passed to the function and is normally used with isotropic elements to specify the dimension for which the master force vector should be assembled.
template<unsigned int TDimension = 3>
void itk::fem::SolverCrankNicolson< TDimension >::AssembleKandM ( )
protected

Assemble the master stiffness and mass matrix. We actually assemble the right hand side and left hand side of the implicit scheme equation.

template<unsigned int TDimension = 3>
void itk::fem::SolverCrankNicolson< TDimension >::AverageLastTwoDisplacements ( Float  t = 0.5)
template<unsigned int TDimension = 3>
Float itk::fem::SolverCrankNicolson< TDimension >::BrentsMethod ( Float  tol = 0.01,
unsigned int  MaxIters = 25 
)
template<unsigned int TDimension = 3>
Float itk::fem::SolverCrankNicolson< TDimension >::EvaluateResidual ( Float  t = 1.0)
template<unsigned int TDimension = 3>
void itk::fem::SolverCrankNicolson< TDimension >::FindBracketingTriplet ( Float a,
Float b,
Float c 
)
template<unsigned int TDimension = 3>
void itk::fem::SolverCrankNicolson< TDimension >::GenerateData ( )
protectedvirtual

Method invoked by the pipeline in order to trigger the computation of the registration.

Reimplemented from itk::fem::Solver< TDimension >.

template<unsigned int TDimension = 3>
Float itk::fem::SolverCrankNicolson< TDimension >::GetCurrentMaxSolution ( )
inline
template<unsigned int TDimension = 3>
Float itk::fem::SolverCrankNicolson< TDimension >::GetDeformationEnergy ( Float  t = 1.0)
template<unsigned int TDimension = 3>
LinearSystemWrapper* itk::fem::SolverCrankNicolson< TDimension >::GetLS ( )
inline

Definition at line 190 of file itkFEMSolverCrankNicolson.h.

References itk::fem::Solver< TDimension >::m_ls.

template<unsigned int TDimension = 3>
virtual Float itk::fem::SolverCrankNicolson< TDimension >::GetTimeStep ( void  ) const
inlinevirtual

Returns the time step used for dynamic problems.

Reimplemented from itk::fem::Solver< TDimension >.

Definition at line 142 of file itkFEMSolverCrankNicolson.h.

References itk::fem::SolverCrankNicolson< TDimension >::m_TimeStep.

template<unsigned int TDimension = 3>
Float itk::fem::SolverCrankNicolson< TDimension >::GoldenSection ( Float  tol = 0.01,
unsigned int  MaxIters = 25 
)

Finds the optimum value between the last two solutions and sets the current solution to that value. Uses Evaluate Residual;

template<unsigned int TDimension = 3>
Float itk::fem::SolverCrankNicolson< TDimension >::GSMax ( Float  a,
Float  b 
)
inline

Definition at line 183 of file itkFEMSolverCrankNicolson.h.

template<unsigned int TDimension = 3>
Float itk::fem::SolverCrankNicolson< TDimension >::GSSign ( Float  a,
Float  b 
)
inline

Definition at line 179 of file itkFEMSolverCrankNicolson.h.

template<unsigned int TDimension = 3>
void itk::fem::SolverCrankNicolson< TDimension >::InitializeForSolution ( )
protected

helper initialization function before assembly but after generate GFN.

template<unsigned int TDimension = 3>
itk::fem::SolverCrankNicolson< TDimension >::itkGetConstMacro ( Iterations  ,
unsigned  int 
)

Get the number of iterations run for the solver

template<unsigned int TDimension = 3>
itk::fem::SolverCrankNicolson< TDimension >::itkGetMacro ( UseMassMatrix  ,
bool   
)

Get/Set the use of the Mass Matrix for the solution

template<unsigned int TDimension = 3>
itk::fem::SolverCrankNicolson< TDimension >::itkGetMacro ( TotalSolutionIndex  ,
unsigned  int 
)

Get the index for the current solution

template<unsigned int TDimension = 3>
itk::fem::SolverCrankNicolson< TDimension >::itkGetMacro ( SolutionTMinus1Index  ,
unsigned  int 
)

Get the index for the previous solution

template<unsigned int TDimension = 3>
itk::fem::SolverCrankNicolson< TDimension >::itkGetMacro ( Alpha  ,
Float   
)

Set stability step for the solution. Initialized to 0.5

template<unsigned int TDimension = 3>
itk::fem::SolverCrankNicolson< TDimension >::itkGetMacro ( Rho  ,
Float   
)

Set density constant.

template<unsigned int TDimension = 3>
itk::fem::SolverCrankNicolson< TDimension >::itkNewMacro ( Self  )

Method for creation through the object factory.

template<unsigned int TDimension = 3>
itk::fem::SolverCrankNicolson< TDimension >::itkSetMacro ( UseMassMatrix  ,
bool   
)

Get/Set the use of the Mass Matrix for the solution

template<unsigned int TDimension = 3>
itk::fem::SolverCrankNicolson< TDimension >::itkSetMacro ( Alpha  ,
Float   
)

Set stability step for the solution. Initialized to 0.5

template<unsigned int TDimension = 3>
itk::fem::SolverCrankNicolson< TDimension >::itkSetMacro ( Rho  ,
Float   
)

Set density constant.

template<unsigned int TDimension = 3>
itk::fem::SolverCrankNicolson< TDimension >::itkTypeMacro ( SolverCrankNicolson< TDimension >  ,
Solver< TDimension >   
)

Run-time type information (and related methods)

template<unsigned int TDimension = 3>
void itk::fem::SolverCrankNicolson< TDimension >::operator= ( const Self )
private

Make a DataObject of the correct type to be used as the specified output.

Reimplemented from itk::fem::Solver< TDimension >.

template<unsigned int TDimension = 3>
void itk::fem::SolverCrankNicolson< TDimension >::PrintDisplacements ( )
template<unsigned int TDimension = 3>
void itk::fem::SolverCrankNicolson< TDimension >::PrintForce ( )
template<unsigned int TDimension = 3>
void itk::fem::SolverCrankNicolson< TDimension >::PrintMinMaxOfSolution ( )

Compute and print the minimum and maximum of the total solution and the last solution.

template<unsigned int TDimension = 3>
void itk::fem::SolverCrankNicolson< TDimension >::RecomputeForceVector ( unsigned int  index)

compute the current state of the right hand side and store the current force for the next iteration.

template<unsigned int TDimension = 3>
void itk::fem::SolverCrankNicolson< TDimension >::ResetIterations ( void  )
inline

Reset the number of iterations for the solver. This will prompt the Solver to Assemble the master stiffness and mass matrix again. This is only generated before the first iteration.

Definition at line 106 of file itkFEMSolverCrankNicolson.h.

References itk::fem::SolverCrankNicolson< TDimension >::m_Iterations.

template<unsigned int TDimension = 3>
virtual void itk::fem::SolverCrankNicolson< TDimension >::RunSolver ( void  )
protectedvirtual

Solve for the displacement vector u at a given time. Update the total solution as well.

Reimplemented from itk::fem::Solver< TDimension >.

template<unsigned int TDimension = 3>
void itk::fem::SolverCrankNicolson< TDimension >::SetEnergyToMin ( Float  xmin)
template<unsigned int TDimension = 3>
virtual void itk::fem::SolverCrankNicolson< TDimension >::SetTimeStep ( Float  dt)
inlinevirtual

Sets the time step used for dynamic problems.

Parameters:
dtNew time step.

Reimplemented from itk::fem::Solver< TDimension >.

Definition at line 152 of file itkFEMSolverCrankNicolson.h.

References itk::fem::SolverCrankNicolson< TDimension >::m_TimeStep.

template<unsigned int TDimension = 3>
void itk::fem::SolverCrankNicolson< TDimension >::ZeroVector ( int  which = 0)

Member Data Documentation

template<unsigned int TDimension = 3>
Float itk::fem::SolverCrankNicolson< TDimension >::m_Alpha
protected

Definition at line 240 of file itkFEMSolverCrankNicolson.h.

template<unsigned int TDimension = 3>
Float itk::fem::SolverCrankNicolson< TDimension >::m_CurrentMaxSolution
protected
template<unsigned int TDimension = 3>
unsigned int itk::fem::SolverCrankNicolson< TDimension >::m_DifferenceMatrixIndex
protected

Definition at line 253 of file itkFEMSolverCrankNicolson.h.

template<unsigned int TDimension = 3>
unsigned int itk::fem::SolverCrankNicolson< TDimension >::m_DiffMatrixBySolutionTMinus1Index
protected

Definition at line 255 of file itkFEMSolverCrankNicolson.h.

template<unsigned int TDimension = 3>
unsigned int itk::fem::SolverCrankNicolson< TDimension >::m_ForceTIndex
protected

Definition at line 246 of file itkFEMSolverCrankNicolson.h.

template<unsigned int TDimension = 3>
unsigned int itk::fem::SolverCrankNicolson< TDimension >::m_ForceTMinus1Index
protected

Definition at line 248 of file itkFEMSolverCrankNicolson.h.

template<unsigned int TDimension = 3>
unsigned int itk::fem::SolverCrankNicolson< TDimension >::m_ForceTotalIndex
protected

Definition at line 247 of file itkFEMSolverCrankNicolson.h.

template<unsigned int TDimension = 3>
unsigned int itk::fem::SolverCrankNicolson< TDimension >::m_Iterations
protected
template<unsigned int TDimension = 3>
Float itk::fem::SolverCrankNicolson< TDimension >::m_Rho
protected

Definition at line 239 of file itkFEMSolverCrankNicolson.h.

template<unsigned int TDimension = 3>
unsigned int itk::fem::SolverCrankNicolson< TDimension >::m_SolutionTIndex
protected

Definition at line 249 of file itkFEMSolverCrankNicolson.h.

template<unsigned int TDimension = 3>
unsigned int itk::fem::SolverCrankNicolson< TDimension >::m_SolutionTMinus1Index
protected

Definition at line 250 of file itkFEMSolverCrankNicolson.h.

template<unsigned int TDimension = 3>
unsigned int itk::fem::SolverCrankNicolson< TDimension >::m_SolutionVectorTMinus1Index
protected

Definition at line 251 of file itkFEMSolverCrankNicolson.h.

template<unsigned int TDimension = 3>
unsigned int itk::fem::SolverCrankNicolson< TDimension >::m_SumMatrixIndex
protected

Definition at line 254 of file itkFEMSolverCrankNicolson.h.

template<unsigned int TDimension = 3>
Float itk::fem::SolverCrankNicolson< TDimension >::m_TimeStep
protected
template<unsigned int TDimension = 3>
unsigned int itk::fem::SolverCrankNicolson< TDimension >::m_TotalSolutionIndex
protected

Definition at line 252 of file itkFEMSolverCrankNicolson.h.

template<unsigned int TDimension = 3>
bool itk::fem::SolverCrankNicolson< TDimension >::m_UseMassMatrix
protected

Definition at line 243 of file itkFEMSolverCrankNicolson.h.


The documentation for this class was generated from the following file: