OPAL (Object Oriented Parallel Accelerator Library)
2021.1.99
OPAL
|
#include <RegularDomain.h>
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 |
![]() | |
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... | |
![]() | |
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 | |
![]() | |
typedef Stencil< int > | StencilIndex_t |
typedef Stencil< double > | StencilValue_t |
typedef Vektor< int, 3 > | IntVector_t |
![]() | |
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... | |
Definition at line 24 of file RegularDomain.h.
RegularDomain::RegularDomain | ( | const IntVector_t & | nr, |
const Vector_t & | hr, | ||
const std::string & | interpl | ||
) |
Definition at line 21 of file RegularDomain.cpp.
|
overrideprivatevirtual |
different interpolation methods for boundary points
Reimplemented from IrregularDomain.
Definition at line 48 of file RegularDomain.cpp.
References IrregularDomain::Stencil< T >::back, IrregularDomain::Stencil< T >::center, IrregularDomain::Stencil< T >::east, IrregularDomain::Stencil< T >::front, IrregularDomain::hr_m, IrregularDomain::isInside(), IrregularDomain::Stencil< T >::north, robinBoundaryStencil(), IrregularDomain::Stencil< T >::south, and IrregularDomain::Stencil< T >::west.
|
inlineoverridevirtual |
Reimplemented from IrregularDomain.
Definition at line 32 of file RegularDomain.h.
References nxy_m.
Referenced by EllipticDomain::coordAccess(), RectangularDomain::coordAccess(), EllipticDomain::indexAccess(), and RectangularDomain::indexAccess().
|
overridevirtual |
Reimplemented from IrregularDomain.
Definition at line 29 of file RegularDomain.cpp.
References IrregularDomain::getMaxZ(), IrregularDomain::getMinZ(), IrregularDomain::getXRangeMax(), IrregularDomain::getXRangeMin(), IrregularDomain::getYRangeMax(), IrregularDomain::getYRangeMin(), IrregularDomain::nr_m, and IrregularDomain::setMinMaxZ().
|
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().
|
inline |
Definition at line 36 of file RegularDomain.h.
References nxy_m.
Referenced by EllipticDomain::compute().
|
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().