chombo-discharge
Loading...
Searching...
No Matches
CD_EBAMRSurfaceDeposition.H
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2021-2026 SINTEF Energy Research
3 *
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
13#ifndef CD_EBAMRSURFACEDEPOSITION_H
14#define CD_EBAMRSURFACEDEPOSITION_H
15
16// Chombo includes
17#include <RefCountedPtr.H>
18#include <Copier.H>
19#include <EBLevelGrid.H>
20
21// Our includes
22#include <CD_EBAMRData.H>
24#include <CD_NamespaceHeader.H>
25
30{
31public:
35 EBAMRSurfaceDeposition() noexcept;
36
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;
57
61 virtual ~EBAMRSurfaceDeposition() noexcept;
62
75 virtual void
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;
84
92 template <class P, class Ret, Ret (P::*MemberFunc)() const>
93 void
95
96protected:
101
106
111
116
121
126
131
137
143
148
153
158
164
170
176
181
186
191
197
202
207
211 virtual void
213
217 virtual void
219
223 virtual void
225
229 virtual void
231
235 virtual void
237
242 virtual void
244
249 virtual void
251};
252
253#include <CD_NamespaceFooter.H>
254
256
257#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: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:190
RealVect m_probLo
Lower-left corner of computational domain.
Definition CD_EBAMRSurfaceDeposition.H:115
EBAMRIVData m_coarsenedFineData
Coarsening of the fine-grid data.
Definition CD_EBAMRSurfaceDeposition.H:185
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:125
Vector< RefCountedPtr< EBLevelGrid > > m_ebGridsRefinedCoar
Refined grids.
Definition CD_EBAMRSurfaceDeposition.H:142
Vector< Copier > m_copierRefinedCoarToFineNoGhosts
Copier for copying data from the refined coarse level to the fine level.
Definition CD_EBAMRSurfaceDeposition.H:201
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:32
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:120
Vector< Real > m_dx
Grid resolutions.
Definition CD_EBAMRSurfaceDeposition.H:152
Vector< int > m_refRat
Refinement ratios between levels.
Definition CD_EBAMRSurfaceDeposition.H:147
bool m_verbose
Turn on/off chattiness.
Definition CD_EBAMRSurfaceDeposition.H:110
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:157
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:169
bool m_debug
Debug or not.
Definition CD_EBAMRSurfaceDeposition.H:100
Vector< RefCountedPtr< EBLevelGrid > > m_ebGridsCoarsenedFine
Coarsened grids.
Definition CD_EBAMRSurfaceDeposition.H:136
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:196
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
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:130
EBAMRIVData m_data
Data on each level.
Definition CD_EBAMRSurfaceDeposition.H:175
EBAMRIVData m_refinedCoarData
Data defined on a refinement of the coarse grid.
Definition CD_EBAMRSurfaceDeposition.H:180
Vector< RefCountedPtr< LayoutData< BaseIVFAB< VoFStencil > > > > m_coarseToFineStencils
Stencils for interpolating coarse-grid data to the fine grid.
Definition CD_EBAMRSurfaceDeposition.H:163
bool m_isDefined
Is defined or not.
Definition CD_EBAMRSurfaceDeposition.H:105
Vector< Copier > m_copierCoarsenedFineToCoar
Copier for copying data from the coarsened fine level to the coarse level.
Definition CD_EBAMRSurfaceDeposition.H:206
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38