21 #ifndef FUB_EQUATIONS_PERFECT_GAS_MIX_MUSCL_HANCOCK_CHAR_HPP
22 #define FUB_EQUATIONS_PERFECT_GAS_MIX_MUSCL_HANCOCK_CHAR_HPP
32 namespace perfect_gas {
70 velocity[0] = q.momentum[0] / q.density;
83 for (
int d = 0; d < 3; ++d) {
84 velocity.row(d) = q.momentum.row(d) / q.density;
90 for (
int d = 0; d < 2; ++d) {
91 velocity.row(d) = q.momentum.row(d) / q.density;
97 for (
int d = 0; d < 1; ++d) {
98 velocity.row(d) = q.momentum.row(d) / q.density;
120 template <
typename Limiter>
This class applies a base flux nethod on a view of states.
Definition: flux_method/FluxMethod.hpp:57
This is a variation of the Muscl Hancock Method where the reconstruction at the half time level is ba...
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:109
MusclHancockCharacteristic(const PerfectGas< Rank > &equation, Limiter &&limiter)
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:121
std::array< CompleteArray, 2 > reconstruction_array_
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:166
Primitives diffs_
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:161
std::array< Complete, 2 > reconstruction_
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:159
void ComputeNumericFlux(ConservativeArray &flux, Array1d face_fractions, span< const CompleteArray, 4 > stencil, span< const Array1d, 4 > volume_fractions, Duration dt, double dx, Direction dir)
void ComputeNumericFlux(Conservative &flux, span< const Complete, 4 > stencil, Duration dt, double dx, Direction dir)
Equation & GetEquation() noexcept
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:155
const Equation & GetEquation() const noexcept
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:152
Array1d ComputeStableDt(span< const CompleteArray, 4 > states, Array1d face_fraction, span< const Array1d, 4 > volume_fraction, double dx, Direction dir) noexcept
Returns an array of stable time step estimates based on HLL signal velocities.
std::function< double(double, double)> limiter_
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:164
HllemMethod< PerfectGas< Rank > > hllem_
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:174
void ComputeNumericFlux(ConservativeArray &flux, span< const CompleteArray, 4 > stencil, Duration dt, double dx, Direction dir)
CharacteristicsArray amplitudes_array_
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:169
std::function< Array1d(Array1d, Array1d)> array_limiter_
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:171
CharacteristicsArray slopes_array_
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:170
MusclHancockCharacteristic(const PerfectGas< Rank > &equation)
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:117
static constexpr int GetStencilWidth() noexcept
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:124
Characteristics amplitudes_
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:162
PerfectGas< Rank > equation_
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:158
Array1d ComputeStableDt(span< const CompleteArray, 4 > states, double dx, Direction dir) noexcept
double ComputeStableDt(span< const Complete, 4 > states, double dx, Direction dir) noexcept
Returns a stable time step estimate based on HLL signal velocities.
::fub::Complete< Equation > Complete
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:112
Characteristics slopes_
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:163
PrimitivesArray diffs_array_
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:168
::fub::CompleteArray< Equation > CompleteArray
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:114
A span is a view over a contiguous sequence of objects, the storage of which is owned by some other o...
Definition: span.hpp:81
The fub namespace.
Definition: AnyBoundaryCondition.hpp:31
Array< double, 3 > Array3d
Definition: Eigen.hpp:56
std::conditional_t< N==1||M==1, Eigen::Array< T, N, M >, Eigen::Array< T, N, M, Eigen::RowMajor > > Array
Definition: Eigen.hpp:50
std::chrono::duration< double > Duration
Definition: Duration.hpp:31
Array< double, 1 > Array1d
Definition: Eigen.hpp:53
Direction
This is a type safe type to denote a dimensional split direction.
Definition: Direction.hpp:30
Definition: StateArray.hpp:178
This type has a constructor which takes an equation and might allocate any dynamically sized member v...
Definition: State.hpp:335
Definition: PerfectGas.hpp:164
Definition: flux_method/MusclHancockMethod.hpp:137
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:34
double zero
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:36
double minus
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:35
double plus
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:37
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:45
Array1d v
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:49
Array1d minus
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:46
Array1d w
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:50
Array1d plus
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:48
Array1d zero
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:47
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:40
double w
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:42
double v
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:41
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:76
PrimitivesArray(const CompleteArray< PerfectGas< 2 >> &q)
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:88
PrimitivesArray(const CompleteArray< PerfectGas< 3 >> &q)
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:81
PrimitivesArray(const CompleteArray< PerfectGas< 1 >> &q)
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:95
Array1d pressure
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:79
Array1d density
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:77
Array3d velocity
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:78
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:53
Array< double, 3, 1 > velocity
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:55
double density
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:54
Primitives(const Complete< PerfectGas< 3 >> &q)
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:58
Primitives(const Complete< PerfectGas< 1 >> &q)
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:67
double pressure
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:56
Primitives(const Complete< PerfectGas< 2 >> &q)
Definition: perfect_gas/MusclHancockCharactersticMethod.hpp:62