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 override {
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;
BoxCornerPointList IntersectYDir
all intersection points with grid lines in Y direction
int indexAccess(int x, int y, int z) const override
conversion from (x,y,z) to index on the 3D grid
std::multimap< std::pair< int, int >, double > BoxCornerPointList
double C_m
height of the corner
void compute(Vector_t hr, NDIndex< 3 > localId) override
BoxCornerPointList IntersectXDir
all intersection points with grid lines in X direction
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)
double actBMin_m
because the geometry can change in the y direction
double getB(double z) const
as a function of z, determine the height (B) of the geometry
double getXIntersection(double cx, int) const
bool isInside(int x, int y, int z) const override
queries if a given (x,y,z) coordinate lies inside the domain
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
int coordAccess(int idx) const override
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