12 #ifndef CD_EBAMRSurfaceDeposition_H
13 #define CD_EBAMRSurfaceDeposition_H
16 #include <RefCountedPtr.H>
18 #include <EBLevelGrid.H>
23 #include <CD_NamespaceHeader.H>
48 const Vector<RefCountedPtr<EBLevelGrid>>& a_ebGridsCoarsenedFine,
49 const Vector<RefCountedPtr<EBLevelGrid>>& a_ebGridsRefinedCoar,
50 const Vector<int>& a_refRat,
51 const Vector<Real>& a_dx,
52 const RealVect& a_probLo,
53 const int a_finestLevel,
54 const int a_radius) noexcept;
73 define(
const Vector<RefCountedPtr<EBLevelGrid>>& a_ebGrids,
74 const Vector<RefCountedPtr<EBLevelGrid>>& a_ebGridsCoarsenedFine,
75 const Vector<RefCountedPtr<EBLevelGrid>>& a_ebGridsRefinedCoar,
76 const Vector<int>& a_refRat,
77 const Vector<Real>& a_dx,
78 const RealVect& a_probLo,
79 const int a_finestLevel,
80 const int a_radius) noexcept;
87 template <
class P, const Real& (P::*particleScalarField)() const>
96 template <
class P, Real (P::*particleScalarField)()>
258 #include <CD_NamespaceFooter.H>
Class for holding data across EBAMR hierarchies.
Implementation of CD_EBAMRSurfaceDeposition.H.
Declaration of a class for holding particles on an AMR hierarchy.
class for handling surface deposition of particles with EB and AMR.
Definition: CD_EBAMRSurfaceDeposition.H:29
virtual void define(const Vector< RefCountedPtr< EBLevelGrid >> &a_ebGrids, const Vector< RefCountedPtr< EBLevelGrid >> &a_ebGridsCoarsenedFine, const Vector< RefCountedPtr< EBLevelGrid >> &a_ebGridsRefinedCoar, const Vector< int > &a_refRat, const Vector< Real > &a_dx, const RealVect &a_probLo, const int a_finestLevel, const int a_radius) noexcept
Define function. Puts objects in usable state.
Definition: CD_EBAMRSurfaceDeposition.cpp:58
virtual void defineBuffers() noexcept
Define buffer data.
Definition: CD_EBAMRSurfaceDeposition.cpp:120
virtual void defineDataMotion() noexcept
Define copiers.
Definition: CD_EBAMRSurfaceDeposition.cpp:226
Vector< Copier > m_validToValidCopiers
Valid to valid copiers.
Definition: CD_EBAMRSurfaceDeposition.H:194
RealVect m_probLo
Lower-left corner of computational domain.
Definition: CD_EBAMRSurfaceDeposition.H:119
EBAMRIVData m_coarsenedFineData
Coarsening of the fine-grid data.
Definition: CD_EBAMRSurfaceDeposition.H:189
EBAMRSurfaceDeposition() noexcept
Default constructor. Leaves the object in undefined state and requires the user to call the define fu...
Definition: CD_EBAMRSurfaceDeposition.cpp:23
int m_radius
Deposition radius.
Definition: CD_EBAMRSurfaceDeposition.H:129
Vector< RefCountedPtr< EBLevelGrid > > m_ebGridsRefinedCoar
Refined grids.
Definition: CD_EBAMRSurfaceDeposition.H:146
Vector< Copier > m_copierRefinedCoarToFineNoGhosts
Copier for copying data from the refined coarse level to the fine level.
Definition: CD_EBAMRSurfaceDeposition.H:205
virtual void defineCoarseToFineStencils() noexcept
Define stencils for interpolating coarse-grid data to the fine grid.
Definition: CD_EBAMRSurfaceDeposition.cpp:384
int m_finestLevel
Finest grid level.
Definition: CD_EBAMRSurfaceDeposition.H:124
Vector< Real > m_dx
Grid resolutions.
Definition: CD_EBAMRSurfaceDeposition.H:156
Vector< int > m_refRat
Refinement ratios between levels.
Definition: CD_EBAMRSurfaceDeposition.H:151
bool m_verbose
Turn on/off chattiness.
Definition: CD_EBAMRSurfaceDeposition.H:114
virtual void defineFineToCoarseStencils() noexcept
Define stencils for coarsening data in fine-grid ghost cells to the coarse grid.
Definition: CD_EBAMRSurfaceDeposition.cpp:468
virtual ~EBAMRSurfaceDeposition() noexcept
Destructor.
Definition: CD_EBAMRSurfaceDeposition.cpp:52
virtual void addFineGhostDataToValidCoarData() const noexcept
Add the ghosted fine-level data to the coarse data.
Definition: CD_EBAMRSurfaceDeposition.cpp:605
Vector< RefCountedPtr< LayoutData< BaseIVFAB< VoFStencil > > > > m_depositionStencils
Deposition weights for each irregular cell. This contains 1.0/sum(alpha * dx^(D-1)) and the cells.
Definition: CD_EBAMRSurfaceDeposition.H:161
Vector< RefCountedPtr< LayoutData< BaseIVFAB< VoFStencil > > > > m_fineToCoarseStencils
Stencils for conservatively coarsening fine-grid data (in ghost cells) to the coarse grid.
Definition: CD_EBAMRSurfaceDeposition.H:173
bool m_debug
Debug or not.
Definition: CD_EBAMRSurfaceDeposition.H:104
Vector< RefCountedPtr< EBLevelGrid > > m_ebGridsCoarsenedFine
Coarsened grids.
Definition: CD_EBAMRSurfaceDeposition.H:140
void deposit(EBAMRIVData &a_meshData, const ParticleContainer< P > &a_particles) const noexcept
Deposit function. Deposits particle on surface.
Definition: CD_EBAMRSurfaceDepositionImplem.H:28
Vector< Copier > m_copierLevel
Level copier for adding data from valid+ghost -> valid.
Definition: CD_EBAMRSurfaceDeposition.H:200
virtual void addInvalidCoarseDataToFineData() const noexcept
Add the invalid coarse data (i.e., underneath the fine grid) to the fine level.
Definition: CD_EBAMRSurfaceDeposition.cpp:551
virtual void defineDepositionStencils() noexcept
Define deposition weights.
Definition: CD_EBAMRSurfaceDeposition.cpp:275
Vector< RefCountedPtr< EBLevelGrid > > m_ebGrids
Grids on each level.
Definition: CD_EBAMRSurfaceDeposition.H:134
EBAMRIVData m_data
Data on each level.
Definition: CD_EBAMRSurfaceDeposition.H:179
EBAMRIVData m_refinedCoarData
Data defined on a refinement of the coarse grid.
Definition: CD_EBAMRSurfaceDeposition.H:184
Vector< RefCountedPtr< LayoutData< BaseIVFAB< VoFStencil > > > > m_coarseToFineStencils
Stencils for interpolating coarse-grid data to the fine grid.
Definition: CD_EBAMRSurfaceDeposition.H:167
bool m_isDefined
Is defined or not.
Definition: CD_EBAMRSurfaceDeposition.H:109
Vector< Copier > m_copierCoarsenedFineToCoar
Copier for copying data from the coarsened fine level to the coarse level.
Definition: CD_EBAMRSurfaceDeposition.H:210
Templated class for holding particles on an AMR hierarchy with particle remapping.
Definition: CD_ParticleContainer.H:50