Main Page | User's guide | Class Hierarchy | Class List | File List | Class Members

Multivac::CUpdater< T > Class Template Reference

#include <baseclass.hxx>

Inheritance diagram for Multivac::CUpdater< T >:

Multivac::CFastMarchingFirstOrderEngquistOsher< T > Multivac::CNarrowBandEno2EngquistOsher< T > Multivac::CNarrowBandFirstOrderEngquistOsher< T > Multivac::CNarrowBandFirstOrderLaxFriedrichs< T > List of all members.

Public Types

typedef CFastMarchingNode< T > heap_node_value_type
typedef CFastMarchingNode<
T > & 
heap_node_reference
typedef const CFastMarchingNode<
T > & 
heap_node_const_reference
typedef CFastMarchingNode<
T > * 
heap_node_pointer
typedef const CFastMarchingNode<
T > * 
heap_node_const_pointer

Public Member Functions

 CUpdater () throw ()
 Default constructor.

virtual ~CUpdater () throw ()
 Destructor.

virtual bool IsNarrowBand () const=0
virtual bool IsFastMarching () const=0
virtual void Init (CMesh< T > &Mesh, CLevelSet< T > &Phi)=0
virtual void UpdateLevelSet (T Delta_t, CMesh< T > &Mesh, CSpeedFunction< T > &F, CLevelSet< T > &Phi, T CurrentTime)=0
virtual bool NeedSpeedUpdate () const
 Should speed rates be updated?

virtual bool NeedInitialization () const
 Should any initialization be performed?

virtual Matrix< T > & GetTemp ()
 Returns matrix 'Temp' that stores temporary values.

int GetOffset ()
 Returns the number of ghost cells.

Vector< List< Vector< int > >,
Vect_Full, NewAlloc< List<
Vector< int > > > > & 
GetTube ()
 Returns the tube.

int GetTubeSemiWidth () const
 Returns the tube semi width.

Matrix< int > & GetBarrier ()
 Returns barrier points.

int GetBarrierWidth () const
 Returns the barrier width.

Matrix< int > & GetOutSpace ()
 Returns "outspace" points.

int GetOutSpaceWidth () const
 Returns the "outspace" width.

virtual bool KeepOnWorking () const
 Should computations be continued?

ArrayHeap< CFastMarchingNode<
T > > & 
GetTrialPoints ()
 Returns the heap of trial points.

Matrix< int > & GetPointersToNodes ()
 Returns pointers to nodes of 'TrialPoints'.

GetTMax ()
 Returns the given majorant of arrival times.


Protected Attributes

Matrix< T > Temp
int offset
 Number of ghost cells.

bool NeedSpeedUpdateFlag
bool NeedInitializationFlag
Vector< List< Vector< int > >,
Vect_Full, NewAlloc< List<
Vector< int > > > > 
Tube
int TubeSemiWidth
 Tube semi width: number of cells on each side of the front.

Matrix< int > Barrier
int BarrierWidth
 Barrier width: number of cells along the barrier width.

Matrix< int > OutSpace
int OutSpaceWidth
 "Outspace" width: number of cells along the "outspace" width.

ArrayHeap< CFastMarchingNode<
T > > 
TrialPoints
Matrix< int > PointersToNodes
TMax
 For the fast marching method, 'Tmax' is a majorant of arrival times.


Detailed Description

template<class T>
class Multivac::CUpdater< T >

Defines the updater interface. All initial curves must be defined in the same way. An updater provides a numerical scheme (in space) and an integrator (in time).
Note:
This is an abstract class.


Member Function Documentation

template<class T>
Matrix< int > & Multivac::CUpdater< T >::GetBarrier  )  [inline]
 

Returns barrier points.

If one of 'Barrier' points is reached by the front, then the tube has to be rebuilt.

Returns:
A reference to the matrix 'Barrier' which contains barrier points.

template<class T>
int Multivac::CUpdater< T >::GetBarrierWidth  )  const [inline]
 

Returns the barrier width.

If one of 'Barrier' points is reached by the front, then the tube has to be rebuilt.

Returns:
Number of cells along the barrier width.

template<class T>
int Multivac::CUpdater< T >::GetOffset  )  [inline]
 

Returns the number of ghost cells.

Returns the number of ghost layers to be added around the.domain.

Returns:
The number of ghost cells.

template<class T>
Matrix< int > & Multivac::CUpdater< T >::GetOutSpace  )  [inline]
 

Returns "outspace" points.

The "outspace" is the set of points that should never be reached by the front. If the front reachs one of these points, an instability occurred.

Returns:
A reference to the matrix 'OutSpace' which contains "outspace" points.

template<class T>
int Multivac::CUpdater< T >::GetOutSpaceWidth  )  const [inline]
 

Returns the "outspace" width.

The "outspace" is the set of points that should never be reached by the front. If the front reachs one of these points, an instability occurred.

Returns:
Number of cells along the "outspace" width.

template<class T>
Matrix< int > & Multivac::CUpdater< T >::GetPointersToNodes  )  [inline]
 

Returns pointers to nodes of 'TrialPoints'.

Returns:
A reference to the matrix 'PointersToNodes' which stores pointers to nodes of 'TrialPoints'.

template<class T>
Matrix< T > & Multivac::CUpdater< T >::GetTemp  )  [inline, virtual]
 

Returns matrix 'Temp' that stores temporary values.

Returns:
A reference to matrix 'Temp' which stored temporary values.

template<class T>
T Multivac::CUpdater< T >::GetTMax  )  [inline]
 

Returns the given majorant of arrival times.

This majorant was set when the updater was constructed. This majorant was given by the user.

Returns:
the given majorant of arrival times.

template<class T>
ArrayHeap< CFastMarchingNode< T > > & Multivac::CUpdater< T >::GetTrialPoints  )  [inline]
 

Returns the heap of trial points.

Returns:
A reference to the heap (binary tree) 'TrialPoints' which stores trial points and their arrival times.

template<class T>
Vector< List< Vector< int > >, Vect_Full, NewAlloc< List< Vector< int > > > > & Multivac::CUpdater< T >::GetTube  )  [inline]
 

Returns the tube.

Returns:
A reference to the vector of lists of vectors that stores tube points.

template<class T>
int Multivac::CUpdater< T >::GetTubeSemiWidth  )  const [inline]
 

Returns the tube semi width.

Returns:
Number of cells on each side of the front.

template<class T>
bool Multivac::CUpdater< T >::KeepOnWorking  )  const [inline, virtual]
 

Should computations be continued?

If 'KeepOnWorking' returns 'true', then computations should be continued.

Returns:
A boolean that indicates whether or not the program should keep on computing.

Reimplemented in Multivac::CFastMarchingFirstOrderEngquistOsher< T >.

template<class T>
bool Multivac::CUpdater< T >::NeedInitialization  )  const [inline, virtual]
 

Should any initialization be performed?

If 'NeedInitialization' returns 'true', then the initializer should reinit the method (level set function, speed function, mesh, ...).

Returns:
A boolean that indicates whether or not calculations need a reinitialization.

template<class T>
bool Multivac::CUpdater< T >::NeedSpeedUpdate  )  const [inline, virtual]
 

Should speed rates be updated?

If 'NeedSpeedUpdate' returns 'true', then the speed class updater should be called so as to update the speed function.

Returns:
A boolean that indicates whether or not speed rates should be updated.


Member Data Documentation

template<class T>
Matrix<int> Multivac::CUpdater< T >::Barrier [protected]
 

Stores points of the barrier. In the narrow band level set method, if a 'Barrier' point is reached by the front, then the tube has to be rebuilt.

template<class T>
bool Multivac::CUpdater< T >::NeedInitializationFlag [protected]
 

'NeedInitializationFlag' indicates whether reinitialization should be performed.

template<class T>
bool Multivac::CUpdater< T >::NeedSpeedUpdateFlag [protected]
 

'NeedSpeedUpdateFlag' indicates whether speed rates should be updated (by calling the speed class updater).

template<class T>
Matrix<int> Multivac::CUpdater< T >::OutSpace [protected]
 

Stores points close to the tube edges. In the narrow band level set method, if a 'OutSpace' point is reached by the front, then an unstability occurred. 'OutSpace' points should not be reached by the front.

template<class T>
Matrix<int> Multivac::CUpdater< T >::PointersToNodes [protected]
 

'PointersToNodes' element (i, j) points to the corresponding node in 'TrialPoints' (if it exists).

template<class T>
Matrix<T> Multivac::CUpdater< T >::Temp [protected]
 

Temporary values may be stored in 'Temp' in order to perform computations.

template<class T>
ArrayHeap<CFastMarchingNode<T> > Multivac::CUpdater< T >::TrialPoints [protected]
 

In the fast marching method, 'TrialPoints' stores points whose arrival time are not known yet. But, temporary arrival times have been computed for those points yet and are stored in 'TrialPoints', with point coordinates.

template<class T>
Vector<List<Vector<int> >, Vect_Full, NewAlloc<List<Vector<int> > > > Multivac::CUpdater< T >::Tube [protected]
 

Tube points are stored in 'Tube'. It defines the tube that is used in the narrow band level set method.


The documentation for this class was generated from the following files:
Generated on Mon Apr 19 01:59:17 2004 for Multivac by doxygen 1.3.6-20040222