1#ifndef AMREX_FLUXREGISTER_H_
2#define AMREX_FLUXREGISTER_H_
3#include <AMReX_Config.H>
99 int nComp () const noexcept;
253 RunOn runon) noexcept;
276 RunOn runon) noexcept;
294 RunOn runon) noexcept;
363 Real scale,
int srccomp,
int destcomp,
int numcomp,
380 void write (const std::
string& name, std::ostream& os) const;
388 void read (const std::
string& name, std::istream& is);
Infrastructure for storing per-face boundary data in FabSets.
A BndryRegister organizes FabSets bounding each grid in a BoxArray. A FabSet is maintained for each b...
Definition AMReX_BndryRegister.H:46
A collection of Boxes stored in an Array.
Definition AMReX_BoxArray.H:568
Calculates the distribution of FABs to MPI processes.
Definition AMReX_DistributionMapping.H:43
A Fortran Array of REALs.
Definition AMReX_FArrayBox.H:231
Flux Register.
Definition AMReX_FluxRegister.H:25
~FluxRegister()=default
The destructor.
FrOp
An enum that says whether to add or copy src data to members.
Definition AMReX_FluxRegister.H:60
@ ADD
Definition AMReX_FluxRegister.H:60
@ COPY
Definition AMReX_FluxRegister.H:60
void write(const std::string &name, std::ostream &os) const
Write data to checkpoint files.
Definition AMReX_FluxRegister.cpp:889
void read(const std::string &name, std::istream &is)
Read data from checkpoint files.
Definition AMReX_FluxRegister.cpp:905
void Reflux(MultiFab &mf, const MultiFab &volume, Real scale, int scomp, int dcomp, int nc, const Geometry &crse_geom)
Apply flux correction and divide by coarse cell volumes.
Definition AMReX_FluxRegister.cpp:527
FluxRegister(FluxRegister &&rhs) noexcept=default
void clear()
Release all internal data structures and reset to the default-constructed state.
Definition AMReX_FluxRegister.cpp:89
void CrseAdd(const MultiFab &mflx, const MultiFab &area, int dir, int srccomp, int destcomp, int numcomp, Real mult, const Geometry &geom)
Add coarse fluxes to the register without overwriting existing data.
Definition AMReX_FluxRegister.cpp:285
FluxRegister(const FluxRegister &rhs)=delete
void FineSetVal(int dir, int boxno, int destcomp, int numcomp, Real val, RunOn runon) noexcept
Set flux correction data for a fine box (given by boxno) to val. This routine used by FLASH does NOT ...
Definition AMReX_FluxRegister.cpp:500
void OverwriteFlux(Array< MultiFab *, 3 > const &crse_fluxes, Real scale, int srccomp, int destcomp, int numcomp, const Geometry &crse_geom)
Overwrite the coarse flux at the coarse/fine interface (and the interface only) with the fine flux st...
Definition AMReX_FluxRegister.cpp:739
int fineLevel() const noexcept
Returns the level number of the fine level.
Definition AMReX_FluxRegister.cpp:34
Real SumReg(int comp) const
Returns the sum of the registers.
Definition AMReX_FluxRegister.cpp:95
FluxRegister()
The default constructor.
Definition AMReX_FluxRegister.cpp:11
const BoxArray & coarsenedBoxes() const noexcept
The coarsened boxes.
Definition AMReX_FluxRegister.cpp:52
void ClearInternalBorders(const Geometry &crse_geom)
Set internal coarse/fine border fluxes to zero before reuse.
Definition AMReX_FluxRegister.cpp:651
void FineAdd(const MultiFab &mflx, int dir, int srccomp, int destcomp, int numcomp, Real mult)
Increment flux correction with fine data (areas already applied).
Definition AMReX_FluxRegister.cpp:363
void CrseInit(const MultiFab &mflx, const MultiFab &area, int dir, int srccomp, int destcomp, int numcomp, Real mult=-1.0, FrOp op=FluxRegister::COPY)
Initialize flux correction with coarse data.
Definition AMReX_FluxRegister.cpp:160
const IntVect & refRatio() const noexcept
Returns the refinement ratio.
Definition AMReX_FluxRegister.cpp:28
void define(const BoxArray &fine_boxes, const DistributionMapping &dm, const IntVect &ref_ratio, int fine_lev, int nvar)
Initialize after default construction.
Definition AMReX_FluxRegister.cpp:58
FluxRegister & operator=(const FluxRegister &rhs)=delete
int crseLevel() const noexcept
Returns the level number of the coarse level (fineLevel()-1).
Definition AMReX_FluxRegister.cpp:40
int nComp() const noexcept
The number of components.
Definition AMReX_FluxRegister.cpp:46
Rectangular problem domain geometry.
Definition AMReX_Geometry.H:74
A collection (stored as an array) of FArrayBox objects.
Definition AMReX_MultiFab.H:40
Encapsulation of the Orientation of the Faces of a Box.
Definition AMReX_Orientation.H:29
amrex_real Real
Floating Point Type for Fields.
Definition AMReX_REAL.H:79
std::array< T, N > Array
Definition AMReX_Array.H:26
Definition AMReX_Amr.cpp:49
RunOn
Definition AMReX_GpuControl.H:69
__host__ __device__ constexpr IntVectND< dim > scale(const IntVectND< dim > &p, int s) noexcept
Returns a IntVectND obtained by multiplying each of the components of this IntVectND by s.
Definition AMReX_IntVect.H:1013