Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
amrex::Interpolater Class Referenceabstract

Virtual base class for interpolaters. More...

#include <AMReX_Interpolater.H>

Inheritance diagram for amrex::Interpolater:
amrex::InterpBase amrex::CellBilinear amrex::CellConservativeLinear amrex::CellConservativeQuartic amrex::CellQuadratic amrex::CellQuartic amrex::FaceConservativeLinear amrex::FaceDivFree amrex::FaceLinear amrex::NodeBilinear amrex::PCInterp

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
 
InterpBaseoperator= (InterpBase const &) noexcept=default
 
InterpBaseoperator= (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< intGetBCArray (const Vector< BCRec > &bcr)
 Convert BCRec entries to an integer array that interpolaters can consume.
 

Detailed Description

Virtual base class for interpolaters.

Specifies interpolater interface for coarse-to-fine interpolation in space.

Member Function Documentation

◆ interp()

virtual void amrex::Interpolater::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 
)
pure virtual

Perform coarse-to-fine interpolation on a cell-centered FAB.

Parameters
crseSource coarse FAB.
crse_compStarting component in the coarse FAB.
fineDestination fine FAB.
fine_compStarting component in the fine FAB.
ncompNumber of components to interpolate.
fine_regionRegion of the fine FAB to fill.
ratioRefinement ratio between coarse and fine.
crse_geomCoarse Geometry.
fine_geomFine Geometry.
bcrBoundary-condition records per component.
actual_compComponent offset into the state vector (for BC lookup).
actual_stateIndex of the state being interpolated (for query hooks).
runonExecution 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.

◆ interp_arr()

virtual void amrex::Interpolater::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   
)
inlinevirtual

Interpolate arrays of face-centered FABs simultaneously (optional override).

Reimplemented in amrex::FaceLinear, amrex::FaceConservativeLinear, and amrex::FaceDivFree.

◆ interp_face()

virtual void amrex::Interpolater::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   
)
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.

◆ protect()

virtual void amrex::Interpolater::protect ( const FArrayBox ,
int  ,
FArrayBox ,
int  ,
FArrayBox ,
int  ,
int  ,
const Box ,
const IntVect ,
const Geometry ,
const Geometry ,
Vector< BCRec > &  ,
RunOn   
)
inlinevirtual

Optional limiter hook that reprojects fine data to avoid undershoot/overshoot.

Reimplemented in amrex::CellConservativeProtected.


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