LCOV - code coverage report
Current view: top level - include/userobjects - HenryGasConstant.h (source / functions) Hit Total Coverage
Test: idaholab/moose chemical_reactions: #32971 (54bef8) with base c6cf66 Lines: 1 5 20.0 %
Date: 2026-05-29 20:35:47 Functions: 1 6 16.7 %
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 "GeneralUserObject.h"
      13             : 
      14             : /**
      15             :  * This UserObject performs a calculation of the Henry coefficient for noble gases using the model
      16             :  * by K. Lee, et al., "Semi-empirical model for Henry's law constant of noble gases in molten salt",
      17             :  * Scientific Reports (2024) 14:12847, https://doi.org/10.1038/s41598-024-60006-9.
      18             :  */
      19             : class HenryGasConstant : public GeneralUserObject
      20             : {
      21             : public:
      22             :   static InputParameters validParams();
      23             :   HenryGasConstant(const InputParameters & parameters);
      24           5 :   virtual ~HenryGasConstant() {}
      25             : 
      26           0 :   virtual void initialSetup() override {};
      27           0 :   virtual void initialize() override {};
      28           0 :   virtual void finalize() override {};
      29           0 :   virtual void execute() override {};
      30             :   /// Returns the henry constant at the specified temperature
      31             :   virtual Real henry(Real temperature) const;
      32             : 
      33             :   /// multiplier to convert atm to Pa
      34             :   static constexpr Real _atm_to_Pa = 101325;
      35             : 
      36             :   /// Universal gas constant [J/mol/K]
      37             :   static constexpr Real _Rgas = 8.31446261815324;
      38             : 
      39             :   /// Model constants obtained from
      40             :   /// K. Lee, et al., "Semi-empirical model for Henry's law constant of noble gases in molten salt",
      41             :   /// Scientific Reports (2024) 14:12847, https://doi.org/10.1038/s41598-024-60006-9.
      42             : 
      43             :   /// Model constants for FLiBe
      44             :   static constexpr Real _alpha_FLiBe = -3.3584;
      45             :   static constexpr Real _beta_FLiBe = -0.0215;
      46             :   static constexpr Real _KH0_FLiBe = 7.8622e-1 / _atm_to_Pa;
      47             :   static constexpr Real _gamma_0_FLiBe = 235.5;
      48             :   static constexpr Real _dgamma_dT_FLiBe = -0.09;
      49             : 
      50             :   /// Model constants for FLiNaK
      51             :   static constexpr Real _alpha_FLiNaK = -4.6541;
      52             :   static constexpr Real _beta_FLiNaK = 0.0105;
      53             :   static constexpr Real _KH0_FLiNaK = 1.4246 / _atm_to_Pa;
      54             :   static constexpr Real _gamma_0_FLiNaK = 237.0;
      55             :   static constexpr Real _dgamma_dT_FLiNaK = -0.0788;
      56             : 
      57             : protected:
      58             :   /// van der Waals radius
      59             :   const Real _radius;
      60             : 
      61             :   /// Enum used to select the salt type
      62             :   const enum class Saltlist { FLIBE, FLINAK, CUSTOM } _salt_list;
      63             : 
      64             :   /// Fit coefficients for the model
      65             :   Real _alpha;
      66             :   Real _beta;
      67             :   Real _gamma_0;
      68             :   Real _dgamma_dT;
      69             :   Real _KH0;
      70             : };

Generated by: LCOV version 1.14