Namespaces | |
internal | |
Classes | |
class | Iterator |
Iterator over all directions contained in a stencil. More... | |
Typedefs | |
typedef internal::$name | $name |
Enumerations | |
enum | Direction { C = 0, N = 1, S = 2, W = 3, E = 4, T = 5, B = 6, NW = 7, NE = 8, SW = 9, SE = 10, TN = 11, TS = 12, TW = 13, TE = 14, BN = 15, BS = 16, BW = 17, BE = 18, TNE = 19, TNW = 20, TSE = 21, TSW = 22, BNE = 23, BNW = 24, BSE = 25, BSW = 26, INVALID_DIR = 27 } |
enum | BinaryDirection { Bin_C = 1<<0, Bin_N = 1<<1, Bin_S = 1<<2, Bin_W = 1<<3, Bin_E = 1<<4, Bin_T = 1<<5, Bin_B = 1<<6, Bin_NW = 1<<7, Bin_NE = 1<<8, Bin_SW = 1<<9, Bin_SE = 1<<10, Bin_TN = 1<<11, Bin_TS = 1<<12, Bin_TW = 1<<13, Bin_TE = 1<<14, Bin_BN = 1<<15, Bin_BS = 1<<16, Bin_BW = 1<<17, Bin_BE = 1<<18, Bin_TNE = 1<<19, Bin_TNW = 1<<20, Bin_TSE = 1<<21, Bin_TSW = 1<<22, Bin_BNE = 1<<23, Bin_BNW = 1<<24, Bin_BSE = 1<<25, Bin_BSW = 1<<26 } |
Functions | |
template<typename U > | |
Direction | getQuadrant (const math::GenericAABB< U > &aabb, const typename math::GenericAABB< U >::vector_type &p) |
Determine sin which neighboring section of an AABB a point lies. More... | |
Direction | vectorToDirection (cell_idx_t x, cell_idx_t y, cell_idx_t z) |
Maps a (x,y,z) direction vector to its direction. More... | |
Direction | vectorToDirection (Vector3< cell_idx_t > vec) |
bool | isFaceDirection (Direction dir) |
bool | isEdgeDirection (Direction dir) |
bool | isCornerDirection (Direction dir) |
Direction | directionFromAxis (int axis, bool minOrMax) |
Maps (direction,axis) pair to direction. More... | |
Direction | directionFromAxis (uint_t axis, bool minOrMax) |
Maps (direction,axis) pair to direction. More... | |
Cell | operator+ (const Cell &cell, const Direction d) |
Computes neighbor from cell in direction d. More... | |
Cell | operator- (const Cell &cell, const Direction d) |
Computes neighbor from cell in direction inverseDir[d]. More... | |
Cell & | operator+= (Cell &cell, const Direction d) |
Shifts cell to its neighbor in direction d. More... | |
Cell & | operator-= (Cell &cell, const Direction d) |
Shifts cell to its neighbor in direction inverseDir[d]. More... | |
Variables | |
const uint_t | NR_OF_DIRECTIONS = 27 |
const int | cx [NR_OF_DIRECTIONS] |
The x component for each direction. More... | |
const int | cy [NR_OF_DIRECTIONS] |
The y component for each direction. More... | |
const int | cz [NR_OF_DIRECTIONS] |
The z component for each direction. More... | |
const int | c [3][NR_OF_DIRECTIONS] |
The x,y,z component for each direction. More... | |
const real_t | cNorm [3][NR_OF_DIRECTIONS] |
The x,y,z component for each normalized direction. More... | |
const std::string | dirToString [NR_OF_DIRECTIONS] |
String representation for each direction. More... | |
const BinaryDirection | dirToBinary [27] |
Binary encoded direction for each direction. More... | |
const Direction | inverseDir [NR_OF_DIRECTIONS] |
Inverse directions. More... | |
const real_t | dirLength [NR_OF_DIRECTIONS] |
Length for each direction. More... | |
const real_t | gaussianWeights [NR_OF_DIRECTIONS] |
const uint_t | gaussianMultipliers [NR_OF_DIRECTIONS] |
const Direction | mirrorX [NR_OF_DIRECTIONS] |
The mirrored directions (flip W-E) More... | |
const Direction | mirrorY [NR_OF_DIRECTIONS] |
The mirrored directions (flip N-S) More... | |
const Direction | mirrorZ [NR_OF_DIRECTIONS] |
The mirrored directions (flip T-B) More... | |
const Direction | map2Dto3D [3][NR_OF_DIRECTIONS] |
Maps from 2D directions (C, N, S, W, E, NW, NE, SW, SE) to 3D directions, by slicing through x,y or z coordinate. More... | |
|
inline |
Maps (direction,axis) pair to direction.
axis | 0,1 or 2 standing for x,y,z |
minOrMax | if true, the direction pointing in the negative axis direction is returned, if false, the positive axis direction |
Maps (direction,axis) pair to direction.
axis | 0,1 or 2 standing for x,y,z |
minOrMax | if true, the direction pointing in the negative axis direction is returned, if false, the positive axis direction |
Direction walberla::stencil::getQuadrant | ( | const math::GenericAABB< U > & | aabb, |
const typename math::GenericAABB< U >::vector_type & | p | ||
) |
Determine sin which neighboring section of an AABB a point lies.
If p lies within aabb returns C. Other it is determined in which of the 26 imaginary neighboring AABBs p is located. The direction of the from aabb to the determined neighboring aabb is returned
2D Example:
----------------------— Let aabb be the AABB marked with asterisks. The boxes surrounding aabb are the eight (in 2D) imaginary | | | | neighboring boxes. Let p be marked with x. The result of the function would be NE. | | | x |
| | | | -----—*********-----— | * * | | * * | | * * | -----—*********-----—
T | The scalar data type used for the AABB and the tested point |
aabb | The AABB |
p | The tested point |
|
inline |
|
inline |
|
inline |
Computes neighbor from cell in direction d.
cell | origin cell |
d | direction pointing towards the computed neighbor |
Shifts cell to its neighbor in direction d.
cell | shifted cell |
d | direction in which to shift the cell |
Computes neighbor from cell in direction inverseDir[d].
cell | origin cell |
d | direction pointing away from the computed neighbor |
Shifts cell to its neighbor in direction inverseDir[d].
cell | shifted cell |
d | direction opposite to which the cell gets shifted |
|
inline |
Maps a (x,y,z) direction vector to its direction.
|
inline |
const int walberla::stencil::c[3][NR_OF_DIRECTIONS] |
The x,y,z component for each direction.
const real_t walberla::stencil::cNorm[3][NR_OF_DIRECTIONS] |
The x,y,z component for each normalized direction.
const int walberla::stencil::cx[NR_OF_DIRECTIONS] |
The x component for each direction.
const int walberla::stencil::cy[NR_OF_DIRECTIONS] |
The y component for each direction.
const int walberla::stencil::cz[NR_OF_DIRECTIONS] |
The z component for each direction.
const real_t walberla::stencil::dirLength[NR_OF_DIRECTIONS] |
Length for each direction.
const BinaryDirection walberla::stencil::dirToBinary[27] |
const std::string walberla::stencil::dirToString[NR_OF_DIRECTIONS] |
String representation for each direction.
const uint_t walberla::stencil::gaussianMultipliers[NR_OF_DIRECTIONS] |
const real_t walberla::stencil::gaussianWeights[NR_OF_DIRECTIONS] |
const Direction walberla::stencil::inverseDir[NR_OF_DIRECTIONS] |
const Direction walberla::stencil::map2Dto3D[3][NR_OF_DIRECTIONS] |
Maps from 2D directions (C, N, S, W, E, NW, NE, SW, SE) to 3D directions, by slicing through x,y or z coordinate.
The first array index represents the slice dimension ( 0 for x, 1 for y, 2 for z) Example: printing a slice through x coordinate (keeping x fixed) of a D3Q19 field:
const Direction walberla::stencil::mirrorX[NR_OF_DIRECTIONS] |
const Direction walberla::stencil::mirrorY[NR_OF_DIRECTIONS] |
const Direction walberla::stencil::mirrorZ[NR_OF_DIRECTIONS] |
const uint_t walberla::stencil::NR_OF_DIRECTIONS = 27 |