LCOV - code coverage report
Current view: top level - src/Model/Gas/EOS - CPG.H (source / functions) Coverage Total Hit
Test: coverage_merged.info Lines: 100.0 % 10 10
Test Date: 2026-06-29 14:20:01 Functions: 100.0 % 1 1

            Line data    Source code
       1              : #ifndef MODEL_GAS_EOS_CPG_H_
       2              : #define MODEL_GAS_EOS_CPG_H_
       3              : 
       4              : #include "IO/ParmParse.H"
       5              : #include "Model/Gas/EOS/EOS.H"
       6              : #include <memory>
       7              : 
       8              : namespace Model {
       9              : namespace Gas {
      10              : 
      11              : namespace EOS {
      12              : 
      13              : class CPG
      14              : {
      15              : public:
      16              :     static constexpr const char* name = "cpg";
      17              : 
      18              : public:
      19            8 :     static void Parse(CPG & /*value*/, IO::ParmParse & /*pp*/) {}
      20              : 
      21              : public:
      22              :     template<typename GAS>
      23              :     AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE
      24              :     double ComputeT(const GAS &gas, double density, double momentumx, double momentumy, double E, double Tguess,
      25              :                     Set::Patch<const Set::Scalar>& X, int i, int j, int k, double /*rtol=1e-12*/) const
      26              :     {
      27    125784200 :         double P = (E - 0.5*(momentumx*momentumx + momentumy*momentumy)/density) * (gas.gamma(Tguess, X, i, j, k) - 1.0);
      28    125784200 :         double T = P / density / gas.R(X, i, j, k);
      29    125784200 :         return T;
      30              :     }
      31              : 
      32              :     AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE
      33              :     double ComputeT(double pressure, double density,
      34              :                     double R) const
      35              :     {
      36        22248 :         return pressure / density / R;
      37              :     }
      38              : 
      39              :     AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE
      40              :     double ComputeP(double density, double T,
      41              :                     double R) const
      42              :     {
      43    125784200 :         return density * R * T;
      44              :     }
      45              : 
      46              :     AMREX_FORCE_INLINE AMREX_GPU_HOST_DEVICE
      47              :     double ComputeE(double density, double momentumx, double momentumy, double T,
      48              :                     double R, double gamma) const
      49              :     {
      50        22248 :         double P = density * R * T;
      51        22248 :         double rhoE = P / (gamma - 1.0);
      52        22248 :         double E = rhoE + 0.5*(momentumx*momentumx + momentumy*momentumy)/density;
      53        22248 :         return E;
      54              :     }
      55              : 
      56              : }; // class CPG
      57              : 
      58              : } // namespace EOS
      59              : } // namespace Gas
      60              : } // namespace Model
      61              : 
      62              : #endif
      63              : 
        

Generated by: LCOV version 2.0-1