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

#include <itkFEMSolverHyperbolic.h>

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

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef Element::Float Float
typedef SmartPointer< SelfPointer
typedef SolverHyperbolic 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

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const char * GetNameOfClass () const
virtual Float GetTimeStep (void) const
virtual void SetTimeStep (Float dt)
virtual void SetGamma (Float _arg)
virtual Float GetGamma ()
virtual void SetBeta (Float _arg)
virtual Float GetBeta ()
virtual void SetNumberOfIterations (unsigned int _arg)
virtual unsigned int GetNumberOfIterations ()
- Public Member Functions inherited from itk::fem::Solver< TDimension >
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 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

Static Public Member Functions

static Pointer New ()

Protected Types

enum  {
  matrix_K = 1,
  matrix_M = 2,
  matrix_C = 3,
  matrix_tmp = 4
}
enum  {
  solution_d = 0,
  solution_v = 1,
  solution_a = 2
}
enum  {
  vector_dhat = 2,
  vector_vhat = 3,
  vector_ahat = 4,
  vector_tmp = 5
}

Protected Member Functions

virtual void AssembleElementMatrix (Element::Pointer e)
virtual void FinalizeMatrixAfterAssembly (void)
void GenerateData ()
virtual void InitializeLinearSystemWrapper (void)
virtual void InitializeMatrixForAssembly (unsigned int N)
void PrintSelf (std::ostream &os, Indent indent) const
virtual void RunSolver (void)
void Solve ()
 SolverHyperbolic ()
virtual ~SolverHyperbolic ()
 Solver ()
virtual ~Solver ()
void AssembleK ()
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)
- 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_Beta
Float m_Gamma
unsigned int m_NumberOfIterations
Float m_TimeStep
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 &)
 SolverHyperbolic (const Self &)

Additional Inherited Members

- 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::SolverHyperbolic< TDimension >

Solver class suitable for hyperbolic problems.

M*ddu + C*du + K*u=F.

Definition at line 35 of file itkFEMSolverHyperbolic.h.


Member Typedef Documentation

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

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

Definition at line 41 of file itkFEMSolverHyperbolic.h.

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

Some convenient typedefs.

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

Definition at line 47 of file itkFEMSolverHyperbolic.h.

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

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

Definition at line 40 of file itkFEMSolverHyperbolic.h.

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

Standard class typedefs.

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

Definition at line 38 of file itkFEMSolverHyperbolic.h.

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

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

Definition at line 39 of file itkFEMSolverHyperbolic.h.


Member Enumeration Documentation

template<unsigned int TDimension = 3>
anonymous enum
protected

Constants that specify, where matrices are strored.

Enumerator:
matrix_K 
matrix_M 
matrix_C 
matrix_tmp 

Definition at line 126 of file itkFEMSolverHyperbolic.h.

template<unsigned int TDimension = 3>
anonymous enum
protected

Constants that specify, where vectors are strored.

Enumerator:
solution_d 
solution_v 
solution_a 

Definition at line 131 of file itkFEMSolverHyperbolic.h.

template<unsigned int TDimension = 3>
anonymous enum
protected
Enumerator:
vector_dhat 
vector_vhat 
vector_ahat 
vector_tmp 

Definition at line 132 of file itkFEMSolverHyperbolic.h.


Constructor & Destructor Documentation

template<unsigned int TDimension = 3>
itk::fem::SolverHyperbolic< TDimension >::SolverHyperbolic ( )
protected
template<unsigned int TDimension = 3>
virtual itk::fem::SolverHyperbolic< TDimension >::~SolverHyperbolic ( )
inlineprotectedvirtual

Definition at line 84 of file itkFEMSolverHyperbolic.h.

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

Member Function Documentation

template<unsigned int TDimension = 3>
virtual void itk::fem::SolverHyperbolic< TDimension >::AssembleElementMatrix ( Element::Pointer  e)
protectedvirtual

When assembling the element matrix into master matrix, we need to assemble the mass matrix too.

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

template<unsigned int TDimension = 3>
virtual::itk::LightObject::Pointer itk::fem::SolverHyperbolic< TDimension >::CreateAnother ( void  ) const
virtual

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

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

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

Combines the M, C and K matrices into one big system of linear equations.

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

template<unsigned int TDimension = 3>
void itk::fem::SolverHyperbolic< TDimension >::GenerateData ( )
protectedvirtual

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

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

template<unsigned int TDimension = 3>
virtual Float itk::fem::SolverHyperbolic< TDimension >::GetBeta ( )
virtual

Get/Set Beta

template<unsigned int TDimension = 3>
virtual Float itk::fem::SolverHyperbolic< TDimension >::GetGamma ( )
virtual

Get/Set Gamma

template<unsigned int TDimension = 3>
virtual const char* itk::fem::SolverHyperbolic< TDimension >::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods)

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

template<unsigned int TDimension = 3>
virtual unsigned int itk::fem::SolverHyperbolic< TDimension >::GetNumberOfIterations ( )
virtual

Get/Set Number of Iterations

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

Returns the time step used for dynamic problems.

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

Definition at line 67 of file itkFEMSolverHyperbolic.h.

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

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

Initialize the linear system wrapper.

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

template<unsigned int TDimension = 3>
virtual void itk::fem::SolverHyperbolic< TDimension >::InitializeMatrixForAssembly ( unsigned int  N)
protectedvirtual

Initializes the storasge for all master matrices.

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

template<unsigned int TDimension = 3>
static Pointer itk::fem::SolverHyperbolic< TDimension >::New ( )
static

Method for creation through the object factory.

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

template<unsigned int TDimension = 3>
void itk::fem::SolverHyperbolic< 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::SolverHyperbolic< TDimension >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
protectedvirtual

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>
virtual void itk::fem::SolverHyperbolic< 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>
virtual void itk::fem::SolverHyperbolic< TDimension >::SetBeta ( Float  _arg)
virtual

Get/Set Beta

template<unsigned int TDimension = 3>
virtual void itk::fem::SolverHyperbolic< TDimension >::SetGamma ( Float  _arg)
virtual

Get/Set Gamma

template<unsigned int TDimension = 3>
virtual void itk::fem::SolverHyperbolic< TDimension >::SetNumberOfIterations ( unsigned int  _arg)
virtual

Get/Set Number of Iterations

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

Sets the time step used for the problems.

Parameters:
dtNew time step.

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

Definition at line 77 of file itkFEMSolverHyperbolic.h.

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

template<unsigned int TDimension = 3>
void itk::fem::SolverHyperbolic< TDimension >::Solve ( )
protected

Solve for the displacement vector u for one iteration


Member Data Documentation

template<unsigned int TDimension = 3>
Float itk::fem::SolverHyperbolic< TDimension >::m_Beta
protected

Definition at line 136 of file itkFEMSolverHyperbolic.h.

template<unsigned int TDimension = 3>
Float itk::fem::SolverHyperbolic< TDimension >::m_Gamma
protected

Definition at line 135 of file itkFEMSolverHyperbolic.h.

template<unsigned int TDimension = 3>
unsigned int itk::fem::SolverHyperbolic< TDimension >::m_NumberOfIterations
protected

Definition at line 137 of file itkFEMSolverHyperbolic.h.

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

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