REMORA
Regional Modeling of Oceans Refined Adaptively
|
#include <REMORA_FillPatcher.H>
Public Member Functions | |
REMORAFillPatcher (amrex::BoxArray const &fba, amrex::DistributionMapping const &fdm, amrex::Geometry const &fgeom, amrex::BoxArray const &cba, amrex::DistributionMapping const &cdm, amrex::Geometry const &cgeom, int nghost, int nghost_set, int ncomp, amrex::InterpBase *interp) | |
Fill valid and ghost data with the "state data" at the given time. | |
void | Define (amrex::BoxArray const &fba, amrex::DistributionMapping const &fdm, amrex::Geometry const &fgeom, amrex::BoxArray const &cba, amrex::DistributionMapping const &cdm, amrex::Geometry const &cgeom, int nghost, int nghost_set, int ncomp, amrex::InterpBase *interp) |
Redefine the coarse and fine patch MultiFabs. | |
void | BuildMask (amrex::BoxArray const &fba, int nghost, int nghost_set) |
Generate masking array. | |
void | RegisterCoarseData (amrex::Vector< amrex::MultiFab const * > const &crse_data, amrex::Vector< amrex::Real > const &crse_time) |
Register the coarse data to be used by the REMORAFillPatcher. | |
void | InterpFace (amrex::MultiFab &fine, amrex::MultiFab const &crse, int mask_val) |
Interpolate to cell faces. | |
void | InterpCell (amrex::MultiFab &fine, amrex::MultiFab const &crse, amrex::Vector< amrex::BCRec > const &bcr, int mask_val) |
Interpolate to cell centers. | |
int | GetSetMaskVal () |
int | GetRelaxMaskVal () |
amrex::iMultiFab * | GetMask () |
template<typename BC > | |
void | FillSet (amrex::MultiFab &mf, amrex::Real time, BC &cbc, amrex::Vector< amrex::BCRec > const &bcs) |
Fill fine data in the set region. | |
template<typename BC > | |
void | FillRelax (amrex::MultiFab &mf, amrex::Real time, BC &cbc, amrex::Vector< amrex::BCRec > const &bcs) |
Fill fine data in the relax region. | |
template<typename BC > | |
void | Fill (amrex::MultiFab &mf, amrex::Real time, BC &cbc, amrex::Vector< amrex::BCRec > const &bcs, int mask_val) |
Fill fine data in the relax region. | |
Private Attributes | |
amrex::BoxArray | m_fba |
amrex::BoxArray | m_cba |
amrex::DistributionMapping | m_fdm |
amrex::DistributionMapping | m_cdm |
amrex::Geometry | m_fgeom |
amrex::Geometry | m_cgeom |
int | m_nghost |
int | m_nghost_subset |
int | m_ncomp |
amrex::InterpBase * | m_interp |
amrex::IntVect | m_ratio |
std::unique_ptr< amrex::MultiFab > | m_cf_crse_data_old |
std::unique_ptr< amrex::MultiFab > | m_cf_crse_data_new |
std::unique_ptr< amrex::iMultiFab > | m_cf_mask |
amrex::Vector< amrex::Real > | m_crse_times |
amrex::Real | m_dt_crse |
int | m_set_mask {2} |
int | m_relax_mask {1} |
Definition at line 8 of file REMORA_FillPatcher.H.
REMORAFillPatcher::REMORAFillPatcher | ( | amrex::BoxArray const & | fba, |
amrex::DistributionMapping const & | fdm, | ||
amrex::Geometry const & | fgeom, | ||
amrex::BoxArray const & | cba, | ||
amrex::DistributionMapping const & | cdm, | ||
amrex::Geometry const & | cgeom, | ||
int | nghost, | ||
int | nghost_set, | ||
int | ncomp, | ||
amrex::InterpBase * | interp | ||
) |
Fill valid and ghost data with the "state data" at the given time.
[in] | fba | BoxArray of data to be filled at fine level |
[in] | fdm | DistributionMapping of data to be filled at fine level |
[in] | fgeom | container of geometry information at fine level |
[in] | cba | BoxArray of data to be filled at coarse level |
[in] | cdm | DistributionMapping of data to be filled at coarse level |
[in] | cgeom | container of geometry information at coarse level |
[in] | nghost | number of ghost cells to be filled |
[in] | ncomp | number of components to be filled |
[in] | interp | interpolation operator to be used |
Definition at line 19 of file REMORA_FillPatcher.cpp.
void REMORAFillPatcher::BuildMask | ( | amrex::BoxArray const & | fba, |
int | nghost, | ||
int | nghost_set | ||
) |
Generate masking array.
Definition at line 115 of file REMORA_FillPatcher.cpp.
Referenced by Define().
void REMORAFillPatcher::Define | ( | amrex::BoxArray const & | fba, |
amrex::DistributionMapping const & | fdm, | ||
amrex::Geometry const & | fgeom, | ||
amrex::BoxArray const & | cba, | ||
amrex::DistributionMapping const & | cdm, | ||
amrex::Geometry const & | cgeom, | ||
int | nghost, | ||
int | nghost_set, | ||
int | ncomp, | ||
amrex::InterpBase * | interp | ||
) |
Redefine the coarse and fine patch MultiFabs.
[in] | fba | BoxArray of data to be filled at fine level |
[in] | fdm | DistributionMapping of data to be filled at fine level |
[in] | fgeom | container of geometry information at fine level |
[in] | cba | BoxArray of data to be filled at coarse level |
[in] | cdm | DistributionMapping of data to be filled at coarse level |
[in] | cgeom | container of geometry information at coarse level |
[in] | nghost | number of ghost cells to be filled |
[in] | ncomp | number of components to be filled |
[in] | interp | interpolation operator to be used |
Definition at line 53 of file REMORA_FillPatcher.cpp.
Referenced by REMORAFillPatcher().
void REMORAFillPatcher::Fill | ( | amrex::MultiFab & | mf, |
amrex::Real | time, | ||
BC & | cbc, | ||
amrex::Vector< amrex::BCRec > const & | bcs, | ||
int | mask_val | ||
) |
Fill fine data in the relax region.
[out] | mf | MultiFab to be filled |
[in] | time | Time at which to fill data |
[in] | cbc | Coarse boundary condition |
[in] | bcs | Vector of boundary conditions |
[in] | mask_val | Value to assign mask array |
Definition at line 124 of file REMORA_FillPatcher.H.
Referenced by FillRelax(), and FillSet().
void REMORAFillPatcher::FillRelax | ( | amrex::MultiFab & | mf, |
amrex::Real | time, | ||
BC & | cbc, | ||
amrex::Vector< amrex::BCRec > const & | bcs | ||
) |
Fill fine data in the relax region.
[out] | mf | MultiFab to be filled |
[in] | time | Time at which to fill data |
[in] | cbc | Coarse boundary condition |
[in] | bcs | Vector of boundary conditions |
Definition at line 109 of file REMORA_FillPatcher.H.
void REMORAFillPatcher::FillSet | ( | amrex::MultiFab & | mf, |
amrex::Real | time, | ||
BC & | cbc, | ||
amrex::Vector< amrex::BCRec > const & | bcs | ||
) |
Fill fine data in the set region.
[out] | mf | MultiFab to be filled |
[in] | time | Time at which to fill data |
[in] | cbc | Coarse boundary condition |
[in] | bcs | Vector of boundary conditions |
Definition at line 95 of file REMORA_FillPatcher.H.
|
inline |
Definition at line 49 of file REMORA_FillPatcher.H.
|
inline |
Definition at line 47 of file REMORA_FillPatcher.H.
|
inline |
Definition at line 45 of file REMORA_FillPatcher.H.
void REMORAFillPatcher::InterpCell | ( | amrex::MultiFab & | fine, |
amrex::MultiFab const & | crse, | ||
amrex::Vector< amrex::BCRec > const & | bcr, | ||
int | mask_val | ||
) |
Interpolate to cell centers.
[in,out] | fine | fine level data |
[in] | crse | coarse level data |
[in] | bcr | boundary condition type |
[in] | mask_val | masked value |
Definition at line 333 of file REMORA_FillPatcher.cpp.
Referenced by Fill().
void REMORAFillPatcher::InterpFace | ( | amrex::MultiFab & | fine, |
amrex::MultiFab const & | crse, | ||
int | mask_val | ||
) |
Interpolate to cell faces.
[in,out] | fine | fine level data |
[in] | crse | coarse level data |
[in] | mask_val | masked value |
Definition at line 209 of file REMORA_FillPatcher.cpp.
Referenced by Fill().
void REMORAFillPatcher::RegisterCoarseData | ( | amrex::Vector< amrex::MultiFab const * > const & | crse_data, |
amrex::Vector< amrex::Real > const & | crse_time | ||
) |
Register the coarse data to be used by the REMORAFillPatcher.
Definition at line 180 of file REMORA_FillPatcher.cpp.
|
private |
Definition at line 68 of file REMORA_FillPatcher.H.
Referenced by Define().
|
private |
Definition at line 70 of file REMORA_FillPatcher.H.
Referenced by Define().
|
private |
Definition at line 79 of file REMORA_FillPatcher.H.
Referenced by Define(), Fill(), and RegisterCoarseData().
|
private |
Definition at line 78 of file REMORA_FillPatcher.H.
Referenced by Define(), Fill(), and RegisterCoarseData().
|
private |
Definition at line 80 of file REMORA_FillPatcher.H.
Referenced by BuildMask(), Define(), GetMask(), InterpCell(), and InterpFace().
|
private |
Definition at line 72 of file REMORA_FillPatcher.H.
Referenced by Define(), InterpCell(), InterpFace(), and RegisterCoarseData().
|
private |
Definition at line 81 of file REMORA_FillPatcher.H.
Referenced by Fill(), RegisterCoarseData(), and REMORAFillPatcher().
|
private |
Definition at line 82 of file REMORA_FillPatcher.H.
Referenced by Fill(), and RegisterCoarseData().
|
private |
Definition at line 67 of file REMORA_FillPatcher.H.
Referenced by Define().
|
private |
Definition at line 69 of file REMORA_FillPatcher.H.
Referenced by Define().
|
private |
Definition at line 71 of file REMORA_FillPatcher.H.
Referenced by Define(), and InterpCell().
|
private |
Definition at line 76 of file REMORA_FillPatcher.H.
Referenced by Define(), and InterpCell().
|
private |
Definition at line 75 of file REMORA_FillPatcher.H.
Referenced by Define(), Fill(), InterpCell(), InterpFace(), and RegisterCoarseData().
|
private |
Definition at line 73 of file REMORA_FillPatcher.H.
Referenced by Define().
|
private |
Definition at line 74 of file REMORA_FillPatcher.H.
Referenced by Define().
|
private |
Definition at line 77 of file REMORA_FillPatcher.H.
Referenced by Define(), InterpCell(), and InterpFace().
|
private |
Definition at line 84 of file REMORA_FillPatcher.H.
Referenced by Define(), FillRelax(), and GetRelaxMaskVal().
|
private |
Definition at line 83 of file REMORA_FillPatcher.H.
Referenced by Define(), FillSet(), and GetSetMaskVal().