28 #ifndef ELLIPTICAL_DOMAIN_H
29 #define ELLIPTICAL_DOMAIN_H
48 bool isInside(
int x,
int y,
int z)
const override {
55 return (isInsideEllipse && z >= 0 && z <
nr_m[2]);
88 double &scaleFactor)
const override;
91 double &scaleFactor)
const override;
94 #endif //#ifdef ELLIPTICAL_DOMAIN_H
std::multimap< int, double > EllipticPointList_t
double getYRangeMax() const
double getXRangeMax() const
int indexAccess(int x, int y, int z) const override
conversion from (x,y,z) to index on the 3D grid
IntVector_t nr_m
number of mesh points in each direction
void compute(Vector_t hr, NDIndex< 3 > localId) override
calculates intersection
std::map< int, int > idxMap_m
mapping (x,y,z) -> idx
Stencil< double > StencilValue_t
EllipticDomain(BoundaryGeometry *bgeom, IntVector_t nr, Vector_t hr, std::string interpl)
double getYRangeMin() const
int toCoordIdx(int x, int y) const
conversion from (x,y) to index in xy plane
double getXRangeMin() const
Vector_t hr_m
mesh-spacings in each direction
bool isInside(int x, int y, int z) const override
queries if a given (x,y,z) coordinate lies inside the domain
void quadraticInterpolation(int x, int y, int z, StencilValue_t &value, double &scaleFactor) const override
EllipticPointList_t intersectXDir_m
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
std::map< int, int > coordMap_m
mapping idx -> (x,y,z)
int getNumXY() const override
int coordAccess(int idx) const override
EllipticPointList_t intersectYDir_m
all intersection points with grid lines in Y direction