ViennaLS
Loading...
Searching...
No Matches
viennals::GeometricAdvect< T, D > Class Template Reference

This class advects the level set according to a given distribution. This distribution is overlayed at every grid point of the old surface. All cells within this distribution are then filled, with cells at the edge marked with the correct level set values. Therefore, the surface can be shifted long distances in one step. This algorithm is therefore preferable to normal advection if there is growth/reduction by a purely geometric directional distribution. More...

#include <lsGeometricAdvect.hpp>

Public Member Functions

 GeometricAdvect ()
 
template<class DistType , lsConcepts::IsBaseOf< GeometricAdvectDistribution< hrleCoordType, D >, DistType > = lsConcepts::assignable>
 GeometricAdvect (SmartPointer< Domain< T, D > > passedLevelSet, SmartPointer< DistType > passedDist, SmartPointer< Domain< T, D > > passedMaskLevelSet=nullptr)
 
void setLevelSet (SmartPointer< Domain< T, D > > passedLevelSet)
 Set the levelset which should be advected.
 
template<class DistType , lsConcepts::IsBaseOf< GeometricAdvectDistribution< hrleCoordType, D >, DistType > = lsConcepts::assignable>
void setAdvectionDistribution (SmartPointer< DistType > passedDist)
 Set which advection distribution to use. Must be derived from GeometricAdvectDistribution.
 
void setMaskLevelSet (SmartPointer< Domain< T, D > > passedMaskLevelSet)
 Set the levelset, which should be used as a mask. This level set has to be wrapped by the levelset set by setLevelSet, so the mask is entirely inside the advected level set.
 
void apply ()
 Perform geometrical advection.
 

Detailed Description

template<class T, int D>
class viennals::GeometricAdvect< T, D >

This class advects the level set according to a given distribution. This distribution is overlayed at every grid point of the old surface. All cells within this distribution are then filled, with cells at the edge marked with the correct level set values. Therefore, the surface can be shifted long distances in one step. This algorithm is therefore preferable to normal advection if there is growth/reduction by a purely geometric directional distribution.

Constructor & Destructor Documentation

◆ GeometricAdvect() [1/2]

template<class T , int D>
viennals::GeometricAdvect< T, D >::GeometricAdvect ( )
inline

◆ GeometricAdvect() [2/2]

template<class T , int D>
template<class DistType , lsConcepts::IsBaseOf< GeometricAdvectDistribution< hrleCoordType, D >, DistType > = lsConcepts::assignable>
viennals::GeometricAdvect< T, D >::GeometricAdvect ( SmartPointer< Domain< T, D > > passedLevelSet,
SmartPointer< DistType > passedDist,
SmartPointer< Domain< T, D > > passedMaskLevelSet = nullptr )
inline

Member Function Documentation

◆ apply()

template<class T , int D>
void viennals::GeometricAdvect< T, D >::apply ( )
inline

Perform geometrical advection.

◆ setAdvectionDistribution()

template<class T , int D>
template<class DistType , lsConcepts::IsBaseOf< GeometricAdvectDistribution< hrleCoordType, D >, DistType > = lsConcepts::assignable>
void viennals::GeometricAdvect< T, D >::setAdvectionDistribution ( SmartPointer< DistType > passedDist)
inline

Set which advection distribution to use. Must be derived from GeometricAdvectDistribution.

◆ setLevelSet()

template<class T , int D>
void viennals::GeometricAdvect< T, D >::setLevelSet ( SmartPointer< Domain< T, D > > passedLevelSet)
inline

Set the levelset which should be advected.

◆ setMaskLevelSet()

template<class T , int D>
void viennals::GeometricAdvect< T, D >::setMaskLevelSet ( SmartPointer< Domain< T, D > > passedMaskLevelSet)
inline

Set the levelset, which should be used as a mask. This level set has to be wrapped by the levelset set by setLevelSet, so the mask is entirely inside the advected level set.


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