#include <baseclass.hxx>
Inheritance diagram for Multivac::CUpdater< T >:
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'. | |
T | 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 |
T | TMax |
For the fast marching method, 'Tmax' is a majorant of arrival times. |
|
Returns barrier points. If one of 'Barrier' points is reached by the front, then the tube has to be rebuilt.
|
|
Returns the barrier width. If one of 'Barrier' points is reached by the front, then the tube has to be rebuilt.
|
|
Returns the number of ghost cells. Returns the number of ghost layers to be added around the.domain.
|
|
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 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 pointers to nodes of 'TrialPoints'.
|
|
Returns matrix 'Temp' that stores temporary values.
|
|
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 heap of trial points.
|
|
Returns the tube.
|
|
Returns the tube semi width.
|
|
Should computations be continued? If 'KeepOnWorking' returns 'true', then computations should be continued.
Reimplemented in Multivac::CFastMarchingFirstOrderEngquistOsher< T >. |
|
Should any initialization be performed? If 'NeedInitialization' returns 'true', then the initializer should reinit the method (level set function, speed function, mesh, ...).
|
|
Should speed rates be updated? If 'NeedSpeedUpdate' returns 'true', then the speed class updater should be called so as to update the speed function.
|
|
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. |
|
'NeedInitializationFlag' indicates whether reinitialization should be performed. |
|
'NeedSpeedUpdateFlag' indicates whether speed rates should be updated (by calling the speed class updater). |
|
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. |
|
'PointersToNodes' element (i, j) points to the corresponding node in 'TrialPoints' (if it exists). |
|
Temporary values may be stored in 'Temp' in order to perform computations. |
|
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. |
|
Tube points are stored in 'Tube'. It defines the tube that is used in the narrow band level set method. |