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
61 + 2.0 / (hr_m[2] * hr_m[2]);
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]);
virtual bool isInside(int x, int y, int z) const =0
double getYRangeMax() const
double getXRangeMax() const
IntVector_t nr_m
number of mesh points in each direction
RegularDomain(const IntVector_t &nr, const Vector_t &hr, const std::string &interpl)
Vektor< double, 3 > Vector_t
void robinBoundaryStencil(int z, double &F, double &B, double &C) const
function to handle the open boundary condition in longitudinal direction
double getYRangeMin() const
double getXRangeMin() const
Vector_t hr_m
mesh-spacings in each direction
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 setMinMaxZ(double minz, double maxz)