![]() |
Block-Structured AMR Software Framework
|
Virtual base class for interpolaters. More...
#include <AMReX_Interpolater.H>
Public Member Functions | |
| virtual void | interp (const FArrayBox &crse, int crse_comp, FArrayBox &fine, int fine_comp, int ncomp, const Box &fine_region, const IntVect &ratio, const Geometry &crse_geom, const Geometry &fine_geom, Vector< BCRec > const &bcr, int actual_comp, int actual_state, RunOn runon)=0 |
| Perform coarse-to-fine interpolation on a cell-centered FAB. | |
| virtual void | interp_face (const FArrayBox &, const int, FArrayBox &, const int, const int, const Box &, const IntVect &, const IArrayBox &, const Geometry &, const Geometry &, Vector< BCRec > const &, const int, RunOn) |
| Coarse-to-fine interpolation for face-based data (optional override). | |
| virtual void | interp_arr (Array< FArrayBox *, 3 > const &, const int, Array< FArrayBox *, 3 > const &, const int, const int, const Box &, const IntVect &, Array< IArrayBox *, 3 > const &, const Geometry &, const Geometry &, Vector< Array< BCRec, 3 > > const &, const int, const int, const RunOn) |
| Interpolate arrays of face-centered FABs simultaneously (optional override). | |
| virtual void | protect (const FArrayBox &, int, FArrayBox &, int, FArrayBox &, int, int, const Box &, const IntVect &, const Geometry &, const Geometry &, Vector< BCRec > &, RunOn) |
| Optional limiter hook that reprojects fine data to avoid undershoot/overshoot. | |
Public Member Functions inherited from amrex::InterpBase | |
| InterpBase ()=default | |
| virtual | ~InterpBase ()=default |
| InterpBase (InterpBase const &) noexcept=default | |
| InterpBase (InterpBase &&) noexcept=default | |
| InterpBase & | operator= (InterpBase const &) noexcept=default |
| InterpBase & | operator= (InterpBase &&) noexcept=default |
| virtual Box | CoarseBox (const Box &fine, int ratio)=0 |
Return the coarsened box bounding fine for scalar refinement ratio ratio. | |
| virtual Box | CoarseBox (const Box &fine, const IntVect &ratio)=0 |
Same as CoarseBox above but accepts per-direction ratios ratio. | |
| InterpolaterBoxCoarsener | BoxCoarsener (const IntVect &ratio) |
| Convenience helper that returns a BoxConverter bound to this interpolater. | |
Additional Inherited Members | |
Static Public Member Functions inherited from amrex::InterpBase | |
| static Vector< int > | GetBCArray (const Vector< BCRec > &bcr) |
| Convert BCRec entries to an integer array that interpolaters can consume. | |
Virtual base class for interpolaters.
Specifies interpolater interface for coarse-to-fine interpolation in space.
|
pure virtual |
Perform coarse-to-fine interpolation on a cell-centered FAB.
| crse | Source coarse FAB. |
| crse_comp | Starting component in the coarse FAB. |
| fine | Destination fine FAB. |
| fine_comp | Starting component in the fine FAB. |
| ncomp | Number of components to interpolate. |
| fine_region | Region of the fine FAB to fill. |
| ratio | Refinement ratio between coarse and fine. |
| crse_geom | Coarse Geometry. |
| fine_geom | Fine Geometry. |
| bcr | Boundary-condition records per component. |
| actual_comp | Component offset into the state vector (for BC lookup). |
| actual_state | Index of the state being interpolated (for query hooks). |
| runon | Execution context (host/device) for the interpolation kernels. |
Implemented in amrex::NodeBilinear, amrex::CellBilinear, amrex::CellQuadratic, amrex::PCInterp, amrex::CellConservativeQuartic, amrex::FaceDivFree, amrex::FaceLinear, amrex::FaceConservativeLinear, amrex::CellQuartic, amrex::EBCellConservativeLinear, and amrex::CellConservativeLinear.
|
inlinevirtual |
Interpolate arrays of face-centered FABs simultaneously (optional override).
Reimplemented in amrex::FaceLinear, amrex::FaceConservativeLinear, and amrex::FaceDivFree.
|
inlinevirtual |
Coarse-to-fine interpolation for face-based data (optional override).
By default, this aborts and callers should invoke interp() instead. Face-aware interpolaters override this to apply solve masks and BCs.
Reimplemented in amrex::FaceLinear, and amrex::FaceConservativeLinear.
|
inlinevirtual |
Optional limiter hook that reprojects fine data to avoid undershoot/overshoot.
Reimplemented in amrex::CellConservativeProtected.