chombo-discharge
Loading...
Searching...
No Matches
CD_EBReflux.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_EBREFLUX_H
14#define CD_EBREFLUX_H
15
16// Std includes
17#include <map>
18
19// Chombo includes
20#include <Copier.H>
21#include <EBLevelGrid.H>
22
23// Our includes
24#include <CD_NamespaceHeader.H>
25
38{
39public:
43 EBReflux() noexcept;
44
48 EBReflux(const EBReflux& a_other) = delete;
49
60 const int a_refRat) noexcept;
61
65 virtual ~EBReflux() noexcept;
66
74 virtual void
79
91 virtual void
98
104
109
114
119
124
129
134
139
144
150
154 virtual void
156
160 virtual void
162
166 virtual void
168
177 virtual void
180 const int a_coarVar,
182
195 virtual void
199 const int a_phiVar,
204};
205
206#include <CD_NamespaceFooter.H>
207
208#endif
Class which can do refluxing across a coarse-fine interface.
Definition CD_EBReflux.H:38
EBLevelGrid m_eblgFine
Fine grids.
Definition CD_EBReflux.H:113
LayoutData< std::map< std::pair< int, Side::LoHiSide >, VoFIterator > > m_irregularCoarseFineRegions
Cut-cells in each patch that lie on the coarse-fine interface.
Definition CD_EBReflux.H:149
virtual void define(const EBLevelGrid &a_eblg, const EBLevelGrid &a_eblgFine, const EBLevelGrid &a_eblgCoFi, const int a_refRat) noexcept
Define method. Puts object in usable state.
Definition CD_EBReflux.cpp:45
virtual void defineStencils() noexcept
Define the stencils required for coarsening the fine-grid fluxes onto the coarse grid.
Definition CD_EBReflux.cpp:191
int m_refRat
Refinement factor between fine and coarse level.
Definition CD_EBReflux.H:108
virtual void defineBuffers() noexcept
Define buffers.
Definition CD_EBReflux.cpp:260
LayoutData< std::map< std::pair< int, Side::LoHiSide >, BaseIFFAB< FaceStencil > > > m_fluxCoarseningStencils
Stencils for conservatively coarsening fine-grid fluxes onto the coarse grid.
Definition CD_EBReflux.H:133
virtual void reflux(LevelData< EBCellFAB > &a_Lphi, const LevelData< EBFluxFAB > &a_flux, const LevelData< EBFluxFAB > &a_fineFlux, const Interval a_variables, const Real a_scaleCoarFlux, const Real a_scaleFineFlux) const noexcept
Reflux into the coarse data.
Definition CD_EBReflux.cpp:269
EBReflux() noexcept
Disallowed constructor.
Definition CD_EBReflux.cpp:24
EBLevelGrid m_eblg
Grid on this level.
Definition CD_EBReflux.H:118
Copier m_copier
Copier for copying from the coarsened fine grids to the coarse grids.
Definition CD_EBReflux.H:128
EBReflux(const EBReflux &a_other)=delete
Disallowed copy constructor.
virtual ~EBReflux() noexcept
Destructor (does nothing)
Definition CD_EBReflux.cpp:39
LayoutData< std::map< std::pair< int, Side::LoHiSide >, DenseIntVectSet > > m_regularCoarseFineRegions
Regular coarse-fine regions for coarse-grid patches.
Definition CD_EBReflux.H:138
virtual void refluxIntoCoarse(LevelData< EBCellFAB > &a_Lphi, const LevelData< EBFluxFAB > &a_oldFluxes, const LevelData< EBFluxFAB > &a_newFluxes, const int a_phiVar, const int a_oldFluxVar, const int a_newFluxVar, const Real a_scaleCoarFlux, const Real a_scaleFineFlux) const noexcept
Reflux data into a_Lphi.
Definition CD_EBReflux.cpp:421
bool m_isDefined
Is defined or not.
Definition CD_EBReflux.H:103
LayoutData< std::map< std::pair< int, Side::LoHiSide >, FaceIterator > > m_fluxCoarseningRegions
Stencils for conservatively coarsening fine-grid fluxes onto the coarse grid.
Definition CD_EBReflux.H:143
EBLevelGrid m_eblgCoFi
Coarsened fine grids.
Definition CD_EBReflux.H:123
virtual void defineRegionsCF() noexcept
Define coarse-fine interface regions so that we can compute things later.
Definition CD_EBReflux.cpp:65
virtual void coarsenFluxesCF(LevelData< EBFluxFAB > &a_coarFluxes, const LevelData< EBFluxFAB > &a_fineFluxes, const int a_coarVar, const int a_fineVar) const noexcept
Coarsen the input fine fluxes onto the coarse fluxes.
Definition CD_EBReflux.cpp:310
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38