21 #ifndef FUB_EQUATIONS_COMPRESSIBLE_ADVECTION_HPP
22 #define FUB_EQUATIONS_COMPRESSIBLE_ADVECTION_HPP
40 template <
typename Density,
typename Momentum,
typename PTDensity>
47 template <
int VelocityRank>
55 template <
typename... Xs>
57 static constexpr
auto names =
58 std::make_tuple(
"Density",
"Momentum",
"PTdensity");
60 static constexpr
auto pointers_to_member =
75 template <
int VelocityRank>
83 template <
typename... Xs>
85 static constexpr
auto names =
86 std::make_tuple(
"Density",
"Momentum",
"PTdensity",
"PTinverse");
87 static constexpr
auto pointers_to_member =
93 template <
int VelocityDim>
104 static constexpr
int Rank() noexcept {
return N; }
108 state.density = cons.density;
109 state.momentum = cons.momentum;
110 state.PTdensity = cons.PTdensity;
111 state.PTinverse = cons.density / cons.PTdensity;
118 template <
typename State>
121 return typename State::Traits::template Depths<VelocityDim>{};
127 template <
int SpaceDimension,
int VelocityDimension = SpaceDimension>
152 const std::array<double, 5> Pvs,
Duration dt,
double dx,
This class is used by the HypebrolicSplitLevelIntegrator and delegates AMR related tasks to the AMReX...
Definition: AMReX/IntegratorContext.hpp:49
constexpr struct fub::euler::MomentumFn Momentum
constexpr struct fub::euler::DensityFn Density
The fub namespace.
Definition: AnyBoundaryCondition.hpp:31
std::chrono::duration< double > Duration
Definition: Duration.hpp:31
Direction
This is a type safe type to denote a dimensional split direction.
Definition: Direction.hpp:30
Definition: State.hpp:403
This type has a constructor which takes an equation and might allocate any dynamically sized member v...
Definition: State.hpp:335
Definition: CompressibleAdvection.hpp:71
PTInverse PTinverse
Definition: CompressibleAdvection.hpp:72
This is a template class for constructing conservative states for the perfect gas equations.
Definition: CompressibleAdvection.hpp:41
Momentum momentum
Definition: CompressibleAdvection.hpp:43
PTDensity PTdensity
Definition: CompressibleAdvection.hpp:44
Density density
Definition: CompressibleAdvection.hpp:42
This is a special FluxMethod class that uses the stored Pv field within the CompressibleAdvectionInte...
Definition: CompressibleAdvection.hpp:128
static Duration ComputeStableDt(const View< const Complete > &states, const StridedDataView< const double, SpaceDimension > Pv, double dx, Direction dir)
static void ComputeNumericFluxes(const View< Conservative > &fluxes, const View< const Complete > &states, const StridedDataView< const double, SpaceDimension > &Pv, Duration dt, double dx, Direction dir)
CompressibleAdvection< SpaceDimension, VelocityDimension > GetEquation() const noexcept
Definition: CompressibleAdvection.hpp:138
typename CompressibleAdvection< SpaceDimension, VelocityDimension >::Complete Complete
Definition: CompressibleAdvection.hpp:133
constexpr static int GetStencilWidth()
Definition: CompressibleAdvection.hpp:135
Duration ComputeStableDt(amrex::IntegratorContext &context, int level, Direction dir)
static void ComputeNumericFluxes(amrex::IntegratorContext &context, int level, Duration dt, Direction dir)
typename CompressibleAdvection< SpaceDimension, VelocityDimension >::Conservative Conservative
Definition: CompressibleAdvection.hpp:131
static Conservative ComputeNumericFluxes(const std::array< Complete, 4 > &stencil, const std::array< double, 5 > Pvs, Duration dt, double dx, Direction dir)
Definition: CompressibleAdvection.hpp:97
static constexpr int VelocityRank() noexcept
Definition: CompressibleAdvection.hpp:105
void CompleteFromCons(Complete &state, const Conservative &cons)
Definition: CompressibleAdvection.hpp:107
constexpr friend auto tag_invoke(fub::DepthsFn, const CompressibleAdvection &, Type< State >) noexcept
This specializes the customization point object "fub::Depth" for this equation.
Definition: CompressibleAdvection.hpp:119
static constexpr int Rank() noexcept
Definition: CompressibleAdvection.hpp:104
This type has a constructor which takes an equation and might allocate any dynamically sized member v...
Definition: State.hpp:251
Definition: State.hpp:166
Definition: PatchDataView.hpp:201
This type is used to tag scalar quantities.
Definition: State.hpp:109
Definition: State.hpp:162