OPAL (Object Oriented Parallel Accelerator Library)
2.2.0
OPAL
|
< Abstract base class for all coarse to fine cell interpolaters More...
#include <AmrInterpolater.h>
Public Types | |
typedef Level::go_t | go_t |
typedef Level::lo_t | lo_t |
typedef Level::scalar_t | scalar_t |
typedef Level::umap_t | umap_t |
typedef Level::basefab_t | basefab_t |
typedef amr::AmrIntVect_t | AmrIntVect_t |
Public Member Functions | |
AmrInterpolater (lo_t nPoints) | |
const lo_t & | getNumberOfPoints () const |
virtual void | stencil (const AmrIntVect_t &iv, const basefab_t &fab, umap_t &map, const scalar_t &scale, Level *mglevel)=0 |
virtual void | coarse (const AmrIntVect_t &iv, umap_t &map, const scalar_t &scale, lo_t dir, lo_t shift, const basefab_t &rfab, const AmrIntVect_t &riv, Level *mglevel)=0 |
virtual void | fine (const AmrIntVect_t &iv, umap_t &map, const scalar_t &scale, lo_t dir, lo_t shift, const basefab_t &fab, Level *mglevel) |
virtual void | fine (const AmrIntVect_t &iv, umap_t &map, const scalar_t &scale, lo_t dir, lo_t shift, Level *mglevel) |
Protected Attributes | |
const lo_t | nPoints_m |
Number of points used for interpolation. More... | |
< Abstract base class for all coarse to fine cell interpolaters
Definition at line 8 of file AmrInterpolater.h.
typedef amr::AmrIntVect_t AmrInterpolater< Level >::AmrIntVect_t |
Definition at line 16 of file AmrInterpolater.h.
typedef Level::basefab_t AmrInterpolater< Level >::basefab_t |
Definition at line 15 of file AmrInterpolater.h.
typedef Level::go_t AmrInterpolater< Level >::go_t |
Definition at line 11 of file AmrInterpolater.h.
typedef Level::lo_t AmrInterpolater< Level >::lo_t |
Definition at line 12 of file AmrInterpolater.h.
typedef Level::scalar_t AmrInterpolater< Level >::scalar_t |
Definition at line 13 of file AmrInterpolater.h.
typedef Level::umap_t AmrInterpolater< Level >::umap_t |
Definition at line 14 of file AmrInterpolater.h.
|
inline |
nPoints | is the number of interpolation points used |
Definition at line 23 of file AmrInterpolater.h.
|
pure virtual |
Coarse-Fine-Interface Get stencil of coarse side
iv | is the coarse cell at the interface (center cell of Laplacian) |
map | with global matrix indices of coarse level cells and matrix entries of coarse level cells (coefficients) |
scale | of matrix values |
dir | direction of interface (0 "horizontal", 1 "vertical", 2 "longitudinal") |
shift | is either -1 or 1. If the refined coarse cell is on the left / lower / front side, shift is equal to -1, otherwise the interface is on the right / upper / back side and the value is 1. |
ba | contains all coarse cells that got refined |
riv | is the fine cell at the interface |
mglevel | used to get the global indices and refinement ratio among levels, and boundary values at physical domain, e.g. Dirichlet, open BC |
Implemented in AmrLagrangeInterpolater< Level >, AmrTrilinearInterpolater< Level >, and AmrPCInterpolater< Level >.
|
inlinevirtual |
Coarse-Fine-Interface Get stencil of fine side
iv | is the fine ghost cell at the interface (on coarse cell that is not refined) |
map | with global matrix indices of fine level cells and matrix entries of fine level cells (coefficients) |
scale | of matrix values |
dir | direction of interface (0 "horizontal", 1 "vertical", 2 "longitudinal") |
shift | is either -1 or 1. If the refined coarse cell is on the left / lower / front side, shift is equal to -1, otherwise the interface is on the right / upper / back side and the value is 1. |
ba | contains all coarse cells that got refined |
mglevel | used to get the global indices and refinement ratio among levels, and boundary avlues at physical domain, e.g. Dirichlet, open BC |
Reimplemented in AmrTrilinearInterpolater< Level >, and AmrPCInterpolater< Level >.
Definition at line 86 of file AmrInterpolater.h.
|
inlinevirtual |
Coarse-Fine-Interface Get stencil of fine side
iv | is the fine ghost cell at the interface (on coarse cell that is not refined) |
map | with global matrix indices of fine level cells and matrix entries of fine level cells (coefficients) |
scale | of matrix values |
dir | direction of interface (0 "horizontal", 1 "vertical", 2 "longitudinal") |
shift | is either -1 or 1. If the refined coarse cell is on the left / lower / front side, shift is equal to -1, otherwise the interface is on the right / upper / back side and the value is 1. |
mglevel | used to get the global indices and refinement ratio among levels, and boundary avlues at physical domain, e.g. Dirichlet, open BC |
Reimplemented in AmrLagrangeInterpolater< Level >.
Definition at line 108 of file AmrInterpolater.h.
|
inline |
Number of cell points used for interpolation.
Definition at line 28 of file AmrInterpolater.h.
References AmrInterpolater< Level >::nPoints_m.
|
pure virtual |
Get the stencil to interpolate a value from coarse to fine level
iv | is the fine cell where we want to have the interpolated value |
map | with global matrix indices of coarse level cells and matrix entries of coarse level cells (coefficients) |
scale | to apply to matrix values |
mglevel | used to get the global indices and refinement ratio among levels, and boundary values at physical domain, e.g. Dirichlet, open BC |
Implemented in AmrLagrangeInterpolater< Level >, AmrTrilinearInterpolater< Level >, and AmrPCInterpolater< Level >.
|
protected |
Number of points used for interpolation.
Definition at line 113 of file AmrInterpolater.h.
Referenced by AmrInterpolater< Level >::getNumberOfPoints().