13#ifndef CD_EBAMRSURFACEDEPOSITION_H
14#define CD_EBAMRSURFACEDEPOSITION_H
17#include <RefCountedPtr.H>
19#include <EBLevelGrid.H>
24#include <CD_NamespaceHeader.H>
50 const Vector<RefCountedPtr<EBLevelGrid>>& a_ebGridsCoarsenedFine,
51 const Vector<RefCountedPtr<EBLevelGrid>>& a_ebGridsRefinedCoar,
52 const Vector<int>& a_refRat,
53 const Vector<Real>& a_dx,
54 const RealVect& a_probLo,
55 const int a_finestLevel,
56 const int a_radius)
noexcept;
76 define(
const Vector<RefCountedPtr<EBLevelGrid>>& a_ebGrids,
77 const Vector<RefCountedPtr<EBLevelGrid>>& a_ebGridsCoarsenedFine,
78 const Vector<RefCountedPtr<EBLevelGrid>>& a_ebGridsRefinedCoar,
79 const Vector<int>& a_refRat,
80 const Vector<Real>& a_dx,
81 const RealVect& a_probLo,
82 const int a_finestLevel,
83 const int a_radius)
noexcept;
94 template <
typename P,
typename Traits>
258#include <CD_NamespaceFooter.H>
Class for holding data across EBAMR hierarchies.
Implementation of CD_EBAMRSurfaceDeposition.H.
Declaration of an AMR-hierarchy container that owns per-patch ParticleSoA leaves.
class for handling surface deposition of particles with EB and AMR.
Definition CD_EBAMRSurfaceDeposition.H:30
virtual void defineBuffers() noexcept
Define buffer data.
Definition CD_EBAMRSurfaceDeposition.cpp:118
virtual void defineDataMotion() noexcept
Define copiers.
Definition CD_EBAMRSurfaceDeposition.cpp:224
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:117
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:24
int m_radius
Deposition radius.
Definition CD_EBAMRSurfaceDeposition.H:127
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:378
int m_finestLevel
Finest grid level.
Definition CD_EBAMRSurfaceDeposition.H:122
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:112
virtual void defineFineToCoarseStencils() noexcept
Define stencils for coarsening data in fine-grid ghost cells to the coarse grid.
Definition CD_EBAMRSurfaceDeposition.cpp:462
virtual ~EBAMRSurfaceDeposition() noexcept
Destructor.
Definition CD_EBAMRSurfaceDeposition.cpp:50
virtual void addFineGhostDataToValidCoarData() const noexcept
Add the ghosted fine-level data to the coarse data.
Definition CD_EBAMRSurfaceDeposition.cpp:599
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:102
Vector< RefCountedPtr< EBLevelGrid > > m_ebGridsCoarsenedFine
Coarsened grids.
Definition CD_EBAMRSurfaceDeposition.H:139
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:56
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:545
void deposit(EBAMRIVData &a_meshData, const ParticleContainer< P, Traits > &a_particles) const noexcept
Deposit the container-owned weight column of an SoA particle container onto the surface.
Definition CD_EBAMRSurfaceDepositionImplem.H:32
virtual void defineDepositionStencils() noexcept
Define deposition weights.
Definition CD_EBAMRSurfaceDeposition.cpp:273
Vector< RefCountedPtr< EBLevelGrid > > m_ebGrids
Grids on each level.
Definition CD_EBAMRSurfaceDeposition.H:132
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:107
Vector< Copier > m_copierCoarsenedFineToCoar
Copier for copying data from the coarsened fine level to the coarse level.
Definition CD_EBAMRSurfaceDeposition.H:210
AMR-hierarchy container of computational particles, stored per patch in Struct-of-Arrays form.
Definition CD_ParticleContainer.H:123