SpECTRE
v2025.03.17
|
Items related to evolving the Newtonian Euler system. More...
Namespaces | |
namespace | AnalyticData |
Holds classes implementing analytic data for the NewtonianEuler system. | |
namespace | BoundaryConditions |
Boundary conditions for the Newtonian Euler hydrodynamics system. | |
namespace | BoundaryCorrections |
Boundary corrections/numerical fluxes. | |
namespace | fd |
Finite difference functionality for Newtonian Euler. | |
namespace | OptionTags |
OptionTags for the conservative formulation of the Newtonian Euler system | |
namespace | Solutions |
Holds classes implementing a solution to the Newtonian Euler system. | |
namespace | Sources |
namespace | subcell |
Code required by the DG-subcell/FD hybrid solver. | |
namespace | Tags |
Tags for the conservative formulation of the Newtonian Euler system | |
Classes | |
struct | ComputeFluxes |
Compute the fluxes of the conservative variables of the Newtonian Euler system. More... | |
struct | ConservativeFromPrimitive |
Compute the conservative variables from the primitive variables. More... | |
struct | PrimitiveFromConservative |
Compute the primitive variables from the conservative variables. More... | |
struct | System |
struct | TimeDerivativeTerms |
Compute the time derivative of the conserved variables for the Newtonian Euler system. More... | |
Functions | |
template<size_t Dim> | |
std::pair< DataVector, std::pair< Matrix, Matrix > > | numerical_eigensystem (const tnsr::I< double, Dim > &velocity, const Scalar< double > &sound_speed_squared, const Scalar< double > &specific_enthalpy, const Scalar< double > &kappa_over_density, const tnsr::i< double, Dim > &unit_normal) |
Compute the transform matrices between the conserved variables and the characteristic variables of the NewtonianEuler system. More... | |
template<size_t Dim> | |
void | characteristic_speeds (gsl::not_null< std::array< DataVector, Dim+2 > * > char_speeds, const tnsr::I< DataVector, Dim > &velocity, const Scalar< DataVector > &sound_speed, const tnsr::i< DataVector, Dim > &normal) |
Compute the characteristic speeds of NewtonianEuler system. More... | |
template<size_t Dim> | |
std::array< DataVector, Dim+2 > | characteristic_speeds (const tnsr::I< DataVector, Dim > &velocity, const Scalar< DataVector > &sound_speed, const tnsr::i< DataVector, Dim > &normal) |
Compute the characteristic speeds of NewtonianEuler system. More... | |
template<size_t Dim> | |
Matrix | right_eigenvectors (const tnsr::I< double, Dim > &velocity, const Scalar< double > &sound_speed_squared, const Scalar< double > &specific_enthalpy, const Scalar< double > &kappa_over_density, const tnsr::i< double, Dim > &unit_normal) |
Compute the transform matrices between the conserved variables and the characteristic variables of the NewtonianEuler system. More... | |
template<size_t Dim> | |
Matrix | left_eigenvectors (const tnsr::I< double, Dim > &velocity, const Scalar< double > &sound_speed_squared, const Scalar< double > &specific_enthalpy, const Scalar< double > &kappa_over_density, const tnsr::i< double, Dim > &unit_normal) |
Compute the transform matrices between the conserved variables and the characteristic variables of the NewtonianEuler system. More... | |
template<typename DataType > | |
void | internal_energy_density (gsl::not_null< Scalar< DataType > * > result, const Scalar< DataType > &mass_density, const Scalar< DataType > &specific_internal_energy) |
template<typename DataType > | |
Scalar< DataType > | internal_energy_density (const Scalar< DataType > &mass_density, const Scalar< DataType > &specific_internal_energy) |
template<typename DataType , size_t Dim, typename Fr > | |
void | kinetic_energy_density (gsl::not_null< Scalar< DataType > * > result, const Scalar< DataType > &mass_density, const tnsr::I< DataType, Dim, Fr > &velocity) |
template<typename DataType , size_t Dim, typename Fr > | |
Scalar< DataType > | kinetic_energy_density (const Scalar< DataType > &mass_density, const tnsr::I< DataType, Dim, Fr > &velocity) |
template<typename DataType , size_t Dim, typename Fr > | |
void | mach_number (gsl::not_null< Scalar< DataType > * > result, const tnsr::I< DataType, Dim, Fr > &velocity, const Scalar< DataType > &sound_speed) |
template<typename DataType , size_t Dim, typename Fr > | |
Scalar< DataType > | mach_number (const tnsr::I< DataType, Dim, Fr > &velocity, const Scalar< DataType > &sound_speed) |
template<typename DataType , size_t Dim, typename Fr > | |
void | ram_pressure (gsl::not_null< tnsr::II< DataType, Dim, Fr > * > result, const Scalar< DataType > &mass_density, const tnsr::I< DataType, Dim, Fr > &velocity) |
template<typename DataType , size_t Dim, typename Fr > | |
tnsr::II< DataType, Dim, Fr > | ram_pressure (const Scalar< DataType > &mass_density, const tnsr::I< DataType, Dim, Fr > &velocity) |
template<typename DataType , size_t ThermodynamicDim> | |
void | sound_speed_squared (gsl::not_null< Scalar< DataType > * > result, const Scalar< DataType > &mass_density, const Scalar< DataType > &specific_internal_energy, const EquationsOfState::EquationOfState< false, ThermodynamicDim > &equation_of_state) |
template<typename DataType , size_t ThermodynamicDim> | |
Scalar< DataType > | sound_speed_squared (const Scalar< DataType > &mass_density, const Scalar< DataType > &specific_internal_energy, const EquationsOfState::EquationOfState< false, ThermodynamicDim > &equation_of_state) |
template<typename DataType , size_t Dim, typename Fr > | |
void | specific_kinetic_energy (gsl::not_null< Scalar< DataType > * > result, const tnsr::I< DataType, Dim, Fr > &velocity) |
template<typename DataType , size_t Dim, typename Fr > | |
Scalar< DataType > | specific_kinetic_energy (const tnsr::I< DataType, Dim, Fr > &velocity) |
Items related to evolving the Newtonian Euler system.
std::array< DataVector, Dim+2 > NewtonianEuler::characteristic_speeds | ( | const tnsr::I< DataVector, Dim > & | velocity, |
const Scalar< DataVector > & | sound_speed, | ||
const tnsr::i< DataVector, Dim > & | normal | ||
) |
Compute the characteristic speeds of NewtonianEuler system.
The principal symbol of the system is diagonalized so that the elements of the diagonal matrix are the characteristic speeds
where
void NewtonianEuler::characteristic_speeds | ( | gsl::not_null< std::array< DataVector, Dim+2 > * > | char_speeds, |
const tnsr::I< DataVector, Dim > & | velocity, | ||
const Scalar< DataVector > & | sound_speed, | ||
const tnsr::i< DataVector, Dim > & | normal | ||
) |
Compute the characteristic speeds of NewtonianEuler system.
The principal symbol of the system is diagonalized so that the elements of the diagonal matrix are the characteristic speeds
where
Scalar< DataType > NewtonianEuler::internal_energy_density | ( | const Scalar< DataType > & | mass_density, |
const Scalar< DataType > & | specific_internal_energy | ||
) |
Compute the internal energy density,
void NewtonianEuler::internal_energy_density | ( | gsl::not_null< Scalar< DataType > * > | result, |
const Scalar< DataType > & | mass_density, | ||
const Scalar< DataType > & | specific_internal_energy | ||
) |
Compute the internal energy density,
Scalar< DataType > NewtonianEuler::kinetic_energy_density | ( | const Scalar< DataType > & | mass_density, |
const tnsr::I< DataType, Dim, Fr > & | velocity | ||
) |
Compute the kinetic energy density,
void NewtonianEuler::kinetic_energy_density | ( | gsl::not_null< Scalar< DataType > * > | result, |
const Scalar< DataType > & | mass_density, | ||
const tnsr::I< DataType, Dim, Fr > & | velocity | ||
) |
Compute the kinetic energy density,
Matrix NewtonianEuler::left_eigenvectors | ( | const tnsr::I< double, Dim > & | velocity, |
const Scalar< double > & | sound_speed_squared, | ||
const Scalar< double > & | specific_enthalpy, | ||
const Scalar< double > & | kappa_over_density, | ||
const tnsr::i< double, Dim > & | unit_normal | ||
) |
Compute the transform matrices between the conserved variables and the characteristic variables of the NewtonianEuler system.
Let left_eigenvectors
computes the matrix right_eigenvectors
computes the matrix
For a short discussion of the characteristic transformation and the matrices
Here we briefly summarize the procedure. With
Scalar< DataType > NewtonianEuler::mach_number | ( | const tnsr::I< DataType, Dim, Fr > & | velocity, |
const Scalar< DataType > & | sound_speed | ||
) |
Compute the local Mach number,
void NewtonianEuler::mach_number | ( | gsl::not_null< Scalar< DataType > * > | result, |
const tnsr::I< DataType, Dim, Fr > & | velocity, | ||
const Scalar< DataType > & | sound_speed | ||
) |
Compute the local Mach number,
std::pair< DataVector, std::pair< Matrix, Matrix > > NewtonianEuler::numerical_eigensystem | ( | const tnsr::I< double, Dim > & | velocity, |
const Scalar< double > & | sound_speed_squared, | ||
const Scalar< double > & | specific_enthalpy, | ||
const Scalar< double > & | kappa_over_density, | ||
const tnsr::i< double, Dim > & | unit_normal | ||
) |
Compute the transform matrices between the conserved variables and the characteristic variables of the NewtonianEuler system.
See right_eigenvectors
and left_eigenvectors
for more details.
However, note that this function computes the transformation (i.e., the eigenvectors of the flux Jacobian) numerically, instead of using the analytic expressions. This is useful as a proof-of-concept for more complicated systems where the analytic expressions may not be known.
tnsr::II< DataType, Dim, Fr > NewtonianEuler::ram_pressure | ( | const Scalar< DataType > & | mass_density, |
const tnsr::I< DataType, Dim, Fr > & | velocity | ||
) |
Compute the ram pressure,
void NewtonianEuler::ram_pressure | ( | gsl::not_null< tnsr::II< DataType, Dim, Fr > * > | result, |
const Scalar< DataType > & | mass_density, | ||
const tnsr::I< DataType, Dim, Fr > & | velocity | ||
) |
Compute the ram pressure,
Matrix NewtonianEuler::right_eigenvectors | ( | const tnsr::I< double, Dim > & | velocity, |
const Scalar< double > & | sound_speed_squared, | ||
const Scalar< double > & | specific_enthalpy, | ||
const Scalar< double > & | kappa_over_density, | ||
const tnsr::i< double, Dim > & | unit_normal | ||
) |
Compute the transform matrices between the conserved variables and the characteristic variables of the NewtonianEuler system.
Let left_eigenvectors
computes the matrix right_eigenvectors
computes the matrix
For a short discussion of the characteristic transformation and the matrices
Here we briefly summarize the procedure. With
Scalar< DataType > NewtonianEuler::sound_speed_squared | ( | const Scalar< DataType > & | mass_density, |
const Scalar< DataType > & | specific_internal_energy, | ||
const EquationsOfState::EquationOfState< false, ThermodynamicDim > & | equation_of_state | ||
) |
Compute the Newtonian sound speed squared
void NewtonianEuler::sound_speed_squared | ( | gsl::not_null< Scalar< DataType > * > | result, |
const Scalar< DataType > & | mass_density, | ||
const Scalar< DataType > & | specific_internal_energy, | ||
const EquationsOfState::EquationOfState< false, ThermodynamicDim > & | equation_of_state | ||
) |
Compute the Newtonian sound speed squared
Scalar< DataType > NewtonianEuler::specific_kinetic_energy | ( | const tnsr::I< DataType, Dim, Fr > & | velocity | ) |
Compute the specific kinetic energy,
void NewtonianEuler::specific_kinetic_energy | ( | gsl::not_null< Scalar< DataType > * > | result, |
const tnsr::I< DataType, Dim, Fr > & | velocity | ||
) |
Compute the specific kinetic energy,