- elementsAmounts of elements
C++ Type:std::vector<VariableName>
Controllable:No
Description:Amounts of elements
- temperatureCoupled temperature
C++ Type:std::vector<VariableName>
Controllable:No
Description:Coupled temperature
Thermochimica Nodal Data
To use this object, you need to have the Thermochimica
library installed. Refer to the documentation for guidance on how to enable it. (Original description: Provides access to Thermochimica-calculated data at nodes.)
This UserObject is designed for use with thermochemistry library Thermochimica.
Description
ThermochimicaNodalData
provides a base class for performing Thermochimica calculations at nodes. In this UserObject, the masses of elements included in the vector variable elements
are input to the Fortan 90 module Thermochimica, along with the temperature and pressure. Optionally, the user may disable Thermochimica calculation re-initialization by setting reinit_requested
to false
. This may reduce memory use in the calculation, but will likely greatly increase the length of each call to Thermochimica.
Thermochimica is called by this object at every execute (please see the Thermochimica user manual for more details), and the data required to re-initialize Thermochimica calculations is saved/loaded if re-initialization is enabled.
If the optional variable output_phases
is set to a non-empty list of phase names, then concentration data corresponding to these phases will be output. These phase names must exactly match those specified in the datafile used for Thermochimica calculations. Similarly, if output_species
is a non-empty list of phase:species
pairs, these will be parsed and the specified species in the specified phases will be located in Thermochimica output and stored for later output via an AuxKernel.
If element_potentials
is a non-empty list formatted as any_string:element_name
, then the chemical potentials of the elements in the list are output to the variables specified in the list.
Example Input Syntax
Input Parameters
- blockThe list of blocks (ids or names) that this object will be applied
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:The list of blocks (ids or names) that this object will be applied
- boundaryThe list of boundaries (ids or names) from the mesh where this boundary condition applies
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:The list of boundaries (ids or names) from the mesh where this boundary condition applies
- element_potentialsChemical potentials of elements
C++ Type:std::vector<VariableName>
Controllable:No
Description:Chemical potentials of elements
- execute_onTIMESTEP_ENDThe list of flag(s) indicating when this object should be executed, the available options include FORWARD, ADJOINT, HOMOGENEOUS_FORWARD, ADJOINT_TIMESTEP_BEGIN, ADJOINT_TIMESTEP_END, NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, ALWAYS.
Default:TIMESTEP_END
C++ Type:ExecFlagEnum
Controllable:No
Description:The list of flag(s) indicating when this object should be executed, the available options include FORWARD, ADJOINT, HOMOGENEOUS_FORWARD, ADJOINT_TIMESTEP_BEGIN, ADJOINT_TIMESTEP_END, NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, ALWAYS.
- output_phasesAmounts of phases to be output
C++ Type:std::vector<VariableName>
Controllable:No
Description:Amounts of phases to be output
- output_speciesAmounts of species to be output
C++ Type:std::vector<VariableName>
Controllable:No
Description:Amounts of species to be output
- output_vapor_pressuresVapour pressures of species to be output
C++ Type:std::vector<VariableName>
Controllable:No
Description:Vapour pressures of species to be output
- pressure1.0Pressure
Default:1.0
C++ Type:std::vector<VariableName>
Controllable:No
Description:Pressure
- reinit_requestedTrueShould Thermochimica use re-initialization?
Default:True
C++ Type:bool
Controllable:No
Description:Should Thermochimica use re-initialization?
- unique_node_executeFalseWhen false (default), block restricted objects will have the execute method called multiple times on a single node if the node lies on a interface between two subdomains.
Default:False
C++ Type:bool
Controllable:No
Description:When false (default), block restricted objects will have the execute method called multiple times on a single node if the node lies on a interface between two subdomains.
Optional Parameters
- allow_duplicate_execution_on_initialFalseIn the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).
Default:False
C++ Type:bool
Controllable:No
Description:In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- execution_order_group0Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.
Default:0
C++ Type:int
Controllable:No
Description:Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.
- force_postauxFalseForces the UserObject to be executed in POSTAUX
Default:False
C++ Type:bool
Controllable:No
Description:Forces the UserObject to be executed in POSTAUX
- force_preauxFalseForces the UserObject to be executed in PREAUX
Default:False
C++ Type:bool
Controllable:No
Description:Forces the UserObject to be executed in PREAUX
- force_preicFalseForces the UserObject to be executed in PREIC during initial setup
Default:False
C++ Type:bool
Controllable:No
Description:Forces the UserObject to be executed in PREIC during initial setup
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Controllable:No
Description:The seed for the master random number generator
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.