21 "Weight fraction of potassium in NaK. Only eutectic is implemented (X_K = 0.778)");
29 const Real Xk = getParam<Real>(
"weight_fraction_K");
32 "Only 0.778 weight percent potassium (eutectic) is implemented");
35 const Real AwK = 39.102;
36 const Real AwNa = 22.9898;
37 _Nk = Xk / AwK / (Xk / AwK + (1 - Xk) / AwNa);
58 Real h2 = enthalpy * enthalpy;
60 std::pow(183.357574154983 * std::sqrt(8405 * h2 - 8208700353 * enthalpy + 9265308922016000) +
61 16810 * enthalpy - 8208700353,
63 return _T_c2k + 0.174216027874564 * (3.65930571002297 * B1 - 2.28699205892461e7 / B1 + 3087);
77 name() +
"::T_from_p_rho",
84 ") and density (rho = ",
86 ") to temperature failed to converge.");
95 if (Tc < 210 || Tc > 1110)
97 "NaK density evaluated outside of Na density temperature range [210, 1110] C");
98 if (Tc < 63.2 || Tc > 1250)
100 "NaK density evaluated outside of K density temperature range [63, 1250] C");
103 const Real v_k = 1. / (0.8415 - 2.172e-4 * Tc - 2.7e-8 * Tc * Tc + 4.77e-12 * Tc * Tc * Tc);
105 const Real v_Na = 1. / (0.9453 - 2.2473e-4 * Tc);
107 return 1000 / (
_Nk * v_k + (1 -
_Nk) * v_Na);
119 const Real v_k = 1. / (0.8415 - 2.172e-4 * Tc - 2.7e-8 * Tc * Tc + 4.77e-12 * Tc * Tc * Tc);
121 const Real v_Na = 1. / (0.9453 - 2.2473e-4 * Tc);
124 -(
_Nk * -(-2.172e-4 - 2 * 2.7e-8 * Tc + 3 * 4.77e-12 * Tc * Tc) *
MathUtils::pow(v_k, 2) +
146 Real h, dh_dp, dh_dT;
162 return (0.232 - 8.82e-5 * Tc + 8.2e-8 * Tc * Tc) * 4200;
167 Real , Real
temperature, Real &
cp, Real & dcp_dp, Real & dcp_dT)
const 174 dcp_dT = (-8.82e-5 + 2 * 8.2e-8 * Tc) * 4200;
180 Real e, de_dp, de_dT;
200 Real , Real
temperature, Real &
mu, Real & dmu_dp, Real & dmu_dT)
const 237 if (Tc < 150 || Tc > 680)
239 "NaK thermal diffusivity evaluated outside of temperature range [150, 680] C");
240 return 100 * (0.214 + 2.07e-4 * Tc - 2.2e-7 * Tc * Tc);
245 Real , Real
temperature, Real &
k, Real & dk_dp, Real & dk_dT)
const 250 dk_dT = 100 * (2.07e-4 - 2 * 2.2e-7 * Tc);
258 return (0.232 * Tc - 8.82e-5 / 2 * Tc * Tc + 8.2e-8 / 3 * Tc * Tc * Tc) * 4200;
266 h = (0.232 * Tc - 8.82e-5 / 2 * Tc * Tc + 8.2e-8 / 3 * Tc * Tc * Tc) * 4200;
static InputParameters validParams()
Real T_from_p_rho(Real pressure, Real density) const
e e e e s T T T T T rho T
NaK fluid properties as a function of pressure (Pa) and temperature (K).
static InputParameters validParams()
virtual Real k_from_p_T(Real pressure, Real temperature) const override
virtual Real molarMass() const override
Molar mass [kg/mol].
static const std::string density
virtual ~NaKFluidProperties()
static const std::string temperature
virtual const std::string & name() const
std::pair< T, T > NewtonSolve(const T &x, const T &y, const Real z_initial_guess, const Real tolerance, const Functor &func, const std::string &caller_name, const unsigned int max_its=100)
NewtonSolve does a 1D Newton Solve to solve the equation y = f(x, z) for variable z...
static const std::string cp
const Real _tolerance
Newton's method may be used to convert between variable sets.
e e e e s T T T T T rho v v T e h
const Real _MNaK
NaK molar mass (kg/mol)
static const std::string mu
Common class for single phase fluid properties.
virtual Real cp_from_p_T(Real pressure, Real temperature) const override
NaKFluidProperties(const InputParameters ¶meters)
void paramError(const std::string ¶m, Args... args) const
virtual Real h_from_p_T(Real pressure, Real temperature) const override
virtual Real T_from_p_h(Real pressure, Real enthalpy) const override
Real _Nk
K molar fraction.
virtual std::string fluidName() const override
Fluid name.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual Real mu_from_p_T(Real p, Real T) const override
const unsigned int _max_newton_its
Maximum number of iterations for the variable conversion newton solves.
virtual Real e_from_p_T(Real pressure, Real temperature) const override
static const std::string pressure
registerMooseObject("FluidPropertiesApp", NaKFluidProperties)
void mooseError(Args &&... args) const
virtual Real rho_from_p_T(Real pressure, Real temperature) const override
virtual Real e_from_p_rho(Real pressure, Real density) const override
const Real _T_initial_guess
Initial guess for temperature (or temperature used to compute the initial guess)
MooseUnits pow(const MooseUnits &, int)
const Real _T_c2k
Conversion of temperature from Celsius to Kelvin.
static const std::string k
virtual Real cv_from_p_T(Real pressure, Real temperature) const override