Go to the documentation of this file.
14 #include "MooseVariable.h"
23 params.addClassDescription(
"Adds rigid body motion to grains");
41 if (_var.number() ==
_c_var)
60 if (_var.number() ==
_c_var)
83 mooseAssert(grain_id <
_grain_volumes.size(),
"grain_id out of bounds");
99 for (
unsigned int jvar_index = 0; jvar_index <
_op_num; ++jvar_index)
116 const auto force_jac =
_mt / volume * force_jacobian;
117 const auto torque_jac =
118 _mr / volume * torque_jacobian.cross(_current_elem->centroid() - centroid);
136 mooseAssert(grain_id <
_grain_volumes.size(),
"grain_id out of bounds");
141 _mr / volume * (
_grain_torques[grain_id].cross(_current_elem->centroid() - centroid));
const VariableGradient & _grad_c
Variable gradient for the concentration.
virtual Real computeQpResidual()
VectorValue< Real > RealGradient
const unsigned int _op_num
no. of order parameters
virtual void getUserObjectJacobian(unsigned int jvar, dof_id_type dof_index)
const std::vector< std::vector< Real > > & _grain_force_eta_jacobians
RealGradient _velocity_advection
storing the advection velocity and corresponding jacobian entries calculated in userobjects
const VectorPostprocessorValue & _grain_volumes
The grain volumes.
std::vector< unsigned int > _grain_ids
obtain the active grain ids
const Real _mr
constant value corresponding to grain rotation
std::vector< unsigned int > _vals_var
unsigned int _total_dofs
get the total no. of dofs in the system
virtual Real computeQpOffDiagJacobian(unsigned int)
InputParameters validParams< GrainRigidBodyMotionBase >()
virtual const std::vector< unsigned int > & getVarToFeatureVector(dof_id_type elem_id) const =0
Returns a list of active unique feature ids for a particular element.
static const unsigned int invalid_id
virtual Real computeQpJacobian()
virtual void calculateAdvectionVelocity()
registerMooseObject("PhaseFieldApp", MultiGrainRigidBodyMotion)
const Real _mt
constant value corresponding to grain translation
const std::vector< RealGradient > & _grain_torques
const std::vector< RealGradient > & _grain_forces
const GrainTrackerInterface & _grain_tracker
grain tracker object
const std::vector< Real > & _grain_force_c_jacobians
MultiGrainRigidBodyMotion(const InputParameters ¶meters)
RealGradient _velocity_advection_jacobian
virtual Point getGrainCentroid(unsigned int grain_id) const =0
Returns the centroid for the given grain number.
virtual Real computeQpNonlocalJacobian(dof_id_type)
InputParameters validParams< MultiGrainRigidBodyMotion >()
virtual Real computeQpNonlocalOffDiagJacobian(unsigned int, dof_id_type)
unsigned int _c_var
int label for the Concentration