12#ifndef CD_EBLeastSquaresMultigridInterpolator_H
13#define CD_EBLeastSquaresMultigridInterpolator_H
19#include <EBLevelGrid.H>
20#include <QuadCFInterp.H>
21#include <AggStencil.H>
27#include <CD_NamespaceHeader.H>
336#include <CD_NamespaceFooter.H>
Supporting class for doing the coarse-side interpolation for multigrid.
Declaration of a class that can interpolate more ghost cells near the coarse-fine boundary near the E...
Declaration of cell positions.
Class for computing the required Taylor terms for doing the orthogonal extrapolation to the ghost cel...
Definition CD_CoarseInterpQuadCF.H:33
Multigrid interpolator class.
Definition CD_EBLeastSquaresMultigridInterpolator.H:48
virtual void coarseFineInterpH(LevelData< EBCellFAB > &a_phiFine, const Interval a_variables) const noexcept override
Do homogeneous interpolation.
Definition CD_EBLeastSquaresMultigridInterpolator.cpp:155
virtual void defineGhostRegions() noexcept
Define ghost cells to be filled in range m_ghostCF from each cut-cell.
Definition CD_EBLeastSquaresMultigridInterpolator.cpp:236
static constexpr int m_numStenComp
Number of variables in stencil data layouts.
Definition CD_EBLeastSquaresMultigridInterpolator.H:138
Copier m_copier
Copier for making copying into m_grownCoarData go faster.
Definition CD_EBLeastSquaresMultigridInterpolator.H:168
virtual int getGhostCF() const noexcept override
Return number of ghost cells across CF interface.
Definition CD_EBLeastSquaresMultigridInterpolator.cpp:87
LayoutData< RefCountedPtr< AggStencil< EBCellFAB, EBCellFAB > > > m_aggFineStencils
Fine grid interpolation stencils.
Definition CD_EBLeastSquaresMultigridInterpolator.H:234
EBLevelGrid m_eblgFine
Fine grids.
Definition CD_EBLeastSquaresMultigridInterpolator.H:153
IntVect m_ghostVectorCoFi
Number of ghost cells on the coarsened-fine grids. Needed because the fine grids need some of the coa...
Definition CD_EBLeastSquaresMultigridInterpolator.H:189
LayoutData< std::map< std::pair< int, Side::LoHiSide >, Box > > m_cfivs
Regular coarse-fine interface boxes.
Definition CD_EBLeastSquaresMultigridInterpolator.H:248
EBLeastSquaresMultigridInterpolator(const EBLeastSquaresMultigridInterpolator &a_other)=delete
Disallowed copy constructor.
LayoutData< BaseIVFAB< VoFStencil > > m_coarStencils
Coarse-grid interpolation stencils.
Definition CD_EBLeastSquaresMultigridInterpolator.H:226
virtual void coarseFineInterp(LevelData< EBCellFAB > &a_phiFine, const LevelData< EBCellFAB > &a_phiCoar, const Interval a_variables) const noexcept override
Do inhomogeneous interpolation.
Definition CD_EBLeastSquaresMultigridInterpolator.cpp:98
virtual void regularCoarseFineInterp(LevelData< EBCellFAB > &a_finePhi, const LevelData< EBCellFAB > &a_coarPhi, const int a_fineVar, const int a_coarVar) const noexcept
Do regular coarse-fine interpolation as if the EB is not there.
Definition CD_EBLeastSquaresMultigridInterpolator.cpp:710
LayoutData< IntVectSet > m_ghostCells
Ghost cells that will be interpolated near the cut-cells.
Definition CD_EBLeastSquaresMultigridInterpolator.H:216
int m_refRat
Refinement factor between fine and coarse level.
Definition CD_EBLeastSquaresMultigridInterpolator.H:194
bool m_isDefined
Is defined or not.
Definition CD_EBLeastSquaresMultigridInterpolator.H:178
EBLevelGrid m_eblgCoFi
Coarsened fine grids.
Definition CD_EBLeastSquaresMultigridInterpolator.H:163
int m_order
Interpolation order.
Definition CD_EBLeastSquaresMultigridInterpolator.H:205
LayoutData< CoarseInterpQuadCF > m_loCoarseInterpCF[SpaceDim]
For doing the coarse-side interpolation near the AMR interface.
Definition CD_EBLeastSquaresMultigridInterpolator.H:253
virtual bool getStencil(VoFStencil &a_stencilFine, VoFStencil &a_stencilCoar, const CellLocation &a_dataLocation, const VolIndex &a_ghostVofFine, const VolIndex &a_ghostVofCoar, const EBISBox &a_ebisboxFine, const EBISBox &a_ebisboxCoar, const DenseIntVectSet &a_validFineCells, const DenseIntVectSet &a_validCoarCells, const Real &a_dxFine, const Real &a_dxCoar, const int &a_order, const int &a_weight) const noexcept
Build an interpolation stencil.
Definition CD_EBLeastSquaresMultigridInterpolator.cpp:507
LayoutData< CoarseInterpQuadCF > m_hiCoarseInterpCF[SpaceDim]
For doing the coarse-side interpolation near the AMR interface.
Definition CD_EBLeastSquaresMultigridInterpolator.H:258
LayoutData< VoFIterator > m_ghostIterFine
Iterator over ghost cells.
Definition CD_EBLeastSquaresMultigridInterpolator.H:173
virtual void makeAggStencils() noexcept
Build the AggStencil objects for faster stencil aggregation.
Definition CD_EBLeastSquaresMultigridInterpolator.cpp:662
LayoutData< BaseIVFAB< VoFStencil > > m_fineStencils
Fine-grid interpolation stencils.
Definition CD_EBLeastSquaresMultigridInterpolator.H:221
IntVect m_ghostVectorFine
Minimum number of ghost cells in input data.
Definition CD_EBLeastSquaresMultigridInterpolator.H:183
EBLeastSquaresMultigridInterpolator()=delete
Disallowed constructor.
virtual void defineStencilsEBCF() noexcept
Define stencils for interpolation across the EBCF refinement boundary.
Definition CD_EBLeastSquaresMultigridInterpolator.cpp:351
CellLocation m_dataLocation
How to interpret data locations.
Definition CD_EBLeastSquaresMultigridInterpolator.H:148
virtual void defineBuffers() noexcept
Define buffer data holder.
Definition CD_EBLeastSquaresMultigridInterpolator.cpp:313
int m_weight
Least squares weighting factor.
Definition CD_EBLeastSquaresMultigridInterpolator.H:210
static constexpr int m_stenComp
Component that interpolation stencil is stored at.
Definition CD_EBLeastSquaresMultigridInterpolator.H:133
EBLevelGrid m_eblgCoar
Coarse grids.
Definition CD_EBLeastSquaresMultigridInterpolator.H:158
LayoutData< RefCountedPtr< AggStencil< EBCellFAB, EBCellFAB > > > m_aggCoarStencils
Coarse-grid interpolation stencils.
Definition CD_EBLeastSquaresMultigridInterpolator.H:241
int m_ghostCF
Number of ghost cells to fill across coarse-fine interface.
Definition CD_EBLeastSquaresMultigridInterpolator.H:200
static constexpr int m_comp
Component number. Used for setting interval when data is copied into EBLeastSquaresMultigridInterpola...
Definition CD_EBLeastSquaresMultigridInterpolator.H:143
virtual void defineCoarseInterp() noexcept
Define the coarse-sided interpolation stencils for doing the orthogonal derivatives.
Definition CD_EBLeastSquaresMultigridInterpolator.cpp:321
Multigrid interpolator class.
Definition CD_EBMGLeastSquaresInterpolator.H:48
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37
Cell
Enum for distinguishing between cell locations.
Definition CD_Location.H:30