|
OOFEM 3.0
|
#include <fastmarchingmethod.h>
Classes | |
| class | FMM_DofmanRecord |
| DofManager Fast Marching data record. More... | |
| struct | FMM_DofmanRecordDelegate_greater |
Public Member Functions | |
| FastMarchingMethod (Domain *d) | |
| void | solve (FloatArray &dmanValues, const std ::list< int > &bcDofMans, double F) |
| const char * | giveClassName () const |
Protected Types | |
| enum | FNM_Status_Type { FMM_Status_FAR , FMM_Status_TRIAL , FMM_Status_KNOWN , FMM_Status_KNOWN_BOUNDARY } |
| Type describing node status for fast marching method. More... | |
Protected Member Functions | |
| void | initialize (FloatArray &dmanValues, const std ::list< int > &bcDofMans, double F) |
| Initialize receiver. | |
| void | updateTrialValue (FloatArray &dmanValues, int id, double F) |
| Updates the distance of trial node with given id). | |
| int | getSmallestTrialDofMan () |
| Get the trial point with smallest T; zero if empty. | |
Protected Attributes | |
| std ::vector< FMM_DofmanRecord > | dmanRecords |
| Array of DofManager records. | |
| const FloatArray * | dmanValuesPtr |
| Pointer to working set of dmanValues. | |
| Domain * | domain |
| Domain. | |
| std ::priority_queue< int, std ::vector< int >, FMM_DofmanRecordDelegate_greater > | dmanTrialQueue |
| Priority queue for trial T values. | |
Fast Marching Method for unstructured grids. Used to solve Eikonal equation and especially to construct signed distance function.
Definition at line 53 of file fastmarchingmethod.h.
|
protected |
Type describing node status for fast marching method.
Definition at line 58 of file fastmarchingmethod.h.
|
inline |
Constructor. Takes two two arguments. Creates FastMarchingMethod material interface instance with given number and belonging to given domain.
| d | Domain to which component belongs to. |
Definition at line 101 of file fastmarchingmethod.h.
References dmanTrialQueue, dmanValuesPtr, and domain.
|
protected |
Get the trial point with smallest T; zero if empty.
Definition at line 250 of file fastmarchingmethod.C.
References dmanTrialQueue.
Referenced by solve().
|
inline |
Definition at line 119 of file fastmarchingmethod.h.
|
protected |
Initialize receiver.
Definition at line 82 of file fastmarchingmethod.C.
References dmanRecords, domain, FMM_Status_FAR, FMM_Status_KNOWN, FMM_Status_KNOWN_BOUNDARY, FMM_Status_TRIAL, oofem::Element::giveDofManArray(), oofem::ConnectivityTable::giveDofManConnectivityArray(), and updateTrialValue().
Referenced by solve().
| void oofem::FastMarchingMethod::solve | ( | FloatArray & | dmanValues, |
| const std ::list< int > & | bcDofMans, | ||
| double | F ) |
Solution of problem.
| [in,out] | dmanValues | On input should contain boundary values for those dofnam that are known; on output will contain solution. |
| bcDofMans | A list containing IDs (numbers) of those dofmans, for which boundary value is known. If this number is positive, then the front will propagate from this dofman, if negative, then the front will not propagate from this dofman (usefull, when one needs to construct "one sided" solution). | |
| F | is the front propagation speed. |
Definition at line 46 of file fastmarchingmethod.C.
References dmanRecords, dmanValuesPtr, domain, FMM_Status_KNOWN, getSmallestTrialDofMan(), oofem::Element::giveDofManArray(), oofem::ConnectivityTable::giveDofManConnectivityArray(), initialize(), and updateTrialValue().
Referenced by oofem::LevelSetPCS::FMMReinitialization().
|
protected |
Updates the distance of trial node with given id).
Definition at line 133 of file fastmarchingmethod.C.
References oofem::FloatArray::at(), oofem::FloatArray::beDifferenceOf(), oofem::cubic3r(), oofem::distance(), dmanRecords, dmanTrialQueue, domain, oofem::FloatArray::dotProduct(), FMM_Status_FAR, FMM_Status_KNOWN, FMM_Status_TRIAL, oofem::Element::giveDofManagerNumber(), oofem::ConnectivityTable::giveDofManConnectivityArray(), oofem::Element::giveGeometryType(), oofem::max(), oofem::min(), oofem::FloatArray::normalize(), and oofem::sgn().
Referenced by initialize(), and solve().
|
protected |
Array of DofManager records.
Definition at line 72 of file fastmarchingmethod.h.
Referenced by initialize(), solve(), and updateTrialValue().
|
protected |
Priority queue for trial T values.
Definition at line 93 of file fastmarchingmethod.h.
Referenced by FastMarchingMethod(), getSmallestTrialDofMan(), and updateTrialValue().
|
protected |
Pointer to working set of dmanValues.
Definition at line 74 of file fastmarchingmethod.h.
Referenced by FastMarchingMethod(), and solve().
|
protected |
Definition at line 90 of file fastmarchingmethod.h.
Referenced by FastMarchingMethod(), initialize(), solve(), and updateTrialValue().