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

Multivac::CFastMarchingFirstOrderEngquistOsher< T > Class Template Reference

This updater uses the first order Engquist Osher scheme. More...

#include <fastmarchingfirstorderengquistosher.hxx>

Inheritance diagram for Multivac::CFastMarchingFirstOrderEngquistOsher< T >:

Multivac::CUpdater< 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

 CFastMarchingFirstOrderEngquistOsher () throw ()
 Default constructor.

 CFastMarchingFirstOrderEngquistOsher (T TMax_) throw ()
 Main constructor.

 ~CFastMarchingFirstOrderEngquistOsher () throw ()
 Destructor.

virtual bool IsNarrowBand () const
 Should this updater be used for the narrow band level set method?

virtual bool IsFastMarching () const
 Should this updater be used for the fast marching method?

virtual void Init (CMesh< T > &Mesh, CLevelSet< T > &Phi)
 Inits the updater.

virtual void UpdateLevelSet (T Delta_t, CMesh< T > &Mesh, CSpeedFunction< T > &F, CLevelSet< T > &Phi, T CurrentTime)
 Updates the level set function Phi.

virtual bool KeepOnWorking () const
 Should computations be continued?


Detailed Description

template<class T>
class Multivac::CFastMarchingFirstOrderEngquistOsher< T >

This updater uses the first order Engquist Osher scheme.

Note:
This updater is designed for the fast marching method.


Constructor & Destructor Documentation

template<class T>
Multivac::CFastMarchingFirstOrderEngquistOsher< T >::CFastMarchingFirstOrderEngquistOsher TMax_  )  throw ()
 

Main constructor.

Parameters:
Tmax_ a majorant of arrival times.


Member Function Documentation

template<class T>
void Multivac::CFastMarchingFirstOrderEngquistOsher< T >::Init CMesh< T > &  Mesh,
CLevelSet< T > &  Phi
[inline, virtual]
 

Inits the updater.

The matrix 'PointersToNodes' is allocated and filled with -1. If PointersToNodes(i, j) is -1, the grid point (i, j) is not in trial points.

Parameters:
Mesh orthogonal mesh.
Phi level set function defined on an orthogonal mesh.

Implements Multivac::CUpdater< T >.

template<class T>
bool Multivac::CFastMarchingFirstOrderEngquistOsher< T >::IsFastMarching  )  const [inline, virtual]
 

Should this updater be used for the fast marching method?

Returns:
'true' because the updater can be used for the fast marching method.

Implements Multivac::CUpdater< T >.

template<class T>
bool Multivac::CFastMarchingFirstOrderEngquistOsher< T >::IsNarrowBand  )  const [inline, virtual]
 

Should this updater be used for the narrow band level set method?

Returns:
'false' because the updater cannot be used for the narrow band level set method.

Implements Multivac::CUpdater< T >.

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

Should computations be continued?

If 'KeepOnWorking' returns 'true', then computations should be continued. Computations will be continued if there are still trial points and if the current smallest arrival time is strictly less than TMax (majorant of arrival times).

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

Reimplemented from Multivac::CUpdater< T >.

template<class T>
void Multivac::CFastMarchingFirstOrderEngquistOsher< T >::UpdateLevelSet Delta_t,
CMesh< T > &  Mesh,
CSpeedFunction< T > &  F,
CLevelSet< T > &  Phi,
CurrentTime
[inline, virtual]
 

Updates the level set function Phi.

This function updates the level set function Phi. The trial point with the smallest time arrival time is removed from trial points set (and becomes a "known" point). Then, neighbors arrival times are updated (if needed). Updates are performed with the first order Engquist-Osher scheme.

Parameters:
Delta_t time step.
Mesh orthogonal mesh.
F speed function defined on Mesh.
Phi level set function defined on Mesh.
CurrentTime current time.

Implements Multivac::CUpdater< T >.


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