21 #ifndef FUB_BOUNDARY_CONDITION_TRANSMISSIVE_BOUNDARY_HPP
22 #define FUB_BOUNDARY_CONDITION_TRANSMISSIVE_BOUNDARY_HPP
37 static constexpr
int Rank = Equation::Rank();
38 static constexpr std::size_t
sRank =
static_cast<std::size_t
>(
Rank);
48 fub::amrex::MakeView<fub::BasicView<Complete>>(data,
equation_);
51 std::array<std::ptrdiff_t, sRank> lower = box.lower;
52 std::array<std::ptrdiff_t, sRank> upper = box.upper;
53 if (location.
side == 0) {
57 const std::array<std::ptrdiff_t, sRank> dest_index{is...};
58 std::array<std::ptrdiff_t, sRank> source_index = dest_index;
67 const std::array<std::ptrdiff_t, sRank> dest_index{is...};
68 std::array<std::ptrdiff_t, sRank> source_index = dest_index;
70 upper[location.
direction] - fill_width - 1;
82 fub::amrex::MakeView<fub::BasicView<Complete>>(data,
equation_);
85 std::array<std::ptrdiff_t, sRank> lower = box.lower;
86 std::array<std::ptrdiff_t, sRank> upper = box.upper;
87 if (location.
side == 0) {
91 const std::array<std::ptrdiff_t, sRank> dest_index{is...};
92 std::array<std::ptrdiff_t, sRank> source_index = dest_index;
105 const std::array<std::ptrdiff_t, sRank> dest_index{is...};
106 std::array<std::ptrdiff_t, sRank> source_index = dest_index;
108 upper[location.
direction] - fill_width - 1;
#define FUB_ASSERT(x)
Definition: assert.hpp:39
The PatchHierarchy holds simulation data on multiple refinement levels.
Definition: AMReX/PatchHierarchy.hpp:156
Definition: AMReX/cutcell/PatchHierarchy.hpp:139
Function ForEachIndex(const layout_left::mapping< Extents > &mapping, Function function)
Iterate through the multi-dimensional index space descibed by mapping and invoke function for each su...
Definition: ForEach.hpp:74
The fub namespace.
Definition: AnyBoundaryCondition.hpp:31
std::chrono::duration< double > Duration
Definition: Duration.hpp:31
bool AnyNaN(const Complete< Equation > &state)
Definition: State.hpp:719
void Load(State &state, const BasicView< const State, Layout, Rank > &view, const std::array< std::ptrdiff_t, State::Equation::Rank()> &index)
Definition: State.hpp:640
void Store(const BasicView< Conservative< Eq >, Layout, Eq::Rank()> &view, const Conservative< Eq > &state, const std::array< std::ptrdiff_t, Eq::Rank()> &index)
Definition: State.hpp:663
BasicView< const State, Layout, Rank > AsConst(const BasicView< State, Layout, Rank > &v)
Definition: State.hpp:431
Definition: State.hpp:403
Definition: PatchDataView.hpp:56
Definition: Direction.hpp:36
int side
Definition: Direction.hpp:38
std::size_t direction
Definition: Direction.hpp:37
Definition: PatchDataView.hpp:201
Definition: boundary_condition/TransmissiveBoundary.hpp:32
Complete fallback_state_
Definition: boundary_condition/TransmissiveBoundary.hpp:121
Complete state_
Definition: boundary_condition/TransmissiveBoundary.hpp:120
TransmissiveBoundary(const Equation &eq)
Definition: boundary_condition/TransmissiveBoundary.hpp:40
static constexpr std::size_t sRank
Definition: boundary_condition/TransmissiveBoundary.hpp:38
void operator()(const fub::PatchDataView< double, AMREX_SPACEDIM+1 > &data, const fub::amrex::cutcell::PatchHierarchy &, fub::amrex::PatchHandle, fub::Location location, int fill_width, fub::Duration)
Definition: boundary_condition/TransmissiveBoundary.hpp:77
TransmissiveBoundary(const Equation &eq, const Complete &fallback)
Definition: boundary_condition/TransmissiveBoundary.hpp:41
Equation equation_
Definition: boundary_condition/TransmissiveBoundary.hpp:119
Eq Equation
Definition: boundary_condition/TransmissiveBoundary.hpp:33
static constexpr int Rank
Definition: boundary_condition/TransmissiveBoundary.hpp:37
void operator()(const fub::PatchDataView< double, AMREX_SPACEDIM+1 > &data, const fub::amrex::PatchHierarchy &, fub::amrex::PatchHandle, fub::Location location, int fill_width, fub::Duration)
Definition: boundary_condition/TransmissiveBoundary.hpp:44