4 #include <AMReX_Geometry.H>
5 #include <AMReX_DistributionMapping.H>
6 #include <AMReX_BoxArray.H>
9 #include <AMReX_EBFabFactory.H>
19 eb_ (amrex::Geometry
const& a_geom,
20 amrex::FArrayBox
const& terrain_fab,
21 amrex::Gpu::DeviceVector<amrex::Real>& a_dz_stretched,
26 amrex::Geometry
const& a_geom,
27 amrex::EB2::Level
const* a_eb_level,
31 amrex::Geometry
const& a_geom,
32 amrex::BoxArray
const& ba,
33 amrex::DistributionMapping
const& dm,
34 amrex::EB2::Level
const& a_eb_level);
37 amrex::Geometry
const& a_geom,
38 amrex::BoxArray
const& ba,
39 amrex::DistributionMapping
const& dm,
40 amrex::EB2::Level
const& a_eb_level);
70 std::unique_ptr<amrex::EBFArrayBoxFactory>
m_factory =
nullptr;
81 amrex::EB2::GeometryShop<F> a_gshop)
86 amrex::EB2::Build(a_gshop, a_geom, req_lev, max_lev);
87 const amrex::EB2::IndexSpace& ebis = amrex::EB2::IndexSpace::top();
92 inline amrex::FabArray<amrex::EBCellFlagFab>&
95 const amrex::FabArray<amrex::EBCellFlagFab>& flags_const = ebfact.getMultiEBCellFlagFab();
96 return const_cast<amrex::FabArray<amrex::EBCellFlagFab>&
>(flags_const);
99 inline amrex::MultiFab&
102 const amrex::MultiFab& vfrac_const = ebfact.getVolFrac();
103 return const_cast<amrex::MultiFab&
>(vfrac_const);
106 inline amrex::MultiCutFab&
109 const amrex::MultiCutFab& vcent_const = ebfact.getCentroid();
110 return const_cast<amrex::MultiCutFab&
>(vcent_const);
113 inline amrex::Array<amrex::MultiCutFab*, AMREX_SPACEDIM>
116 auto afrac_const = ebfact.getAreaFrac();
117 amrex::Array<amrex::MultiCutFab*, AMREX_SPACEDIM> afrac;
118 for (
int dir = 0; dir < AMREX_SPACEDIM; ++dir) {
119 afrac[dir] =
const_cast<amrex::MultiCutFab*
>(afrac_const[dir]);
124 inline amrex::Array<amrex::MultiCutFab*, AMREX_SPACEDIM>
127 auto fcent_const = ebfact.getFaceCent();
128 amrex::Array<amrex::MultiCutFab*, AMREX_SPACEDIM> fcent;
129 for (
int dir = 0; dir < AMREX_SPACEDIM; ++dir) {
130 fcent[dir] =
const_cast<amrex::MultiCutFab*
>(fcent_const[dir]);
amrex::FabArray< amrex::EBCellFlagFab > & getNonConstEBCellFlags(const amrex::EBFArrayBoxFactory &ebfact)
Definition: ERF_EB.H:93
eb_()
Definition: ERF_EB.cpp:26
void define(int level, amrex::Geometry const &a_geom, amrex::EB2::Level const *a_eb_level, bool is_anelastic)
void make_terrain(amrex::Geometry const &a_geom)
eb_aux_ const * get_w_const_factory() const noexcept
Definition: ERF_EB.H:52
void build_level(amrex::Geometry const &a_geom, amrex::EB2::GeometryShop< F > a_gshop)
Construct EB levels from Geometry shop.
Definition: ERF_EB.H:80
amrex::Array< amrex::MultiCutFab *, AMREX_SPACEDIM > getNonConstAreaFrac(const amrex::EBFArrayBoxFactory &ebfact)
Definition: ERF_EB.H:114
amrex::EB2::Level const * m_eb_level
EB level constructed from building GeometryShop.
Definition: ERF_EB.H:68
void make_all_factories(int level, amrex::Geometry const &a_geom, amrex::BoxArray const &ba, amrex::DistributionMapping const &dm, amrex::EB2::Level const &a_eb_level)
Definition: ERF_EB.cpp:33
amrex::FabArray< amrex::EBCellFlagFab > * m_cellflags
Definition: ERF_EB.H:65
const std::unique_ptr< amrex::EBFArrayBoxFactory > & get_const_factory() const noexcept
Definition: ERF_EB.H:46
amrex::MultiFab & getNonConstVolFrac(const amrex::EBFArrayBoxFactory &ebfact)
Definition: ERF_EB.H:100
eb_aux_ m_w_factory
Definition: ERF_EB.H:74
std::unique_ptr< amrex::EBFArrayBoxFactory > m_factory
Definition: ERF_EB.H:70
amrex::EBSupport m_support_level
Definition: ERF_EB.H:61
int nghost_volume() const
Definition: ERF_EB.H:43
amrex::Array< amrex::MultiCutFab *, AMREX_SPACEDIM > getNonConstFaceCent(const amrex::EBFArrayBoxFactory &ebfact)
Definition: ERF_EB.H:125
void make_cc_factory(int level, amrex::Geometry const &a_geom, amrex::BoxArray const &ba, amrex::DistributionMapping const &dm, amrex::EB2::Level const &a_eb_level)
Definition: ERF_EB.cpp:73
amrex::MultiCutFab & getNonConstCentroid(const amrex::EBFArrayBoxFactory &ebfact)
Definition: ERF_EB.H:107
eb_aux_ m_u_factory
Definition: ERF_EB.H:72
~eb_()
Definition: ERF_EB.cpp:21
eb_(amrex::Geometry const &a_geom, amrex::FArrayBox const &terrain_fab, amrex::Gpu::DeviceVector< amrex::Real > &a_dz_stretched, bool is_anelastic)
eb_aux_ const * get_v_const_factory() const noexcept
Definition: ERF_EB.H:51
eb_aux_ m_v_factory
Definition: ERF_EB.H:73
int m_has_eb
Definition: ERF_EB.H:54
int nghost_full() const
Definition: ERF_EB.H:44
int nghost_basic() const
Definition: ERF_EB.H:42
int m_write_eb_surface
Definition: ERF_EB.H:63
eb_aux_ const * get_u_const_factory() const noexcept
Definition: ERF_EB.H:50
std::string m_type
Definition: ERF_EB.H:59
void set_connection_flags()
Definition: ERF_EB.cpp:91
Definition: ERF_EBAux.H:12