21 #ifndef FUB_AMREX_MULTI_BLOCK_BOUNDARY_HPP
22 #define FUB_AMREX_MULTI_BLOCK_BOUNDARY_HPP
31 #include <AMReX_MultiFab.H>
33 #include <boost/log/sources/severity_channel_logger.hpp>
34 #include <boost/log/trivial.hpp>
40 class MultiBlockGriddingAlgorithm;
83 std::shared_ptr<PressureValve> valve);
139 const std::shared_ptr<PressureValve>&
GetValve() const noexcept;
143 boost::log::trivial::severity_level>;
A class mimicking the IdealGasMix / Reactor / ReactorNet interface of Cantera, but with FlameMaster c...
Definition: FlameMasterReactor.hpp:159
This class modifies and initializes a PatchLevel in a PatchHierarchy.
Definition: AMReX/GriddingAlgorithm.hpp:60
Definition: MultiBlockBoundary.hpp:64
std::shared_ptr< PressureValve > valve_
Definition: MultiBlockBoundary.hpp:146
MultiBlockBoundary(const MultiBlockGriddingAlgorithm &gridding, const BlockConnection &connection, int gcw, const FlameMasterReactor &reactor, int level)
Constructs coupled boundary states by pre computing mirror and ghost states for each of the specified...
int level_
Definition: MultiBlockBoundary.hpp:162
int gcw_
Definition: MultiBlockBoundary.hpp:163
MultiBlockBoundary & operator=(const MultiBlockBoundary &other)
void ComputeBoundaryData(const cutcell::PatchHierarchy &plenum, const PatchHierarchy &tube)
Precompute Boundary states for each domain.
logger_type log_
Definition: MultiBlockBoundary.hpp:144
MultiBlockBoundary & operator=(MultiBlockBoundary &&other)=default
void FillBoundary(::amrex::MultiFab &mf, const cutcell::GriddingAlgorithm &gridding, int level)
Assuming that mf represents a MultiFab living in the higher dimensional plenum simulation its ghost l...
IdealGasMix< Plenum_Rank > plenum_equation_
Definition: MultiBlockBoundary.hpp:148
boost::log::sources::severity_channel_logger< boost::log::trivial::severity_level > logger_type
Definition: MultiBlockBoundary.hpp:143
MultiBlockBoundary(const std::string &name, const MultiBlockGriddingAlgorithm &gridding, const BlockConnection &connection, int gcw, const FlameMasterReactor &reactor, int level, std::shared_ptr< PressureValve > valve)
static constexpr int Tube_Rank
Definition: MultiBlockBoundary.hpp:67
void FillBoundary(::amrex::MultiFab &mf, const GriddingAlgorithm &gridding, int level, Direction dir)
Definition: MultiBlockBoundary.hpp:132
const std::shared_ptr< PressureValve > & GetValve() const noexcept
Direction dir_
Definition: MultiBlockBoundary.hpp:160
void FillBoundary(::amrex::MultiFab &mf, const GriddingAlgorithm &gridding, int level)
Assuming that mf represents a MultiFab living in the one dimensional tube simulation its ghost layer ...
MultiBlockBoundary(const std::string &name, const MultiBlockGriddingAlgorithm &gridding, const BlockConnection &connection, int gcw, const FlameMasterReactor &reactor, int level)
Constructs coupled boundary states by pre computing mirror and ghost states for each of the specified...
std::unique_ptr<::amrex::FArrayBox > plenum_mirror_data_
Definition: MultiBlockBoundary.hpp:154
MultiBlockBoundary(const MultiBlockBoundary &other)
IdealGasMix< Tube_Rank > tube_equation_
Definition: MultiBlockBoundary.hpp:149
::amrex::Box tube_mirror_box_
Definition: MultiBlockBoundary.hpp:152
int side_
Definition: MultiBlockBoundary.hpp:161
std::unique_ptr<::amrex::FArrayBox > tube_ghost_data_
Definition: MultiBlockBoundary.hpp:155
MultiBlockBoundary(MultiBlockBoundary &&other)=default
void FillBoundary(::amrex::MultiFab &mf, const cutcell::GriddingAlgorithm &gridding, int level, Direction dir)
Definition: MultiBlockBoundary.hpp:118
::amrex::Box plenum_mirror_box_
Definition: MultiBlockBoundary.hpp:151
std::unique_ptr<::amrex::FArrayBox > plenum_ghost_data_
Definition: MultiBlockBoundary.hpp:158
static constexpr int Plenum_Rank
Definition: MultiBlockBoundary.hpp:66
std::unique_ptr<::amrex::FArrayBox > tube_mirror_data_
Definition: MultiBlockBoundary.hpp:157
Definition: MultiBlockGriddingAlgorithm.hpp:39
The PatchHierarchy holds simulation data on multiple refinement levels.
Definition: AMReX/PatchHierarchy.hpp:156
This class modifies and initializes a cutcell::PatchLevel in a cutcell::PatchHierarchy.
Definition: AMReX/cutcell/GriddingAlgorithm.hpp:56
Definition: AMReX/cutcell/PatchHierarchy.hpp:139
The amrex namespace.
Definition: AverageState.hpp:33
Direction
This is a type safe type to denote a dimensional split direction.
Definition: Direction.hpp:30
IndexBox< Rank > Box(const BasicView< State, Layout, Rank > &view)
Definition: State.hpp:486
Definition: MultiBlockBoundary.hpp:54
Direction direction
Definition: MultiBlockBoundary.hpp:57
BlockEntry tube
Definition: MultiBlockBoundary.hpp:55
int side
Definition: MultiBlockBoundary.hpp:58
BlockEntry plenum
Definition: MultiBlockBoundary.hpp:56
int ghost_cell_width
Definition: MultiBlockBoundary.hpp:59
Definition: MultiBlockBoundary.hpp:49
std::size_t id
Definition: MultiBlockBoundary.hpp:50
::amrex::Box mirror_box
Definition: MultiBlockBoundary.hpp:51
Definition: PressureValveBoundary.hpp:76