bismuth_thermochemical Module

Module with the definition of the thermo-chemical property objects for bismuth.

class BismuthOxygenPartialPressureInterface

Oxygen partial pressure in liquid bismuth divided by the Oxygen concentration in liquid bismuth squared property abstract class.

initialization_helper(property_value: float) None | float

Returns the temperature guess value according to the value of the Oxygen partial pressure in liquid bismuth divided by the Oxygen concentration in liquid bismuth squared passed as argument. It is used by the root finder algorithm.

Parameters:

property_value (float) – oxygen partial pressure in liquid bismuth divided by the oxygen concentration in liquid bismuth squared in \([Pa /wt.\%^2]\)

Returns:

Temperature guess value in \([K]\)

Return type:

float

property description: str

Oxygen partial pressure in liquid bismuth divided by the Oxygen concentration in liquid bismuth squared description

Type:

str

property T_at_max: float

Temperature value corresponding to the maximum value of the property correlation function within the validity range

Type:

float

property T_at_min: float

Temperature value corresponding to the minimum value of the property correlation function within the validity range

Type:

float

compute_bounds() None

Computes the bounds of the property within the validity range, i.e., the minimum and the maximum values of the correlation function inside the validity range, together with the corresponding temperature values. If this method is not invoked, the default values are -nan for the minimum value of the property and for its corresponding temperature, and nan for the maximum value of the property and for its corresponding temperature. The bounding values are computed using the scipy.optimize.minimize_scalar() function by adopting the “Bounded” method (for more details, please refer to the scipy documentation).

Return type:

None

abstract correlation(T: float, p: float = scipy.constants.atm, verbose: bool = False) float

Returns the value of the property by applying the corresponding correlation.

Parameters:
  • T (float) – Temperature in \([K]\)

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

  • verbose (bool, optional) – True to tell the decorator to print a warning message in case of range check failing, False otherwise. By default, False

Return type:

exception

property correlation_name: str

Name of the correlation

Type:

str

info(T: float, p: float = scipy.constants.atm, print_info: bool = True, n_tab: int = 0) None | str

Prints the information about the property and about the correlation adopted to compute its value.

Parameters:
  • T (float) – Temperature in \([K]\)

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

  • print_info (bool, optional) – True to print to the console, False for getting the string. By default, True

  • n_tab (int, optional) – Number of indentation tabs used to format the output, by default 0

Returns:

Returns None if print_info=True, otherwise returns the content of the information.

Return type:

None | str

property is_injective: bool

True if the correlation is injective, False otherwise

Type:

bool

property long_name: str

Oxygen partial pressure in liquid metal divided by the Oxygen concentration in liquid metal squared long name

Type:

str

property max: float

Maximum value of the property correlation function within the validity range

Type:

float

property min: float

Minimum value of the property correlation function within the validity range

Type:

float

property name: str

Name of the property

Type:

str

abstract property range: List[float]

Validity range of the property correlation function identified by the minimum and the maximum values of the temperature

Type:

List[float]

property units: str

Oxygen partial pressure in liquid metal divided by the Oxygen concentration in liquid metal squared unit

Type:

str

class OxygenPartialPressureFitzner1980

Oxygen partial pressure in liquid bismuth divided by the Oxygen concentration in liquid bismuth squared property class implementing the correlation by fitzner1980.

correlation(T: float, p: float = scipy.constants.atm, verbose: bool = False) float

Returns the value of the Oxygen partial pressure in liquid bismuth divided by the Oxygen concentration in liquid bismuth squared by applying the property correlation.

Parameters:
  • T (float) – Temperature in \([K]\)

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

  • verbose (bool, optional) – True to tell the decorator to print a warning message in case of range check failing, False otherwise. By default, False

Returns:

Oxygen partial pressure divided by Oxygen concentration squared in \([Pa / wt.\%^2]\)

Return type:

float

property correlation_name: str

Name of the correlation

Type:

str

property range: List[float]

Temperature validity range of the Oxygen partial pressure divided by the Oxygen concentration squared correlation function

Type:

List[float]

property T_at_max: float

Temperature value corresponding to the maximum value of the property correlation function within the validity range

Type:

float

property T_at_min: float

Temperature value corresponding to the minimum value of the property correlation function within the validity range

Type:

float

compute_bounds() None

Computes the bounds of the property within the validity range, i.e., the minimum and the maximum values of the correlation function inside the validity range, together with the corresponding temperature values. If this method is not invoked, the default values are -nan for the minimum value of the property and for its corresponding temperature, and nan for the maximum value of the property and for its corresponding temperature. The bounding values are computed using the scipy.optimize.minimize_scalar() function by adopting the “Bounded” method (for more details, please refer to the scipy documentation).

Return type:

None

property description: str

Oxygen partial pressure in liquid bismuth divided by the Oxygen concentration in liquid bismuth squared description

Type:

str

info(T: float, p: float = scipy.constants.atm, print_info: bool = True, n_tab: int = 0) None | str

Prints the information about the property and about the correlation adopted to compute its value.

Parameters:
  • T (float) – Temperature in \([K]\)

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

  • print_info (bool, optional) – True to print to the console, False for getting the string. By default, True

  • n_tab (int, optional) – Number of indentation tabs used to format the output, by default 0

Returns:

Returns None if print_info=True, otherwise returns the content of the information.

Return type:

None | str

initialization_helper(property_value: float) None | float

Returns the temperature guess value according to the value of the Oxygen partial pressure in liquid bismuth divided by the Oxygen concentration in liquid bismuth squared passed as argument. It is used by the root finder algorithm.

Parameters:

property_value (float) – oxygen partial pressure in liquid bismuth divided by the oxygen concentration in liquid bismuth squared in \([Pa /wt.\%^2]\)

Returns:

Temperature guess value in \([K]\)

Return type:

float

property is_injective: bool

True if the correlation is injective, False otherwise

Type:

bool

property long_name: str

Oxygen partial pressure in liquid metal divided by the Oxygen concentration in liquid metal squared long name

Type:

str

property max: float

Maximum value of the property correlation function within the validity range

Type:

float

property min: float

Minimum value of the property correlation function within the validity range

Type:

float

property name: str

Name of the property

Type:

str

property units: str

Oxygen partial pressure in liquid metal divided by the Oxygen concentration in liquid metal squared unit

Type:

str

class OxygenPartialPressureIsecke1979

Oxygen partial pressure in liquid bismuth divided by the Oxygen concentration in liquid bismuth squared property class implementing the correlation by isecke1979.

correlation(T: float, p: float = scipy.constants.atm, verbose: bool = False) float

Returns the value of the Oxygen partial pressure in liquid bismuth divided by the Oxygen concentration in liquid bismuth squared by applying the property correlation.

Parameters:
  • T (float) – Temperature in \([K]\)

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

  • verbose (bool, optional) – True to tell the decorator to print a warning message in case of range check failing, False otherwise. By default, False

Returns:

Oxygen partial pressure divided by Oxygen concentration squared in \([Pa / wt.\%^2]\)

Return type:

float

property correlation_name: str

Name of the correlation

Type:

str

property range: List[float]

Temperature validity range of the Oxygen partial pressure divided by the Oxygen concentration squared correlation function

Type:

List[float]

property T_at_max: float

Temperature value corresponding to the maximum value of the property correlation function within the validity range

Type:

float

property T_at_min: float

Temperature value corresponding to the minimum value of the property correlation function within the validity range

Type:

float

compute_bounds() None

Computes the bounds of the property within the validity range, i.e., the minimum and the maximum values of the correlation function inside the validity range, together with the corresponding temperature values. If this method is not invoked, the default values are -nan for the minimum value of the property and for its corresponding temperature, and nan for the maximum value of the property and for its corresponding temperature. The bounding values are computed using the scipy.optimize.minimize_scalar() function by adopting the “Bounded” method (for more details, please refer to the scipy documentation).

Return type:

None

property description: str

Oxygen partial pressure in liquid bismuth divided by the Oxygen concentration in liquid bismuth squared description

Type:

str

info(T: float, p: float = scipy.constants.atm, print_info: bool = True, n_tab: int = 0) None | str

Prints the information about the property and about the correlation adopted to compute its value.

Parameters:
  • T (float) – Temperature in \([K]\)

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

  • print_info (bool, optional) – True to print to the console, False for getting the string. By default, True

  • n_tab (int, optional) – Number of indentation tabs used to format the output, by default 0

Returns:

Returns None if print_info=True, otherwise returns the content of the information.

Return type:

None | str

initialization_helper(property_value: float) None | float

Returns the temperature guess value according to the value of the Oxygen partial pressure in liquid bismuth divided by the Oxygen concentration in liquid bismuth squared passed as argument. It is used by the root finder algorithm.

Parameters:

property_value (float) – oxygen partial pressure in liquid bismuth divided by the oxygen concentration in liquid bismuth squared in \([Pa /wt.\%^2]\)

Returns:

Temperature guess value in \([K]\)

Return type:

float

property is_injective: bool

True if the correlation is injective, False otherwise

Type:

bool

property long_name: str

Oxygen partial pressure in liquid metal divided by the Oxygen concentration in liquid metal squared long name

Type:

str

property max: float

Maximum value of the property correlation function within the validity range

Type:

float

property min: float

Minimum value of the property correlation function within the validity range

Type:

float

property name: str

Name of the property

Type:

str

property units: str

Oxygen partial pressure in liquid metal divided by the Oxygen concentration in liquid metal squared unit

Type:

str

class OxygenPartialPressureHahn1979

Oxygen partial pressure in liquid bismuth divided by the Oxygen concentration in liquid bismuth squared property class implementing the correlation by hahn1979.

correlation(T: float, p: float = scipy.constants.atm, verbose: bool = False) float

Returns the value of the Oxygen partial pressure in liquid bismuth divided by the Oxygen concentration in liquid bismuth squared by applying the property correlation.

Parameters:
  • T (float) – Temperature in \([K]\)

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

  • verbose (bool, optional) – True to tell the decorator to print a warning message in case of range check failing, False otherwise. By default, False

Returns:

Oxygen partial pressure divided by Oxygen concentration squared in \([Pa / wt.\%^2]\)

Return type:

float

property correlation_name: str

Name of the correlation

Type:

str

property range: List[float]

Temperature validity range of the Oxygen partial pressure divided by the Oxygen concentration squared correlation function

Type:

List[float]

property T_at_max: float

Temperature value corresponding to the maximum value of the property correlation function within the validity range

Type:

float

property T_at_min: float

Temperature value corresponding to the minimum value of the property correlation function within the validity range

Type:

float

compute_bounds() None

Computes the bounds of the property within the validity range, i.e., the minimum and the maximum values of the correlation function inside the validity range, together with the corresponding temperature values. If this method is not invoked, the default values are -nan for the minimum value of the property and for its corresponding temperature, and nan for the maximum value of the property and for its corresponding temperature. The bounding values are computed using the scipy.optimize.minimize_scalar() function by adopting the “Bounded” method (for more details, please refer to the scipy documentation).

Return type:

None

property description: str

Oxygen partial pressure in liquid bismuth divided by the Oxygen concentration in liquid bismuth squared description

Type:

str

info(T: float, p: float = scipy.constants.atm, print_info: bool = True, n_tab: int = 0) None | str

Prints the information about the property and about the correlation adopted to compute its value.

Parameters:
  • T (float) – Temperature in \([K]\)

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

  • print_info (bool, optional) – True to print to the console, False for getting the string. By default, True

  • n_tab (int, optional) – Number of indentation tabs used to format the output, by default 0

Returns:

Returns None if print_info=True, otherwise returns the content of the information.

Return type:

None | str

initialization_helper(property_value: float) None | float

Returns the temperature guess value according to the value of the Oxygen partial pressure in liquid bismuth divided by the Oxygen concentration in liquid bismuth squared passed as argument. It is used by the root finder algorithm.

Parameters:

property_value (float) – oxygen partial pressure in liquid bismuth divided by the oxygen concentration in liquid bismuth squared in \([Pa /wt.\%^2]\)

Returns:

Temperature guess value in \([K]\)

Return type:

float

property is_injective: bool

True if the correlation is injective, False otherwise

Type:

bool

property long_name: str

Oxygen partial pressure in liquid metal divided by the Oxygen concentration in liquid metal squared long name

Type:

str

property max: float

Maximum value of the property correlation function within the validity range

Type:

float

property min: float

Minimum value of the property correlation function within the validity range

Type:

float

property name: str

Name of the property

Type:

str

property units: str

Oxygen partial pressure in liquid metal divided by the Oxygen concentration in liquid metal squared unit

Type:

str

class OxygenPartialPressureHeshmatpour1981

Oxygen partial pressure in liquid bismuth divided by the Oxygen concentration in liquid bismuth squared property class implementing the correlation by heshmatpour1981.

correlation(T: float, p: float = scipy.constants.atm, verbose: bool = False) float

Returns the value of the Oxygen partial pressure in liquid bismuth divided by the Oxygen concentration in liquid bismuth squared by applying the property correlation.

Parameters:
  • T (float) – Temperature in \([K]\)

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

  • verbose (bool, optional) – True to tell the decorator to print a warning message in case of range check failing, False otherwise. By default, False

Returns:

Oxygen partial pressure divided by Oxygen concentration squared in \([Pa / wt.\%^2]\)

Return type:

float

property correlation_name: str

Name of the correlation

Type:

str

property range: List[float]

Temperature validity range of the Oxygen partial pressure divided by the Oxygen concentration squared correlation function

Type:

List[float]

property T_at_max: float

Temperature value corresponding to the maximum value of the property correlation function within the validity range

Type:

float

property T_at_min: float

Temperature value corresponding to the minimum value of the property correlation function within the validity range

Type:

float

compute_bounds() None

Computes the bounds of the property within the validity range, i.e., the minimum and the maximum values of the correlation function inside the validity range, together with the corresponding temperature values. If this method is not invoked, the default values are -nan for the minimum value of the property and for its corresponding temperature, and nan for the maximum value of the property and for its corresponding temperature. The bounding values are computed using the scipy.optimize.minimize_scalar() function by adopting the “Bounded” method (for more details, please refer to the scipy documentation).

Return type:

None

property description: str

Oxygen partial pressure in liquid bismuth divided by the Oxygen concentration in liquid bismuth squared description

Type:

str

info(T: float, p: float = scipy.constants.atm, print_info: bool = True, n_tab: int = 0) None | str

Prints the information about the property and about the correlation adopted to compute its value.

Parameters:
  • T (float) – Temperature in \([K]\)

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

  • print_info (bool, optional) – True to print to the console, False for getting the string. By default, True

  • n_tab (int, optional) – Number of indentation tabs used to format the output, by default 0

Returns:

Returns None if print_info=True, otherwise returns the content of the information.

Return type:

None | str

initialization_helper(property_value: float) None | float

Returns the temperature guess value according to the value of the Oxygen partial pressure in liquid bismuth divided by the Oxygen concentration in liquid bismuth squared passed as argument. It is used by the root finder algorithm.

Parameters:

property_value (float) – oxygen partial pressure in liquid bismuth divided by the oxygen concentration in liquid bismuth squared in \([Pa /wt.\%^2]\)

Returns:

Temperature guess value in \([K]\)

Return type:

float

property is_injective: bool

True if the correlation is injective, False otherwise

Type:

bool

property long_name: str

Oxygen partial pressure in liquid metal divided by the Oxygen concentration in liquid metal squared long name

Type:

str

property max: float

Maximum value of the property correlation function within the validity range

Type:

float

property min: float

Minimum value of the property correlation function within the validity range

Type:

float

property name: str

Name of the property

Type:

str

property units: str

Oxygen partial pressure in liquid metal divided by the Oxygen concentration in liquid metal squared unit

Type:

str

class MolarEnthalpy

Liquid bismuth molar enthalpy variation property class.

correlation(T: float, p: float = scipy.constants.atm, verbose: bool = False) float

Returns the value of the molar enthalpy variation by applying the property correlation.

Parameters:
  • T (float) – Temperature in \([K]\)

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

  • verbose (bool, optional) – True to tell the decorator to print a warning message in case of range check failing, False otherwise. By default, False

Returns:

molar enthalpy in \([J/mol]\)

Return type:

float

property range: List[float]

Temperature validity range of the molar enthalpy variation correlation function

Type:

List[float]

property description: str

Molar enthalpy variation description

Type:

str

property T_at_max: float

Temperature value corresponding to the maximum value of the property correlation function within the validity range

Type:

float

property T_at_min: float

Temperature value corresponding to the minimum value of the property correlation function within the validity range

Type:

float

compute_bounds() None

Computes the bounds of the property within the validity range, i.e., the minimum and the maximum values of the correlation function inside the validity range, together with the corresponding temperature values. If this method is not invoked, the default values are -nan for the minimum value of the property and for its corresponding temperature, and nan for the maximum value of the property and for its corresponding temperature. The bounding values are computed using the scipy.optimize.minimize_scalar() function by adopting the “Bounded” method (for more details, please refer to the scipy documentation).

Return type:

None

property correlation_name: str

Name of the correlation

Type:

str

info(T: float, p: float = scipy.constants.atm, print_info: bool = True, n_tab: int = 0) None | str

Prints the information about the property and about the correlation adopted to compute its value.

Parameters:
  • T (float) – Temperature in \([K]\)

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

  • print_info (bool, optional) – True to print to the console, False for getting the string. By default, True

  • n_tab (int, optional) – Number of indentation tabs used to format the output, by default 0

Returns:

Returns None if print_info=True, otherwise returns the content of the information.

Return type:

None | str

initialization_helper(property_value: float) float | None

Returns the temperature guess value according to the value of the property passed as argument. It is used by the root finder algorithm in case the return type is not None.

Parameters:

property_value (float) – value of the property

Return type:

None

property is_injective: bool

True if the correlation is injective, False otherwise

Type:

bool

property long_name: str

Molar enthalpy variation long name

Type:

str

property max: float

Maximum value of the property correlation function within the validity range

Type:

float

property min: float

Minimum value of the property correlation function within the validity range

Type:

float

property name: str

Name of the property

Type:

str

property units: str

Molar enthalpy variation unit

Type:

str

class MolarEntropy

Liquid bismuth molar entropy variation property class.

correlation(T: float, p: float = scipy.constants.atm, verbose: bool = False) float

Returns the value of the molar entropy variation by applying the property correlation.

Parameters:
  • T (float) – Temperature in \([K]\)

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

  • verbose (bool, optional) – True to tell the decorator to print a warning message in case of range check failing, False otherwise. By default, False

Returns:

molar entropy in \([J/(mol \cdot K)]\)

Return type:

float

property range: List[float]

Temperature validity range of the molar entropy variation correlation function

Type:

List[float]

property description: str

Molar entropy variation description

Type:

str

property T_at_max: float

Temperature value corresponding to the maximum value of the property correlation function within the validity range

Type:

float

property T_at_min: float

Temperature value corresponding to the minimum value of the property correlation function within the validity range

Type:

float

compute_bounds() None

Computes the bounds of the property within the validity range, i.e., the minimum and the maximum values of the correlation function inside the validity range, together with the corresponding temperature values. If this method is not invoked, the default values are -nan for the minimum value of the property and for its corresponding temperature, and nan for the maximum value of the property and for its corresponding temperature. The bounding values are computed using the scipy.optimize.minimize_scalar() function by adopting the “Bounded” method (for more details, please refer to the scipy documentation).

Return type:

None

property correlation_name: str

Name of the correlation

Type:

str

info(T: float, p: float = scipy.constants.atm, print_info: bool = True, n_tab: int = 0) None | str

Prints the information about the property and about the correlation adopted to compute its value.

Parameters:
  • T (float) – Temperature in \([K]\)

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

  • print_info (bool, optional) – True to print to the console, False for getting the string. By default, True

  • n_tab (int, optional) – Number of indentation tabs used to format the output, by default 0

Returns:

Returns None if print_info=True, otherwise returns the content of the information.

Return type:

None | str

initialization_helper(property_value: float) float | None

Returns the temperature guess value according to the value of the property passed as argument. It is used by the root finder algorithm in case the return type is not None.

Parameters:

property_value (float) – value of the property

Return type:

None

property is_injective: bool

True if the correlation is injective, False otherwise

Type:

bool

property long_name: str

Molar entropy variation long name

Type:

str

property max: float

Maximum value of the property correlation function within the validity range

Type:

float

property min: float

Minimum value of the property correlation function within the validity range

Type:

float

property name: str

Name of the property

Type:

str

property units: str

Molar entropy variation unit

Type:

str

class GibbsFreeEnergy

Liquid bismuth Gibbs free energy variation property class.

correlation(T: float, p: float = scipy.constants.atm, verbose: bool = False) float

Returns the value of the Gibbs free energy variation by applying the property correlation.

Parameters:
  • T (float) – Temperature in \([K]\)

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

  • verbose (bool, optional) – True to tell the decorator to print a warning message in case of range check failing, False otherwise. By default, False

Returns:

Gibbs free energy in \([J/mol]\)

Return type:

float

property range: List[float]

Temperature validity range of the Gibbs free energy variation correlation function

Type:

List[float]

property description: str

Gibbs free energy description

Type:

str

property T_at_max: float

Temperature value corresponding to the maximum value of the property correlation function within the validity range

Type:

float

property T_at_min: float

Temperature value corresponding to the minimum value of the property correlation function within the validity range

Type:

float

compute_bounds() None

Computes the bounds of the property within the validity range, i.e., the minimum and the maximum values of the correlation function inside the validity range, together with the corresponding temperature values. If this method is not invoked, the default values are -nan for the minimum value of the property and for its corresponding temperature, and nan for the maximum value of the property and for its corresponding temperature. The bounding values are computed using the scipy.optimize.minimize_scalar() function by adopting the “Bounded” method (for more details, please refer to the scipy documentation).

Return type:

None

property correlation_name: str

Name of the correlation

Type:

str

info(T: float, p: float = scipy.constants.atm, print_info: bool = True, n_tab: int = 0) None | str

Prints the information about the property and about the correlation adopted to compute its value.

Parameters:
  • T (float) – Temperature in \([K]\)

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

  • print_info (bool, optional) – True to print to the console, False for getting the string. By default, True

  • n_tab (int, optional) – Number of indentation tabs used to format the output, by default 0

Returns:

Returns None if print_info=True, otherwise returns the content of the information.

Return type:

None | str

initialization_helper(property_value: float) float | None

Returns the temperature guess value according to the value of the property passed as argument. It is used by the root finder algorithm in case the return type is not None.

Parameters:

property_value (float) – value of the property

Return type:

None

property is_injective: bool

True if the correlation is injective, False otherwise

Type:

bool

property long_name: str

Gibbs free energy long name

Type:

str

property max: float

Maximum value of the property correlation function within the validity range

Type:

float

property min: float

Minimum value of the property correlation function within the validity range

Type:

float

property name: str

Name of the property

Type:

str

property units: str

Gibbs free energy unit

Type:

str