- vThe coupled variable whose components are coupled to AuxVariable
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The coupled variable whose components are coupled to AuxVariable
- variableThe name of the variable that this object applies to
C++ Type:AuxVariableName
Unit:(no unit assumed)
Controllable:No
Description:The name of the variable that this object applies to
- vector_tagName of the vector tag to extract values from
C++ Type:TagName
Controllable:No
Description:Name of the vector tag to extract values from
ReactionForceAux
Save the reaction force corresponding to the variable DOFs into this AuxVariable.
Input Parameters
- blockThe list of blocks (ids or names) that this object will be applied
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:The list of blocks (ids or names) that this object will be applied
- boundaryThe list of boundaries (ids or names) from the mesh where this object applies
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:The list of boundaries (ids or names) from the mesh where this object applies
- check_boundary_restrictedTrueWhether to check for multiple element sides on the boundary in the case of a boundary restricted, element aux variable. Setting this to false will allow contribution to a single element's elemental value(s) from multiple boundary sides on the same element (example: when the restricted boundary exists on two or more sides of an element, such as at a corner of a mesh
Default:True
C++ Type:bool
Controllable:No
Description:Whether to check for multiple element sides on the boundary in the case of a boundary restricted, element aux variable. Setting this to false will allow contribution to a single element's elemental value(s) from multiple boundary sides on the same element (example: when the restricted boundary exists on two or more sides of an element, such as at a corner of a mesh
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Controllable:No
Description:The seed for the master random number generator
- use_displaced_meshFalseWhether 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:False
C++ Type:bool
Controllable:No
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.
Advanced Parameters
- prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
- use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Default:False
C++ Type:bool
Controllable:No
Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Material Property Retrieval Parameters
Usage
First declare a tagged vector to save the residual contribution, i.e.
[Problem<<<{"href": "../../syntax/Problem/index.html"}>>>]
extra_tag_vectors = 'ref'
[]
(modules/solid_mechanics/test/tests/plane_stress/3D_finite_tension_pull.i)Then, inform the SolidMechanics Physics about the declared vector tag. The Physics will automatically accumulate the residual contribution into the tagged vector. Importantly, this should only be done for the Kernels (which are set up by the SolidMechanics Physics), and not for other objects such as boundary conditions.
[Physics<<<{"href": "../../syntax/Physics/index.html"}>>>]
[SolidMechanics<<<{"href": "../../syntax/Physics/SolidMechanics/index.html"}>>>]
[QuasiStatic<<<{"href": "../../syntax/Physics/SolidMechanics/QuasiStatic/index.html"}>>>]
[plane_stress]
strain<<<{"description": "Strain formulation"}>>> = FINITE
extra_vector_tags<<<{"description": "The tag names for extra vectors that residual data should be saved into"}>>> = 'ref'
generate_output<<<{"description": "Add scalar quantity output for stress and/or strain"}>>> = 'stress_xx stress_xy stress_yy stress_zz strain_xx strain_xy strain_yy strain_zz'
add_variables<<<{"description": "Add the displacement variables"}>>> = true
[]
[]
[]
[]
(modules/solid_mechanics/test/tests/plane_stress/3D_finite_tension_pull.i)Next, use the ReactionForceAux to read the accumulated residual contribution into an AuxVariable, i.e.
[AuxKernels<<<{"href": "../../syntax/AuxKernels/index.html"}>>>]
[react_x]
type = ReactionForceAux<<<{"description": "Extract the value of the residual from an appropriately formed tag vector and save those values as reaction forces in an AuxVariable", "href": "ReactionForceAux.html"}>>>
vector_tag<<<{"description": "Name of the vector tag to extract values from"}>>> = 'ref'
v<<<{"description": "The coupled variable whose components are coupled to AuxVariable"}>>> = 'disp_x'
variable<<<{"description": "The name of the variable that this object applies to"}>>> = 'react_x'
[]
[]
(modules/solid_mechanics/test/tests/plane_stress/3D_finite_tension_pull.i)In this example, this would save the residual contribution in the direction into the AuxVariable named "react_x". Upon convergence of each time step, the residual contribution from the kernels will be close to zero (up to the tolerances you set) everywhere in the domain except where constraints or boundary conditions are applied. Examples of these constraints are Dirichlet/Neumann boundary conditions, pressure, applied torque, and contact, etc.. The final, accumulated residual contribution on the constrained degrees of freedom can then be interpreted as the distributed "reaction force".
Finally, if desired, the distributed reaction force can be summed up on a boundary to obtain the total reaction force. In the following example, the distributed reaction force is summed up on the "right" boundary where the displacement control is applied.
[Postprocessors<<<{"href": "../../syntax/Postprocessors/index.html"}>>>]
[react_x]
type = NodalSum<<<{"description": "Computes the sum of all of the nodal values of the specified variable. Note: This object sets the default \"unique_node_execute\" flag to true to avoid double counting nodes between shared blocks.", "href": "../postprocessors/NodalSum.html"}>>>
variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = 'react_x'
boundary<<<{"description": "The list of boundaries (ids or names) from the mesh where this object applies"}>>> = 'right'
[]
[]
(modules/solid_mechanics/test/tests/plane_stress/3D_finite_tension_pull.i)Example input files
Input Files
- (modules/solid_mechanics/test/tests/torque_reaction/torque_reaction.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty.i)
- (modules/solid_mechanics/test/tests/generalized_plane_strain/generalized_plane_strain_ref_resid.i)
- (modules/solid_mechanics/test/tests/plane_stress/3D_finite_tension_pull.i)
- (modules/solid_mechanics/test/tests/plane_stress/weak_plane_stress_finite_tension_pull.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_adaptivity.i)
- (modules/solid_mechanics/test/tests/torque_reaction/torque_reaction_3D.i)
- (modules/solid_mechanics/test/tests/free_expansion_abs_ref/free_expansion_abs_ref.i)
- (modules/contact/test/tests/verification/patch_tests/mindlin/cylinder_friction_node_face.i)
- (modules/solid_mechanics/test/tests/torque_reaction/torque_reaction_cylinder.i)