21 #ifndef FUB_EQUATIONS_IDEAL_GAS_MIX_MUSCL_HANCOCK_CHAR_HPP
22 #define FUB_EQUATIONS_IDEAL_GAS_MIX_MUSCL_HANCOCK_CHAR_HPP
44 :
species(eq.GetReactor().GetNSpecies()) {}
97 for (
int d = 0; d < 3; ++d) {
98 velocity.row(d) = q.momentum.row(d) / q.density;
104 for (
int d = 0; d < 2; ++d) {
105 velocity.row(d) = q.momentum.row(d) / q.density;
111 for (
int d = 0; d < 1; ++d) {
112 velocity.row(d) = q.momentum.row(d) / q.density;
141 template <
typename Limiter>
This class applies a base flux nethod on a view of states.
Definition: flux_method/FluxMethod.hpp:57
Definition: HllMethod.hpp:139
This is a variation of the Muscl Hancock Method where the reconstruction at the half time level is ba...
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:130
const Equation & GetEquation() const noexcept
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:175
void ComputeNumericFlux(Conservative &flux, span< const Complete, 4 > stencil, Duration dt, double dx, Direction dir)
IdealGasMix< Rank > equation_
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:181
void ComputeNumericFlux(ConservativeArray &flux, Array1d face_fractions, span< const CompleteArray, 4 > stencil, span< const Array1d, 4 > volume_fractions, Duration dt, double dx, Direction dir)
Characteristics amplitudes_
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:185
CharacteristicsArray slopes_array_
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:193
MusclHancockCharacteristic(const IdealGasMix< Rank > &equation)
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:138
std::function< Array1d(Array1d, Array1d)> array_limiter_
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:194
Characteristics slopes_
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:186
::fub::Complete< Equation > Complete
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:133
void ComputeNumericFlux(ConservativeArray &flux, span< const CompleteArray, 4 > stencil, Duration dt, double dx, Direction dir)
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.
CharacteristicsArray amplitudes_array_
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:192
HlleMethod hlle_
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:198
Equation & GetEquation() noexcept
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:178
double ComputeStableDt(span< const Complete, 4 > states, double dx, Direction dir) noexcept
Returns a stable time step estimate based on HLL signal velocities.
MusclHancockCharacteristic(const IdealGasMix< Rank > &equation, Limiter &&limiter)
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:142
Primitives diffs_
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:184
std::array< Complete, 2 > reconstruction_
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:182
std::array< CompleteArray, 2 > reconstruction_array_
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:189
PrimitivesArray diffs_array_
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:191
Array1d ComputeStableDt(span< const CompleteArray, 4 > states, double dx, Direction dir) noexcept
std::function< double(double, double)> limiter_
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:187
static constexpr int GetStencilWidth() noexcept
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:147
::fub::CompleteArray< Equation > CompleteArray
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:135
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
Array< double, Eigen::Dynamic > ArrayXd
Definition: Eigen.hpp:57
std::chrono::duration< double > Duration
Definition: Duration.hpp:31
Array< double, 1 > Array1d
Definition: Eigen.hpp:53
constexpr const int kDefaultChunkSize
Definition: Eigen.hpp:39
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
This is a customization point for equations which can define two signal velocities for usage with the...
Definition: EinfeldtSignalVelocities.hpp:37
Definition: flux_method/MusclHancockMethod.hpp:137
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:47
Array1d minus
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:48
Array1d zero
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:49
Array1d v
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:51
Array1d plus
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:50
Array1d w
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:52
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:31
double plus
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:34
double zero
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:33
double w
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:36
double minus
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:32
double v
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:35
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:90
Array3d velocity
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:92
Array1d density
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:91
Array1d pressure
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:93
BasicPrimitivesArray(const CompleteArray< IdealGasMix< 1 >> &q)
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:109
BasicPrimitivesArray(const CompleteArray< IdealGasMix< 3 >> &q)
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:95
BasicPrimitivesArray(const CompleteArray< IdealGasMix< 2 >> &q)
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:102
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:63
BasicPrimitives(const Complete< IdealGasMix< 3 >> &q)
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:68
Array< double, 3, 1 > velocity
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:65
double pressure
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:66
double density
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:64
BasicPrimitives(const Complete< IdealGasMix< 2 >> &q)
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:72
BasicPrimitives(const Complete< IdealGasMix< 1 >> &q)
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:77
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:55
CharacteristicsArray(const IdealGasMix< Rank > &eq)
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:59
ArrayXd species
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:56
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:39
Array< double, -1, 1 > species
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:40
Characteristics(const IdealGasMix< Rank > &eq)
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:43
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:117
ArrayXd species
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:122
PrimitivesArray(const CompleteArray< IdealGasMix< Rank >> &q)
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:119
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:82
Primitives(const Complete< IdealGasMix< Rank >> &q)
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:84
Array< double, -1, 1 > species
Definition: ideal_gas_mix/MusclHancockCharactersticMethod.hpp:87