Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
amrex::EB2::IndexSpaceSTL Class Reference

IndexSpace that samples implicit geometry from STL meshes. More...

#include <AMReX_EB2_IndexSpace_STL.H>

Inheritance diagram for amrex::EB2::IndexSpaceSTL:
amrex::EB2::IndexSpace

Public Member Functions

 IndexSpaceSTL (const std::string &stl_file, Real stl_scale, Array< Real, 3 > const &stl_center, int stl_reverse_normal, const Geometry &geom, int required_coarsening_level, int max_coarsening_level, int ngrow, bool build_coarse_level_by_coarsening, bool extend_domain_face, int num_coarsen_opt, bool bvh_optimization, bool support_mvmc)
 Build an EB hierarchy from an STL file.
 IndexSpaceSTL (IndexSpaceSTL const &)=delete
 IndexSpaceSTL (IndexSpaceSTL &&)=delete
void operator= (IndexSpaceSTL const &)=delete
void operator= (IndexSpaceSTL &&)=delete
 ~IndexSpaceSTL () override=default
const Level & getLevel (const Geometry &geom) const final
 Return the EB level that matches geom.Domain().
const Geometry & getGeometry (const Box &dom) const final
 Return the Geometry whose domain equals dom.
const Box & coarsestDomain () const final
 Domain of the coarsest EB representation.
void addFineLevels (int num_new_fine_levels) final
 Dynamically add a number of finer levels to the hierarchy.
void addRegularCoarseLevels (int num_new_coarse_levels) final
 Prepend regular coarse levels below the existing hierarchy.
void setShift (int direction, int ncells) override
 Apply a periodic shift (in cells) to the entire IndexSpace.
Public Member Functions inherited from amrex::EB2::IndexSpace
virtual ~IndexSpace ()
 IndexSpace () noexcept=default
 IndexSpace (IndexSpace const &)=delete
 IndexSpace (IndexSpace &&)=delete
IndexSpace & operator= (IndexSpace const &)=delete
IndexSpace & operator= (IndexSpace &&)=delete
virtual void buildAllFCData ()
 Build face-centered EB data for all three face directions.

Additional Inherited Members

Static Public Member Functions inherited from amrex::EB2::IndexSpace
static void push (IndexSpace *ispace)
static void push (std::unique_ptr< IndexSpace > ispace)
static void erase (IndexSpace *ispace)
static void pop () noexcept
static void clear () noexcept
static IndexSpace & top ()
static bool empty () noexcept
static int size () noexcept
Static Protected Attributes inherited from amrex::EB2::IndexSpace
static Vector< std::unique_ptr< IndexSpace > > m_instance

Detailed Description

IndexSpace that samples implicit geometry from STL meshes.

Constructor & Destructor Documentation

◆ IndexSpaceSTL() [1/3]

amrex::EB2::IndexSpaceSTL::IndexSpaceSTL ( const std::string & stl_file,
Real stl_scale,
Array< Real, 3 > const & stl_center,
int stl_reverse_normal,
const Geometry & geom,
int required_coarsening_level,
int max_coarsening_level,
int ngrow,
bool build_coarse_level_by_coarsening,
bool extend_domain_face,
int num_coarsen_opt,
bool bvh_optimization,
bool support_mvmc )

Build an EB hierarchy from an STL file.

Parameters
stl_filePath to the STL mesh.
stl_scaleUniform scaling applied to STL coordinates.
stl_centerTranslation applied to center the mesh.
stl_reverse_normalIf non-zero, flip triangle normals.
geomFinest-level geometry descriptor.
required_coarsening_levelNumber of coarse levels required by the app.
max_coarsening_levelMaximum coarse level to attempt.
ngrowNumber of EB ghost cells to build on level 0.
build_coarse_level_by_coarseningWhether to build coarse levels by coarsening from fine levels.
extend_domain_faceExtend EB description beyond the domain from the domain faces.
num_coarsen_optNumber of coarse probes to try before rebuilding at full resolution.
bvh_optimizationEnable BVH acceleration for intersection tests.
support_mvmcWhether to generate multi-valued/multi-cut data. (This path is not supported yet.)

◆ IndexSpaceSTL() [2/3]

amrex::EB2::IndexSpaceSTL::IndexSpaceSTL ( IndexSpaceSTL const & )
delete

◆ IndexSpaceSTL() [3/3]

amrex::EB2::IndexSpaceSTL::IndexSpaceSTL ( IndexSpaceSTL && )
delete

◆ ~IndexSpaceSTL()

amrex::EB2::IndexSpaceSTL::~IndexSpaceSTL ( )
overridedefault

Member Function Documentation

◆ addFineLevels()

void amrex::EB2::IndexSpaceSTL::addFineLevels ( int num_new_fine_levels)
finalvirtual

Dynamically add a number of finer levels to the hierarchy.

Implements amrex::EB2::IndexSpace.

◆ addRegularCoarseLevels()

void amrex::EB2::IndexSpaceSTL::addRegularCoarseLevels ( int num_new_coarse_levels)
finalvirtual

Prepend regular coarse levels below the existing hierarchy.

Implements amrex::EB2::IndexSpace.

◆ coarsestDomain()

const Box & amrex::EB2::IndexSpaceSTL::coarsestDomain ( ) const
inlinenodiscardfinalvirtual

Domain of the coarsest EB representation.

Implements amrex::EB2::IndexSpace.

◆ getGeometry()

const Geometry & amrex::EB2::IndexSpaceSTL::getGeometry ( const Box & dom) const
nodiscardfinalvirtual

Return the Geometry whose domain equals dom.

Implements amrex::EB2::IndexSpace.

◆ getLevel()

const Level & amrex::EB2::IndexSpaceSTL::getLevel ( const Geometry & geom) const
nodiscardfinalvirtual

Return the EB level that matches geom.Domain().

Implements amrex::EB2::IndexSpace.

◆ operator=() [1/2]

void amrex::EB2::IndexSpaceSTL::operator= ( IndexSpaceSTL && )
delete

◆ operator=() [2/2]

void amrex::EB2::IndexSpaceSTL::operator= ( IndexSpaceSTL const & )
delete

◆ setShift()

void amrex::EB2::IndexSpaceSTL::setShift ( int direction,
int ncells )
overridevirtual

Apply a periodic shift (in cells) to the entire IndexSpace.

Reimplemented from amrex::EB2::IndexSpace.


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