25# ifndef __BITPIT_LEVELSET_COMMON_HPP__
26# define __BITPIT_LEVELSET_COMMON_HPP__
31# include <unordered_map>
40const double LEVELSET_NARROW_BAND_UNLIMITED = std::numeric_limits<double>::max();
46namespace levelSetDefaults{
48 const std::array<double,3>
GRADIENT = {{0.,0.,0.}};
49 const std::array<double,3>
POINT = {{0.,0.,0.}};
51 const double SIZE = 1.e18 ;
55 const std::array<double,3>
NORMAL = {{0.,0.,0.}};
196 return static_cast<int>(field);
203typedef std::vector<LevelSetField> LevelSetFieldset;
208template<
typename value_t>
209using LevelSetFieldMap = std::unordered_map<LevelSetField, value_t, LevelSetFieldHasher>;
LevelSetIntersectionStatus
LevelSetBulkEvaluationMode
@ NARROW_BAND
Narrow band zone.
@ NONE
No caching will be performed.
@ FULL
Data are cached in the whole domain.
@ ON_DEMAND
Data are cached only where explicitly evaluated.
@ UNKNOWN
Unknown location.
@ NARROW_BAND_INTERSECTED
Narrow band zone, the cell intersects the surface.
@ SIGN_PROPAGATION
Sign is propagated from the narrow band, no other data will be evaluated.
@ EXACT
Exact data is evaluated.
const std::array< double, 3 > GRADIENT
const double NARROW_BAND_SIZE
const std::array< double, 3 > POINT
const std::array< double, 3 > NORMAL
A public container which includes all information provided by LevelSet.
std::array< double, 3 > gradient