Source code for yamdb.properties.expansion_coefficient

"""Implements the expansion_coefficient methods."""
import numpy as np

coef = None


[docs] def IAEA2008(Temp, coef=coef): r"""Return volumetric expansion coefficient according to IAEA (2008). p. 87, eq. (3.34) .. math:: \beta * 10^4 = a + b*t + c*t^2 + d*t^3 Parameters ---------- Temp : float Temperature in K, single value or NumPy array. coef : float List of coefficients, typically automatically extracted from YAML DB. Returns ------- float Volumetric expansion coefficient in 1/K, single value or NumPy array. Raises ------ LookupError If not all required keys/values are present in the coef dictionary. References ---------- International Atomic Energy Agency, 2008. Thermophysical properties of materials for nuclear engineering: A tutorial and collection of data. International Atomic Energy Agency, Vienna. """ try: a = coef['a'] b = coef['b'] c = coef['c'] d = coef['d'] except LookupError as e: print("ERROR: Not all coefficients supplied, cannot compute values!\n" "First missing coefficient: %s" % e) raise t = Temp - 273.15 beta = a + b*t + c*np.power(t, 2) + d*np.power(t, 3) beta /= 1.0E04 return beta
[docs] def OECDNEA2015(Temp, coef=coef): r"""Return volumetric expansion coefficient according to OECD/NEA (2015). p. 78, eq. (2.34) .. math:: \beta = 1/(a-T) Parameters ---------- Temp : float Temperature in K, single value or NumPy array. coef : float List of coefficients, typically automatically extracted from YAML DB. Returns ------- float Volumetric expansion coefficient in 1/K, single value or NumPy array. Raises ------ LookupError If not all required keys/values are present in the coef dictionary. References ---------- OECD Nuclear Energy Agency, Nuclear Science Committee, 2015. Handbook on lead-bismuth eutectic alloy and lead properties, materials compatibility, thermal-hydraulics and technologies. OECD/NEA/NSC. """ try: a = coef['a'] except LookupError as e: print("ERROR: Not all coefficients supplied, cannot compute values!\n" "First missing coefficient: %s" % e) raise beta = 1.0/(a - Temp) return beta
[docs] def Steinberg1974(Temp, coef=coef): r"""Return expansion coefficient according to Iida, Guthrie (2015). p. 511 footnote :math:`\dagger\dagger` .. math:: \beta = -\lambda / \rho tabulated :math:`\lambda` is :math:`- \lambda` ! Parameters ---------- Temp : float Temperature in K, single value or NumPy array. coef : float List of coefficients, typically automatically extracted from YAML DB. Returns ------- float Volumetric expansion coefficient in 1/K, single value or NumPy array. Raises ------ LookupError If not all required keys/values are present in the coef dictionary. References ---------- Steinberg, D.J., 1974. A simple relationship between the temperature dependence of the density of liquid metals and their boiling temperatures. Metallurgical Transactions 5, 1341–1343. Iida, T., Guthrie, R.I.L., 2015. The thermophysical properties of metallic liquids. Oxford University Press, Oxford. """ try: rho_m = coef['rho_m'] lambda_ = coef['lambda'] Tm = coef['Tm'] except LookupError as e: print("ERROR: Not all coefficients supplied, cannot compute values!\n" "First missing coefficient: %s" % e) raise rho = rho_m - lambda_ * (Temp - Tm) beta = lambda_ / rho return beta
[docs] def Sobolev2011(Temp, coef=coef): r"""Return expansion coefficient according to Sobolev (2011). p. 67 effectively Eqs. (3-10) ff. .. math:: \beta = - 1/\rho \partial \rho / \partial T Parameters ---------- Temp : float Temperature in K, single value or NumPy array. coef : float List of coefficients, typically automatically extracted from YAML DB. Returns ------- float Volumetric expansion coefficient in 1/K, single value or NumPy array. Raises ------ LookupError If not all required keys/values are present in the coef dictionary. References ---------- Sobolev, V., 2011. Database of thermophysical properties of liquid metal coolants for GEN-IV (No. SCK•CEN-BLG-1069). SCK•CEN. """ try: rho_s = coef['rho_s'] drhodT = coef['drhodT'] except LookupError as e: print("ERROR: Not all coefficients supplied, cannot compute values!\n" "First missing coefficient: %s" % e) raise rho = rho_s + drhodT * Temp return - drhodT/rho