lead Module

Module implementing the liquid lead class.

A Lead instance can be created by providing either the temperature value or the value of one of the available properties. The instantiation based on the value of properties other than the temperature passes through the solution, in terms of the temperature value, of the corresponding correlation implemented in the lbh15 package.

In addition to the class attributes that are shown in the second part of this section, Lead class dynamically adds the thermo-physical properties implemented in lbh15.properties.lead_properties module and the thermo-chemical properties implemented in lbh15.properties.lead_thermochemical_properties.diffusivity_in_lead, lbh15.properties.lead_thermochemical_properties.lead_oxygen_limits, lbh15.properties.lead_thermochemical_properties.lead_thermochemical and lbh15.properties.lead_thermochemical_properties.solubility_in_lead modules. For instance:

>>> from lbh15 import Lead
>>> liquid_lead = Lead(T=668.15)
>>> liquid_lead.mu
0.0022534948395446985

In detail, a Lead object comes with the following default properties:

  1. Thermo-physical:

  • T_m0 melting temperature \(\left[K\right]\):

    \(600.6\)

  • Q_m0 melting latent heat \(\left[\frac{J}{kg}\right]\):

    \(23.07 \cdot 10^3\)

  • T_b0 boiling temperature \(\left[K\right]\):

    \(2021\)

  • Q_b0 vaporization heat \(\left[\frac{J}{kg}\right]\):

    \(858.6 \cdot 10^3\)

  • p_s saturation vapor pressure \(\left[Pa\right]\):

    \(p_s\left(T\right) = \displaystyle 5.76\cdot10^9\cdot\exp{\left(-22131/T\right)}\)

  • sigma surface tension \(\left[\frac{N}{m}\right]\):

    \(\sigma\left(T\right) = \displaystyle\left(525.9 - 0.113{\cdot}T\right)\cdot10^{-3}\)

  • u_s speed of sound \(\left[\frac{m}{s}\right]\):

    \(u_s\left(T\right) = \displaystyle 1953 - 0.246{\cdot}T\)

  • alpha thermal expansion coefficient \(\left[\frac{1}{K}\right]\):

    \(\alpha\left(T\right) = \displaystyle \left(8942 - T\right)^{-1}\)

  • cp specific heat capacity \(\left[\frac{J}{kg{\cdot}K}\right]\):

    \(c_p\left(T\right) = \displaystyle176.2 - 4.923\cdot10^{-2}{\cdot}T + 1.544\cdot10^{-5}{\cdot}T^2 - 1.524\cdot10^{6}{\cdot}T^{-2}\)

  • rho density \(\left[\frac{kg}{m^3}\right]\):

    \(\rho_0\left(T\right) = \displaystyle11441 - 1.2795{\cdot}T\)

    \(\rho\left(T,p\right) = \displaystyle\rho_0\left(T\right) + \left( \frac{1}{u_s\left(T\right)^2} + T \cdot \frac{\alpha\left(T\right)^2}{c_p\left(T\right)} \right) \cdot \left( p - p_{atm} \right)\), \(\quad\) where:

    \(\quad p_{atm}=101325.00 \left[Pa\right]\)

  • beta_s isentropic compressibility \(\left[\frac{1}{Pa}\right]\):

    \(\beta_s\left(T\right) = \displaystyle\frac{1}{\rho\left(T,p\right) \cdot u_s\left(T\right)^2}\)

  • h specific enthalpy (as difference with respect to the melting point enthalpy) \(\left[\frac{J}{kg}\right]\):

    \(h\left(T\right) = \displaystyle176.2 \cdot \left(T - T_{m0}\right) - 2.4615 \cdot 10^{-2} \cdot \left(T^2 - T_{m0}^2\right)\)

    \(\qquad\qquad+ 5.147 \cdot 10^{-6} \cdot \left(T^3 - T_{m0}^3\right) + 1.524 \cdot 10^6 \cdot \left(T^{-1} - T_{m0}^{-1}\right)\)

  • mu dynamic viscosity \(\left[Pa{\cdot}s\right]\):

    \(\mu\left(T\right) = \displaystyle4.55 \cdot 10^{-4} \cdot \exp{\left( 1069 / T \right)}\)

  • r electrical resistivity \(\left[\Omega{\cdot}m\right]\):

    \(r\left(T\right) = \displaystyle\left( 67.0 + 0.0471 \cdot T \right) \cdot 10^{-8}\)

  • k thermal conductivity \(\left[\frac{W}{m \cdot K}\right]\):

    \(k\left(T\right) = \displaystyle9.2 + 0.011 \cdot T\)

  • Pr Prandtl number \(\left[-\right]\):

    \(Pr\left(T\right) = \displaystyle\frac{c_p\left(T\right) \cdot \mu\left(T\right)}{k\left(T\right)}\)

  1. Thermo-chemical:

  • M molar mass \(\left[\frac{g}{mol}\right]\):

    \(207.20\)

  • H molar enthalpy \(\left[\frac{J}{mol}\right]\):

    \(H\left(T\right) = \displaystyle h\left(T\right) \cdot \frac{M}{1000}\)

  • S molar entropy \(\left[\frac{J}{mol \cdot K}\right]\):

    \(S\left(T\right) = \displaystyle \frac{M}{1000} \cdot \int_{T_{m0}}^T \frac{c_p\left(T\right)}{T} dT\)

  • G Gibbs free energy \(\left[\frac{J}{mol}\right]\):

    \(G\left(T\right) = \displaystyle H\left(T\right) - T \cdot S\left(T\right)\)

  • fe_sol iron solubility \(\left[wt.\%\right]\):

    \(fe\_sol\left(T\right) = \displaystyle10^{2.11 - 5225 / T}\)

  • ni_sol nickel solubility \(\left[wt.\%\right]\):

    \(ni\_sol\left(T\right) = \displaystyle10^{1.36 - 1395 / T}\)

  • cr_sol chromium solubility \(\left[wt.\%\right]\):

    \(cr\_sol\left(T\right) = \displaystyle10^{3.62 - 6648 / T}\)

  • si_sol silicon solubility \(\left[wt.\%\right]\):

    \(si\_sol\left(T\right) = \displaystyle10^{3.886 - 7180 / T}\)

  • o_sol oxygen solubility \(\left[wt.\%\right]\):

    \(o\_sol\left(T\right) = \displaystyle10^{3.23 - 5043 / T}\)

  • o_dif oxygen diffusivity \(\left[ \frac{cm^2}{s} \right]\):

    \(o\_dif\left(T\right) = \displaystyle6.6 \cdot 10^{-5} \cdot \exp{\left(- 16158 /\left(RT\right) \right)}\)

  • fe_dif iron diffusivity \(\left[ \frac{cm^2}{s} \right]\):

    \(fe\_dif\left(T\right) = \displaystyle10^{- 2.31 - 2295 / T}\)

  • co_dif cobalt diffusivity \(\left[ \frac{cm^2}{s} \right]\):

    \(co\_dif\left(T\right) = \displaystyle4.6 \cdot 10^{-4} \cdot \exp{\left(- 22154 /\left(RT\right) \right)}\)

  • se_dif selenium diffusivity \(\left[ \frac{cm^2}{s} \right]\):

    \(co\_dif\left(T\right) = \displaystyle3.4 \cdot 10^{-4} \cdot \exp{\left(- 12958 /\left(RT\right) \right)}\)

  • in_dif indium diffusivity \(\left[ \frac{cm^2}{s} \right]\):

    \(in\_dif\left(T\right) = \displaystyle3.1 \cdot 10^{-4} \cdot \exp{\left(- 13794 /\left(RT\right) \right)}\)

  • te_dif tellurium diffusivity \(\left[ \frac{cm^2}{s} \right]\):

    \(te\_dif\left(T\right) = \displaystyle3.1 \cdot 10^{-4} \cdot \exp{\left(- 15884 /\left(RT\right) \right)}\)

  • o_pp oxygen partial pressure divided by oxygen concentration squared \(\left[ \frac{atm}{wt.\%^2} \right]\):

    \(o\_pp\left(T\right) = \displaystyle \left( \frac{M}{M_O} \right)^2 \cdot 10^{ 2 /\left(2.3 \cdot R\right) \cdot \left( - 119411 / T + 12.222 \right) }\), \(\quad\) where:

    \(M_O = 16 \frac{g}{mol} \quad\) oxygen molecular mass

  • lim_fe_sat lower limit of oxygen concentration with iron @ saturation \(\left[wt.\%\right]\):

    \(lim\_fe\_sat\left(T\right) = \displaystyle o\_sol\left(T\right) \cdot \exp{\left( - \frac{57190}{R T} - \frac{21.1}{R} \right)}\)

  • lim_cr_sat lower limit of oxygen concentration with chromium @ saturation \(\left[wt.\%\right]\):

    \(lim\_cr\_sat\left(T\right) = \displaystyle o\_sol\left(T\right) \cdot \exp{\left( - \frac{317800}{2 R T} - \frac{27.3}{2R} \right)}\)

  • lim_ni_sat lower limit of oxygen concentration with nickel @ saturation \(\left[wt.\%\right]\):

    \(lim\_ni\_sat\left(T\right) = \displaystyle o\_sol\left(T\right) \cdot \exp{\left( - \frac{36080}{2 R T} - \frac{23.4}{2R} \right)}\)

  • lim_si_sat lower limit of oxygen concentration with silicon @ saturation \(\left[wt.\%\right]\):

    \(lim\_si\_sat\left(T\right) = \displaystyle o\_sol\left(T\right) \cdot \exp{\left( - \frac{471710}{2 R T} - \frac{19.5}{2R} \right)}\)

  • lim_al_sat lower limit of oxygen concentration with aluminium @ saturation \(\left[wt.\%\right]\):

    \(lim\_al\_sat\left(T\right) = \displaystyle o\_sol\left(T\right) \cdot \exp{\left( - \frac{679540}{2 R T} + \frac{10.7}{2R} \right)}\)

  • lim_cr lower limit of oxygen concentration times chromium concentration raised to \(2/3\) \(\left[wt.\%\right]\):

    \(lim\_cr\left(T\right) = \displaystyle lim\_cr\_sat\left(T\right) \cdot cr\_sol\left(T\right)^{2/3}\)

  • lim_ni lower limit of oxygen concentration times nickel concentration \(\left[wt.\%\right]\):

    \(lim\_ni\left(T\right) = \displaystyle lim\_ni\_sat\left(T\right) \cdot ni\_sol\left(T\right)\)

  • lim_fe lower limit of oxygen concentration times iron concentration raised to \(3/4\) \(\left[wt.\%\right]\):

    \(lim\_fe\left(T\right) = \displaystyle lim\_fe\_sat\left(T\right) \cdot fe\_sol\left(T\right)^{3/4}\)

  • lim_si lower limit of oxygen concentration times silicon concentration raised to \(1/2\) \(\left[wt.\%\right]\):

    \(lim\_si\left(T\right) = \displaystyle lim\_si\_sat\left(T\right) \cdot si\_sol\left(T\right)^{1/2}\)

where \(T\) is the lead temperature in \(\left[K\right]\), \(p\) is the lead pressure in \(\left[Pa\right]\) and \(R\) is the molar gas constant in \(\left[J/(mol K)\right]\).

In addition, to provide the property values directly, the Lead object dynamically adds the methods named <property_name>_info, that return full information about the corresponding property. For instance:

>>> from lbh15 import Lead
>>> liquid_lead = Lead(T=668.15)
>>> liquid_lead.mu_info()
mu:
        Value: 2.25e-03 [Pa*s]
        Validity range: [600.60, 1473.00] K
        Correlation name: 'lbh15'
        Long name: dynamic viscosity
        Units: [Pa*s]
        Description:
                Liquid lead dynamic viscosity

Lead Class Attributes

Module with the definition of lead liquid metal object class, i.e., Lead

class Lead(p: float = scipy.constants.atm, **kwargs)

Class to model liquid lead properties either at a given temperature or at a given value of a specific property to choose among a list of available properties.

Parameters:
  • p (float, optional) – Pressure in [Pa], by default the atmospheric pressure value, i.e., 101325.0 Pa

  • **kwargs (dict) –

    One-item dictionary that specifies the quantity which the object shall be initialized from. The available ones by default are:

    • T (float) : temperature \([K]\)

    • p_s (float) : saturation vapour pressure \([Pa]\)

    • sigma (float) : surface tension \([N/m]\)

    • rho (float) : density \([kg/m^3]\)

    • alpha (float) : thermal expansion coefficient \([1/K]\)

    • u_s (float) : speed of sound \([m/s]\)

    • beta_s (float) : isentropic compressibility \([1/Pa]\)

    • cp (float) : specific heat capacity \([J/(kg \cdot K)]\)

    • h (float) : specific enthalpy (with respect to melting point) \([J/kg]\)

    • mu (float) : dynamic viscosity \([Pa \cdot s]\)

    • r (float) : electrical resistivity \([Ohm \cdot m]\)

    • k (float) : thermal conductivity \([W/(m \cdot K)]\)

    • H (float) : molar enthalpy \([J/mol]\)

    • S (float) : molar entropy \([J/(mol \cdot K)]\)

    • G (float) : Gibbs free energy \([J/mol]\)

    • fe_sol (float) : Iron solubility \([wt.\%]\)

    • ni_sol (float) : Nickel solubility \([wt.\%]\)

    • cr_sol (float) : Chromium solubility \([wt.\%]\)

    • si_sol (float) : Silicon solubility \([wt.\%]\)

    • o_sol (float) : Oxygen solubility \([wt.\%]\)

    • o_dif (float) : Oxygen diffusivity \([m^2 / s]\)

    • fe_dif (float) : Iron diffusivity \([m^2 / s]\)

    • co_dif (float) : Cobalt diffusivity \([m^2 / s]\)

    • se_dif (float) : Selenium diffusivity \([m^2 / s]\)

    • in_dif (float) : Indium diffusivity \([m^2 / s]\)

    • te_dif (float) : Tellurium diffusivity \([m^2 / s]\)

    • o_pp (float) : Oxygen partial pressure divided by Oxygen concentration squared \([Pa / wt.\%^2]\)

    • lim_fe_sat (float) : Lower limit of Oxygen concentration with Iron at saturation \([wt.\%]\)

    • lim_cr_sat (float) : Lower limit of Oxygen concentration with Chromium at saturation \([wt.\%]\)

    • lim_ni_sat (float) : Lower limit of Oxygen concentration with Nickel at saturation \([wt.\%]\)

    • lim_si_sat (float) : Lower limit of Oxygen concentration with Silicon at saturation \([wt.\%]\)

    • lim_al_sat (float) : Lower limit of Oxygen concentration with Aluminium at saturation \([wt.\%]\)

    • lim_cr (float) : Lower limit of Oxygen concentration times Chromium concentration raised to \(2/3\) \([wt.\%]\)

    • lim_ni (float) : Lower limit of Oxygen concentration times Nickel concentration \([wt.\%]\)

    • lim_fe (float) : Lower limit of Oxygen concentration times Iron concentration raised to \(3/4\) \([wt.\%]\)

    • lim_si (float) : Lower limit of Oxygen concentration times Silicon concentration raised to \(1/2\) \([wt.\%]\)

Example

Compare the Lead specific heat values obtained from the ‘sobolev2011’ and the ‘gurvich1991’ correlations at \(T=800 K\)

>>> liquid_lead_1 = Lead(T=800)  # 'sobolev2011'
>>> liquid_lead_1.cp
144.31635
>>> Lead.set_correlation_to_use('cp', 'gurvich1991')
>>> liquid_lead_2 = Lead(T=800)
>>> liquid_lead_2.cp
144.660062
property M: float

metal molar mass \([g/mol]\)

Type:

float

property Pr: float

Prandtl number \([-]\)

Type:

float

property Q_b0: float

vaporisation heat \([J/kg]\)

Type:

float

property Q_m0: float

melting latent heat \([J/kg]\)

Type:

float

property T: float

temperature used to compute properties \([K]\)

Type:

float

property T_b0: float

boiling temperature \([K]\)

Type:

float

property T_m0: float

melting temperature \([K]\)

Type:

float

classmethod available_correlations(properties: str | List[str] | None = None) Dict[str, List[str]]

Returns the available correlations for the properties passed as argument. Result is formatted as dictionary, where keys are the required property names and values are the corresponding lists of available correlations. In case at least one required property is not among the implemented ones, a warning message is returned listing the names of all the properties that have not been found. In case no value is passed as argument, the available correlations are returned for all the implemented properties.

Parameters:

properties (str | List[str] | None) – name(s) of the property(ies) whose available correlations are to be retrieved. If multiple properties are required, the list of their names must be provided, otherwise a simple string is enough. If the correlations are required for all the implemented properties, then None value is to be passed.

Return type:

Dict[str, List[str]]

change_correlation_to_use(property_name: str, correlation_name: str) None

Changes property correlation if property is defined as instance attribute, otherwise a warning message is returned without applying any change.

Parameters:
  • property_name (str) – Name of the property

  • correlation_name (str) – Name of the correlation

check_temperature(T: float) Tuple[bool, str]

Checks whether the provided temperature value belongs to the valid temperature range, i.e., the liquid temperature range.

Parameters:

T (float) – Temperature in \([K]\)

Returns:

bool:

True if check is ok, False otherwise

str:

error message (if any) associated to the temperature check

Return type:

Tuple[bool, str]

classmethod correlations_to_use() Dict[str, str]

Returns the dictionary defining the correlation used for the corresponding property. Only properties are considered for which a specific correlation has been chosen a priori.

Return type:

Dict[str, str]

property p: float

pressure adopted for property calculation \([Pa]\), i.e., atmospheric pressure

Type:

float

classmethod properties_for_initialization() List[str]

Returns the list of the available properties an instance can be initialized from.

Return type:

List[str]

classmethod roots_to_use() Dict[str, int]

Returns the dictionary containing, for each specified property, the index of the root to use for identifying the temperature of the liquid metal. Useful when the initialization is performed from a property whose correlation is not injective.

Return type:

Dict[str, int]

classmethod set_correlation_to_use(property_name: str, correlation_name: str) None

Sets the correlation to use for the specified property.

Parameters:
  • property_name (str) – Name of the property

  • correlation_name (str) – Name of the correlation

classmethod set_custom_properties_path(file_path: str) None

Sets the absolute path of the file where looking for custom properties.

Parameters:

file_path (str) – absolute path of the file where custom properties are implemented

classmethod set_root_to_use(property_name: str, root_index: int) None

Sets the index of the root to use for computing the temperature from the correlation function of the property the instantiation is based on. Temperature roots are sorted in ascending order, i.e, \(T_i <= T_j\), with \(i < j\). Used only if property correlation is not injective.

Parameters:
  • property_name (str) – Name of the property

  • root_index (int) – Index of the temperature root to use

property used_correlations: Dict[str, str]

Returns the dictionary defining the correlation used for the corresponding property. Only properties are considered for which a specific correlation has been chosen a priori.

Return type:

Dict[str, str]