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
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.

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::CellBilinear, amrex::CellConservativeLinear, amrex::CellConservativeQuartic, amrex::CellQuadratic, amrex::CellQuartic, amrex::EBCellConservativeLinear, amrex::FaceConservativeLinear, amrex::FaceDivFree, amrex::FaceLinear, amrex::NodeBilinear, and amrex::PCInterp.

◆ 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::FaceConservativeLinear, amrex::FaceDivFree, and amrex::FaceLinear.

◆ 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::FaceConservativeLinear, and amrex::FaceLinear.

◆ 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: