6 #include "CdmathException.hxx"
9 /*! \class StiffenedGas StiffenedGas.hxx "StiffenedGas.hxx"
10 * \brief Stiffened Gas law approximating water and steam : P = (gamma - 1) * (rho * e - rho * q) - gamma * p0
11 * \details Provides pressure, density, temperature, internal energy, enthalpy, viscosity and conductivity
16 // A standard stiffened gas class
18 /*! \class StiffenedGas Fluide.hxx "Fluide.hxx"
19 * \brief Class implementing a standard stiffened gas law between pressure, density and internal energy
22 class StiffenedGas:public Fluide{
24 double _e_ref;//Stiffened gas law : P=(gamma - 1) * rho e(T) - _gamma*_p0
26 StiffenedGas():Fluide(){_e_ref=0;};
28 StiffenedGas( double gamma, double cv, double T_ref, double e_ref);
29 //Stiffened gas law fitting reference pressure, density and sound speed
30 StiffenedGas(double rho_ref, double p_ref, double T_ref, double e_ref, double soundSpeed_ref, double heatCap_ref);
32 double getInternalEnergy(double T, double rho=0);
33 double getEnthalpy(double T, double rho);
34 double getTemperatureFromPressure(double p, double rho);
35 double getTemperatureFromEnthalpy(const double h, const double rho);
36 double getDensity(double p, double T);
38 // Functions used to compute the Roe matrix for the five equation model (Kieu)
39 /* get differential of the density rho = rho(P,e)
40 * wrt the pressure (const e) wrt the internal energy (const P) */
41 double getJumpDensPress(const double e_l, const double e_r);
42 double getJumpDensInternalEnergy(const double p_l,const double p_r,const double e_l,const double e_r);
43 double getJumpInternalEnergyTemperature();
44 double getDiffDensPress(const double e);
45 double getDiffDensInternalEnergy(const double p,const double e);
46 double getDiffInternalEnergyTemperature();
47 /* get differential of the density rho = rho(P,h)
48 * wrt the pressure (const h) wrt the enthalpy (const P) */
49 double getDiffDensEnthalpyPressconstant(const double p, const double h);
50 double getDiffDensPressEnthalpyconstant(const double h);
53 // S. Dellacherie stiffened gas class
55 /*! \class StiffenedGasDellacherie Fluide.hxx "Fluide.hxx"
56 * \brief Class implementing a particular stiffened gas law including saturation properties
59 class StiffenedGasDellacherie:public Fluide{
61 double _h_ref;//Stiffened gas law according to S. Dellacherie : P=(gamma - 1) * rho (e(T)-q) - _gamma*_p0
63 StiffenedGasDellacherie():Fluide(){_h_ref=0;};
64 /* Loi des gaz raidis avec coefficients imposés suivant S. Dellacherie*/
65 StiffenedGasDellacherie( double gamma, double p0, double q, double cv);
67 double getInternalEnergy(double T, double rho);
68 double getEnthalpy(double T, double rho=0);
69 double getTemperatureFromPressure(double p, double rho);
70 double getTemperatureFromEnthalpy(const double h, const double rho=0);
71 double getDensity(double p, double T);