26 #ifndef IRREGULAR_DOMAIN_H 
   27 #define IRREGULAR_DOMAIN_H 
   64                     const std::string& interpl);
 
   81                             double &scaleFactor) 
const;
 
   88                             double &scaleFactor) 
const;
 
  100     virtual void getCoord(
int idx, 
int &x, 
int &y, 
int &z) 
const;
 
  103     int getIdx(
int x, 
int y, 
int z) 
const;
 
  112     virtual bool isInside(
int x, 
int y, 
int z)  
const = 0;
 
  154                                double &scaleFactor) 
const;
 
  157                              double &scaleFactor) 
const;
 
  160                                 double &scaleFactor) 
const;
 
T::PETE_Expr_t::PETE_Return_t max(const PETE_Expr< T > &expr, NDIndex< D > &loc)
 
T::PETE_Expr_t::PETE_Return_t min(const PETE_Expr< T > &expr, NDIndex< D > &loc)
 
IntVector_t nr_m
number of mesh points in each direction
 
std::map< int, int > coordMap_m
mapping idx -> (x,y,z)
 
virtual ~IrregularDomain()
 
bool hasGeometryChanged() const
 
virtual int coordAccess(int idx) const =0
 
void getBoundaryStencil(int x, int y, int z, StencilValue_t &value, double &scaleFactor) const
 
double getXRangeMax() const
 
virtual int getNumXY() const
 
void setRangeMin(const Vector_t &min)
 
double getYRangeMax() const
 
int interpolationMethod_m
interpolation type
 
int getIdx(int x, int y, int z) const
Conversion from (x,y,z) to index on the 3D grid.
 
virtual void resizeMesh(Vector_t &origin, Vector_t &hr, const Vector_t &, const Vector_t &, double)
 
bool hasGeometryChanged_m
flag indicating if geometry has changed for the current time-step
 
void setMinMaxZ(double minz, double maxz)
 
double getZRangeMin() const
 
virtual void quadraticInterpolation(int x, int y, int z, StencilValue_t &value, double &scaleFactor) const
 
Vektor< int, 3 > IntVector_t
 
void getNeighbours(int x, int y, int z, StencilIndex_t &index) const
 
IntVector_t getNr() const
 
double getXRangeMin() const
 
virtual bool isInside(int x, int y, int z) const =0
 
virtual void constantInterpolation(int x, int y, int z, StencilValue_t &value, double &scaleFactor) const
different interpolation methods for boundary points
 
std::map< int, int > idxMap_m
mapping (x,y,z) -> idx
 
double getYRangeMin() const
 
void setNr(IntVector_t nr)
 
Stencil< int > StencilIndex_t
 
IrregularDomain(const IntVector_t &nr, const Vector_t &hr, const std::string &interpl)
 
virtual void linearInterpolation(int x, int y, int z, StencilValue_t &value, double &scaleFactor) const
 
Vector_t hr_m
mesh-spacings in each direction
 
virtual int indexAccess(int x, int y, int z) const =0
 
Stencil< double > StencilValue_t
 
void setRangeMax(const Vector_t &max)
 
double zMin_m
min/max of bunch in floor coordinates
 
double getZRangeMax() const
 
virtual void getCoord(int idx, int &x, int &y, int &z) const
Conversion from a 3D index to (x,y,z)
 
virtual void compute(Vector_t hr, NDIndex< 3 > localId)=0