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 : };