OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
RegularDomain Class Reference

#include <RegularDomain.h>

Inheritance diagram for RegularDomain:
Inheritance graph
[legend]
Collaboration diagram for RegularDomain:
Collaboration graph
[legend]

Public Member Functions

 RegularDomain (const IntVector_t &nr, const Vector_t &hr, const std::string &interpl)
 
int getNumXY () const override
 
void setNumXY (int nxy)
 
void resizeMesh (Vector_t &origin, Vector_t &hr, const Vector_t &rmin, const Vector_t &rmax, double dh) override
 
- Public Member Functions inherited from IrregularDomain
 IrregularDomain (const IntVector_t &nr, const Vector_t &hr, const std::string &interpl)
 
virtual void compute (Vector_t hr, NDIndex< 3 > localId)=0
 
void getBoundaryStencil (int x, int y, int z, StencilValue_t &value, double &scaleFactor) const
 
void getBoundaryStencil (int id, StencilValue_t &value, double &scaleFactor) const
 
void getNeighbours (int x, int y, int z, StencilIndex_t &index) const
 
void getNeighbours (int idx, StencilIndex_t &index) const
 
virtual void getCoord (int idx, int &x, int &y, int &z) const
 Conversion from a 3D index to (x,y,z) More...
 
int getIdx (int x, int y, int z) const
 Conversion from (x,y,z) to index on the 3D grid. More...
 
virtual bool isInside (int x, int y, int z) const =0
 
IntVector_t getNr () const
 
Vector_t getHr () const
 
void setNr (IntVector_t nr)
 
void setHr (Vector_t hr)
 
void setMinMaxZ (double minz, double maxz)
 
double getMinZ () const
 
double getMaxZ () const
 
double getXRangeMin () const
 
double getXRangeMax () const
 
double getYRangeMin () const
 
double getYRangeMax () const
 
double getZRangeMin () const
 
double getZRangeMax () const
 
void setRangeMin (const Vector_t &min)
 
void setRangeMax (const Vector_t &max)
 
bool hasGeometryChanged () const
 
virtual ~IrregularDomain ()
 

Protected Member Functions

void robinBoundaryStencil (int z, double &F, double &B, double &C) const
 function to handle the open boundary condition in longitudinal direction More...
 
- Protected Member Functions inherited from IrregularDomain
virtual int indexAccess (int x, int y, int z) const =0
 
virtual int coordAccess (int idx) const =0
 
virtual void linearInterpolation (int x, int y, int z, StencilValue_t &value, double &scaleFactor) const
 
virtual void quadraticInterpolation (int x, int y, int z, StencilValue_t &value, double &scaleFactor) const
 

Private Member Functions

void constantInterpolation (int x, int y, int z, StencilValue_t &value, double &scaleFactor) const override
 different interpolation methods for boundary points More...
 

Private Attributes

int nxy_m
 number of nodes in the xy plane (for this case: independent of the z coordinate) More...
 

Additional Inherited Members

- Public Types inherited from IrregularDomain
typedef Stencil< int > StencilIndex_t
 
typedef Stencil< double > StencilValue_t
 
typedef Vektor< int, 3 > IntVector_t
 
- Protected Attributes inherited from IrregularDomain
IntVector_t nr_m
 number of mesh points in each direction More...
 
Vector_t hr_m
 mesh-spacings in each direction More...
 
double zMin_m
 min/max of bunch in floor coordinates More...
 
double zMax_m
 
Vector_t min_m
 
Vector_t max_m
 
bool hasGeometryChanged_m
 flag indicating if geometry has changed for the current time-step More...
 
int interpolationMethod_m
 interpolation type More...
 
std::map< int, int > idxMap_m
 mapping (x,y,z) -> idx More...
 
std::map< int, int > coordMap_m
 mapping idx -> (x,y,z) More...
 

Detailed Description

Definition at line 24 of file RegularDomain.h.

Constructor & Destructor Documentation

◆ RegularDomain()

RegularDomain::RegularDomain ( const IntVector_t nr,
const Vector_t hr,
const std::string &  interpl 
)

Definition at line 21 of file RegularDomain.cpp.

Member Function Documentation

◆ constantInterpolation()

void RegularDomain::constantInterpolation ( int  x,
int  y,
int  z,
StencilValue_t value,
double &  scaleFactor 
) const
overrideprivatevirtual

◆ getNumXY()

int RegularDomain::getNumXY ( ) const
inlineoverridevirtual

◆ resizeMesh()

void RegularDomain::resizeMesh ( Vector_t origin,
Vector_t hr,
const Vector_t rmin,
const Vector_t rmax,
double  dh 
)
overridevirtual

◆ robinBoundaryStencil()

void RegularDomain::robinBoundaryStencil ( int  z,
double &  F,
double &  B,
double &  C 
) const
protected

function to handle the open boundary condition in longitudinal direction

Definition at line 84 of file RegularDomain.cpp.

References IrregularDomain::hr_m, and IrregularDomain::nr_m.

Referenced by constantInterpolation(), EllipticDomain::linearInterpolation(), and EllipticDomain::quadraticInterpolation().

◆ setNumXY()

void RegularDomain::setNumXY ( int  nxy)
inline

Definition at line 36 of file RegularDomain.h.

References nxy_m.

Referenced by EllipticDomain::compute().

Member Data Documentation

◆ nxy_m

int RegularDomain::nxy_m
private

number of nodes in the xy plane (for this case: independent of the z coordinate)

Definition at line 50 of file RegularDomain.h.

Referenced by getNumXY(), and setNumXY().


The documentation for this class was generated from the following files: