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 LevelgetLevel (const Geometry &geom) const final
 Return the EB level that matches geom.Domain().
 
const GeometrygetGeometry (const Box &dom) const final
 Return the Geometry whose domain equals dom.
 
const BoxcoarsestDomain () 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 ()=default
 
 IndexSpace () noexcept=default
 
 IndexSpace (IndexSpace const &)=delete
 
 IndexSpace (IndexSpace &&)=delete
 
IndexSpaceoperator= (IndexSpace const &)=delete
 
IndexSpaceoperator= (IndexSpace &&)=delete
 

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 IndexSpacetop ()
 
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
inlinefinalvirtual

Domain of the coarsest EB representation.

Implements amrex::EB2::IndexSpace.

◆ getGeometry()

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

Return the Geometry whose domain equals dom.

Implements amrex::EB2::IndexSpace.

◆ getLevel()

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

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: