ITK  4.1.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 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 ()

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 ()

Protected Attributes

Float m_Beta
Float m_Gamma
unsigned int m_NumberOfIterations
Float m_TimeStep

Private Member Functions

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

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 ( ) [inline, protected, virtual]

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) [protected, virtual]

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  ) [protected, virtual]

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 ( ) [protected, virtual]

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 [inline, virtual]

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  ) [protected, virtual]

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) [protected, virtual]

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 [protected, virtual]

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  ) [protected, virtual]

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) [inline, virtual]

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: