|
| | FluxRegister () |
| | The default constructor.
|
| | FluxRegister (const BoxArray &fine_boxes, const DistributionMapping &dm, const IntVect &ref_ratio, int fine_lev, int nvar) |
| | Constructor.
|
| | ~FluxRegister ()=default |
| | The destructor.
|
| | FluxRegister (FluxRegister &&rhs) noexcept=default |
| | FluxRegister (const FluxRegister &rhs)=delete |
| FluxRegister & | operator= (const FluxRegister &rhs)=delete |
| FluxRegister & | operator= (FluxRegister &&rhs)=delete |
| void | define (const BoxArray &fine_boxes, const DistributionMapping &dm, const IntVect &ref_ratio, int fine_lev, int nvar) |
| | Initialize after default construction.
|
| void | clear () |
| | Release all internal data structures and reset to the default-constructed state.
|
| const IntVect & | refRatio () const noexcept |
| | Returns the refinement ratio.
|
| int | fineLevel () const noexcept |
| | Returns the level number of the fine level.
|
| int | crseLevel () const noexcept |
| | Returns the level number of the coarse level (fineLevel()-1).
|
| int | nComp () const noexcept |
| | The number of components.
|
| const BoxArray & | coarsenedBoxes () const noexcept |
| | The coarsened boxes.
|
| Real | SumReg (int comp) const |
| | Returns the sum of the registers.
|
| 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.
|
| void | CrseInit (const MultiFab &mflx, int dir, int srccomp, int destcomp, int numcomp, Real mult=-1.0, FrOp op=FluxRegister::COPY) |
| | Initialize flux correction with coarse data (area already applied).
|
| 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.
|
| void | CrseAdd (const MultiFab &mflx, int dir, int srccomp, int destcomp, int numcomp, Real mult, const Geometry &geom) |
| | Like CrseAdd above but assumes areas are already multiplied into mflx.
|
| void | FineAdd (const MultiFab &mflx, int dir, int srccomp, int destcomp, int numcomp, Real mult) |
| | Increment flux correction with fine data (areas already applied).
|
| void | FineAdd (const MultiFab &mflx, const MultiFab &area, int dir, int srccomp, int destcomp, int numcomp, Real mult) |
| | Increment flux correction with fine data, supplying explicit areas.
|
| void | FineAdd (const FArrayBox &flux, int dir, int boxno, int srccomp, int destcomp, int numcomp, Real mult, RunOn runon) noexcept |
| | Increment flux correction with fine data.
|
| void | FineAdd (const FArrayBox &flux, const FArrayBox &area, int dir, int boxno, int srccomp, int destcomp, int numcomp, Real mult, RunOn runon) noexcept |
| | Increment flux correction with fine flux and area.
|
| 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 run on GPU for safety.
|
| 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.
|
| void | Reflux (MultiFab &mf, const MultiFab &volume, int dir, Real scale, int scomp, int dcomp, int nc, const Geometry &crse_geom) |
| | Overload that only corrects faces in direction dir using explicit cell volumes.
|
| void | Reflux (MultiFab &mf, Real scale, int scomp, int dcomp, int nc, const Geometry &crse_geom) |
| | Constant-volume version of Reflux() (no explicit volume MultiFab).
|
| void | Reflux (MultiFab &mf, int dir, Real scale, int scomp, int dcomp, int nc, const Geometry &crse_geom) |
| | Overload that only corrects faces in direction dir assuming unit volumes.
|
| 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 stored in the FluxRegister.
|
| void | ClearInternalBorders (const Geometry &crse_geom) |
| | Set internal coarse/fine border fluxes to zero before reuse.
|
| void | write (const std::string &name, std::ostream &os) const |
| | Write data to checkpoint files.
|
| void | read (const std::string &name, std::istream &is) |
| | Read data from checkpoint files.
|
| void | Reflux (MultiFab &mf, const MultiFab &volume, Orientation face, Real scale, int scomp, int dcomp, int nc, const Geometry &geom) |
| | Low-level helper used on GPUs: apply correction for a single face orientation.
|
| | BndryRegisterT () noexcept=default |
| | The default constructor.
|
| | BndryRegisterT (const BoxArray &grids_, const DistributionMapping &dmap, int in_rad, int out_rad, int extent_rad, int ncomp) |
| | The constructor, given number of cells in/out, extent and number of components (assumes cell-centered boxes, and allocates cell-centered FABs).
|
| | ~BndryRegisterT ()=default |
| | The destructor.
|
| | BndryRegisterT (BndryRegisterT< MultiFab > &&rhs) noexcept=default |
| | BndryRegisterT (const BndryRegisterT< MultiFab > &src)=delete |
| BndryRegisterT & | operator= (const BndryRegisterT< MultiFab > &src)=delete |
| BndryRegisterT & | operator= (BndryRegisterT< MultiFab > &&rhs)=delete |
| void | define (const BoxArray &grids_, const DistributionMapping &dmap, int in_rad, int out_rad, int extent_rad, int ncomp) |
| | Allocate boundary FabSets for all faces.
|
| void | define (Orientation face, IndexType typ, int in_rad, int out_rad, int extent_rad, int ncomp, const DistributionMapping &dm) |
| | Build FABs along a particular face orientation.
|
| void | clear () |
| | Release all FABs and clear the associated BoxArray.
|
| const BoxArray & | boxes () const noexcept |
| | Get box domain (as an array of boxes).
|
| int | size () const noexcept |
| | Return the number of grids in this domain.
|
| const FabSetT< MultiFab > & | operator[] (Orientation face) const noexcept |
| | Return const set of FABs bounding the domain grid boxes on orientation face.
|
| FabSetT< MultiFab > & | operator[] (Orientation face) noexcept |
| | Return set of FABs bounding the domain grid boxes on orientation face.
|
| void | setVal (value_type v) |
| | Set all boundary FABs to the scalar value v across every component.
|
| BndryRegisterT< MultiFab > & | operator+= (const BndryRegisterT< MultiFab > &rhs) |
| | Accumulate another register with identical layout into this one.
|
| BndryRegisterT< MultiFab > & | plus (const BndryRegisterT< MultiFab > &rhs) |
| | Convenience alias for operator+=.
|
| BndryRegisterT< MultiFab > & | copyFrom (const MultiFab &src, int nghost, int src_comp, int dest_comp, int num_comp, const Periodicity &period=Periodicity::NonPeriodic()) |
| | Fill boundary FABs with num_comp components copied from src (component src_comp) into dest_comp, sampling nghost layers and honoring period.
|
| BndryRegisterT< MultiFab > & | plusFrom (const MultiFab &src, int nghost, int src_comp, int dest_comp, int num_comp, const Periodicity &period=Periodicity::NonPeriodic()) |
| | Increment boundary FABs with num_comp components from src, using the same arguments as copyFrom().
|
| BndryRegisterT< MultiFab > & | linComb (value_type a, const MultiFab &mfa, int a_comp, value_type b, const MultiFab &mfb, int b_comp, int dest_comp, int num_comp, int n_ghost=0) |
| | Linear combination: this := a * mfa + b * mfb on the boundary, using components a_comp/b_comp and writing to dest_comp for num_comp entries with n_ghost layers.
|
| void | setBoxes (const BoxArray &grids) |
| | Set the BoxArray domain to grids once prior to calling define().
|
| const DistributionMapping & | DistributionMap () const noexcept |
| | Returns the DistributionMapping describing which MPI ranks own each boundary FAB.
|
| void | write (const std::string &name, std::ostream &os) const |
| | Write all FabSets to disk (used for checkpoint data).
|
| void | read (const std::string &name, std::istream &is) |
| | Read all FabSets from disk (used for checkpoint data).
|
Flux Register.
Stores and manipulates fluxes at coarse-fine interfaces.