Block-Structured AMR Software Framework
AMReX_EB2_IndexSpace_STL.H
Go to the documentation of this file.
1 #ifndef AMREX_EB2_INDEXSPACE_STL_H_
2 #define AMREX_EB2_INDEXSPACE_STL_H_
3 #include <AMReX_Config.H>
4 
5 #include <AMReX_EB2.H>
6 #include <AMReX_EB2_Level_STL.H>
7 
8 #include <string>
9 
10 namespace amrex::EB2 {
11 
13  : public IndexSpace
14 {
15 public:
16 
17  IndexSpaceSTL (const std::string& stl_file, Real stl_scale,
18  Array<Real,3> const& stl_center, int stl_reverse_normal,
19  const Geometry& geom, int required_coarsening_level,
20  int max_coarsening_level, int ngrow,
21  bool build_coarse_level_by_coarsening,
22  bool extend_domain_face, int num_coarsen_opt, bool bvh_optimization);
23 
24  IndexSpaceSTL (IndexSpaceSTL const&) = delete;
26  void operator= (IndexSpaceSTL const&) = delete;
27  void operator= (IndexSpaceSTL &&) = delete;
28 
29  ~IndexSpaceSTL () override = default;
30 
31  [[nodiscard]] const Level& getLevel (const Geometry& geom) const final;
32  [[nodiscard]] const Geometry& getGeometry (const Box& dom) const final;
33  [[nodiscard]] const Box& coarsestDomain () const final {
34  return m_geom.back().Domain();
35  }
36  void addFineLevels (int num_new_fine_levels) final;
37  void addRegularCoarseLevels (int num_new_coarse_levels) final;
38 
39 private:
40 
45 };
46 
47 }
48 
49 #endif
Definition: AMReX_EB2_IndexSpace_STL.H:14
~IndexSpaceSTL() override=default
void operator=(IndexSpaceSTL const &)=delete
const Box & coarsestDomain() const final
Definition: AMReX_EB2_IndexSpace_STL.H:33
const Level & getLevel(const Geometry &geom) const final
Definition: AMReX_EB2_IndexSpace_STL.cpp:72
Vector< Geometry > m_geom
Definition: AMReX_EB2_IndexSpace_STL.H:42
void addFineLevels(int num_new_fine_levels) final
Definition: AMReX_EB2_IndexSpace_STL.cpp:88
Vector< Box > m_domain
Definition: AMReX_EB2_IndexSpace_STL.H:43
Vector< STLLevel > m_stllevel
Definition: AMReX_EB2_IndexSpace_STL.H:41
IndexSpaceSTL(IndexSpaceSTL const &)=delete
Vector< int > m_ngrow
Definition: AMReX_EB2_IndexSpace_STL.H:44
IndexSpaceSTL(IndexSpaceSTL &&)=delete
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)
Definition: AMReX_EB2_IndexSpace_STL.cpp:5
void addRegularCoarseLevels(int num_new_coarse_levels) final
Definition: AMReX_EB2_IndexSpace_STL.cpp:97
const Geometry & getGeometry(const Box &dom) const final
Definition: AMReX_EB2_IndexSpace_STL.cpp:80
Definition: AMReX_EB2.H:26
Definition: AMReX_EB2_Level.H:33
Rectangular problem domain geometry.
Definition: AMReX_Geometry.H:73
This class is a thin wrapper around std::vector. Unlike vector, Vector::operator[] provides bound che...
Definition: AMReX_Vector.H:27
Definition: AMReX_FabArrayBase.H:32
AMREX_EXPORT bool extend_domain_face
Definition: AMReX_EB2.cpp:24
AMREX_EXPORT int num_coarsen_opt
Definition: AMReX_EB2.cpp:25
std::array< T, N > Array
Definition: AMReX_Array.H:24