Abstract base class for 2-D PDE-based iterative level set solver. More...
#include <Core/Solver/LevelSet/IterativeLevelSetSolver2.hpp>
Public Member Functions | |
IterativeLevelSetSolver2 ()=default | |
Default constructor. More... | |
IterativeLevelSetSolver2 (const IterativeLevelSetSolver2 &)=delete | |
Deleted copy constructor. More... | |
IterativeLevelSetSolver2 (IterativeLevelSetSolver2 &&) noexcept=delete | |
Deleted move constructor. More... | |
~IterativeLevelSetSolver2 () override=default | |
Default virtual destructor. More... | |
IterativeLevelSetSolver2 & | operator= (const IterativeLevelSetSolver2 &)=delete |
Deleted copy assignment operator. More... | |
IterativeLevelSetSolver2 & | operator= (IterativeLevelSetSolver2 &&) noexcept=delete |
Deleted move assignment operator. 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 | GetMaxCFL () const |
Returns the maximum CFL limit. More... | |
void | SetMaxCFL (double newMaxCfl) |
Sets the maximum CFL limit. More... | |
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... | |
LevelSetSolver2 & | operator= (const LevelSetSolver2 &)=delete |
Deleted copy assignment operator. More... | |
LevelSetSolver2 & | operator= (LevelSetSolver2 &&) noexcept=delete |
Deleted move assignment operator. More... | |
Protected Member Functions | |
virtual void | GetDerivatives (ConstArrayView2< 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() [1/3]
|
default |
Default constructor.
◆ IterativeLevelSetSolver2() [2/3]
|
delete |
Deleted copy constructor.
◆ IterativeLevelSetSolver2() [3/3]
|
deletenoexcept |
Deleted move constructor.
◆ ~IterativeLevelSetSolver2()
|
overridedefault |
Default virtual destructor.
Member Function Documentation
◆ Extrapolate() [1/3]
|
overridevirtual |
Extrapolates given scalar field from negative to positive SDF region.
- Parameters
-
input Input scalar field to be extrapolated. sdf Reference signed-distance field. maxDistance Max range of extrapolation. output Output scalar field.
Implements CubbyFlow::LevelSetSolver2.
◆ Extrapolate() [2/3]
|
overridevirtual |
Extrapolates given collocated vector field from negative to positive SDF region.
- Parameters
-
input Input collocated vector field to be extrapolated. sdf Reference signed-distance field. maxDistance Max range of extrapolation. output Output collocated vector field.
Implements CubbyFlow::LevelSetSolver2.
◆ Extrapolate() [3/3]
|
overridevirtual |
Extrapolates given face-centered vector field from negative to positive SDF region.
- Parameters
-
input Input face-centered field to be extrapolated. sdf Reference signed-distance field. maxDistance Max range of extrapolation. output Output face-centered vector field.
Implements CubbyFlow::LevelSetSolver2.
◆ GetDerivatives()
|
protectedpure virtual |
Computes the derivatives for given grid point.
Implemented in CubbyFlow::ENOLevelSetSolver2, and CubbyFlow::UpwindLevelSetSolver2.
◆ GetMaxCFL()
double CubbyFlow::IterativeLevelSetSolver2::GetMaxCFL | ( | ) | const |
Returns the maximum CFL limit.
◆ operator=() [1/2]
|
delete |
Deleted copy assignment operator.
◆ operator=() [2/2]
|
deletenoexcept |
Deleted move assignment operator.
◆ Reinitialize()
|
overridevirtual |
Reinitializes given scalar field to signed-distance field.
- Parameters
-
inputSDF Input signed-distance field which can be distorted. maxDistance Max range of reinitialization. outputSDF Output signed-distance field.
Implements CubbyFlow::LevelSetSolver2.
◆ SetMaxCFL()
void CubbyFlow::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:
- Core/Solver/LevelSet/IterativeLevelSetSolver2.hpp