LCOV - code coverage report
Current view: top level - include/interfaces - VaporMixtureInterface.h (source / functions) Hit Total Coverage
Test: idaholab/moose fluid_properties: #31405 (292dce) with base fef103 Lines: 15 16 93.8 %
Date: 2025-09-04 07:53:14 Functions: 3 3 100.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 "InputParameters.h"
      13             : #include "InitialCondition.h"
      14             : #include "VaporMixtureFluidProperties.h"
      15             : 
      16             : template <typename T = InitialCondition>
      17             : class VaporMixtureInterface;
      18             : 
      19             : /**
      20             :  * Interface for calculations involving vapor mixtures
      21             :  */
      22             : template <class T>
      23             : class VaporMixtureInterface : public T
      24             : {
      25             : public:
      26             :   VaporMixtureInterface(const InputParameters & parameters);
      27             : 
      28             : protected:
      29             :   /**
      30             :    * Gets the vector of mass fractions of each secondary vapor, at a quadrature point
      31             :    */
      32             :   std::vector<Real> getMassFractionVector() const;
      33             : 
      34             :   /// Vapor mixture fluid properties
      35             :   const VaporMixtureFluidProperties & _fp_vapor_mixture;
      36             :   /// Number of secondary vapors
      37             :   const unsigned int _n_secondary_vapors;
      38             :   /// Mass fractions of secondary vapors
      39             :   const std::vector<const VariableValue *> _x_secondary_vapors;
      40             : 
      41             : public:
      42             :   static InputParameters validParams();
      43             : };
      44             : 
      45             : template <class T>
      46             : InputParameters
      47          41 : VaporMixtureInterface<T>::validParams()
      48             : {
      49          41 :   InputParameters params = emptyInputParameters();
      50             : 
      51          82 :   params.addRequiredCoupledVar("x_secondary_vapors", "Mass fractions of secondary vapors");
      52          82 :   params.addRequiredParam<UserObjectName>("fp_vapor_mixture",
      53             :                                           "Vapor mixture fluid properties user object name");
      54             : 
      55          41 :   return params;
      56           0 : }
      57             : 
      58             : template <class T>
      59          22 : VaporMixtureInterface<T>::VaporMixtureInterface(const InputParameters & parameters)
      60             :   : T(parameters),
      61          22 :     _fp_vapor_mixture(T::template getUserObject<VaporMixtureFluidProperties>("fp_vapor_mixture")),
      62          22 :     _n_secondary_vapors(T::coupledComponents("x_secondary_vapors")),
      63          44 :     _x_secondary_vapors(T::coupledValues("x_secondary_vapors"))
      64             : {
      65          22 : }
      66             : 
      67             : template <class T>
      68             : std::vector<Real>
      69          18 : VaporMixtureInterface<T>::getMassFractionVector() const
      70             : {
      71          18 :   std::vector<Real> x_secondary_vapors(_n_secondary_vapors);
      72          54 :   for (unsigned int i = 0; i < _n_secondary_vapors; ++i)
      73          36 :     x_secondary_vapors[i] = (*_x_secondary_vapors[i])[T::_qp];
      74          18 :   return x_secondary_vapors;
      75             : }

Generated by: LCOV version 1.14