13#ifndef CD_EBMULTIGRIDINTERPOLATOR_H
14#define CD_EBMULTIGRIDINTERPOLATOR_H
17#include <EBLevelGrid.H>
19#include <DerivStencil.H>
22#include <CD_NamespaceHeader.H>
59 virtual std::pair<VoFStencil, VoFStencil>
72 virtual std::pair<DerivStencil, DerivStencil>
74 const DataIndex& a_din,
76 const Side::LoHiSide a_side)
const noexcept = 0;
86 const LevelData<EBCellFAB>& a_phiCoar,
87 const Interval a_variables)
const = 0;
108 coarseFineInterpH(EBCellFAB& a_phiFine,
const Interval a_variables,
const DataIndex& a_din)
const = 0;
111#include <CD_NamespaceFooter.H>
Multigrid interpolator class.
Definition CD_EBMGLeastSquaresInterpolator.H:55
EBMultigridInterpolator()
Basic constructor.
virtual std::pair< DerivStencil, DerivStencil > getInterpolationStencilRegular(const IntVect &a_fineGhost, const DataIndex &a_din, const int a_dir, const Side::LoHiSide a_side) const noexcept=0
Get the interpolation stencil near the refinement boundary.
virtual void coarseFineInterpH(EBCellFAB &a_phiFine, const Interval a_variables, const DataIndex &a_din) const =0
Do homogeneous coarse-fine interpolation on a grid patch.
EBMultigridInterpolator(const EBMultigridInterpolator &a_other)=delete
Disallowed copy constructor.
virtual int getGhostCF() const =0
Return number of ghost cells across CF interface.
virtual std::pair< VoFStencil, VoFStencil > getInterpolationStencilEB(const VolIndex &a_fineGhost, const DataIndex &a_din) const noexcept=0
Get an explicit stencil for a ghost cell near the EB.
virtual ~EBMultigridInterpolator()
Destructor (does nothing)
virtual void coarseFineInterpH(LevelData< EBCellFAB > &a_phiFine, const Interval a_variables) const =0
Do homogeneous interpolation.
virtual void coarseFineInterp(LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phiCoar, const Interval a_variables) const =0
Do inhomogeneous interpolation.