13 #include "AuxiliarySystem.h"
14 #include "MooseVariable.h"
24 params.addClassDescription(
"TorqueReaction calculates the torque in 2D and 3D"
25 "about a user-specified axis of rotation centered"
26 "at a user-specied origin.");
27 params.addRequiredParam<std::vector<AuxVariableName>>(
"reaction_force_variables",
28 "The reaction variables");
29 params.addParam<RealVectorValue>(
30 "axis_origin", Point(),
"Origin of the axis of rotation used to calculate the torque");
31 params.addRequiredParam<RealVectorValue>(
"direction_vector",
32 "The direction vector of the axis "
33 "of rotation about which the "
34 "calculated torque is calculated");
35 params.set<
bool>(
"use_displaced_mesh") =
true;
40 : NodalPostprocessor(parameters),
41 _aux(_fe_problem.getAuxiliarySystem()),
42 _axis_origin(getParam<RealVectorValue>(
"axis_origin")),
43 _direction_vector(getParam<RealVectorValue>(
"direction_vector"))
45 std::vector<AuxVariableName> reacts =
46 getParam<std::vector<AuxVariableName>>(
"reaction_force_variables");
49 for (
unsigned int i = 0; i <
_nrt; ++i)
50 _react.push_back(&
_aux.getFieldVariable<Real>(_tid, reacts[i]).dofValues());
66 Point normal_position_component =
79 RealVectorValue torque = normal_position_component.cross(force);
83 RealVectorValue parallel_torque_component =
87 _sum += parallel_torque_component.norm();
101 const TorqueReaction & pps = static_cast<const TorqueReaction &>(y);