35#ifndef fastmarchingmethod_h
36#define fastmarchingmethod_h
86 {
return ( fabs( ( * dmanValuesPtrRef )->at(p) ) > fabs( ( * dmanValuesPtrRef )->at(q) ) ); }
116 void solve(
FloatArray &dmanValues,
const std :: list< int > &bcDofMans,
double F);
DofManager Fast Marching data record.
std ::vector< FMM_DofmanRecord > dmanRecords
Array of DofManager records.
std ::priority_queue< int, std ::vector< int >, FMM_DofmanRecordDelegate_greater > dmanTrialQueue
Priority queue for trial T values.
void initialize(FloatArray &dmanValues, const std ::list< int > &bcDofMans, double F)
Initialize receiver.
FNM_Status_Type
Type describing node status for fast marching method.
@ FMM_Status_TRIAL
Trial nodes, candidates for known (accepted).
@ FMM_Status_FAR
Nodes not yet visited.
@ FMM_Status_KNOWN_BOUNDARY
Boundary nodes, from which the front will not propagate.
@ FMM_Status_KNOWN
Accepted nodes.
const FloatArray * dmanValuesPtr
Pointer to working set of dmanValues.
int getSmallestTrialDofMan()
Get the trial point with smallest T; zero if empty.
const char * giveClassName() const
FastMarchingMethod(Domain *d)
void solve(FloatArray &dmanValues, const std ::list< int > &bcDofMans, double F)
void updateTrialValue(FloatArray &dmanValues, int id, double F)
Updates the distance of trial node with given id).
FMM_DofmanRecordDelegate_greater(const FloatArray **dv)
const FloatArray ** dmanValuesPtrRef
bool operator()(const int &p, const int &q) const