|
OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
|
#include <AmrLagrangeInterpolater.h>
Public Types | |
| enum | Order { LINEAR = 1 , QUADRATIC } |
| 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 | |
| AmrLagrangeInterpolater (Order order) | |
| void | stencil (const AmrIntVect_t &iv, const basefab_t &fab, umap_t &map, const scalar_t &scale, Level *mglevel) |
| 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) |
| void | fine (const AmrIntVect_t &iv, umap_t &map, const scalar_t &scale, lo_t dir, lo_t shift, Level *mglevel) |
| const lo_t & | getNumberOfPoints () const |
| virtual void | fine (const AmrIntVect_t &, umap_t &, const scalar_t &, lo_t, lo_t, const basefab_t &, Level *) |
Protected Attributes | |
| const lo_t | nPoints_m |
| Number of points used for interpolation. | |
Private Member Functions | |
| void | fineLinear_m (const AmrIntVect_t &iv, umap_t &map, const scalar_t &scale, lo_t dir, lo_t shift, Level *mglevel) |
| void | fineQuadratic_m (const AmrIntVect_t &iv, umap_t &map, const scalar_t &scale, lo_t dir, lo_t shift, Level *mglevel) |
| void | crseLinear_m (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) |
| void | crseQuadratic_m (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) |
Static Private Attributes | |
| static const scalar_t | lookup1a_ms [2] |
| static const scalar_t | lookup2a_ms [2] |
| static const scalar_t | lookup1b_ms [2] |
| static const scalar_t | lookup2b_ms [2] |
Definition at line 35 of file AmrLagrangeInterpolater.h.
| typedef amr::AmrIntVect_t AmrLagrangeInterpolater< Level >::AmrIntVect_t |
Definition at line 44 of file AmrLagrangeInterpolater.h.
| typedef Level::basefab_t AmrLagrangeInterpolater< Level >::basefab_t |
Definition at line 43 of file AmrLagrangeInterpolater.h.
| typedef Level::go_t AmrLagrangeInterpolater< Level >::go_t |
Definition at line 39 of file AmrLagrangeInterpolater.h.
| typedef Level::lo_t AmrLagrangeInterpolater< Level >::lo_t |
Definition at line 40 of file AmrLagrangeInterpolater.h.
| typedef Level::scalar_t AmrLagrangeInterpolater< Level >::scalar_t |
Definition at line 41 of file AmrLagrangeInterpolater.h.
| typedef Level::umap_t AmrLagrangeInterpolater< Level >::umap_t |
Definition at line 42 of file AmrLagrangeInterpolater.h.
| enum AmrLagrangeInterpolater::Order |
| Enumerator | |
|---|---|
| LINEAR | |
| QUADRATIC | |
Definition at line 46 of file AmrLagrangeInterpolater.h.
| AmrLagrangeInterpolater< Level >::AmrLagrangeInterpolater | ( | Order | order | ) |
Definition at line 89 of file AmrLagrangeInterpolater.hpp.
References AmrInterpolater< Level >::AmrInterpolater().
|
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. |
| rfab | 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 |
Implements AmrInterpolater< Level >.
Definition at line 107 of file AmrLagrangeInterpolater.hpp.
References crseLinear_m(), crseQuadratic_m(), LINEAR, AmrInterpolater< Level >::nPoints_m, and QUADRATIC.
|
private |
First oder interpolation on coarse cell interface side
| iv | is the coarse cell at the interface (center cell of Laplacian) |
| map | with global matrix indices of coarse level cells and values 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 |
Definition at line 197 of file AmrLagrangeInterpolater.hpp.
References begin(), end(), lookup1a_ms, lookup1b_ms, lookup2a_ms, and lookup2b_ms.
Referenced by coarse(), and crseQuadratic_m().
|
private |
Second order interpolation on coarse cell interface side
| iv | is the coarse cell at the interface (center cell of Laplacian) |
| map | with global matrix indices of coarse level cells and values 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 |
Definition at line 387 of file AmrLagrangeInterpolater.hpp.
References begin(), crseLinear_m(), and end().
Referenced by coarse().
|
inlinevirtualinherited |
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. |
| fab | 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 AmrPCInterpolater< Level >, and AmrTrilinearInterpolater< Level >.
Definition at line 106 of file AmrInterpolater.h.
|
virtual |
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 from AmrInterpolater< Level >.
Definition at line 132 of file AmrLagrangeInterpolater.hpp.
References fineLinear_m(), fineQuadratic_m(), LINEAR, AmrInterpolater< Level >::nPoints_m, and QUADRATIC.
|
private |
First order interpolation on fine cell interface 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 |
Definition at line 156 of file AmrLagrangeInterpolater.hpp.
Referenced by fine().
|
private |
Second order interpolation on fine cell interface 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 values 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 |
Definition at line 178 of file AmrLagrangeInterpolater.hpp.
Referenced by fine().
|
inlineinherited |
Number of cell points used for interpolation.
Definition at line 47 of file AmrInterpolater.h.
References nPoints_m.
|
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 |
| fab | cells |
| 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 |
Implements AmrInterpolater< Level >.
Definition at line 95 of file AmrLagrangeInterpolater.hpp.
|
staticprivate |
Definition at line 193 of file AmrLagrangeInterpolater.h.
Referenced by crseLinear_m().
|
staticprivate |
Definition at line 195 of file AmrLagrangeInterpolater.h.
Referenced by crseLinear_m().
|
staticprivate |
Definition at line 194 of file AmrLagrangeInterpolater.h.
Referenced by crseLinear_m().
|
staticprivate |
Definition at line 196 of file AmrLagrangeInterpolater.h.
Referenced by crseLinear_m().
|
protectedinherited |
Number of points used for interpolation.
Definition at line 136 of file AmrInterpolater.h.
Referenced by AmrInterpolater(), AmrLagrangeInterpolater< Level >::coarse(), AmrLagrangeInterpolater< Level >::fine(), and getNumberOfPoints().