19template <
bool is_nodal>
21 typename std::conditional<is_nodal, NodalUserObject, ElementUserObject>::type;
29template <
bool is_nodal>
38 virtual void execute()
override;
95 std::vector<const VariableValue *>
_el;
110 std::unordered_map<dof_id_type, Data>
_data;
119 std::vector<MooseWritableVariable *>
_ph;
122 std::vector<MooseWritableVariable *>
_sp;
125 std::vector<MooseWritableVariable *>
_vp;
131 std::vector<MooseWritableVariable *>
_el_ph;
typename std::conditional< is_nodal, NodalUserObject, ElementUserObject >::type ThermochimicaDataBaseParent
ThermochimicaDataBase< false > ThermochimicaElementData
ThermochimicaDataBase< true > ThermochimicaNodalData
The ChemicalCompositionAction sets up user objects, aux kernels, and aux variables for a thermochemis...
User object that performs a Gibbs energy minimization at each node by calling the Thermochimica code.
const std::size_t _n_phases
void reinitDataMooseToTc()
Function to load re-initialization data saved in this UserObject back into Thermochimica.
virtual void initialize() override
dof_id_type * _shared_dofid_mem
shared memory pointer for dof_id_type values
virtual void execute() override
const std::vector< std::pair< std::string, std::string > > & _vapor_phase_pairs
const ChemicalCompositionAction & _action
Real * _shared_real_mem
shared memory pointer for Real values
const std::size_t _n_elements
std::vector< MooseWritableVariable * > _vp
Writable vapour pressures for each element.
virtual void finalize() override
const std::vector< std::pair< std::string, std::string > > & _phase_element_pairs
OutputMassUnit
Mass unit for output species.
std::unordered_map< dof_id_type, Data > _data
Nodal data (Used only for reinitialization)
std::vector< MooseWritableVariable * > _el_pot
Writable chemical potential variables for each element.
const std::size_t _n_potentials
const std::size_t _n_vapor_species
std::vector< unsigned int > _el_ids
const bool _output_element_potentials
Element chemical potential output.
const VariableValue & _pressure
const Data & getData(dof_id_type id) const
static InputParameters validParams()
const std::size_t _n_species
const std::vector< std::string > & _ph_names
const Data & getElementData(dof_id_type id) const
void expect(T expect_msg)
const VariableValue & _temperature
std::vector< const VariableValue * > _el
const std::vector< std::pair< std::string, std::string > > & _species_phase_pairs
enum ThermochimicaDataBase::OutputMassUnit _output_mass_unit
virtual void threadJoin(const UserObject &) override
const std::size_t _n_phase_elements
const bool _output_element_phases
int _socket
communication socket
std::vector< MooseWritableVariable * > _ph
Writable phase amount variables.
const std::vector< std::string > & _element_potentials
const Data & getNodalData(dof_id_type id) const
void reinitDataMooseFromTc()
Function to get re-initialization data from Thermochimica and save it in member variables of this Use...
std::vector< MooseWritableVariable * > _sp
Writable species amount variables.
const bool _output_vapor_pressures
enum ThermochimicaDataBase::ReinitializationType _reinit
std::vector< MooseWritableVariable * > _el_ph
Writable variable for molar amounts of each element in specified phase.
VariableValueTempl< false > VariableValue
std::vector< double > _chemical_potential
std::vector< double > _moles_phase
std::vector< int > _elements_used
std::vector< double > _element_potential
std::vector< int > _assemblage
std::vector< double > _mol_fraction