This is a special 19-point stencil that supports optimal fifth-order WENO upwinding, second-order central differencing, Laplacian, and zero-crossing test.
More...
|
| WenoStencil (const GridType &grid) |
|
| WenoStencil (const GridType &grid, double dx) |
|
ValueType | normSqGrad (ValueType isoValue=ValueType(0)) const |
| Return the norm-square of the WENO upwind gradient (computed via WENO upwinding and Godunov's scheme) at the previously buffered location.
|
|
Vec3< ValueType > | gradient (const Vec3< ValueType > &V) const |
|
Vec3< ValueType > | gradient () const |
|
ValueType | laplacian () const |
|
bool | zeroCrossing () const |
|
template<int i, int j, int k> |
unsigned int | pos () const |
| Return linear offset for the specified stencil point relative to its center.
|
|
void | moveTo (const Coord &ijk) |
| Initialize the stencil buffer with the values of voxel (i, j, k) and its neighbors.
|
|
void | moveTo (const Coord &ijk, const ValueType ¢erValue) |
| Initialize the stencil buffer with the values of voxel (i, j, k) and its neighbors. The method also takes a value of the center element of the stencil, assuming it is already known.
|
|
void | moveTo (const IterType &iter) |
| Initialize the stencil buffer with the values of voxel (x, y, z) and its neighbors.
|
|
void | moveTo (const Vec3< RealType > &xyz) |
| Initialize the stencil buffer with the values of voxel (x, y, z) and its neighbors.
|
|
const ValueType & | getValue (unsigned int pos=0) const |
| Return the value from the stencil buffer with linear offset pos.
|
|
const ValueType & | getValue () const |
| Return the value at the specified location relative to the center of the stencil.
|
|
void | setValue (const ValueType &value) |
| Set the value at the specified location relative to the center of the stencil.
|
|
ValueType | mean () const |
| Return the mean value of the current stencil.
|
|
ValueType | min () const |
| Return the smallest value in the stencil buffer.
|
|
ValueType | max () const |
| Return the largest value in the stencil buffer.
|
|
const Coord & | getCenterCoord () const |
| Return the coordinates of the center point of the stencil.
|
|
const ValueType & | getCenterValue () const |
| Return the value at the center of the stencil.
|
|
bool | intersects (const ValueType &isoValue=ValueType(0)) const |
| Return true if the center of the stencil intersects the iso-contour specified by the isoValue.
|
|
Mask | intersectionMask (ValueType isoValue=ValueType(0)) const |
| Return true a bit-mask where the 6 lower bits indicates if the center of the stencil intersects the iso-contour specified by the isoValue.
|
|
const GridType & | grid () const |
| Return a const reference to the grid from which this stencil was constructed.
|
|
const AccessorType & | accessor () const |
| Return a const reference to the ValueAccessor associated with this Stencil.
|
|
template<
typename GridT,
typename RealT = typename GridT::ValueType>
class nanovdb::WenoStencil< GridT, RealT >
This is a special 19-point stencil that supports optimal fifth-order WENO upwinding, second-order central differencing, Laplacian, and zero-crossing test.
- Note
- For optimal random access performance this class includes its own grid accessor.
Return true a bit-mask where the 6 lower bits indicates if the center of the stencil intersects the iso-contour specified by the isoValue.
- Note
- There are 2^6 = 64 different possible cases, including no intersections!
The ordering of bit mask is ( -x, +x, -y, +y, -z, +z ), so to check if there is an intersection in -y use (mask & (1u<<2)) where mask is ther return value from this function. To check if there are any intersections use mask!=0u, and for no intersections use mask==0u. To count the number of intersections use __builtin_popcount(mask).