ryujin 2.1.1 revision 0348cbb53a3e4b1da2a4c037e81f88f2d21ce219
Public Member Functions | List of all members
ryujin::EquationOfStateLibrary::JonesWilkinsLee Class Reference

#include <source/euler_aeos/equation_of_state_jones_wilkins_lee.h>

Inheritance diagram for ryujin::EquationOfStateLibrary::JonesWilkinsLee:
Inheritance graph
[legend]
Collaboration diagram for ryujin::EquationOfStateLibrary::JonesWilkinsLee:
Collaboration graph
[legend]

Public Member Functions

 JonesWilkinsLee (const std::string &subsection)
 
double pressure (double rho, double e) const final
 
double specific_internal_energy (double rho, double p) const final
 
double temperature (double rho, double e) const final
 
double speed_of_sound (double rho, double e) const final
 
virtual double pressure (double rho, double e) const=0
 
virtual void pressure (const dealii::ArrayView< double > &p, const dealii::ArrayView< double > &rho, const dealii::ArrayView< double > &e) const
 
virtual double specific_internal_energy (double rho, double p) const=0
 
virtual void specific_internal_energy (const dealii::ArrayView< double > &e, const dealii::ArrayView< double > &rho, const dealii::ArrayView< double > &p) const
 
virtual double speed_of_sound (double rho, double e) const=0
 
virtual void speed_of_sound (const dealii::ArrayView< double > &c, const dealii::ArrayView< double > &rho, const dealii::ArrayView< double > &e) const
 
virtual double temperature (double rho, double e) const=0
 
virtual void temperature (const dealii::ArrayView< double > &T, const dealii::ArrayView< double > &rho, const dealii::ArrayView< double > &e) const
 
- Public Member Functions inherited from ryujin::EquationOfStateLibrary::EquationOfState
 EquationOfState (const std::string &name, const std::string &subsection)
 
virtual double pressure (double rho, double e) const =0
 
virtual void pressure (const dealii::ArrayView< double > &p, const dealii::ArrayView< double > &rho, const dealii::ArrayView< double > &e) const
 
virtual double specific_internal_energy (double rho, double p) const =0
 
virtual void specific_internal_energy (const dealii::ArrayView< double > &e, const dealii::ArrayView< double > &rho, const dealii::ArrayView< double > &p) const
 
virtual double temperature (double rho, double e) const =0
 
virtual void temperature (const dealii::ArrayView< double > &T, const dealii::ArrayView< double > &rho, const dealii::ArrayView< double > &e) const
 
virtual double speed_of_sound (double rho, double e) const =0
 
virtual void speed_of_sound (const dealii::ArrayView< double > &c, const dealii::ArrayView< double > &rho, const dealii::ArrayView< double > &e) const
 

Additional Inherited Members

- Protected Attributes inherited from ryujin::EquationOfStateLibrary::EquationOfState
double interpolation_b_
 
double interpolation_pinfty_
 
double interpolation_q_
 
bool prefer_vector_interface_
 

Detailed Description

The Jones-Wilkins-Lee equation of state. See (16a) in: "JWL Equation of State" by Ralph Menikoff (LA-UR-15-29536). We are assuming that the reference temperature T_r is chosen such that E_r = 0. Default parameters taken from Table 1 in reference.

Definition at line 22 of file equation_of_state_jones_wilkins_lee.h.

Constructor & Destructor Documentation

◆ JonesWilkinsLee()

ryujin::EquationOfStateLibrary::JonesWilkinsLee::JonesWilkinsLee ( const std::string &  subsection)
inline

Definition at line 30 of file equation_of_state_jones_wilkins_lee.h.

Member Function Documentation

◆ pressure() [1/3]

double ryujin::EquationOfStateLibrary::JonesWilkinsLee::pressure ( double  rho,
double  e 
) const
inlinefinalvirtual

The pressure is given by

\begin{align} p = A(1 - \omega / R_1 \rho / \rho_0) e^{(-R_1 \rho_0 / \rho)} + B(1 - \omega / R_2 \rho/ \rho_0) e^{(-R_2 \rho_0 / \rho)} + \omega \rho (e + q_0) \end{align}

Implements ryujin::EquationOfStateLibrary::EquationOfState.

Definition at line 67 of file equation_of_state_jones_wilkins_lee.h.

◆ specific_internal_energy() [1/3]

double ryujin::EquationOfStateLibrary::JonesWilkinsLee::specific_internal_energy ( double  rho,
double  p 
) const
inlinefinalvirtual

The specific internal energy is given by

\begin{align} \omega \rho e = p - A(1 - \omega / R_1 \rho / \rho_0) e^{(-R_1 \rho_0 / \rho)} - B(1 - \omega / R_2 \rho/ \rho_0) e^{(-R_2 \rho_0 / \rho)} \end{align}

Implements ryujin::EquationOfStateLibrary::EquationOfState.

Definition at line 88 of file equation_of_state_jones_wilkins_lee.h.

◆ temperature() [1/3]

double ryujin::EquationOfStateLibrary::JonesWilkinsLee::temperature ( double  rho,
double  e 
) const
inlinefinalvirtual

The temperature is given by

\begin{align} c_v T = e + q_0 - 1 / \rho_0 * (A / R_1 * e^{(-R_1 \rho_0 / \rho)} + B / R_2 * e^{(-R_2 \rho_0 / \rho)}) \end{align}

Implements ryujin::EquationOfStateLibrary::EquationOfState.

Definition at line 107 of file equation_of_state_jones_wilkins_lee.h.

◆ speed_of_sound() [1/3]

double ryujin::EquationOfStateLibrary::JonesWilkinsLee::speed_of_sound ( double  rho,
double  e 
) const
inlinefinalvirtual

The speed of sound is given by

Implements ryujin::EquationOfStateLibrary::EquationOfState.

Definition at line 121 of file equation_of_state_jones_wilkins_lee.h.

◆ pressure() [2/3]

virtual double ryujin::EquationOfStateLibrary::EquationOfState::pressure ( double  rho,
double  e 
) const
virtual

Return the pressure given density rho and specific internal energy e.

Implements ryujin::EquationOfStateLibrary::EquationOfState.

◆ pressure() [3/3]

virtual void ryujin::EquationOfStateLibrary::EquationOfState::pressure ( const dealii::ArrayView< double > &  p,
const dealii::ArrayView< double > &  rho,
const dealii::ArrayView< double > &  e 
) const
inlinevirtual

Variant of above function operating on a contiguous range of values. The result is stored in the first argument p, overriding previous contents.

Note
The second and third arguments are writable as well. We need to perform some unit transformations for certain tabulated equation of state libraries, such as the sesame database. Rather than creating temporaries we override values in place.

Reimplemented from ryujin::EquationOfStateLibrary::EquationOfState.

Definition at line 83 of file equation_of_state.h.

◆ specific_internal_energy() [2/3]

virtual double ryujin::EquationOfStateLibrary::EquationOfState::specific_internal_energy ( double  rho,
double  p 
) const
virtual

Return the specific internal energy e for a given density rho and pressure p.

Implements ryujin::EquationOfStateLibrary::EquationOfState.

◆ specific_internal_energy() [3/3]

virtual void ryujin::EquationOfStateLibrary::EquationOfState::specific_internal_energy ( const dealii::ArrayView< double > &  e,
const dealii::ArrayView< double > &  rho,
const dealii::ArrayView< double > &  p 
) const
inlinevirtual

Variant of above function operating on a contiguous range of values. The result is stored in the first argument p, overriding previous contents.

Note
The second and third arguments are writable as well. We need to perform some unit transformations for certain tabulated equation of state libraries, such as the sesame database. Rather than creating temporaries we override values in place.

Reimplemented from ryujin::EquationOfStateLibrary::EquationOfState.

Definition at line 114 of file equation_of_state.h.

◆ speed_of_sound() [2/3]

virtual double ryujin::EquationOfStateLibrary::EquationOfState::speed_of_sound ( double  rho,
double  e 
) const
virtual

Return the sound speed c for a given density rho and specific internal energy e.

Implements ryujin::EquationOfStateLibrary::EquationOfState.

◆ speed_of_sound() [3/3]

virtual void ryujin::EquationOfStateLibrary::EquationOfState::speed_of_sound ( const dealii::ArrayView< double > &  c,
const dealii::ArrayView< double > &  rho,
const dealii::ArrayView< double > &  e 
) const
inlinevirtual

Variant of above function operating on a contiguous range of values. The result is stored in the first argument p, overriding previous contents.

Note
The second and third arguments are writable as well. We need to perform some unit transformations for certain tabulated equation of state libraries, such as the sesame database. Rather than creating temporaries we override values in place.

Reimplemented from ryujin::EquationOfStateLibrary::EquationOfState.

Definition at line 177 of file equation_of_state.h.

◆ temperature() [2/3]

virtual double ryujin::EquationOfStateLibrary::EquationOfState::temperature ( double  rho,
double  e 
) const
virtual

Return the temperature T for a given density rho and specific internal energy e.

Implements ryujin::EquationOfStateLibrary::EquationOfState.

◆ temperature() [3/3]

virtual void ryujin::EquationOfStateLibrary::EquationOfState::temperature ( const dealii::ArrayView< double > &  T,
const dealii::ArrayView< double > &  rho,
const dealii::ArrayView< double > &  e 
) const
inlinevirtual

Variant of above function operating on a contiguous range of values. The result is stored in the first argument T, overriding previous contents.

Note
The second and third arguments are writable as well. We need to perform some unit transformations for certain tabulated equation of state libraries, such as the sesame database. Rather than creating temporaries we override values in place.

Reimplemented from ryujin::EquationOfStateLibrary::EquationOfState.

Definition at line 146 of file equation_of_state.h.


The documentation for this class was generated from the following file: