Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
amrex::MFCellConsLinMinmaxLimitInterp Class Reference

Linear conservative interpolation on cell centered data. More...

#include <AMReX_MFInterpolater.H>

Inheritance diagram for amrex::MFCellConsLinMinmaxLimitInterp:
amrex::MFInterpolater amrex::InterpBase

Public Member Functions

Box CoarseBox (Box const &fine, int ratio) override
 Return the coarsened box bounding fine for scalar refinement ratio ratio.
 
Box CoarseBox (Box const &fine, IntVect const &ratio) override
 Same as CoarseBox above but accepts per-direction ratios ratio.
 
void interp (MultiFab const &crsemf, int ccomp, MultiFab &finemf, int fcomp, int ncomp, IntVect const &ng, Geometry const &cgeom, Geometry const &fgeom, Box const &dest_domain, IntVect const &ratio, Vector< BCRec > const &bcs, int bcomp) override
 Interpolate coarse MultiFab data onto a fine MultiFab region.
 
- 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
 
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

Linear conservative interpolation on cell centered data.

Linear conservative interpolation on cell centered data, i.e, conservative interpolation with a limiting scheme that preserves the value of any linear combination of the fab components. If sum_ivar a(ic,jc,ivar)*fab(ic,jc,ivar) = 0, then sum_ivar a(ic,jc,ivar)*fab(if,jf,ivar) = 0 is satisfied in all fine cells if,jf covering coarse cell ic,jc. This version also ensures no new min/max are created by limiting the slope vector.

Member Function Documentation

◆ CoarseBox() [1/2]

Box amrex::MFCellConsLinMinmaxLimitInterp::CoarseBox ( Box const &  fine,
int  ratio 
)
overridevirtual

Return the coarsened box bounding fine for scalar refinement ratio ratio.

Implements amrex::InterpBase.

◆ CoarseBox() [2/2]

Box amrex::MFCellConsLinMinmaxLimitInterp::CoarseBox ( Box const &  fine,
IntVect const &  ratio 
)
overridevirtual

Same as CoarseBox above but accepts per-direction ratios ratio.

Implements amrex::InterpBase.

◆ interp()

void amrex::MFCellConsLinMinmaxLimitInterp::interp ( MultiFab const &  crsemf,
int  ccomp,
MultiFab finemf,
int  fcomp,
int  ncomp,
IntVect const &  ng,
Geometry const &  cgeom,
Geometry const &  fgeom,
Box const &  dest_domain,
IntVect const &  ratio,
Vector< BCRec > const &  bcs,
int  bcscomp 
)
overridevirtual

Interpolate coarse MultiFab data onto a fine MultiFab region.

Parameters
crsemfSource coarse MultiFab.
ccompStarting component in the coarse MF.
finemfDestination fine MultiFab.
fcompStarting component in the fine MF.
ncompNumber of components to interpolate.
ngNumber of grow cells to fill on the fine MF.
cgeomCoarse Geometry.
fgeomFine Geometry.
dest_domainRegion of the fine domain that should be filled.
ratioRefinement ratio.
bcsBoundary-condition records per component.
bcscompStarting component offset inside the BC array.

Implements amrex::MFInterpolater.


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