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

            Line data    Source code
       1              : #ifndef MODEL_GAS_TRANSPORT_H_
       2              : #define MODEL_GAS_TRANSPORT_H_
       3              : 
       4              : #include <vector>
       5              : #include <memory>
       6              : #include <cmath>
       7              : #include "Set/Set.H"
       8              : #include "IO/ParmParse.H"
       9              : 
      10              : namespace Model {
      11              : namespace Gas {
      12              : namespace Transport {
      13              : 
      14              : template<typename... OBJ>
      15              : class Transport {
      16              : private:
      17              :     friend IO::ParmParse;
      18              :     std::tuple<OBJ...> obj;
      19              :     static constexpr const char* names[] = { OBJ::name... };
      20              :     int selected = -1;
      21              : public:
      22              : 
      23            8 :     Transport() {} ;
      24              : 
      25              :     template<int I = 0>
      26              :     AMREX_FORCE_INLINE
      27              :     double dynamic_viscosity(double T, Set::Patch<const Set::Scalar>& X, int i, int j, int k) const
      28              :     {
      29              :         if constexpr (I < sizeof...(OBJ))
      30              :         {
      31     13235200 :             if (selected == I) return std::get<I>(obj).dynamic_viscosity(T,X,i,j,k);
      32            0 :             else return dynamic_viscosity<I+1>(T,X,i,j,k);
      33              :         }
      34              :         else {
      35            0 :             Util::Abort(INFO, selected);
      36            0 :             return NAN;
      37              :         }
      38              :     }
      39              : 
      40              : 
      41              :     template<int I = 0>
      42              :     AMREX_FORCE_INLINE
      43              :     double thermal_conductivity(double T, Set::Patch<const Set::Scalar>& X, int i, int j, int k) const
      44              :     {
      45              :         if constexpr (I < sizeof...(OBJ))
      46              :         {
      47            0 :             if (selected == I) return std::get<I>(obj).thermal_conductivity(T,X,i,j,k);
      48            0 :             else return thermal_conductivity<I+1>(T,X,i,j,k);
      49              :         }
      50              :         else {
      51            0 :             Util::Abort(INFO, selected);
      52            0 :             return NAN;
      53              :         }
      54              :     }
      55              : 
      56              :     template<int I = 0>
      57              :     AMREX_FORCE_INLINE
      58              :     void diffusion_coeffs(  Set::Patch<Set::Scalar>& DKM, double T, double P,
      59              :                             Set::Patch<const Set::Scalar>& X, int i, int j, int k) const
      60              :     {
      61              :         if constexpr (I < sizeof...(OBJ))
      62              :         {
      63            0 :             if (selected == I) return std::get<I>(obj).diffusion_coeffs(DKM,T,P,X,i,j,k);
      64            0 :             else return diffusion_coeffs<I+1>(DKM,T,P,X,i,j,k);
      65              :         }
      66              :         else {
      67            0 :             Util::Abort(INFO, selected);
      68              :         }
      69            0 :     }
      70              : 
      71            8 :     ~Transport() = default;
      72              : }; // class Transport
      73              : 
      74              : } // namespace Transport
      75              : } // namespace Gas
      76              : } // namespace Model
      77              : 
      78              : #endif
        

Generated by: LCOV version 2.0-1