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

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

#include <jet/iterative_level_set_solver3.h>

Inheritance diagram for jet::IterativeLevelSetSolver3:
jet::LevelSetSolver3 jet::EnoLevelSetSolver3 jet::UpwindLevelSetSolver3

Public Member Functions

 IterativeLevelSetSolver3 ()
 Default constructor. More...
 
virtual ~IterativeLevelSetSolver3 ()
 Default destructor. More...
 
void reinitialize (const ScalarGrid3 &inputSdf, double maxDistance, ScalarGrid3 *outputSdf) override
 
void extrapolate (const ScalarGrid3 &input, const ScalarField3 &sdf, double maxDistance, ScalarGrid3 *output) override
 
void extrapolate (const CollocatedVectorGrid3 &input, const ScalarField3 &sdf, double maxDistance, CollocatedVectorGrid3 *output) override
 
void extrapolate (const FaceCenteredGrid3 &input, const ScalarField3 &sdf, double maxDistance, FaceCenteredGrid3 *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::LevelSetSolver3
 LevelSetSolver3 ()
 Default constructor. More...
 
virtual ~LevelSetSolver3 ()
 Default destructor. More...
 

Protected Member Functions

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

Detailed Description

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

This class provides infrastructure for 3-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

◆ IterativeLevelSetSolver3()

jet::IterativeLevelSetSolver3::IterativeLevelSetSolver3 ( )

Default constructor.

◆ ~IterativeLevelSetSolver3()

virtual jet::IterativeLevelSetSolver3::~IterativeLevelSetSolver3 ( )
virtual

Default destructor.

Member Function Documentation

◆ extrapolate() [1/3]

void jet::IterativeLevelSetSolver3::extrapolate ( const CollocatedVectorGrid3 input,
const ScalarField3 sdf,
double  maxDistance,
CollocatedVectorGrid3 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::LevelSetSolver3.

◆ extrapolate() [2/3]

void jet::IterativeLevelSetSolver3::extrapolate ( const FaceCenteredGrid3 input,
const ScalarField3 sdf,
double  maxDistance,
FaceCenteredGrid3 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::LevelSetSolver3.

◆ extrapolate() [3/3]

void jet::IterativeLevelSetSolver3::extrapolate ( const ScalarGrid3 input,
const ScalarField3 sdf,
double  maxDistance,
ScalarGrid3 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::LevelSetSolver3.

◆ getDerivatives()

virtual void jet::IterativeLevelSetSolver3::getDerivatives ( ConstArrayAccessor3< double >  grid,
const Vector3D gridSpacing,
size_t  i,
size_t  j,
size_t  k,
std::array< double, 2 > *  dx,
std::array< double, 2 > *  dy,
std::array< double, 2 > *  dz 
) const
protectedpure virtual

Computes the derivatives for given grid point.

Implemented in jet::EnoLevelSetSolver3, and jet::UpwindLevelSetSolver3.

◆ maxCfl()

double jet::IterativeLevelSetSolver3::maxCfl ( ) const

Returns the maximum CFL limit.

◆ reinitialize()

void jet::IterativeLevelSetSolver3::reinitialize ( const ScalarGrid3 inputSdf,
double  maxDistance,
ScalarGrid3 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::LevelSetSolver3.

◆ setMaxCfl()

void jet::IterativeLevelSetSolver3::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: