23 const std::string& interpl)
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)
Vektor< int, 3 > IntVector_t
double getXRangeMin() const
virtual bool isInside(int x, int y, int z) const =0
double getYRangeMin() const
IrregularDomain(const IntVector_t &nr, const Vector_t &hr, const std::string &interpl)
Vector_t hr_m
mesh-spacings in each direction
Stencil< double > StencilValue_t
int nxy_m
number of nodes in the xy plane (for this case: independent of the z coordinate)
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