26 #ifndef BOXCORNER_DOMAIN_H
27 #define BOXCORNER_DOMAIN_H
88 inline double getB(
double z)
const {
96 inline bool isInside(
int x,
int y,
int z)
const {
97 const double xx = (x - (
nr_m[0] - 1) / 2.0) *
hr_m[0];
98 const double yy = (y - (
nr_m[1] - 1) / 2.0) *
hr_m[1];
138 return (z *
nr_m[1] + y) *
nr_m[0] + x;
152 double &scaleFactor)
const override;
155 double &scaleFactor)
const override;
int coordAccess(int idx) const
BoxCornerPointList IntersectYDir
all intersection points with grid lines in Y direction
std::multimap< std::pair< int, int >, double > BoxCornerPointList
double C_m
height of the corner
BoxCornerPointList IntersectXDir
all intersection points with grid lines in X direction
void compute(Vector_t hr, NDIndex< 3 > localId)
void linearInterpolation(int x, int y, int z, StencilValue_t &value, double &scaleFactor) const override
different interpolation methods for boundary points
void quadraticInterpolation(int x, int y, int z, StencilValue_t &value, double &scaleFactor) const override
BoxCornerDomain(double A, double B, double C, double L1, double L2, IntVector_t nr, Vector_t hr, std::string interpl)
bool isInside(int x, int y, int z) const
queries if a given (x,y,z) coordinate lies inside the domain
double actBMin_m
because the geometry can change in the y direction
int indexAccess(int x, int y, int z) const
conversion from (x,y,z) to index on the 3D grid
double getB(double z) const
as a function of z, determine the height (B) of the geometry
double getXIntersection(double cx, int) const
double getYIntersection(double cy, int z) const
int toCoordIdx(int x, int y, int z) const
conversion from (x,y,z) to index in xyz plane
IntVector_t nr_m
number of mesh points in each direction
std::map< int, int > coordMap_m
mapping idx -> (x,y,z)
double getXRangeMax() const
double getYRangeMax() const
double getZRangeMin() const
double getXRangeMin() const
std::map< int, int > idxMap_m
mapping (x,y,z) -> idx
double getYRangeMin() const
Vector_t hr_m
mesh-spacings in each direction
Stencil< double > StencilValue_t
double getZRangeMax() const