28 #ifndef ELLIPTICAL_DOMAIN_H
29 #define ELLIPTICAL_DOMAIN_H
55 return (isInsideEllipse && z >= 0 && z <
nr_m[2]);
88 double &scaleFactor)
const override;
91 double &scaleFactor)
const override;
int coordAccess(int idx) const
void compute(Vector_t hr, NDIndex< 3 > localId)
calculates intersection
std::multimap< int, double > EllipticPointList_t
int indexAccess(int x, int y, int z) const
conversion from (x,y,z) to index on the 3D grid
int toCoordIdx(int x, int y) const
conversion from (x,y) to index in xy plane
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
EllipticPointList_t intersectYDir_m
all intersection points with grid lines in Y direction
bool isInside(int x, int y, int z) const
queries if a given (x,y,z) coordinate lies inside the domain
EllipticPointList_t intersectXDir_m
all intersection points with grid lines in X direction
EllipticDomain(BoundaryGeometry *bgeom, IntVector_t nr, Vector_t hr, std::string interpl)
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 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
int getNumXY() const override