Module “process”¶
- class tc_python.process_metallurgy.process.AbstractContinuousAddition¶
Bases:
AbstractProcessAddition
The base class representing an addition in a process simulation that is added continuously over a period of time.
- class tc_python.process_metallurgy.process.AbstractProcessAddition¶
Bases:
AbstractAddition
The base class for representing an addition in a process simulation.
- class tc_python.process_metallurgy.process.AbstractSingleTimeAddition¶
Bases:
AbstractProcessAddition
The base class representing an addition in a process simulation that is added at a distinct time point.
- class tc_python.process_metallurgy.process.BulkZone(density: float, phase_group_to_transfer: PhaseGroup, name: str)¶
Bases:
Zone
A bulk zone in a process simulation, this is representing a large volume in the process, for example the steel melt or the top slag. A zone is a volume in a process that has identical temperature and composition. It has well-defined boundaries to other zones.
Tip
This is a generic class and seldom used directly. Use instead
MetalBulkZone
orSlagBulkZone
.- add_addition(addition: AbstractSingleTimeAddition, time: float = 0.0)¶
Adds a single-time addition at the specified time point to the zone. The addition will be dissolved immediately.
- Parameters:
addition – A
SingleTimeAddition
orSingleTimeGasAddition
time – The time point [s]
- Returns:
This
BulkZone
object
- add_continuous_addition(addition: AbstractContinuousAddition, from_time: float = 0.0, to_time: float = nan)¶
Adds a constant addition continuously during the specified time period to the zone. All added material will be dissolved immediately.
- Parameters:
addition – A
ContinuousAddition
orContinuousGasAddition
from_time – The start time point [s]
to_time – The end time point [s]
- Returns:
This
BulkZone
object
- add_power(power: float, from_time: float = 0.0, to_time: float = nan)¶
Adds a constant power during a specified time period to the zone (for example heating or cooling).
- Parameters:
power – The power [W]
from_time – The start time point [s]
to_time – The end time point [s]
- Returns:
This
BulkZone
object
- disable_degassing()¶
Disables degassing for this zone, i.e. all gas formed at any time step will be staying in this zone.
- Returns:
This
BulkZone
object
- enable_degassing()¶
Enables degassing for this zone, i.e. any gas formed at any time step will be removed after that time step. This gas will be transferred into the exhaust gas zone. This is the default.
- Returns:
This
BulkZone
object
- get_density() float ¶
Returns the density of the zone
- Returns:
The density [kg/m**3]
- get_elements() Set[str] ¶
Returns the elements present in the zone. The elements are determined by the additions.
- Returns:
The elements
- get_id() str ¶
Returns the unique id of the zone. :return: The zone id
- get_phase_group_to_transfer() PhaseGroup ¶
Returns the phase group that is transferred from the attached reaction zones back to this zone after each time step.
- Returns:
The phase group
- is_degassing_enabled() bool ¶
Returns if degassing is enabled in the zone.
- Returns:
If degassing is enabled
- class tc_python.process_metallurgy.process.ContinuousAddition(composition: Dict[str, float], rate: float, temperature: float = 293.15, composition_unit: CompositionUnit = CompositionUnit.MASS_PERCENT, do_scale: bool = False)¶
Bases:
AbstractContinuousAddition
An addition in a process simulation that is added continuously during a period of time.
It is assumed that the material added during that period is dissolved instantaneously.
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 scaling 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
rate – The rate of addition [kg/s]
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_composition_unit() CompositionUnit ¶
Returns the composition unit used in this addition.
- Returns:
The composition unit
- get_rate() float ¶
Returns the rate of addition.
- Returns:
The addition rate [kg/s]
- class tc_python.process_metallurgy.process.ContinuousGasAddition(composition: Dict[str, float], rate: float, temperature: float = 293.15, rate_unit: GasRateUnit = GasRateUnit.NORM_CUBIC_METER_PER_SEC, composition_unit: GasCompositionUnit = GasCompositionUnit.VOLUME_PERCENT, do_scale: bool = False)¶
Bases:
AbstractContinuousAddition
A gas addition in a process simulation that is added continuously during a period of time.
It is assumed that the gas added during that period is dissolved instantaneously.
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 scaling to 100% / 1. An example could be a gas addition which is provided like this: 90 vol–% Ar - 10 vol-% O2.
- get_composition_unit() GasCompositionUnit ¶
Returns the composition unit used in this addition.
- Returns:
The composition unit
- get_rate() float ¶
Returns the rate of addition.
Note
The rate unit can be obtained using
get_rate_unit()
.- Returns:
The addition rate [in the rate unit]
- get_rate_unit() GasRateUnit ¶
Returns the rate unit used in this addition.
- Returns:
The rate unit
- class tc_python.process_metallurgy.process.ExhaustGasResult(result)¶
Bases:
object
A result representing the exhaust gas zone, here all exhaust gas generated during the process is accumulated.
The data is returned for each time point of the process simulation. These time points can be obtained from this method:
ProcessSimulationResult.get_time_points()
.- get_amount() List[float] ¶
Returns the amount of exhaust gas present at each time point.
This is the amount of gas accumulated since the beginning of the process.
- Returns:
The accumulated amount of gas at each time point [kg]
- get_amount_of_components() Dict[str, List[float]] ¶
Returns the amount of each exhaust gas component present at each time point.
This is the amount of gas accumulated since the beginning of the process. This is different from the current composition at each time point obtained using
get_composition()
.- Returns:
The accumulated amount of each gas component at each time point [kg]
- get_composition(composition_type: CompositionType = CompositionType.COMPONENT, unit: CompositionUnit = CompositionUnit.MASS_PERCENT) Dict[str, List[float]] ¶
Returns the current composition of the exhaust gas zone at each time point. This is the composition at each time point. This is different from the accumulated amount obtained using
get_amount_of_components()
.- Parameters:
composition_type – The type of the composition, can be by gas component or by element, default: by gas component
unit – The composition unit, default: mass percent
- Returns:
The current composition of the gas components at each time point
- get_pressure() List[float] ¶
Returns the pressure of the exhaust gas zone at each time point.
- Returns:
The pressure [Pa]
- get_stable_phases() Set[str] ¶
Returns the stable phases within the exhaust gas zone at each time point.
- Returns:
The stable phases
- get_temperature() List[float] ¶
Returns the temperature of the exhaust gas at each time point.
- Returns:
The temperature at each time point [K]
- class tc_python.process_metallurgy.process.MassTransferCoefficients¶
Bases:
object
The mass transfer coefficients between a reaction zone and a bulk zone vs. time.
- add(mass_transfer_coefficient: float, time: float = 0.0)¶
Adds the mass transfer coefficient valid beginning at a time point.
This value is valid until another value is defined for a later time point.
- Parameters:
mass_transfer_coefficient – The mass transfer coefficient [m/s]
time – The time-point where the mass transfer coefficient begins to be valid [s]
- Returns:
This
MassTransferCoefficients
object
- class tc_python.process_metallurgy.process.MetalBulkZone(density: float)¶
Bases:
Zone
A metallic bulk zone in a process simulation.
This is representing a large volume in the process, for example the steel melt. A zone is a volume in a process that has identical temperature and composition. It has well-defined boundaries to other zones.
The name of this zone is automatically defined and unique.
- add_addition(addition: AbstractSingleTimeAddition, time: float = 0.0)¶
Adds a single-time addition at the specified time point to the zone. The addition will be dissolved immediately.
- Parameters:
addition – A
SingleTimeAddition
orSingleTimeGasAddition
time – The time point [s]
- Returns:
This
MetalBulkZone
object
- add_continuous_addition(addition: AbstractContinuousAddition, from_time: float = 0.0, to_time: float = nan)¶
Adds a constant addition continuously during the specified time period to the zone. All added material will be dissolved immediately.
- Parameters:
addition – A
ContinuousAddition
orContinuousGasAddition
from_time – The start time point [s]
to_time – The end time point [s]
- Returns:
This
MetalBulkZone
object
- add_power(power: float, from_time: float = 0.0, to_time: float = nan)¶
Adds a constant power during a specified time period to the zone (for example heating or cooling).
- Parameters:
power – The power [W]
from_time – The start time point [s]
to_time – The end time point [s]
- Returns:
This
MetalBulkZone
object
- disable_degassing()¶
Disables degassing for this zone, i.e. all gas formed at any time step will be staying in this zone.
- Returns:
This
MetalBulkZone
object
- enable_degassing()¶
Enables degassing for this zone, i.e. any gas formed at any time step will be removed after that time step. This gas will be transferred into the exhaust gas zone. This is the default.
- Returns:
This
MetalBulkZone
object
- get_density() float ¶
Returns the density of the zone
- Returns:
The density [kg/m**3]
- get_elements() Set[str] ¶
Returns the elements present in the zone. The elements are determined by the additions.
- Returns:
The elements
- get_id() str ¶
Returns the unique name / id of the zone.
- Returns:
The zone name / id
- get_phase_group_to_transfer() PhaseGroup ¶
Returns the phase group that is transferred from the attached reaction zones back to this zone after each time step.
- Returns:
The phase group
- is_degassing_enabled() bool ¶
Returns if degassing is enabled in the zone.
- Returns:
If degassing is enabled
- class tc_python.process_metallurgy.process.ProcessSimulationCalculation(calculation)¶
Bases:
object
A Process Metallurgy process simulation. Such calculations represent complete metallurgical processes with several zones and simulate their evolution over time.
- calculate(timeout_in_minutes: float = 0.0) ProcessSimulationResult ¶
Runs the Process Metallurgy process simulation.
- Parameters:
timeout_in_minutes – The calculation will be aborted after that time, default: no timeout
- Returns:
A new
ProcessSimulationResult
object
- set_end_time(end_time: float)¶
Sets the end time of a process.
- Parameters:
end_time – The end time point [s]
- Returns:
This
ProcessSimulationCalculation
object
- set_initial_time_step(initial_time_step: float = 1.0)¶
Sets the initial time step used in the process simulation.
Note
All later time steps are automatically determined to limit the expected temperature change during that step, this is controlled by
set_max_allowed_temp_change_per_step()
.- Parameters:
initial_time_step – The initial time step [s]
- Returns:
This
ProcessSimulationCalculation
object
- set_max_allowed_temp_change_per_step(max_allowed_temp_change: float = 10.0)¶
The maximum allowed temperature change per time step. This is implicitly also limiting the composition change during a time step and required for numerical stability.
- Parameters:
max_allowed_temp_change – The maximum allowed temperature change [K]
- Returns:
This
ProcessSimulationCalculation
object
- set_max_time_step(max_time_step: float = 180.0)¶
The maximum time step chosen by the automatic time step control.
Note
All time steps are automatically determined to limit the expected temperature change during that step, this is controlled by
set_max_allowed_temp_change_per_step()
.- Parameters:
max_time_step – The maximum time step [s]
- Returns:
This
ProcessSimulationCalculation
object
- set_min_time_step(min_time_step: float = 1.0)¶
The minimum time step chosen by the automatic time step control.
Note
All time steps are automatically determined to limit the expected temperature change during that step, this is controlled by
set_max_allowed_temp_change_per_step()
.- Parameters:
min_time_step – The minimum time step [s]
- Returns:
This
ProcessSimulationCalculation
object
- set_pressure(pressure: float = 100000.0)¶
Sets a constant pressure during the complete process.
- Parameters:
pressure – The pressure [Pa]
- Returns:
This
ProcessSimulationCalculation
object
- set_pressure_in_time_period(pressure_in_pa: float, from_time: float = 0.0, to_time: float = nan)¶
Sets a constant pressure during a time period.
Default: 1.0e5 Pa.
- Parameters:
pressure_in_pa – The pressure [Pa]
from_time – The start time [s]
to_time – The end time [s]
- Returns:
This
ProcessSimulationCalculation
object
- with_options(options: ProcessMetallurgyOptions)¶
Sets the options for the process simulation.
- Parameters:
options – The options
- Returns:
This
ProcessSimulationCalculation
object
- with_reaction_zone(reaction_zone: ReactionZone)¶
Sets the reaction zone of the process simulation. The bulk zones attached to this reaction zone are configured in the reaction zone object.
Note
In the present release, only one reaction zone is supported.
- Parameters:
reaction_zone – The reaction zone object
- Returns:
This
ProcessSimulationCalculation
object
- class tc_python.process_metallurgy.process.ProcessSimulationResult(result)¶
Bases:
AbstractResult
The result of a Process Metallurgy process simulation.
- get_activity_of_slag(zone: Union[Zone, str], component: str, reference: ActivityReference = ActivityReference.LIQUID) List[float] ¶
Returns the activity of a component in the slag in a zone at each time point.
- Parameters:
zone – The zone object or the zone name
component – The component
reference – The reference for the activity, can be liquid or solid slag, default: liquid slag
- Returns:
The activity of the component at each time point [-]
- get_amount(zone: Union[Zone, str]) List[float] ¶
Returns the amount of a zone at each time point.
- Parameters:
zone – The zone object or the zone name
- Returns:
The amount at each time point [kg]
- get_amount_of_elements() Dict[str, List[float]] ¶
Returns the total amount of each element in the simulation at each time point.
- Returns:
The total amount of the elements at each time point [kg]
- get_amount_of_phase_groups(zone: Union[Zone, str]) Dict[PhaseGroup, List[float]] ¶
Returns the amount of each phase group (e.g., for example all liquid slag) in a zone at each time point.
- Parameters:
zone – The zone object or the zone name
- Returns:
The amount of the phase groups at each time point [kg]
- get_amount_of_phases(zone: Union[Zone, str]) Dict[str, List[float]] ¶
Returns the amount of each phase in a zone at each time point.
- Parameters:
zone – The zone object or the zone name
- Returns:
The amount of the phases at each time point [kg]
- get_components() Set[str] ¶
Returns all components defined in the simulation.
- Returns:
The components
- get_composition(zone: Union[Zone, str], composition_unit: CompositionUnit = CompositionUnit.MASS_PERCENT) Dict[str, List[float]] ¶
Returns the composition of a zone per element at each time point.
- Parameters:
zone – The zone object or the zone name
composition_unit – The composition unit, default: mass percent
- Returns:
The composition at each time point
- get_composition_of_phase(zone: Union[Zone, str], phase: str, composition_unit: CompositionUnit = CompositionUnit.MASS_PERCENT, composition_type: CompositionType = CompositionType.COMPONENT) Dict[str, List[float]] ¶
Returns the composition of a phase in a zone at each time point.
- Parameters:
zone – The zone object or the zone name
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 at each time point
- get_composition_of_phase_group(zone: Union[Zone, str], phase_group: PhaseGroup, composition_unit: CompositionUnit = CompositionUnit.MASS_PERCENT, composition_type: CompositionType = CompositionType.COMPONENT) Dict[str, List[float]] ¶
Returns the composition of a phase group (e.g., all liquid slag) in a zone at each time point.
- Parameters:
zone – The zone object or the zone name
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 at each time point
- get_elements() Set[str] ¶
Returns all elements present in the simulation.
- Returns:
The elements
- get_enthalpy() List[float] ¶
Returns the total enthalpy of the process at each time point.
- Returns:
The enthalpy at each time point [J]
- get_exhaust_gas() ExhaustGasResult ¶
Returns the result for the exhaust gas zone.
This result object can be used to evaluate the exhaust gas zone at each time point.
- Returns:
The exhaust gas zone result object.
- get_formula_for_activity_of_slag(zone: Union[Zone, str], component: str, reference: ActivityReference = ActivityReference.LIQUID) List[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) in a zone at each time point. The actual activity can be obtained using
get_activity_of_slag()
.- Parameters:
zone – The zone object or the zone name
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 at each time point
- get_formula_for_slag_property(zone: Union[Zone, str], slag_property: SlagProperty, slag_type: SlagType = SlagType.ALL) List[str] ¶
Returns the Thermo-Calc Console syntax formula used for calculating a property of the slag (e.g. B(CAO)/B(SIO2) in a zone at each time point. The actual slag property can be obtained using
get_slag_property()
.- Parameters:
zone – The zone object or the zone name
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 at each time point
- get_fraction_of_phase_groups(zone: Union[Zone, str], unit: PhaseUnit = PhaseUnit.MASS_FRACTION) Dict[PhaseGroup, List[float]] ¶
Returns the fractions of the phase groups (e.g., all liquid slag) in a zone at each time point.
- Parameters:
zone – The zone object or the zone name
unit – The unit of the fraction
- Returns:
The phase fractions at each time point
- get_fraction_of_phases(zone: Union[Zone, str], unit: PhaseUnit = PhaseUnit.MASS_FRACTION) Dict[str, List[float]] ¶
Returns the fractions of all stable phases in a zone at each time point.
- Parameters:
zone – The zone object or the zone name
unit – The unit of the fraction
- Returns:
The phase fractions at each time point
- get_gas_components() Set[str] ¶
Returns all components of the gas phase defined for the elements present in the simulation.
- Returns:
The components of the gas phase
- get_num_of_performed_steps() List[int] ¶
Returns the accumulated number of performed time steps at each time point.
Note
The number of performed time steps can differ from the index of the time step in the result list because time steps might have been repeated with smaller step size during a process simulation.
- Returns:
The accumulated number of performed time steps
- get_oxygen_partial_pressure(zone: Union[Zone, str]) List[float] ¶
Returns the partial pressure of oxygen in the zone at each time point.
- Parameters:
zone – The zone object or the zone name
- Returns:
The partial pressure [Pa]
- get_pressure(zone: Union[Zone, str]) List[float] ¶
Returns the pressure in a zone at each time point.
- Parameters:
zone – The zone object or the zone name
- Returns:
The pressure at each time point [Pa]
- get_slag_property(zone: Union[Zone, str], slag_property: SlagProperty, slag_type: SlagType = SlagType.ALL) List[float] ¶
Returns a property of the slag in a zone at each time point. These properties are mostly used to describe the property of a slag to pick up sulfur.
- Parameters:
zone – The zone object or the zone name
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 at each time point [unit depending on the property]
- get_stable_phases(zone: Union[Zone, str]) Set[str] ¶
Returns the stable phases in a zone.
- Parameters:
zone – The zone object or the zone name
- Returns:
The stable phases
- get_stable_phases_in_phase_group(zone: Union[Zone, str], phase_group: PhaseGroup) Set[str] ¶
Returns the stable phases of a phase group (e.g., all solid slag) in a zone.
- Parameters:
zone – The zone object or the zone name
phase_group – The phase group
- Returns:
The stable phases of the phase group
- get_temperature(zone: Union[Zone, str]) List[float] ¶
Returns the temperature of a zone at each time point.
- Parameters:
zone – The zone object or the zone name
- Returns:
The temperature at each time point [K]
- get_time_points() List[float] ¶
Returns the time points of the process simulation. All result quantities are returned for exactly these time points.
- Returns:
The time points [s]
- get_value_of(zone: Union[Zone, str], classic_expression: str) List[float] ¶
Returns a value for a thermodynamic quantity in a zone at each time point.
Warning
It should normally not be required to use this method, use the appropriate method available in the API instead.
- Parameters:
zone – The zone object or the zone name
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 at each time point
- class tc_python.process_metallurgy.process.ReactionZone(area: float, left_zone: Zone, mass_transfer_coefficient_left: Union[float, MassTransferCoefficients], right_zone: Zone, mass_transfer_coefficient_right: Union[float, MassTransferCoefficients])¶
Bases:
Zone
A reaction zone in a process simulation, this is representing the interface layer between two bulk zones that are in contact and can react with each other, for example the steel melt and the top slag. The size of the reaction zone is dynamic and determined by the mass transfer coefficient. A zone is a volume in a process that has identical temperature and composition. It has well-defined boundaries to other zones.
- add_addition(addition: AbstractSingleTimeAddition, time: float = 0.0)¶
Adds a single-time addition at the specified time point to the zone. The addition will be dissolved immediately.
- Parameters:
addition – A
SingleTimeAddition
orSingleTimeGasAddition
time – The time point [s]
- Returns:
This
ReactionZone
object
- add_continuous_addition(addition: AbstractContinuousAddition, from_time: float = 0.0, to_time: float = nan)¶
Adds a constant addition continuously during the specified time period to the zone. All added material will be dissolved immediately.
- Parameters:
addition – A
ContinuousAddition
orContinuousGasAddition
from_time – The start time point [s]
to_time – The end time point [s]
- Returns:
This
ReactionZone
object
- add_heat_transfer(heat_transfer_coefficient: float)¶
Adds heat transfer through the reaction zone, i.e., between the two attached bulk zones.
- Parameters:
heat_transfer_coefficient – The heat transfer coefficient [W/(K*m**2)]
- Returns:
This
ReactionZone
object
- add_power(power: float, from_time: float = 0.0, to_time: float = nan)¶
Adds a constant power during a specified time period to the zone (for example heating or cooling).
- Parameters:
power – The power [W]
from_time – The start time point [s]
to_time – The end time point [s]
- Returns:
This
ReactionZone
object
- add_transfer_of_phase_group(transfer_of_phase_group: TransferOfPhaseGroup)¶
Adds transfer of a certain phase group through the reaction zone during each time step, i.e. from one of the attached bulk zones to the other. This is for example used to model inclusion flotation from the steel melt to the slag.
- Parameters:
transfer_of_phase_group – The transfer of phase group configuration, can be time-dependent.
- Returns:
This
ReactionZone
object
- disable_degassing()¶
Disables degassing for this zone, i.e. all gas formed at any time step will be staying in this zone.
- Returns:
This
ReactionZone
object
- enable_degassing()¶
Enables degassing for this zone, i.e. any gas formed at any time step will be removed after that time step. This gas will be transferred into the exhaust gas zone. This is the default.
- Returns:
This
ReactionZone
object
- get_elements() Set[str] ¶
Returns the elements present in the zone. The elements are determined by the additions.
- Returns:
The elements
- get_id() str ¶
Returns the unique id of the zone. :return: The zone id
- is_degassing_enabled() bool ¶
Returns if degassing is enabled in the zone.
- Returns:
If degassing is enabled
- class tc_python.process_metallurgy.process.SingleTimeAddition(composition: Dict[str, float], amount: float, temperature: float = 293.15, composition_unit: CompositionUnit = CompositionUnit.MASS_PERCENT, do_scale: bool = False)¶
Bases:
AbstractSingleTimeAddition
An addition in a process simulation that is added at a distinct time point.
It is assumed that the addition is dissolved instantaneously.
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.process.SingleTimeGasAddition(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:
AbstractSingleTimeAddition
A gas addition in a process simulation that is added at a distinct time point.
It is assumed that the addition is dissolved instantaneously.
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 scaling to 100% / 1. An example could be a gas addition which is provided like this: 90 vol–% Ar - 10 vol-% O2.
- Parameters:
composition – The composition
amount – The amount
temperature – The initial addition temperature (default: 20 °C) [K]
amount_unit – The amount unit
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.
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.process.SlagBulkZone(density: float)¶
Bases:
Zone
A slag bulk zone in a process simulation.
This is representing a large volume in the process, for example the top slag. A zone is a volume in a process that has identical temperature and composition. It has well-defined boundaries to other zones.
The name of this zone is automatically defined and unique.
- add_addition(addition: AbstractSingleTimeAddition, time: float = 0.0)¶
Adds a single-time addition at the specified time point to the zone. The addition will be dissolved immediately.
- Parameters:
addition – A
SingleTimeAddition
orSingleTimeGasAddition
time – The time point [s]
- Returns:
This
SlagBulkZone
object
- add_continuous_addition(addition: AbstractContinuousAddition, from_time: float = 0.0, to_time: float = nan)¶
Adds a constant addition continuously during the specified time period to the zone. All added material will be dissolved immediately.
- Parameters:
addition – A
ContinuousAddition
orContinuousGasAddition
from_time – The start time point [s]
to_time – The end time point [s]
- Returns:
This
SlagBulkZone
object
- add_power(power: float, from_time: float = 0.0, to_time: float = nan)¶
Adds a constant power during a specified time period to the zone (for example heating or cooling).
- Parameters:
power – The power [W]
from_time – The start time point [s]
to_time – The end time point [s]
- Returns:
This
SlagBulkZone
object
- disable_degassing()¶
Disables degassing for this zone, i.e. all gas formed at any time step will be staying in this zone.
- Returns:
This
SlagBulkZone
object
- enable_degassing()¶
Enables degassing for this zone, i.e. any gas formed at any time step will be removed after that time step. This gas will be transferred into the exhaust gas zone. This is the default.
- Returns:
This
SlagBulkZone
object
- get_density() float ¶
Returns the density of the zone
- Returns:
The density [kg/m**3]
- get_elements() Set[str] ¶
Returns the elements present in the zone. The elements are determined by the additions.
- Returns:
The elements
- get_id() str ¶
Returns the unique id of the zone. :return: The zone id
- get_phase_group_to_transfer() PhaseGroup ¶
Returns the phase group that is transferred from the attached reaction zones back to this zone after each time step.
- Returns:
The phase group
- is_degassing_enabled() bool ¶
Returns if degassing is enabled in the zone.
- Returns:
If degassing is enabled
- class tc_python.process_metallurgy.process.TransferOfPhaseGroup(phase_group_to_transfer: PhaseGroup, source_zone: Zone)¶
Bases:
object
The transfer of a percentage of a certain phase group (.e.g., solid slag) between zones during each time step. This is for example used to model inclusion flotation from the steel melt to the slag.
- add(transfer_rate: float, time: float = 0)¶
Adds the transfer rate valid beginning at a time point.
This value is valid until another value is defined for a later time point.
- Parameters:
transfer_rate – The transfer rate [% of phase group amount/s]
time – The time point where the transfer of a phase group begins to be valid [s]
- Returns:
This
TransferOfPhaseGroup
object
- get_phase_group_to_transfer() PhaseGroup ¶
Returns the phase group to be transferred
- Returns:
The phase group
- get_transfer_source_zone_id() str ¶
The id of the source zone of the transfer
- Returns:
This source zone id
- class tc_python.process_metallurgy.process.Zone¶
Bases:
object
The base class of a zone in a process simulation. A zone is a volume in a process that has identical temperature and composition. It has well-defined boundaries to other zones.
- add_addition(addition: AbstractSingleTimeAddition, time: float = 0.0)¶
Adds a single-time addition at the specified time point to the zone. The addition will be dissolved immediately.
- Parameters:
addition – A
SingleTimeAddition
orSingleTimeGasAddition
time – The time point [s]
- Returns:
This
Zone
object
- add_continuous_addition(addition: AbstractContinuousAddition, from_time: float = 0.0, to_time: float = nan)¶
Adds a constant addition continuously during the specified time period to the zone. All added material will be dissolved immediately.
- Parameters:
addition – A
ContinuousAddition
orContinuousGasAddition
from_time – The start time point [s]
to_time – The end time point [s]
- Returns:
This
Zone
object
- add_power(power: float, from_time: float = 0.0, to_time: float = nan)¶
Adds a constant power during a specified time period to the zone (for example heating or cooling).
- Parameters:
power – The power [W]
from_time – The start time point [s]
to_time – The end time point [s]
- Returns:
This
Zone
object
- disable_degassing()¶
Disables degassing for this zone, i.e. all gas formed at any time step will be staying in this zone.
- Returns:
This
Zone
object
- enable_degassing()¶
Enables degassing for this zone, i.e. any gas formed at any time step will be removed after that time step. This gas will be transferred into the exhaust gas zone. This is the default.
- Returns:
This
Zone
object
- get_elements() Set[str] ¶
Returns the elements present in the zone. The elements are determined by the additions.
- Returns:
The elements
- get_id() str ¶
Returns the unique id of the zone. :return: The zone id
- is_degassing_enabled() bool ¶
Returns if degassing is enabled in the zone.
- Returns:
If degassing is enabled