LCOV - code coverage report
Current view: top level - include/fluidproperties - IdealGasMixtureFluidProperties.h (source / functions) Hit Total Coverage
Test: idaholab/moose fluid_properties: #31405 (292dce) with base fef103 Lines: 0 1 0.0 %
Date: 2025-09-04 07:53:14 Functions: 0 1 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 "VaporMixtureFluidProperties.h"
      13             : #include "NaNInterface.h"
      14             : 
      15             : class SinglePhaseFluidProperties;
      16             : class IdealGasFluidProperties;
      17             : 
      18             : /**
      19             :  * Overrides the value methods for a property from some arguments
      20             :  */
      21             : #define override_property(want, prop1, prop2)                                                      \
      22             :   template <typename CppType>                                                                      \
      23             :   CppType want##_from_##prop1##_##prop2##_templ(                                                   \
      24             :       const CppType & prop1, const CppType & prop2, const std::vector<CppType> & x) const;         \
      25             :   virtual Real want##_from_##prop1##_##prop2(Real prop1, Real prop2, const std::vector<Real> & x)  \
      26             :       const override;                                                                              \
      27             :   virtual ADReal want##_from_##prop1##_##prop2(                                                    \
      28             :       const ADReal & prop1, const ADReal & prop2, const std::vector<ADReal> & x) const override
      29             : 
      30             : /**
      31             :  * Class for fluid properties of an ideal gas mixture
      32             :  */
      33             : class IdealGasMixtureFluidProperties : public VaporMixtureFluidProperties, public NaNInterface
      34             : {
      35             : public:
      36             :   static InputParameters validParams();
      37             : 
      38             :   IdealGasMixtureFluidProperties(const InputParameters & parameters);
      39             : 
      40             :   usingVaporMixtureFluidPropertiesMembers;
      41             : 
      42           0 :   virtual unsigned int numberOfComponents() const override { return _n_components; }
      43             : 
      44             :   virtual const SinglePhaseFluidProperties & getPrimaryFluidProperties() const override;
      45             :   virtual const SinglePhaseFluidProperties &
      46             :   getSecondaryFluidProperties(unsigned int i = 0) const override;
      47             : 
      48             :   /**
      49             :    * Computes all mass fractions
      50             :    *
      51             :    * @param[in] x_secondary   Secondary mass fractions
      52             :    */
      53             :   template <typename CppType>
      54             :   std::vector<CppType>
      55             :   secondaryToAllMassFractions_templ(const std::vector<CppType> & x_secondary) const;
      56             :   std::vector<ADReal> secondaryToAllMassFractions(const std::vector<ADReal> & x_secondary) const;
      57             :   std::vector<Real> secondaryToAllMassFractions(const std::vector<Real> & x_secondary) const;
      58             : 
      59             :   /**
      60             :    * Computes the mixture specific heat ratio
      61             :    *
      62             :    * @param[in] x   All mass fractions
      63             :    */
      64             :   template <typename CppType>
      65             :   CppType mixtureSpecificHeatRatio_templ(const std::vector<CppType> & x) const;
      66             :   ADReal mixtureSpecificHeatRatio(const std::vector<ADReal> & x) const;
      67             :   Real mixtureSpecificHeatRatio(const std::vector<Real> & x) const;
      68             : 
      69             :   /**
      70             :    * Computes the mixture molar mass
      71             :    *
      72             :    * @param[in] x   All mass fractions
      73             :    */
      74             :   template <typename CppType>
      75             :   CppType mixtureMolarMass_templ(const std::vector<CppType> & x) const;
      76             :   ADReal mixtureMolarMass(const std::vector<ADReal> & x) const;
      77             :   Real mixtureMolarMass(const std::vector<Real> & x) const;
      78             : 
      79             :   /**
      80             :    * Computes molar fractions
      81             :    *
      82             :    * @param[in] x   All mass fractions
      83             :    */
      84             :   template <typename CppType>
      85             :   std::vector<CppType> molarFractionsFromMassFractions_templ(const std::vector<CppType> & x) const;
      86             :   std::vector<ADReal> molarFractionsFromMassFractions(const std::vector<ADReal> & x) const;
      87             :   std::vector<Real> molarFractionsFromMassFractions(const std::vector<Real> & x) const;
      88             : 
      89             :   override_property(p, v, e);
      90             :   override_property(T, v, e);
      91             :   override_property(v, p, T);
      92             :   override_property(rho, p, T);
      93             :   override_property(e, p, T);
      94             :   override_property(s, p, T);
      95             :   override_property(c, p, T);
      96             :   override_property(cp, p, T);
      97             :   override_property(cv, p, T);
      98             :   override_property(mu, p, T);
      99             :   override_property(k, p, T);
     100             :   override_property(e, p, rho);
     101             : 
     102             : #undef override_property
     103             : 
     104             : protected:
     105             :   /// Names of component fluid properties
     106             :   const std::vector<UserObjectName> _component_fp_names;
     107             :   /// Number of components
     108             :   const unsigned int _n_components;
     109             :   /// Number of secondary components
     110             :   const unsigned int _n_secondary_components;
     111             : 
     112             :   /// Component fluid properties objects
     113             :   std::vector<const IdealGasFluidProperties *> _component_fps;
     114             : };

Generated by: LCOV version 1.14