Jet  v1.3.3
Public Member Functions | Protected Member Functions | List of all members
jet::IterativeLevelSetSolver2 Class Referenceabstract

Abstract base class for 2-D PDE-based iterative level set solver. More...

#include <jet/iterative_level_set_solver2.h>

Inheritance diagram for jet::IterativeLevelSetSolver2:
jet::LevelSetSolver2 jet::EnoLevelSetSolver2 jet::UpwindLevelSetSolver2

Public Member Functions

 IterativeLevelSetSolver2 ()
 Default constructor. More...
 
virtual ~IterativeLevelSetSolver2 ()
 Default destructor. 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
 
double maxCfl () const
 Returns the maximum CFL limit. More...
 
void setMaxCfl (double newMaxCfl)
 Sets the maximum CFL limit. More...
 
- Public Member Functions inherited from jet::LevelSetSolver2
 LevelSetSolver2 ()
 Default constructor. More...
 
virtual ~LevelSetSolver2 ()
 Default destructor. More...
 

Protected Member Functions

virtual void getDerivatives (ConstArrayAccessor2< double > grid, const Vector2D &gridSpacing, size_t i, size_t j, std::array< double, 2 > *dx, std::array< double, 2 > *dy) const =0
 Computes the derivatives for given grid point. More...
 

Detailed Description

Abstract base class for 2-D PDE-based iterative level set solver.

This class provides infrastructure for 2-D PDE-based iterative level set solver. Internally, the class implements upwind-style wave propagation and the inheriting classes must provide a way to compute the derivatives for given grid points.

See also
Osher, Stanley, and Ronald Fedkiw. Level set methods and dynamic implicit surfaces. Vol. 153. Springer Science & Business Media, 2006.

Constructor & Destructor Documentation

◆ IterativeLevelSetSolver2()

jet::IterativeLevelSetSolver2::IterativeLevelSetSolver2 ( )

Default constructor.

◆ ~IterativeLevelSetSolver2()

virtual jet::IterativeLevelSetSolver2::~IterativeLevelSetSolver2 ( )
virtual

Default destructor.

Member Function Documentation

◆ extrapolate() [1/3]

void jet::IterativeLevelSetSolver2::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 jet::LevelSetSolver2.

◆ extrapolate() [2/3]

void jet::IterativeLevelSetSolver2::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 jet::LevelSetSolver2.

◆ extrapolate() [3/3]

void jet::IterativeLevelSetSolver2::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 jet::LevelSetSolver2.

◆ getDerivatives()

virtual void jet::IterativeLevelSetSolver2::getDerivatives ( ConstArrayAccessor2< double >  grid,
const Vector2D gridSpacing,
size_t  i,
size_t  j,
std::array< double, 2 > *  dx,
std::array< double, 2 > *  dy 
) const
protectedpure virtual

Computes the derivatives for given grid point.

Implemented in jet::EnoLevelSetSolver2, and jet::UpwindLevelSetSolver2.

◆ maxCfl()

double jet::IterativeLevelSetSolver2::maxCfl ( ) const

Returns the maximum CFL limit.

◆ reinitialize()

void jet::IterativeLevelSetSolver2::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 jet::LevelSetSolver2.

◆ setMaxCfl()

void jet::IterativeLevelSetSolver2::setMaxCfl ( double  newMaxCfl)

Sets the maximum CFL limit.

This function sets the maximum CFL limit for the internal upwind-style PDE calculation. The negative input will be clamped to 0.


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