LCOV - code coverage report
Current view: top level - include/fluidproperties - IdealGasFluidProperties.h (source / functions) Hit Total Coverage
Test: idaholab/moose fluid_properties: #31405 (292dce) with base fef103 Lines: 1 4 25.0 %
Date: 2025-09-04 07:53:14 Functions: 0 3 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : //* This file is part of the MOOSE framework
       2             : //* https://mooseframework.inl.gov
       3             : //*
       4             : //* All rights reserved, see COPYRIGHT for full restrictions
       5             : //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
       6             : //*
       7             : //* Licensed under LGPL 2.1, please see LICENSE for details
       8             : //* https://www.gnu.org/licenses/lgpl-2.1.html
       9             : 
      10             : #pragma once
      11             : 
      12             : #include "SinglePhaseFluidProperties.h"
      13             : #include "NaNInterface.h"
      14             : 
      15             : #pragma GCC diagnostic push
      16             : #pragma GCC diagnostic ignored "-Woverloaded-virtual"
      17             : 
      18             : /**
      19             :  * Ideal gas fluid properties
      20             :  * Default parameters are for air at atmospheric pressure and temperature
      21             :  */
      22             : class IdealGasFluidProperties : public SinglePhaseFluidProperties, public NaNInterface
      23             : {
      24             : public:
      25             :   static InputParameters validParams();
      26             : 
      27             :   IdealGasFluidProperties(const InputParameters & parameters);
      28             :   virtual ~IdealGasFluidProperties();
      29             : 
      30             :   using SinglePhaseFluidProperties::cp_from_p_T;
      31             :   using SinglePhaseFluidProperties::cv_from_p_T;
      32             :   using SinglePhaseFluidProperties::e_from_p_T;
      33             :   using SinglePhaseFluidProperties::k_from_p_T;
      34             :   using SinglePhaseFluidProperties::mu_from_p_T;
      35             :   using SinglePhaseFluidProperties::s_from_p_T;
      36             : 
      37             :   virtual Real p_from_v_e(Real v, Real e) const override;
      38             :   virtual ADReal p_from_v_e(const ADReal & v, const ADReal & e) const override;
      39             :   virtual void p_from_v_e(Real v, Real e, Real & p, Real & dp_dv, Real & dp_de) const override;
      40             :   virtual void p_from_v_e(const ADReal & v,
      41             :                           const ADReal & e,
      42             :                           ADReal & p,
      43             :                           ADReal & dp_dv,
      44             :                           ADReal & dp_de) const override;
      45             :   virtual Real T_from_v_e(Real v, Real e) const override;
      46             :   virtual ADReal T_from_v_e(const ADReal & v, const ADReal & e) const override;
      47             :   virtual void T_from_v_e(Real v, Real e, Real & T, Real & dT_dv, Real & dT_de) const override;
      48             :   virtual void T_from_v_e(const ADReal & v,
      49             :                           const ADReal & e,
      50             :                           ADReal & T,
      51             :                           ADReal & dT_dv,
      52             :                           ADReal & dT_de) const override;
      53             :   virtual Real c_from_v_e(Real v, Real e) const override;
      54             :   virtual ADReal c_from_v_e(const ADReal & v, const ADReal & e) const override;
      55             :   virtual void c_from_v_e(Real v, Real e, Real & c, Real & dc_dv, Real & dc_de) const override;
      56             :   virtual Real cp_from_v_e(Real v, Real e) const override;
      57             :   virtual void cp_from_v_e(Real v, Real e, Real & cp, Real & dcp_dv, Real & dcp_de) const override;
      58             :   virtual Real cv_from_v_e(Real v, Real e) const override;
      59             :   virtual void cv_from_v_e(Real v, Real e, Real & cv, Real & dcv_dv, Real & dcv_de) const override;
      60             :   virtual Real mu_from_v_e(Real v, Real e) const override;
      61             :   virtual void mu_from_v_e(Real v, Real e, Real & mu, Real & dmu_dv, Real & dmu_de) const override;
      62             :   virtual Real k_from_v_e(Real v, Real e) const override;
      63             :   virtual void k_from_v_e(Real v, Real e, Real & k, Real & dk_dv, Real & dk_de) const override;
      64             :   virtual Real s_from_v_e(Real v, Real e) const override;
      65             :   virtual void s_from_v_e(Real v, Real e, Real & s, Real & ds_dv, Real & ds_de) const override;
      66             :   virtual Real s_from_p_T(Real p, Real T) const override;
      67             :   virtual void s_from_p_T(Real p, Real T, Real & s, Real & ds_dp, Real & ds_dT) const override;
      68             :   virtual Real s_from_h_p(Real h, Real p) const override;
      69             :   virtual void s_from_h_p(Real h, Real p, Real & s, Real & ds_dh, Real & ds_dp) const override;
      70             :   virtual Real rho_from_p_s(Real p, Real s) const override;
      71             :   virtual void
      72             :   rho_from_p_s(Real p, Real s, Real & rho, Real & drho_dp, Real & drho_ds) const override;
      73             :   virtual Real e_from_v_h(Real v, Real h) const override;
      74             :   virtual void e_from_v_h(Real v, Real h, Real & e, Real & de_dv, Real & de_dh) const override;
      75             :   virtual Real rho_from_p_T(Real p, Real T) const override;
      76             :   virtual ADReal rho_from_p_T(const ADReal & p, const ADReal & T) const override;
      77             :   virtual void
      78             :   rho_from_p_T(Real p, Real T, Real & rho, Real & drho_dp, Real & drho_dT) const override;
      79             :   virtual void rho_from_p_T(const ADReal & p,
      80             :                             const ADReal & T,
      81             :                             ADReal & rho,
      82             :                             ADReal & drho_dp,
      83             :                             ADReal & drho_dT) const override;
      84             :   virtual Real e_from_p_rho(Real p, Real rho) const override;
      85             :   virtual ADReal e_from_p_rho(const ADReal & p, const ADReal & rho) const override;
      86             :   virtual void
      87             :   e_from_p_rho(Real p, Real rho, Real & e, Real & de_dp, Real & de_drho) const override;
      88             :   virtual void e_from_p_rho(const ADReal & p,
      89             :                             const ADReal & rho,
      90             :                             ADReal & e,
      91             :                             ADReal & de_dp,
      92             :                             ADReal & de_drho) const override;
      93             :   virtual Real e_from_T_v(Real T, Real v) const override;
      94             :   virtual void e_from_T_v(Real T, Real v, Real & e, Real & de_dT, Real & de_dv) const override;
      95             :   virtual ADReal e_from_T_v(const ADReal & T, const ADReal & v) const override;
      96             :   virtual void e_from_T_v(const ADReal & T,
      97             :                           const ADReal & v,
      98             :                           ADReal & e,
      99             :                           ADReal & de_dT,
     100             :                           ADReal & de_dv) const override;
     101             :   virtual Real p_from_T_v(Real T, Real v) const override;
     102             :   virtual void p_from_T_v(Real T, Real v, Real & p, Real & dp_dT, Real & dp_dv) const override;
     103             :   virtual Real h_from_T_v(Real T, Real v) const override;
     104             :   virtual void h_from_T_v(Real T, Real v, Real & h, Real & dh_dT, Real & dh_dv) const override;
     105             :   virtual Real s_from_T_v(Real T, Real v) const override;
     106             :   virtual void s_from_T_v(Real T, Real v, Real & s, Real & ds_dT, Real & ds_dv) const override;
     107             :   virtual Real cv_from_T_v(Real T, Real v) const override;
     108             :   virtual Real e_spndl_from_v(Real v) const override;
     109             :   virtual void v_e_spndl_from_T(Real T, Real & v, Real & e) const override;
     110             :   virtual Real h_from_p_T(Real p, Real T) const override;
     111             :   virtual void h_from_p_T(Real p, Real T, Real & h, Real & dh_dp, Real & dh_dT) const override;
     112             :   virtual Real e_from_p_T(Real p, Real T) const override;
     113             :   virtual void e_from_p_T(Real p, Real T, Real & e, Real & de_dp, Real & de_dT) const override;
     114             :   virtual Real p_from_h_s(Real h, Real s) const override;
     115             :   virtual void p_from_h_s(Real h, Real s, Real & p, Real & dp_dh, Real & dp_ds) const override;
     116             :   virtual Real g_from_v_e(Real v, Real e) const override;
     117             :   virtual Real T_from_p_h(Real p, Real h) const override;
     118             :   virtual void T_from_p_h(Real p, Real h, Real & T, Real & dT_dp, Real & dT_dh) const override;
     119             :   virtual Real cv_from_p_T(Real p, Real T) const override;
     120             :   virtual void cv_from_p_T(Real p, Real T, Real & cv, Real & dcv_dp, Real & dcv_dT) const override;
     121             :   virtual Real cp_from_p_T(Real p, Real T) const override;
     122             :   virtual void cp_from_p_T(Real p, Real T, Real & cp, Real & dcp_dp, Real & dcp_dT) const override;
     123             :   virtual Real mu_from_p_T(Real p, Real T) const override;
     124             :   virtual void mu_from_p_T(Real p, Real T, Real & mu, Real & dmu_dp, Real & dmu_dT) const override;
     125             :   virtual Real k_from_p_T(Real pressure, Real temperature) const override;
     126             :   virtual void
     127             :   k_from_p_T(Real pressure, Real temperature, Real & k, Real & dk_dp, Real & dk_dT) const override;
     128             :   virtual std::string fluidName() const override;
     129             :   virtual Real molarMass() const override;
     130             :   virtual Real criticalTemperature() const override;
     131             :   virtual Real criticalDensity() const override;
     132             :   virtual Real criticalInternalEnergy() const override;
     133             :   virtual Real gamma_from_v_e(Real v, Real e) const override;
     134             :   virtual Real gamma_from_p_T(Real p, Real T) const override;
     135             :   virtual Real c_from_p_T(Real p, Real T) const override;
     136             :   virtual ADReal c_from_p_T(const ADReal & p, const ADReal & T) const override;
     137             :   virtual void c_from_p_T(Real /*p*/, Real T, Real & c, Real & dc_dp, Real & dc_dT) const override;
     138             :   virtual Real beta_from_p_T(Real p, Real T) const override;
     139             :   virtual ADReal beta_from_p_T(const ADReal & p, const ADReal & T) const override;
     140             :   virtual void
     141             :   beta_from_p_T(Real p, Real T, Real & beta, Real & dbeta_dp, Real & dbeta_dT) const override;
     142             : 
     143             :   virtual Real pp_sat_from_p_T(Real /*p*/, Real /*T*/) const override;
     144             : 
     145           6 :   Real referenceSpecificInternalEnergy() const { return _e_ref; }
     146             : 
     147             :   // Methods used by Navier-Stokes module
     148           0 :   virtual Real gamma() const { return _gamma; };
     149           0 :   virtual Real cv() const { return _cv; };
     150           0 :   virtual Real cp() const { return _cp; };
     151             : 
     152             : protected:
     153             :   /// Adiabatic index (ratio of specific heats cp/cv)
     154             :   const Real & _gamma;
     155             :   /// molar mass
     156             :   const Real & _molar_mass;
     157             :   /// Reference specific internal energy
     158             :   const Real & _e_ref;
     159             : 
     160             :   /// Specific gas constant (R / molar mass)
     161             :   const Real _R_specific;
     162             :   /// Specific heat at constant pressure
     163             :   const Real _cp;
     164             :   /// Specific heat at constant volume
     165             :   const Real _cv;
     166             : 
     167             :   /// Dynamic viscosity
     168             :   const Real _mu;
     169             :   /// Thermal conductivity
     170             :   const Real _k;
     171             : 
     172             :   // properties at critical point (used by IdealRealGasMixtureFluidProperties (primary component))
     173             :   Real _T_c;
     174             :   Real _rho_c;
     175             :   Real _e_c;
     176             : };
     177             : 
     178             : #pragma GCC diagnostic pop

Generated by: LCOV version 1.14