CubbyFlow::FMMLevelSetSolver2 Class Referencefinal

Two-dimensional fast marching method (FMM) implementation. More...

#include <Core/Solver/LevelSet/FMMLevelSetSolver2.hpp>

Inheritance diagram for CubbyFlow::FMMLevelSetSolver2:
CubbyFlow::LevelSetSolver2

Public Member Functions

 FMMLevelSetSolver2 ()=default
 Default constructor. More...
 
void Reinitialize (const ScalarGrid2 &inputSDF, double maxDistance, ScalarGrid2 *outputSDF) override
 
void Extrapolate (const ScalarGrid2 &input, const ScalarField2 &sdf, double maxDistance, ScalarGrid2 *output) override
 
void Extrapolate (const CollocatedVectorGrid2 &input, const ScalarField2 &sdf, double maxDistance, CollocatedVectorGrid2 *output) override
 
void Extrapolate (const FaceCenteredGrid2 &input, const ScalarField2 &sdf, double maxDistance, FaceCenteredGrid2 *output) override
 
- Public Member Functions inherited from CubbyFlow::LevelSetSolver2
 LevelSetSolver2 ()=default
 Default constructor. More...
 
 LevelSetSolver2 (const LevelSetSolver2 &)=delete
 Deleted copy constructor. More...
 
 LevelSetSolver2 (LevelSetSolver2 &&) noexcept=delete
 Deleted move constructor. More...
 
virtual ~LevelSetSolver2 ()=default
 Default virtual destructor. More...
 
LevelSetSolver2operator= (const LevelSetSolver2 &)=delete
 Deleted copy assignment operator. More...
 
LevelSetSolver2operator= (LevelSetSolver2 &&) noexcept=delete
 Deleted move assignment operator. More...
 

Detailed Description

Two-dimensional fast marching method (FMM) implementation.

This class implements 2-D FMM. First-order upwind-style differencing is used to solve the PDE.

See also
https://math.berkeley.edu/~sethian/2006/Explanations/fast_marching_explain.html
Sethian, James A. "A fast marching level set method for monotonically advancing fronts." Proceedings of the National Academy of Sciences 93.4 (1996): 1591-1595.

Constructor & Destructor Documentation

◆ FMMLevelSetSolver2()

CubbyFlow::FMMLevelSetSolver2::FMMLevelSetSolver2 ( )
default

Default constructor.

Member Function Documentation

◆ Extrapolate() [1/3]

void CubbyFlow::FMMLevelSetSolver2::Extrapolate ( const ScalarGrid2 input,
const ScalarField2 sdf,
double  maxDistance,
ScalarGrid2 output 
)
overridevirtual

Extrapolates given scalar field from negative to positive SDF region.

Parameters
inputInput scalar field to be extrapolated.
sdfReference signed-distance field.
maxDistanceMax range of extrapolation.
outputOutput scalar field.

Implements CubbyFlow::LevelSetSolver2.

◆ Extrapolate() [2/3]

void CubbyFlow::FMMLevelSetSolver2::Extrapolate ( const CollocatedVectorGrid2 input,
const ScalarField2 sdf,
double  maxDistance,
CollocatedVectorGrid2 output 
)
overridevirtual

Extrapolates given collocated vector field from negative to positive SDF region.

Parameters
inputInput collocated vector field to be extrapolated.
sdfReference signed-distance field.
maxDistanceMax range of extrapolation.
outputOutput collocated vector field.

Implements CubbyFlow::LevelSetSolver2.

◆ Extrapolate() [3/3]

void CubbyFlow::FMMLevelSetSolver2::Extrapolate ( const FaceCenteredGrid2 input,
const ScalarField2 sdf,
double  maxDistance,
FaceCenteredGrid2 output 
)
overridevirtual

Extrapolates given face-centered vector field from negative to positive SDF region.

Parameters
inputInput face-centered field to be extrapolated.
sdfReference signed-distance field.
maxDistanceMax range of extrapolation.
outputOutput face-centered vector field.

Implements CubbyFlow::LevelSetSolver2.

◆ Reinitialize()

void CubbyFlow::FMMLevelSetSolver2::Reinitialize ( const ScalarGrid2 inputSDF,
double  maxDistance,
ScalarGrid2 outputSDF 
)
overridevirtual

Reinitializes given scalar field to signed-distance field.

Parameters
inputSDFInput signed-distance field which can be distorted.
maxDistanceMax range of reinitialization.
outputSDFOutput signed-distance field.

Implements CubbyFlow::LevelSetSolver2.


The documentation for this class was generated from the following file: