Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
amrex::EB2::GShopLevel< G > Class Template Reference

#include <AMReX_EB2_Level.H>

Inheritance diagram for amrex::EB2::GShopLevel< G >:
amrex::EB2::Level

Public Member Functions

 GShopLevel (IndexSpace const *is, G const &gshop, const Geometry &geom, int max_grid_size, int ngrow, bool extend_domain_face, int num_crse_opt)
 Build a level directly from a GeometryShop object.
 GShopLevel (IndexSpace const *is, int ilev, int max_grid_size, int ngrow, const Geometry &geom, GShopLevel< G > &fineLevel)
 Construct a coarse level by coarsening fineLevel.
 GShopLevel (IndexSpace const *is, const Geometry &geom)
 Construct an empty level (usually regular) bound to geom.
void define_fine (G const &gshop, const Geometry &geom, int max_grid_size, int ngrow, bool extend_domain_face, int num_crse_opt)
 Define data for the finest level using the supplied GeometryShop.
template<typename GS = G>
requires (std::same_as<GS,STLtools>)
void define_fine_mvmc (GS const &gshop, const Geometry &geom, int max_grid_size, int ngrow, bool extend_domain_face, int num_crse_opt)
 Define a fine level for multi-valued multi-cut STL geometries (3-D only).
void buildFCData (G const &gshop, int face_dir, int max_grid_size)
 Build face-centered EB data for face_dir. Builds refined CC transiently.
Public Member Functions inherited from amrex::EB2::Level
bool isAllRegular () const noexcept
bool isOK () const noexcept
void fillEBCellFlag (FabArray< EBCellFlagFab > &cellflag, const Geometry &geom) const
 Fill cellflag with EBCellFlag data using geometry geom.
void fillVolFrac (MultiFab &vfrac, const Geometry &geom) const
 Populate volume fractions into vfrac using geom.
void fillCentroid (MultiCutFab &centroid, const Geometry &geom) const
 Populate cut-cell centroids into a MultiCutFab.
void fillCentroid (MultiFab &centroid, const Geometry &geom) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void fillBndryArea (MultiCutFab &bndryarea, const Geometry &geom) const
 Populate boundary-face areas into bndryarea.
void fillBndryArea (MultiFab &bndryarea, const Geometry &geom) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void fillBndryCent (MultiCutFab &bndrycent, const Geometry &geom) const
 Populate boundary centroids into bndrycent.
void fillBndryCent (MultiFab &bndrycent, const Geometry &geom) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void fillBndryNorm (MultiCutFab &bndrynorm, const Geometry &geom) const
 Populate boundary normals into bndrynorm.
void fillBndryNorm (MultiFab &bndrynorm, const Geometry &geom) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void fillAreaFrac (Array< MultiCutFab *, 3 > const &areafrac, const Geometry &geom) const
 Populate face area fractions for each direction.
void fillAreaFrac (Array< MultiFab *, 3 > const &areafrac, const Geometry &geom) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void fillFaceCent (Array< MultiCutFab *, 3 > const &facecent, const Geometry &geom) const
 Populate face centroids for each direction.
void fillFaceCent (Array< MultiFab *, 3 > const &facecent, const Geometry &geom) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void fillEdgeCent (Array< MultiCutFab *, 3 > const &edgecent, const Geometry &geom) const
 Populate edge centroids for each direction.
void fillEdgeCent (Array< MultiFab *, 3 > const &edgecent, const Geometry &geom) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void fillLevelSet (MultiFab &levelset, const Geometry &geom) const
 Write the implicit function values into levelset.
const BoxArray & boxArray () const noexcept
const DistributionMapping & DistributionMap () const noexcept
 Level (IndexSpace const *is, const Geometry &geom)
 Construct a Level bound to EB index space is and Geometry geom.
void prepareForCoarsening (const Level &rhs, int max_grid_size, IntVect const &ngrow)
 Prepare for coarsening by copying from rhs, respecting max grid size and grow vector.
const Geometry & Geom () const noexcept
IndexSpace const * getEBIndexSpace () const noexcept
IntVect const & nGrowVect () const noexcept
void write_to_chkpt_file (const std::string &fname, bool extend_domain_face, int max_grid_size) const
 Write this level’s EB data to a checkpoint file fname.
bool hasEBInfo () const noexcept
void fillCutCellMask (iMultiFab &cutcellmask, const Geometry &geom) const
 Populate the cut-cell mask into cutcellmask.
void setShift (int direction, int ncells)
 Shift this level by ncells cells along direction direction (for periodic tiling).
bool hasFCData (int face_dir) const noexcept
 Check if face-centered data is available for face_dir (0=x, 1=y, 2=z).
const FCData & getFCData (int face_dir) const
 Get reference to face-centered data for face_dir (0=x, 1=y, 2=z).
void fillVolFracFC (MultiFab &vfrac, int face_dir, const Geometry &geom) const
 Fill face-centered volume fractions for face_dir.
void fillAreaFracFC (Array< MultiFab *, 3 > const &areafrac, int face_dir, const Geometry &geom) const
 Fill face-centered area fractions for face_dir.
void fillAreaFracFC (Array< MultiCutFab *, 3 > const &areafrac, int face_dir, const Geometry &geom) const
void fillCentroidFC (MultiFab &centroid, int face_dir, const Geometry &geom) const
 Fill face-centered centroids for face_dir.
void fillCentroidFC (MultiCutFab &centroid, int face_dir, const Geometry &geom) const
void fillBndryAreaFC (MultiFab &bndryarea, int face_dir, const Geometry &geom) const
 Fill face-centered boundary areas for face_dir.
void fillBndryAreaFC (MultiCutFab &bndryarea, int face_dir, const Geometry &geom) const
void fillBndryCentFC (MultiFab &bndrycent, int face_dir, const Geometry &geom) const
 Fill face-centered boundary centroids for face_dir.
void fillBndryCentFC (MultiCutFab &bndrycent, int face_dir, const Geometry &geom) const
void fillBndryNormFC (MultiFab &bndrynorm, int face_dir, const Geometry &geom) const
 Fill face-centered boundary normals for face_dir.
void fillBndryNormFC (MultiCutFab &bndrynorm, int face_dir, const Geometry &geom) const
void fillEBCellFlagFC (FabArray< EBCellFlagFab > &cellflag, int face_dir, const Geometry &geom) const
 Fill face-centered EBCellFlags for face_dir.
void fillFaceCentFC (Array< MultiFab *, 3 > const &facecent, int face_dir, const Geometry &geom) const
 Fill face-centered face centroids for face_dir.
void fillFaceCentFC (Array< MultiCutFab *, 3 > const &facecent, int face_dir, const Geometry &geom) const
void fillEdgeCentFC (Array< MultiFab *, 3 > const &edgecent, int face_dir, const Geometry &geom) const
 Fill face-centered edge centroids for face_dir.
void fillEdgeCentFC (Array< MultiCutFab *, 3 > const &edgecent, int face_dir, const Geometry &geom) const
int coarsenFromFine (Level &fineLevel, bool fill_boundary)
 Coarsen EB data from fineLevel into this level.
void buildCellFlag ()
 Build EBCellFlag data from the current implicit function field.
void buildCellFlagFC (int face_dir)
 Build the face-centered EBCellFlag connectivity for face_dir from its area fractions.
void buildCutCellMask (Level const &fine_level)
 Build the cut-cell mask by coarsening from fine_level.

Static Public Member Functions

static GShopLevel< G > makeAllRegular (IndexSpace const *is, const Geometry &geom)
 Build a regular (no EB) level.
Static Public Member Functions inherited from amrex::EB2::Level
static IntVect fcEdgeType (int idim, int face_dir) noexcept
 Index type of the face-centered edge centroids for edge direction idim.

Additional Inherited Members

Protected Attributes inherited from amrex::EB2::Level
Geometry m_geom
IntVect m_ngrow
BoxArray m_grids
BoxArray m_covered_grids
DistributionMapping m_dmap
MultiFab m_sdf
std::map< int, std::unique_ptr< MC::MCFab > > m_marching_cubes
MultiGFab m_mgf
MultiFab m_levelset
FabArray< EBCellFlagFab > m_cellflag
MultiFab m_volfrac
MultiFab m_centroid
MultiFab m_bndryarea
MultiFab m_bndrycent
MultiFab m_bndrynorm
Array< MultiFab, 3 > m_areafrac
Array< MultiFab, 3 > m_facecent
Array< MultiFab, 3 > m_edgecent
iMultiFab m_cutcellmask
bool m_allregular = false
bool m_ok = false
bool m_has_eb_info = true
IntVect m_shift {0}
IndexSpace const * m_parent
Array< std::unique_ptr< FCData >, 3 > m_fc_data
 Face-centered data storage: [0]=x-face, [1]=y-face, [2]=z-face.

Constructor & Destructor Documentation

◆ GShopLevel() [1/3]

template<typename G>
amrex::EB2::GShopLevel< G >::GShopLevel ( IndexSpace const * is,
G const & gshop,
const Geometry & geom,
int max_grid_size,
int ngrow,
bool extend_domain_face,
int num_crse_opt )

Build a level directly from a GeometryShop object.

◆ GShopLevel() [2/3]

template<typename G>
amrex::EB2::GShopLevel< G >::GShopLevel ( IndexSpace const * is,
int ilev,
int max_grid_size,
int ngrow,
const Geometry & geom,
GShopLevel< G > & fineLevel )

Construct a coarse level by coarsening fineLevel.

◆ GShopLevel() [3/3]

template<typename G>
amrex::EB2::GShopLevel< G >::GShopLevel ( IndexSpace const * is,
const Geometry & geom )

Construct an empty level (usually regular) bound to geom.

Member Function Documentation

◆ buildFCData()

template<typename G>
void amrex::EB2::GShopLevel< G >::buildFCData ( G const & gshop,
int face_dir,
int max_grid_size )

Build face-centered EB data for face_dir. Builds refined CC transiently.

◆ define_fine()

template<typename G>
void amrex::EB2::GShopLevel< G >::define_fine ( G const & gshop,
const Geometry & geom,
int max_grid_size,
int ngrow,
bool extend_domain_face,
int num_crse_opt )

Define data for the finest level using the supplied GeometryShop.

◆ define_fine_mvmc()

template<typename G>
requires (std::same_as<GS,STLtools>)
template<typename GS>
requires (std::same_as<GS,STLtools>)
void amrex::EB2::GShopLevel< G >::define_fine_mvmc ( GS const & gshop,
const Geometry & geom,
int max_grid_size,
int ngrow,
bool extend_domain_face,
int num_crse_opt )

Define a fine level for multi-valued multi-cut STL geometries (3-D only).

◆ makeAllRegular()

template<typename G>
GShopLevel< G > amrex::EB2::GShopLevel< G >::makeAllRegular ( IndexSpace const * is,
const Geometry & geom )
inlinestatic

Build a regular (no EB) level.


The documentation for this class was generated from the following file: