Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
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>
7
8#include <string>
9
10namespace amrex::EB2 {
11
13 : public IndexSpace
14{
15public:
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,
23 bool bvh_optimization, bool support_mvmc);
24
25 IndexSpaceSTL (IndexSpaceSTL const&) = delete;
27 void operator= (IndexSpaceSTL const&) = delete;
28 void operator= (IndexSpaceSTL &&) = delete;
29
30 ~IndexSpaceSTL () override = default;
31
32 [[nodiscard]] const Level& getLevel (const Geometry& geom) const final;
33 [[nodiscard]] const Geometry& getGeometry (const Box& dom) const final;
34 [[nodiscard]] const Box& coarsestDomain () const final {
35 return m_geom.back().Domain();
36 }
37 void addFineLevels (int num_new_fine_levels) final;
38 void addRegularCoarseLevels (int num_new_coarse_levels) final;
39
40 void setShift (int direction, int ncells) override;
41
42private:
43
44 Vector<STLLevel> m_stllevel;
45 Vector<Geometry> m_geom;
46 Vector<Box> m_domain;
47 Vector<int> m_ngrow;
48};
49
50}
51
52#endif
Definition AMReX_EB2_IndexSpace_STL.H:14
~IndexSpaceSTL() override=default
void operator=(IndexSpaceSTL const &)=delete
const Level & getLevel(const Geometry &geom) const final
Definition AMReX_EB2_IndexSpace_STL.cpp:75
void setShift(int direction, int ncells) override
Definition AMReX_EB2_IndexSpace_STL.cpp:106
void addFineLevels(int num_new_fine_levels) final
Definition AMReX_EB2_IndexSpace_STL.cpp:91
const Box & coarsestDomain() const final
Definition AMReX_EB2_IndexSpace_STL.H:34
IndexSpaceSTL(IndexSpaceSTL const &)=delete
IndexSpaceSTL(IndexSpaceSTL &&)=delete
void addRegularCoarseLevels(int num_new_coarse_levels) final
Definition AMReX_EB2_IndexSpace_STL.cpp:100
const Geometry & getGeometry(const Box &dom) const final
Definition AMReX_EB2_IndexSpace_STL.cpp:83
Definition AMReX_EB2.H:28
Definition AMReX_EB2_Level.H:40
Rectangular problem domain geometry.
Definition AMReX_Geometry.H:74
This class is a thin wrapper around std::vector. Unlike vector, Vector::operator[] provides bound che...
Definition AMReX_Vector.H:28
amrex_real Real
Floating Point Type for Fields.
Definition AMReX_REAL.H:79
std::array< T, N > Array
Definition AMReX_Array.H:26
Definition AMReX_FabArrayBase.H:33