ryujin 2.1.1 revision 0348cbb53a3e4b1da2a4c037e81f88f2d21ce219
Public Member Functions | Protected Attributes | List of all members
ryujin::EquationOfStateLibrary::EquationOfState Class Referenceabstract

#include <source/euler_aeos/equation_of_state.h>

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

Public Member Functions

 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
 

Protected Attributes

double interpolation_b_
 
double interpolation_pinfty_
 
double interpolation_q_
 
bool prefer_vector_interface_
 

Detailed Description

A small abstract base class to group configuration options for an equation of state.

Definition at line 29 of file equation_of_state.h.

Constructor & Destructor Documentation

◆ EquationOfState()

ryujin::EquationOfStateLibrary::EquationOfState::EquationOfState ( const std::string &  name,
const std::string &  subsection 
)
inline

Constructor taking EOS name name and a subsection subsection as an argument. The dealii::ParameterAcceptor is initialized with the subsubsection subsection + "/" + name.

Definition at line 37 of file equation_of_state.h.

References interpolation_b_, interpolation_pinfty_, interpolation_q_, and prefer_vector_interface_.

Member Function Documentation

◆ pressure() [1/2]

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

◆ pressure() [2/2]

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 in ryujin::EquationOfStateLibrary::Function, ryujin::EquationOfStateLibrary::JonesWilkinsLee, ryujin::EquationOfStateLibrary::NobleAbelStiffenedGas, ryujin::EquationOfStateLibrary::PolytropicGas, ryujin::EquationOfStateLibrary::Pressureless, ryujin::EquationOfStateLibrary::Sesame, and ryujin::EquationOfStateLibrary::VanDerWaals.

Definition at line 83 of file equation_of_state.h.

References pressure().

◆ specific_internal_energy() [1/2]

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

◆ specific_internal_energy() [2/2]

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 in ryujin::EquationOfStateLibrary::Function, ryujin::EquationOfStateLibrary::JonesWilkinsLee, ryujin::EquationOfStateLibrary::NobleAbelStiffenedGas, ryujin::EquationOfStateLibrary::PolytropicGas, ryujin::EquationOfStateLibrary::Pressureless, ryujin::EquationOfStateLibrary::Sesame, and ryujin::EquationOfStateLibrary::VanDerWaals.

Definition at line 114 of file equation_of_state.h.

References specific_internal_energy().

◆ temperature() [1/2]

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

◆ temperature() [2/2]

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 in ryujin::EquationOfStateLibrary::Function, ryujin::EquationOfStateLibrary::JonesWilkinsLee, ryujin::EquationOfStateLibrary::NobleAbelStiffenedGas, ryujin::EquationOfStateLibrary::PolytropicGas, ryujin::EquationOfStateLibrary::Pressureless, ryujin::EquationOfStateLibrary::Sesame, and ryujin::EquationOfStateLibrary::VanDerWaals.

Definition at line 146 of file equation_of_state.h.

References temperature().

◆ speed_of_sound() [1/2]

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

◆ speed_of_sound() [2/2]

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 in ryujin::EquationOfStateLibrary::Function, ryujin::EquationOfStateLibrary::JonesWilkinsLee, ryujin::EquationOfStateLibrary::NobleAbelStiffenedGas, ryujin::EquationOfStateLibrary::PolytropicGas, ryujin::EquationOfStateLibrary::Pressureless, ryujin::EquationOfStateLibrary::Sesame, and ryujin::EquationOfStateLibrary::VanDerWaals.

Definition at line 177 of file equation_of_state.h.

References speed_of_sound().

Member Data Documentation

◆ interpolation_b_

double ryujin::EquationOfStateLibrary::EquationOfState::interpolation_b_
protected

Return the interpolation covolume constant (b). Return the interpolation reference pressure (pinfty). Return the interpolation reference specific internal energy (q). Return a boolean indicating whether the dealii::ArrayView<double> variants for the pressure(), specific_internal_energy(), and speed_of_sound() functions should be preferred.

Ordinarily we use the single-valued signatures for pre-computation because this leads to slightly better throughput (due to better memory locality with how we store precomputed values) and less memory consumption. On the other hand, some tabulated equation of state libraries work best with a single call and a large dataset. Return the name of the EOS as (const reference) std::string

Definition at line 226 of file equation_of_state.h.

Referenced by EquationOfState(), ryujin::EquationOfStateLibrary::Function::Function(), ryujin::EquationOfStateLibrary::NobleAbelStiffenedGas::NobleAbelStiffenedGas(), and ryujin::EquationOfStateLibrary::VanDerWaals::VanDerWaals().

◆ interpolation_pinfty_

double ryujin::EquationOfStateLibrary::EquationOfState::interpolation_pinfty_
protected

◆ interpolation_q_

double ryujin::EquationOfStateLibrary::EquationOfState::interpolation_q_
protected

◆ prefer_vector_interface_

bool ryujin::EquationOfStateLibrary::EquationOfState::prefer_vector_interface_
protected

Definition at line 229 of file equation_of_state.h.

Referenced by EquationOfState().


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