Module “propertymodel”¶
-
class
tc_python.propertymodel.
PropertyModelCalculation
(calculator)¶ Bases:
tc_python.abstract_base.AbstractCalculation
Configuration for a Property Model calculation.
Note
Specify the settings, the calculation is performed with
calculate()
.-
add_poly_command
(poly_command: str)¶ Registers a POLY Console Mode command for execution. These commands are executed after all other configuration directly before the calculation starts to run. All commands are stored and used until explicitly deleted using
remove_all_poly_commands
.- Parameters
poly_command – The POLY Console Mode command
- Returns
This
PropertyModelCalculation
object
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 POLY-commands directly in the engine, it may hang the program in case of spelling mistakes (e.g. forgotten parenthesis, …).
-
calculate
() → tc_python.propertymodel.PropertyModelResult¶ Runs the Property Model calculation.
- Returns
A
PropertyModelResult
which later can be used to get specific values from the simulation.
-
get_argument_default
(argument_id: str) → object¶ Returns the default value for the specified argument. The argument id can be obtained with
get_arguments()
.- Parameters
argument_id – The argument id
- Returns
The default value (the type depends on the argument)
-
get_argument_description
(argument_id: str) → str¶ Returns the detailed description of the argument. The id can be obtained with
get_arguments()
.- Parameters
argument_id – The argument id
- Returns
The detailed description
-
get_arguments
() → Set[str]¶ Returns a list of the arguments of the Property Model.
Note
The arguments are the ‘UI-panel components’ defined in the Property Model interface method
provide_ui_panel_components()
. They have the same id as specified in the Property Model. The naming is different because there is no UI present.- Returns
The ids of the available arguments
-
get_dynamic_arguments
() → Set[str]¶ Returns a list of the dynamic arguments of the Property Model.
Note
Dynamic arguments are “extra” arguments created by pressing the “plus” button that can occur next to the UI-panel for some models, when running the Property Model from within Thermo-Calc. You can use them also from the API by
invoke_dynamic_argument()
.- Returns
The ids of the available dynamic arguments
-
get_model_description
() → str¶ Returns the description text of the current model.
- Returns
the description
-
get_model_parameter_value
(model_parameter_id: str) → float¶ Returns the current value of an optimizable model parameter. The id can be obtained with
get_model_parameters()
.- Parameters
model_parameter_id – The model parameter id
- Returns
The current value [unit according to the parameter meaning]
-
get_model_parameters
() → Set[str]¶ Returns a list of the optimizable model parameters.
Note
The model parameters are an optional set of variables that can be used within the Property Model. Typically they are used to provide the possibility to inject parameter values during an optimization into the model. This allows the dynamic development of Property Models that need to be fitted to experimental data. The model parameters are controlled with the Property Model interface methods provide_model_parameters and set_model_parameter.
- Returns
The ids of the optimizable model parameters
-
get_system_data
() → tc_python.abstract_base.SystemData¶ Returns the content of the database for the currently loaded system. This can be used to modify the parameters and functions and to change the current system by using
with_system_modifications()
.Note
Parameters can only be read from unencrypted (i.e. user) databases loaded as *.tdb-file.
- Returns
The system data
-
invoke_dynamic_argument
(argument_id: str)¶ Increases the number of instances of this dynamic argument by one, the argument will have an id such as argument_1, argument_2, … if the dynamic argument is called argument.
Note
You can obtain all available dynamic arguments by using
get_dynamic_arguments()
.- Parameters
argument_id – argument_id: The argument id
- Returns
This
PropertyModelCalculation
object
-
remove_all_conditions
()¶ Removes all set classic POLY conditions.
Note
This does not affect the compositions set by
set_composition()
.- Returns
This
PropertyModelCalculation
object
-
remove_all_poly_commands
()¶ Removes all previously added POLY Console Mode commands.
- Returns
This
PropertyModelCalculation
object
-
remove_dependent_element
()¶ Removes a manually set dependent element. This method does not affect the automatic choice of the dependent element if
set_composition()
is used.- Returns
This
PropertyModelCalculation
object
-
set_argument
(argument: str, value: str)¶ Sets the specified model argument to the specified value. The id can be obtained with
get_arguments()
.- Parameters
argument – The argument id
value – The value [unit according to the argument meaning]
- Returns
This
PropertyModelCalculation
object
-
set_composition
(element_name: str, value: float)¶ Sets the composition of a element. The unit for the composition can be changed using
set_composition_unit()
.Default: Mole percent (
CompositionUnit.MOLE_PERCENT
)- Parameters
element_name – The element
value – The composition value [composition unit defined for the calculation]
- Returns
This
PropertyModelCalculation
object
-
set_composition_unit
(unit_enum: tc_python.utils.CompositionUnit = <CompositionUnit.MOLE_PERCENT: 1>)¶ Sets the composition unit.
Default: Mole percent (
CompositionUnit.MOLE_PERCENT
).- Parameters
unit_enum – The new composition unit
- Returns
This
PropertyModelCalculation
object
-
set_condition
(classic_condition: str, value: float)¶ Adds a classic POLY condition. If that method is used, all conditions need to be specified in such a way. If this method is used, it is necessary to set the dependent element manually using
set_dependent_element()
.Default if not specified: pressure P = 1e5 Pa, system size N = 1, Temperature T = 1000 K
Warning
It is not possible to mix POLY-commands and compositions using
set_composition()
.Note
It should not be necessary for most users to use this method, try to use
set_composition()
instead.Warning
As this method runs raw POLY-commands directly in the engine, it may hang the program in case of spelling mistakes (e.g. forgotten parenthesis, …).
- Parameters
classic_condition – The classic POLY condition (for example: X(CR))
value – The value of the condition
- Returns
This
PropertyModelCalculation
object
-
set_dependent_element
(dependent_element_name: str)¶ Sets the dependent element manually.
Note
It should not be necessary for most users to use this method. Setting the dependent element manually is only necessary and allowed if
set_condition()
is used.- Parameters
dependent_element_name – The name of the dependent element
- Returns
This
PropertyModelCalculation
object
-
set_model_parameter
(model_parameter_id: str, value)¶ Resets an optimizable model parameter. The id can be obtained with
get_model_parameters()
.- Parameters
model_parameter_id – The model parameter id
value – The new value of the parameter
- Returns
This
PropertyModelCalculation
object
-
set_temperature
(temperature: float = 1000)¶ Sets the temperature.
Default: 1000 K
- Parameters
temperature – The temperature [K]
- Returns
This
PropertyModelCalculation
object
-
with_system_modifications
(system_modifications: tc_python.abstract_base.SystemModifications)¶ Updates the system of this calculator with the supplied system modification (containing new phase parameters and system functions).
Note
This is only possible if the system has been read from unencrypted (i.e. user) databases loaded as a
*.tdb
-file.- Parameters
system_modifications – The system modification to be performed
- Returns
This
PropertyModelCalculation
object
-
-
class
tc_python.propertymodel.
PropertyModelResult
(result)¶ Bases:
tc_python.abstract_base.AbstractResult
The result of a Property Model calculation.
-
get_result_quantities
() → Set[str]¶ Returns a list of the available result quantities defined in the Property Model.
- Returns
The ids of the defined result quantities
-
get_result_quantity_description
(result_quantity_id) → str¶ Returns the detailed description of the result quantity. The id can be obtained by
get_result_quantities()
.- Parameters
result_quantity_id – The result quantity id
- Returns
The detailed description
-
get_single_equilibrium_result
(result_quantity_id: str = '') → tc_python.single_equilibrium.SingleEquilibriumResult¶ Returns a result quantity value. The available result quantities can be obtained by
get_result_quantities()
.- Parameters
result_quantity_id – The id of the result quantity.
- Returns
The requested value [unit depending on the quantity], if the result is a SingleEquilibriumResult, is returned.
-
get_value_of
(result_quantity_id: str) → Union[float, Dict[str, float]]¶ Returns a result quantity value. The available result quantities can be obtained by
get_result_quantities()
.- Parameters
result_quantity_id – The id of the result quantity
- Returns
The requested value [unit depending on the quantity]. If the result is parameterized, parameter-value pairs are returned.
-
save_to_disk
(path: str)¶ Saves the result to disk. The result can later be loaded using
tc_python.server.SetUp.load_result_from_disk()
.Note
The result data is represented by a whole folder possibly containing multiple files.
- Parameters
path – The path to the result folder, can be relative or absolute.
- Returns
This
PropertyModelResult
object
-