13#include "metaphysicl/parallel_numberarray.h"
14#include "metaphysicl/parallel_dualnumber.h"
15#include "metaphysicl/parallel_semidynamicsparsenumberarray.h"
16#include "libmesh/parallel_algebra.h"
27 : _moose_object(moose_object), _n_shaft_eq(1)
58 unsigned int n_flow_eq)
66 const std::vector<std::vector<dof_id_type>> & flow_channel_dofs)
75 mooseAssert(dofs.size() == 1,
76 "There should be exactly 1 coupled DoF index for the variable '" + omega_var->
name() +
DualNumber< Real, DNDerivativeType, true > ADReal
Interface class for user objects that are connected to a shaft.
virtual void initialize()
unsigned int _n_flow_eq
Number of flow variables in connected flow channels.
ADReal _moment_of_inertia
Moment of inertia.
ADShaftConnectableUserObjectInterface(const MooseObject *moose_object)
virtual void setOmegaDofs(const MooseVariableScalar *omega_var)
std::vector< std::vector< dof_id_type > > _flow_channel_dofs
Degrees of freedom for flow channel variables, for each connection.
static InputParameters validParams()
std::vector< dof_id_type > _scalar_dofs
Degrees of freedom for scalar variables (from junction)
virtual ADReal getTorque() const
unsigned int _n_connections
Number of flow channels the shaft connected component is attached to.
virtual void setupJunctionData(std::vector< dof_id_type > &scalar_dofs)
Stores data associated with a junction component.
virtual void setConnectionData(const std::vector< std::vector< dof_id_type > > &flow_channel_dofs)
Stores data computed by a volume-junction-like object associated with the conection.
const MooseObject * _moose_object
Associated MOOSE object.
ADReal _torque
Total torque.
virtual ADReal getMomentOfInertia() const
virtual void threadJoin(const UserObject &uo)
std::vector< dof_id_type > _omega_dof
Degrees of freedom for omega variable (from shaft)
virtual void setupConnections(unsigned int n_connections, unsigned int n_flow_eq)
unsigned int _n_shaft_eq
Number of equation in the shaft component.
const std::string & name() const
virtual const std::vector< dof_id_type > & dofIndices() const
const Parallel::Communicator & comm() const