# Torque Reaction

TorqueReaction calculates the torque in 2D and 3Dabout a user-specified axis of rotation centeredat a user-specied origin.

## Description

The postprocessor TorqueReaction calculates the applied torque from the reaction forces, coupled as AuxVariables, about a user specified axis of rotation.

TorqueReaction takes a scalar approach to calculating the sum of the acting torques by projecting both the reaction force vector and the position vector (the coordinates of the node upon which the force is applied) onto the axis of rotation and applying the Pythagorean theorem, as in a statics course. This scalar approach allows the postprocessor to accept any axis of rotation direction.

The torque from the reaction forces is calculated, as shown in Eq. (1) relative to the user specified axis of rotation origin and direction. (1) where is the applied reaction force vector, is the current node position, is the origin of the axis of rotation, and is the direction vector of the axis of rotation. The component of the torque acting along the user specified axis of rotation vector, is calcuated as Eq. (2): (2) where is the torque vector calculated in Eq. (1) and is the axis of rotation direction vector.

## Example Input File Syntax

[./torque]
type = TorqueReaction
boundary = right
reaction_force_variables = 'saved_x saved_y'
direction_vector = '0. 0. 1.'
[../]

(modules/tensor_mechanics/test/tests/torque_reaction/torque_reaction_tm.i)

A list of the AuxVariables which save the reaction forces must be provided to the TorqueReaction block.

[./saved_x]
[../]

(modules/tensor_mechanics/test/tests/torque_reaction/torque_reaction_tm.i)
[./saved_y]
[../]

(modules/tensor_mechanics/test/tests/torque_reaction/torque_reaction_tm.i)

The reaction force AuxVariables must also be connected to the stress divergence kernel through the save_in parameter

[./TensorMechanics]
save_in = 'saved_x saved_y'
[../]

(modules/tensor_mechanics/test/tests/torque_reaction/torque_reaction_tm.i)

## Input Parameters

• direction_vectorThe direction vector of the axis of rotation about which the calculated torque is calculated

C++ Type:libMesh::VectorValue

Options:

Description:The direction vector of the axis of rotation about which the calculated torque is calculated

• reaction_force_variablesThe reaction variables

C++ Type:std::vector

Options:

Description:The reaction variables

### Required Parameters

• execute_onTIMESTEP_ENDThe list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM.

Default:TIMESTEP_END

C++ Type:ExecFlagEnum

Options:NONE INITIAL LINEAR NONLINEAR TIMESTEP_END TIMESTEP_BEGIN FINAL CUSTOM

Description:The list of flag(s) indicating when this object should be executed, the available options include NONE, INITIAL, LINEAR, NONLINEAR, TIMESTEP_END, TIMESTEP_BEGIN, FINAL, CUSTOM.

• boundaryThe list of boundary IDs from the mesh where this boundary condition applies

C++ Type:std::vector

Options:

Description:The list of boundary IDs from the mesh where this boundary condition applies

• 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

Options:

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.

• blockThe list of block ids (SubdomainID) that this object will be applied

C++ Type:std::vector

Options:

Description:The list of block ids (SubdomainID) that this object will be applied

• axis_origin0 0 0Origin of the axis of rotation used to calculate the torque

Default:0 0 0

C++ Type:libMesh::VectorValue

Options:

Description:Origin of the axis of rotation used to calculate the torque

### Optional Parameters

• enableTrueSet the enabled status of the MooseObject.

Default:True

C++ Type:bool

Options:

Description:Set the enabled status of the MooseObject.

• 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

Options:

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).

• use_displaced_meshTrueWhether 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:True

C++ Type:bool

Options:

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.

• outputsVector of output names were you would like to restrict the output of variables(s) associated with this object

C++ Type:std::vector

Options:

Description:Vector of output names were you would like to restrict the output of variables(s) associated with this object

• control_tagsAdds user-defined labels for accessing object parameters via control logic.

C++ Type:std::vector

Options:

Description:Adds user-defined labels for accessing object parameters via control logic.

• seed0The seed for the master random number generator

Default:0

C++ Type:unsigned int

Options:

Description:The seed for the master random number generator