Public Member Functions | Protected Member Functions | Protected Attributes

OFFMGSolver< VOXEL > Class Template Reference

#include <ofFMGSolver.h>

Inheritance diagram for OFFMGSolver< VOXEL >:
OFFlIsotropic< VOXEL > OFHomogenous< VOXEL > OFclg< VOXEL > OFFlAnisotropic< VOXEL > OFRbDataImAniso< VOXEL > OFImAnisotropic< VOXEL > OFImIsotropic< VOXEL >

List of all members.

Public Member Functions

 OFFMGSolver (i3d::Image3d< VOXEL > *In0, i3d::Image3d< VOXEL > *In1, i3d::Vector3d< float >Sp=i3d::Vector3d< float >(1.0, 1.0, 1.0))
virtual ~OFFMGSolver ()
virtual void Initialization ()
void SetFineSpacing (i3d::Vector3d< float >fsp)
i3d::Vector3d< float > & GetFineSpacing ()
void SetNumberOfSteps (size_t FMGSteps, size_t RestrSteps, size_t ProlSteps)
void SetNumberOfMaxLevels (size_t MLevel)
void SetRo (VOXEL r)
void SetSigma (VOXEL s)
void SetWCycle (bool Val)
void SetDesiredRelativeError (VOXEL dre)
void SetDerivationInput (size_t i)
size_t GetDerivationInput ()
void SaveResults (char *FName, size_t Level=static_cast< size_t >(0))
std::valarray< i3d::Image3d
< VOXEL > * > & 
GetResults ()
i3d::Image3d< VOXEL > * GetResults (size_t axe)
void SetResults (i3d::Image3d< VOXEL > *w, size_t axe)
void SetAlpha (VOXEL a)
VOXEL GetGradientGamma ()
void SetGradientGamma (VOXEL gg)
void SetBaseSolverType (size_t st)
size_t GetBaseSolverType ()
virtual void Execute ()
void SetUsedForWarping (bool w)
bool GetUsedForWarping ()
void SetWarpingStuffPointers (i3d::Image3d< VOXEL > *fl=static_cast< i3d::Image3d< VOXEL > >(NULL), i3d::Image3d< VOXEL > *x=static_cast< i3d::Image3d< VOXEL > >(NULL), i3d::Image3d< VOXEL > *y=static_cast< i3d::Image3d< VOXEL > >(NULL), i3d::Image3d< VOXEL > *z=static_cast< i3d::Image3d< VOXEL > >(NULL))
void AddOverallSolution ()
MultiGridLevel< VOXEL > * GetLevel (size_t index)
size_t GetWarpBase ()

Protected Member Functions

void ComputeNumberOfLevels ()
void ComputeSpacing2n (i3d::Vector3d< size_t > &Size, i3d::Vector3d< size_t > &Size2n, i3d::Vector3d< float > &Spacing, i3d::Vector3d< float > &Spacing2n)
void ComputeSize2n (i3d::Vector3d< size_t > &Size, i3d::Vector3d< size_t > &Size2n)
virtual void ComputeRightHandSide (MotionTensor< VOXEL > *Tensor, MultiGridLevel< VOXEL > *Level)
virtual void ComputeMatrix (MotionTensor< VOXEL > *Tensor, MultiGridLevel< VOXEL > *Level)
virtual void ComputeSubMatrix (MotionTensor< VOXEL > *Tensor, MultiGridLevel< VOXEL > *Level, size_t i, size_t j)
virtual void RelaxOnLevel (size_t Level, size_t Steps)
virtual void SpecificRegularizerComputations (MotionTensor< VOXEL > *Tensor, size_t param)
void PreSmoothInput ()
virtual void ProlongateSolution (size_t Level)
virtual void RestrictResidual (size_t Level)
virtual void ComputeResidual (size_t Level)
virtual void ProlongateCorrection (size_t Level)
virtual void AddCorrection (size_t Level)
virtual void SetSolutionToZero (size_t Level)
void DoCycle (size_t StartLevel, size_t Repeat)
void ComputeRelativeError ()
VOXEL ComputeNormOfResidual ()

Protected Attributes

i3d::Image3d< VOXEL > * InputT0
i3d::Image3d< VOXEL > * InputT1
size_t PresmoothRelaxSteps
size_t PostsmoothRelaxSteps
size_t NumberOfFullCycles
std::valarray< MultiGridLevel
< VOXEL > * > 
Levels
size_t Dimensions
size_t NumberOfLevels
i3d::Vector3d< size_t > FineSize
i3d::Vector3d< float > FineSpacing
bool WCycle
size_t DerivationInput
VOXEL Ro
VOXEL Sigma
VOXEL Alpha
VOXEL GradientGamma
VOXEL RelativeError
VOXEL DesiredRelativeError
bool UsedForWarping
std::valarray< i3d::Image3d
< VOXEL > * > 
WarpingStuff
size_t WarpBase
size_t BaseSolverType

template<class VOXEL>
class OFFMGSolver< VOXEL >


Constructor & Destructor Documentation

template<class VOXEL >
OFFMGSolver< VOXEL >::OFFMGSolver ( i3d::Image3d< VOXEL > *  In0,
i3d::Image3d< VOXEL > *  In1,
i3d::Vector3d< float >  Sp = i3d::Vector3d <float>(1.0, 1.0, 1.0) 
)
template<class VOXEL >
OFFMGSolver< VOXEL >::~OFFMGSolver (  )  [virtual]

Member Function Documentation

template<class VOXEL >
void OFFMGSolver< VOXEL >::Initialization (  )  [virtual]
template<class VOXEL >
void OFFMGSolver< VOXEL >::SetFineSpacing ( i3d::Vector3d< float >  fsp  )  [inline]
template<class VOXEL >
i3d::Vector3d<float>& OFFMGSolver< VOXEL >::GetFineSpacing (  )  [inline]
template<class VOXEL >
void OFFMGSolver< VOXEL >::SetNumberOfSteps ( size_t  FMGSteps,
size_t  RestrSteps,
size_t  ProlSteps 
)
template<class VOXEL >
void OFFMGSolver< VOXEL >::SetNumberOfMaxLevels ( size_t  MLevel  ) 
template<class VOXEL >
void OFFMGSolver< VOXEL >::SetRo ( VOXEL  r  ) 
template<class VOXEL >
void OFFMGSolver< VOXEL >::SetSigma ( VOXEL  s  ) 
template<class VOXEL >
void OFFMGSolver< VOXEL >::SetWCycle ( bool  Val  ) 
template<class VOXEL >
void OFFMGSolver< VOXEL >::SetDesiredRelativeError ( VOXEL  dre  ) 
template<class VOXEL >
void OFFMGSolver< VOXEL >::SetDerivationInput ( size_t  i  )  [inline]
template<class VOXEL >
size_t OFFMGSolver< VOXEL >::GetDerivationInput (  )  [inline]
template<class VOXEL >
void OFFMGSolver< VOXEL >::SaveResults ( char *  FName,
size_t  Level = static_cast <size_t> (0) 
)
template<class VOXEL >
valarray< Image3d< VOXEL > * > & OFFMGSolver< VOXEL >::GetResults (  ) 
template<class VOXEL >
Image3d< VOXEL > * OFFMGSolver< VOXEL >::GetResults ( size_t  axe  ) 
template<class VOXEL >
void OFFMGSolver< VOXEL >::SetResults ( i3d::Image3d< VOXEL > *  w,
size_t  axe 
)
template<class VOXEL >
void OFFMGSolver< VOXEL >::SetAlpha ( VOXEL  a  ) 
template<class VOXEL >
VOXEL OFFMGSolver< VOXEL >::GetGradientGamma (  ) 
template<class VOXEL >
void OFFMGSolver< VOXEL >::SetGradientGamma ( VOXEL  gg  ) 
template<class VOXEL >
void OFFMGSolver< VOXEL >::SetBaseSolverType ( size_t  st  ) 
template<class VOXEL >
size_t OFFMGSolver< VOXEL >::GetBaseSolverType (  ) 
template<class VOXEL >
void OFFMGSolver< VOXEL >::Execute (  )  [virtual]
template<class VOXEL >
void OFFMGSolver< VOXEL >::SetUsedForWarping ( bool  w  ) 
template<class VOXEL >
bool OFFMGSolver< VOXEL >::GetUsedForWarping (  ) 
template<class VOXEL >
void OFFMGSolver< VOXEL >::SetWarpingStuffPointers ( i3d::Image3d< VOXEL > *  fl = static_cast < i3d::Image3d <VOXEL> >(NULL),
i3d::Image3d< VOXEL > *  x = static_cast < i3d::Image3d <VOXEL> >(NULL),
i3d::Image3d< VOXEL > *  y = static_cast < i3d::Image3d <VOXEL> >(NULL),
i3d::Image3d< VOXEL > *  z = static_cast < i3d::Image3d <VOXEL> >(NULL) 
)
template<class VOXEL >
void OFFMGSolver< VOXEL >::AddOverallSolution (  ) 
template<class VOXEL >
MultiGridLevel< VOXEL > * OFFMGSolver< VOXEL >::GetLevel ( size_t  index  ) 
template<class VOXEL >
size_t OFFMGSolver< VOXEL >::GetWarpBase (  ) 
template<class VOXEL >
void OFFMGSolver< VOXEL >::ComputeNumberOfLevels (  )  [protected]
template<class VOXEL >
void OFFMGSolver< VOXEL >::ComputeSpacing2n ( i3d::Vector3d< size_t > &  Size,
i3d::Vector3d< size_t > &  Size2n,
i3d::Vector3d< float > &  Spacing,
i3d::Vector3d< float > &  Spacing2n 
) [protected]
template<class VOXEL >
void OFFMGSolver< VOXEL >::ComputeSize2n ( i3d::Vector3d< size_t > &  Size,
i3d::Vector3d< size_t > &  Size2n 
) [protected]
template<class VOXEL >
void OFFMGSolver< VOXEL >::ComputeRightHandSide ( MotionTensor< VOXEL > *  Tensor,
MultiGridLevel< VOXEL > *  Level 
) [protected, virtual]

Reimplemented in OFHomogenous< VOXEL >.

template<class VOXEL >
void OFFMGSolver< VOXEL >::ComputeMatrix ( MotionTensor< VOXEL > *  Tensor,
MultiGridLevel< VOXEL > *  Level 
) [protected, virtual]

Reimplemented in OFHomogenous< VOXEL >.

template<class VOXEL >
void OFFMGSolver< VOXEL >::ComputeSubMatrix ( MotionTensor< VOXEL > *  Tensor,
MultiGridLevel< VOXEL > *  Level,
size_t  i,
size_t  j 
) [protected, virtual]
template<class VOXEL >
void OFFMGSolver< VOXEL >::RelaxOnLevel ( size_t  Level,
size_t  Steps 
) [protected, virtual]
template<class VOXEL >
void OFFMGSolver< VOXEL >::SpecificRegularizerComputations ( MotionTensor< VOXEL > *  Tensor,
size_t  param 
) [protected, virtual]
template<class VOXEL >
void OFFMGSolver< VOXEL >::PreSmoothInput (  )  [protected]
template<class VOXEL >
void OFFMGSolver< VOXEL >::ProlongateSolution ( size_t  Level  )  [protected, virtual]
template<class VOXEL >
void OFFMGSolver< VOXEL >::RestrictResidual ( size_t  Level  )  [protected, virtual]
template<class VOXEL >
void OFFMGSolver< VOXEL >::ComputeResidual ( size_t  Level  )  [protected, virtual]
template<class VOXEL >
void OFFMGSolver< VOXEL >::ProlongateCorrection ( size_t  Level  )  [protected, virtual]
template<class VOXEL >
void OFFMGSolver< VOXEL >::AddCorrection ( size_t  Level  )  [protected, virtual]
template<class VOXEL >
void OFFMGSolver< VOXEL >::SetSolutionToZero ( size_t  Level  )  [protected, virtual]
template<class VOXEL >
void OFFMGSolver< VOXEL >::DoCycle ( size_t  StartLevel,
size_t  Repeat 
) [protected]
template<class VOXEL >
void OFFMGSolver< VOXEL >::ComputeRelativeError (  )  [protected]
template<class VOXEL >
VOXEL OFFMGSolver< VOXEL >::ComputeNormOfResidual (  )  [protected]

Member Data Documentation

template<class VOXEL >
i3d::Image3d<VOXEL>* OFFMGSolver< VOXEL >::InputT0 [protected]
template<class VOXEL >
i3d::Image3d<VOXEL>* OFFMGSolver< VOXEL >::InputT1 [protected]
template<class VOXEL >
size_t OFFMGSolver< VOXEL >::PresmoothRelaxSteps [protected]
template<class VOXEL >
size_t OFFMGSolver< VOXEL >::PostsmoothRelaxSteps [protected]
template<class VOXEL >
size_t OFFMGSolver< VOXEL >::NumberOfFullCycles [protected]
template<class VOXEL >
std::valarray< MultiGridLevel <VOXEL> *> OFFMGSolver< VOXEL >::Levels [protected]
template<class VOXEL >
size_t OFFMGSolver< VOXEL >::Dimensions [protected]
template<class VOXEL >
size_t OFFMGSolver< VOXEL >::NumberOfLevels [protected]
template<class VOXEL >
i3d::Vector3d<size_t> OFFMGSolver< VOXEL >::FineSize [protected]
template<class VOXEL >
i3d::Vector3d<float> OFFMGSolver< VOXEL >::FineSpacing [protected]
template<class VOXEL >
bool OFFMGSolver< VOXEL >::WCycle [protected]
template<class VOXEL >
size_t OFFMGSolver< VOXEL >::DerivationInput [protected]
template<class VOXEL >
VOXEL OFFMGSolver< VOXEL >::Ro [protected]
template<class VOXEL >
VOXEL OFFMGSolver< VOXEL >::Sigma [protected]
template<class VOXEL >
VOXEL OFFMGSolver< VOXEL >::Alpha [protected]
template<class VOXEL >
VOXEL OFFMGSolver< VOXEL >::GradientGamma [protected]
template<class VOXEL >
VOXEL OFFMGSolver< VOXEL >::RelativeError [protected]
template<class VOXEL >
VOXEL OFFMGSolver< VOXEL >::DesiredRelativeError [protected]
template<class VOXEL >
bool OFFMGSolver< VOXEL >::UsedForWarping [protected]
template<class VOXEL >
std::valarray< i3d::Image3d <VOXEL> *> OFFMGSolver< VOXEL >::WarpingStuff [protected]
template<class VOXEL >
size_t OFFMGSolver< VOXEL >::WarpBase [protected]
template<class VOXEL >
size_t OFFMGSolver< VOXEL >::BaseSolverType [protected]

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