chombo-discharge
Loading...
Searching...
No Matches
CD_EBAMRSurfaceDeposition.H
Go to the documentation of this file.
1/* chombo-discharge
2 * Copyright © 2023 SINTEF Energy Research.
3 * Please refer to Copyright.txt and LICENSE in the chombo-discharge root directory.
4 */
5
12#ifndef CD_EBAMRSurfaceDeposition_H
13#define CD_EBAMRSurfaceDeposition_H
14
15// Chombo includes
16#include <RefCountedPtr.H>
17#include <Copier.H>
18#include <EBLevelGrid.H>
19
20// Our includes
21#include <CD_EBAMRData.H>
23#include <CD_NamespaceHeader.H>
24
29{
30public:
34 EBAMRSurfaceDeposition() noexcept;
35
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;
55
59 virtual ~EBAMRSurfaceDeposition() noexcept;
60
72 virtual void
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;
81
89 template <class P, class Ret, Ret (P::*MemberFunc)() const>
90 void
92
93protected:
97 bool m_debug;
98
103
108
113
118
123
128
134
140
145
150
155
161
167
173
178
183
188
194
199
204
208 virtual void
210
214 virtual void
216
220 virtual void
222
226 virtual void
228
232 virtual void
234
240 virtual void
242
247 virtual void
249};
250
251#include <CD_NamespaceFooter.H>
252
254
255#endif
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 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:187
RealVect m_probLo
Lower-left corner of computational domain.
Definition CD_EBAMRSurfaceDeposition.H:112
EBAMRIVData m_coarsenedFineData
Coarsening of the fine-grid data.
Definition CD_EBAMRSurfaceDeposition.H:182
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:122
Vector< RefCountedPtr< EBLevelGrid > > m_ebGridsRefinedCoar
Refined grids.
Definition CD_EBAMRSurfaceDeposition.H:139
Vector< Copier > m_copierRefinedCoarToFineNoGhosts
Copier for copying data from the refined coarse level to the fine level.
Definition CD_EBAMRSurfaceDeposition.H:198
void deposit(EBAMRIVData &a_meshData, const ParticleContainer< P > &a_particles) const noexcept
Deposition function which deposites the particles on the surface.
Definition CD_EBAMRSurfaceDepositionImplem.H:31
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:117
Vector< Real > m_dx
Grid resolutions.
Definition CD_EBAMRSurfaceDeposition.H:149
Vector< int > m_refRat
Refinement ratios between levels.
Definition CD_EBAMRSurfaceDeposition.H:144
bool m_verbose
Turn on/off chattiness.
Definition CD_EBAMRSurfaceDeposition.H:107
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:154
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:166
bool m_debug
Debug or not.
Definition CD_EBAMRSurfaceDeposition.H:97
Vector< RefCountedPtr< EBLevelGrid > > m_ebGridsCoarsenedFine
Coarsened grids.
Definition CD_EBAMRSurfaceDeposition.H:133
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
Vector< Copier > m_copierLevel
Level copier for adding data from valid+ghost -> valid.
Definition CD_EBAMRSurfaceDeposition.H:193
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:127
EBAMRIVData m_data
Data on each level.
Definition CD_EBAMRSurfaceDeposition.H:172
EBAMRIVData m_refinedCoarData
Data defined on a refinement of the coarse grid.
Definition CD_EBAMRSurfaceDeposition.H:177
Vector< RefCountedPtr< LayoutData< BaseIVFAB< VoFStencil > > > > m_coarseToFineStencils
Stencils for interpolating coarse-grid data to the fine grid.
Definition CD_EBAMRSurfaceDeposition.H:160
bool m_isDefined
Is defined or not.
Definition CD_EBAMRSurfaceDeposition.H:102
Vector< Copier > m_copierCoarsenedFineToCoar
Copier for copying data from the coarsened fine level to the coarse level.
Definition CD_EBAMRSurfaceDeposition.H:203
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37