23 const std::string& interpl)
25 , nxy_m(
nr[0] *
nr[1])
35 double zsize = rmax[2] - rmin[2];
38 rmax[2] + zsize * (1.0 + dh));
43 for (
int i = 0; i < 3; ++i)
44 hr[i] = (mymax[i] - origin[i]) /
nr_m[i];
49 double &scaleFactor)
const
85 if (z == 0 || z ==
nr_m[2] - 1) {
98 double d = 0.5 *
hr_m[2] * (
nr_m[2] - 1);
99 C += 2.0 / (d *
hr_m[2]);
IntVector_t nr_m
number of mesh points in each direction
double getXRangeMax() const
double getYRangeMax() const
void setMinMaxZ(double minz, double maxz)
double getXRangeMin() const
virtual bool isInside(int x, int y, int z) const =0
double getYRangeMin() const
Vector_t hr_m
mesh-spacings in each direction
RegularDomain(const IntVector_t &nr, const Vector_t &hr, const std::string &interpl)
void resizeMesh(Vector_t &origin, Vector_t &hr, const Vector_t &rmin, const Vector_t &rmax, double dh) override
void constantInterpolation(int x, int y, int z, StencilValue_t &value, double &scaleFactor) const override
different interpolation methods for boundary points
void robinBoundaryStencil(int z, double &F, double &B, double &C) const
function to handle the open boundary condition in longitudinal direction
Vektor< double, 3 > Vector_t