Module “equilibrium”

class tc_python.process_metallurgy.equilibrium.AbstractEquilibriumAddition

Bases: AbstractAddition

The base class for representing an addition to an equilibrium calculation.

set_amount(amount: float)

Change the amount of the addition.

Parameters

amount – The new amount [in the amount unit of this addition]

Returns

This AbstractEquilibriumAddition object

set_component_composition(component: str, content: float)

Change the composition of a component of the addition.

Parameters
  • component – The component to be changed

  • content – The new content of the component [in the composition unit defined for this addition]

Returns

This AbstractEquilibriumAddition object

class tc_python.process_metallurgy.equilibrium.AdiabaticEquilibriumCalculation(calculator)

Bases: EquilibriumCalculation

An adiabatic Process Metallurgy equilibrium calculation. Such calculations can for example be used to determine the global equilibrium state of a process.

add_addition(addition: AbstractEquilibriumAddition)

Adds an addition to the calculation.

Parameters

addition – A EquilibriumAddition or EquilibriumGasAddition

Returns

This AdiabaticEquilibriumCalculation object

add_poly_command(command: str)

Adds a Thermo-Calc Console syntax POLY module command which will be executed when performing the calculation using the calculate() method.

If multiple commands are added, they will be executed in the order of addition. Each command will only be executed one.

Note

It should not be necessary for most users to use this method, try to use the corresponding method implemented in the API instead.

Warning

As this method runs raw Thermo-Calc commands directly in the engine, it may hang the program in case of spelling mistakes (e.g. forgotten equals sign).

Parameters

command – The POLY module command in Thermo-Calc console syntax

Returns

This AdiabaticEquilibriumCalculation object

calculate(timeout_in_minutes: float = 0.0) EquilibriumResult

Runs the Process Metallurgy equilibrium calculation.

Parameters

timeout_in_minutes – The calculation will be aborted after that time, default: no timeout

Returns

A new EquilibriumResult object

remove_addition(addition: AbstractEquilibriumAddition)

Removes an addition from the calculation.

Parameters

addition – The addition to be removed

Returns

This AdiabaticEquilibriumCalculation object

remove_all_additions()

Removes all additions from the calculation.

Returns

This AdiabaticEquilibriumCalculation object

set_pressure(pressure: float = 100000.0)

Sets the pressure.

Parameters

pressure – The pressure [Pa]

Returns

This AdiabaticEquilibriumCalculation object

with_options(options: ProcessMetallurgyOptions)

Sets the options for the calculation.

Parameters

options – The options

Returns

This AdiabaticEquilibriumCalculation object

class tc_python.process_metallurgy.equilibrium.EquilibriumAddition(composition: Dict[str, float], amount: float, temperature: float = 293.15, composition_unit: CompositionUnit = CompositionUnit.MASS_PERCENT, do_scale: bool = False)

Bases: AbstractEquilibriumAddition

An addition to an equilibrium calculation.

Tip

By setting do_scale=True, the composition will be scaled to 100% / fraction of 1. This is useful if the composition provided is not summing to 100% / 1. An example could be a slag addition which is provided like this: 90 wt-% CaO - 5 wt-% Al2O3 - 4 wt-% SiO2.

Parameters
  • composition – The composition

  • amount – The amount [kg]

  • temperature – The initial addition temperature (default: 20 °C) [K]

  • composition_unit – The composition unit

  • do_scale – If the composition is scaled to 100% / fraction of 1

get_amount() float

Returns the amount of this addition.

Returns

The amount [kg]

get_composition_unit() CompositionUnit

Returns the composition unit used in this addition.

Returns

The composition unit

class tc_python.process_metallurgy.equilibrium.EquilibriumCalculation(metallurgical_reaction)

Bases: object

A Process Metallurgy equilibrium calculation. Such calculations can for example be used to determine the global equilibrium state of a process.

abstract add_addition(addition: AbstractEquilibriumAddition)

Adds an addition to the calculation.

Parameters

addition – The addition

Returns

This EquilibriumCalculation object

abstract add_poly_command(command: str)

Adds a Thermo-Calc Console syntax POLY module command which will be executed when performing the calculation using the calculate() method.

If multiple commands are added, they will be executed in the order of addition. Each command will only be executed one.

Note

It should not be necessary for most users to use this method, try to use the corresponding method implemented in the API instead.

Warning

As this method runs raw Thermo-Calc commands directly in the engine, it may hang the program in case of spelling mistakes (e.g. forgotten equals sign).

Parameters

command – The POLY module command in Thermo-Calc console syntax

Returns

This EquilibriumCalculation object

abstract calculate(timeout_in_minutes: float = 0.0) EquilibriumResult

Runs the Process Metallurgy equilibrium calculation.

Parameters

timeout_in_minutes – The calculation will be aborted after that time, default: no timeout

Returns

A new EquilibriumResult object

abstract remove_addition(addition: AbstractEquilibriumAddition)

Removes an addition from the calculation.

Parameters

addition – The addition to be removed

Returns

This EquilibriumCalculation object

abstract remove_all_additions()

Removes all additions from the calculation.

Returns

This EquilibriumCalculation object

abstract set_pressure(pressure: float = 100000.0)

Sets the pressure.

Parameters

pressure – The pressure [Pa]

Returns

This EquilibriumCalculation object

update_addition(addition: AbstractEquilibriumAddition)

Replaces an already added addition with an updated one. This is usually used to change the composition or amount of an addition while iterating over them. Typically, this is done for stepping or mapping calculations.

Note

The calculation must already contain the addition object to be updated.

Parameters

addition – The new addition containing updated values

Returns

This IsoThermalMetallurgyCalculation object

abstract with_options(options: ProcessMetallurgyOptions)

Sets the options for the calculation.

Parameters

options – The options

Returns

This EquilibriumCalculation object

class tc_python.process_metallurgy.equilibrium.EquilibriumGasAddition(composition: Dict[str, float], amount: float, temperature: float = 293.15, amount_unit: GasAmountUnit = GasAmountUnit.NORM_CUBIC_METER, composition_unit: GasCompositionUnit = GasCompositionUnit.VOLUME_PERCENT, do_scale: bool = False)

Bases: AbstractEquilibriumAddition

A gas addition to an equilibrium calculation.

Tip

By setting do_scale=True, the composition will be scaled to 100% / fraction of 1. This is useful if the composition provided is not summing to 100% / 1. An example could be a gas addition which is provided like this: 90 vol–% Ar - 10 vol-% O2.

get_amount() float

Returns the amount of this addition.

Note

The amount unit can be obtained using get_amount_unit().

Returns

The amount [in the amount unit]

get_amount_unit() GasAmountUnit

Returns the amount unit used in this addition.

Returns

The amount unit

get_composition_unit() GasCompositionUnit

Returns the composition unit used in this addition.

Returns

The composition unit

class tc_python.process_metallurgy.equilibrium.EquilibriumResult(result)

Bases: AbstractResult

The result of a Process Metallurgy equilibrium calculation.

get_activity_of_slag(component: str, reference: ActivityReference = ActivityReference.LIQUID) float

Returns the activity of a component in the slag.

Parameters
  • component – The component

  • reference – The reference for the activity, can be liquid or solid slag, default: liquid slag

Returns

The activity of the component [-]

get_amount() float

Returns the total amount.

Returns

The total amount [kg]

get_amount_of_elements() Dict[str, float]

Returns the amount of each element.

Returns

The amount of the elements [kg]

get_amount_of_phase_groups() Dict[PhaseGroup, float]

Returns the amount of each phase group (e.g., for example all liquid slag).

Returns

The amount of the phase groups [kg]

get_amount_of_phases() Dict[str, float]

Returns the amount of each phase.

Returns

The amount of the phases [kg]

get_components() Set[str]

Returns all components defined for the elements present in this result.

Returns

The components present in this result

get_composition(composition_unit: CompositionUnit = CompositionUnit.MASS_PERCENT) Dict[str, float]

Returns the composition of the result.

Parameters

composition_unit – The composition unit, default: mass percent

Returns

The composition

get_composition_of_phase(phase: str, composition_unit: CompositionUnit = CompositionUnit.MASS_PERCENT, composition_type: CompositionType = CompositionType.COMPONENT) Dict[str, float]

Returns the composition of a phase in the result.

Parameters
  • phase – The phase name

  • composition_unit – The composition unit, default: mass percent

  • composition_type – Defines if the composition is given by element (e.g., 75 wt-% Fe - 25 wt-% Cr) or by component (e.g. 65 wt-% Al2O3 - 35 wt-% CaO). In case of a metallic phase, the composition is given by element even if component is selected. Default: by component.

Returns

The composition

get_composition_of_phase_group(phase_group: PhaseGroup, composition_unit: CompositionUnit = CompositionUnit.MASS_PERCENT, composition_type: CompositionType = CompositionType.COMPONENT) Dict[str, float]

Returns the composition of a phase group (e.g., all liquid slag) in the result.

Parameters
  • phase_group – The phase group

  • composition_unit – The composition unit, default: mass percent

  • composition_type – Defines if the composition is given by element (e.g., 75 wt-% Fe - 25 wt-% Cr) or by component (e.g. 65 wt-% Al2O3 - 35 wt-% CaO). In case of a metallic phase, the composition is given by element even if component is selected. Default: by component.

Returns

The composition

get_elements() Set[str]

Returns all elements defined for the result.

Returns

All elements present in this result

get_formula_for_activity_of_slag(component: str, reference: ActivityReference = ActivityReference.LIQUID) str

Returns the Thermo-Calc Console syntax formula used for calculating the activity of a component in the slag (e.g. AC(AL2O3, IONIC_LIQ). The actual activity can be obtained using get_activity_of_slag().

Parameters
  • component – The component

  • reference – The reference for the activity, can be liquid or solid slag, default: liquid slag

Returns

The formula for calculating the activity

get_formula_for_slag_property(slag_property: SlagProperty, slag_type: SlagType = SlagType.ALL) str

Returns the Thermo-Calc Console syntax formula used for calculating a property of the slag (e.g. B(CAO)/B(SIO2). The actual slag property can be obtained using get_slag_property().

Parameters
  • slag_property – The slag property

  • slag_type – The part of the slag for which the property will be calculated. Can be all slag, the liquid or the solid slag. Default: all slag

Returns

The formula for calculating the slag property

get_fraction_of_phase_groups(unit: PhaseUnit = PhaseUnit.MASS_FRACTION) Dict[PhaseGroup, float]

Returns the fraction of the phase groups (e.g., all liquid slag) in the result.

Parameters

unit – The unit of the fraction, default: volume fraction

Returns

The phase fractions

get_fraction_of_phases(unit: PhaseUnit = PhaseUnit.MASS_FRACTION) Dict[str, float]

Returns the fraction of the stable phases in the result.

Parameters

unit – The unit of the fraction, default: volume fraction

Returns

The phase fractions

get_gas_components() Set[str]

Returns all components of the gas phase defined for the elements present in this result.

Returns

The components of the gas phase present in this result

get_oxygen_partial_pressure() float

Returns the partial pressure of oxygen in the result.

Returns

The partial pressure [Pa]

get_pressure() float

Returns the pressure in the result.

Returns

The pressure [Pa]

get_slag_property(slag_property: SlagProperty, slag_type: SlagType = SlagType.ALL) float

Returns a property of the slag. These properties are mostly used to describe the property of a slag to pick up sulfur.

Parameters
  • slag_property – The slag property

  • slag_type – The part of the slag for which the property will be calculated. Can be all slag, the liquid or the solid slag. Default: all slag

Returns

The slag property [unit depending on the property]

get_stable_phases() Set[str]

Returns the stable phases in the result.

Returns

The stable phases

get_stable_phases_in_phase_group(phase_group: PhaseGroup) Set[str]

Returns the stable phases of a phase group (e.g., all liquid slag) in the result.

Parameters

phase_group – The phase group

Returns

The stable phases

get_temperature() float

Returns the temperature in the result.

Returns

The temperature [K]

get_value_of(classic_expression: str) float

Returns a value for a thermodynamic quantity.

Warning

It should normally not be required to use this method, use the appropriate method available in the API instead.

Parameters

classic_expression – The thermodynamic quantity to get the value of in Thermo-Calc Console Mode syntax (for example “NPM(FCC_A1)”)

Returns

The requested value

get_viscosity_dynamic_of_phase(phase: str) float

Returns the dynamic viscosity of a phase in the result.

Parameters

phase – The phase name

Returns

The dynamic viscosity [Pa*s]

get_viscosity_kinematic_of_phase(phase: str) float

Returns the kinematic viscosity of a phase in the result.

Parameters

phase – The phase name

Returns

The kinematic viscosity [m**2/s]

class tc_python.process_metallurgy.equilibrium.IsoThermalEquilibriumCalculation(calculation)

Bases: EquilibriumCalculation

An isothermal Process Metallurgy equilibrium calculation. Such calculations can for example be used to determine the global equilibrium state of a process.

add_addition(addition: AbstractEquilibriumAddition)

Adds an addition to the calculation.

Parameters

addition – A EquilibriumAddition or EquilibriumGasAddition

Returns

This IsoThermalEquilibriumCalculation object

add_poly_command(command: str)

Adds a Thermo-Calc Console syntax POLY module command which will be executed when performing the calculation using the calculate() method.

If multiple commands are added, they will be executed in the order of addition. Each command will only be executed one.

Note

It should not be necessary for most users to use this method, try to use the corresponding method implemented in the API instead.

Warning

As this method runs raw Thermo-Calc commands directly in the engine, it may hang the program in case of spelling mistakes (e.g. forgotten equals sign).

Parameters

command – The POLY module command in Thermo-Calc console syntax

Returns

This IsoThermalEquilibriumCalculation object

calculate(timeout_in_minutes: float = 0.0) EquilibriumResult

Runs the Process Metallurgy equilibrium calculation.

Parameters

timeout_in_minutes – The calculation will be aborted after that time, default: no timeout

Returns

A new EquilibriumResult object

remove_addition(addition: AbstractEquilibriumAddition)

Removes an addition from the calculation.

Parameters

addition – The addition to be removed

Returns

This IsoThermalEquilibriumCalculation object

remove_all_additions()

Removes all additions from the calculation.

Returns

This IsoThermalEquilibriumCalculation object

set_pressure(pressure: float = 100000.0)

Sets the pressure.

Parameters

pressure – The pressure [Pa]

Returns

This IsoThermalEquilibriumCalculation object

set_temperature(temperature: float)

Sets the temperature.

Parameters

temperature – The temperature [K]

Returns

This IsoThermalEquilibriumCalculation object

update_addition(addition: AbstractEquilibriumAddition)

Replaces an already added addition with an updated one.

Tip

This is usually used to change the composition or amount of an addition while iterating over multiple values. Typically, this is done for stepping or mapping calculations.

Note

The calculation must already contain the addition object to be updated.

Parameters

addition – A previously added addition object with the updated values

Returns

This IsoThermalEquilibriumCalculation object

with_options(options: ProcessMetallurgyOptions)

Sets the options for the calculation.

Parameters

options – The options

Returns

This IsoThermalEquilibriumCalculation object