# Legacy Kernel-Only Tensor Mechanics Action

Set up stress divergence kernels with coordinate system aware logic

warning:Deprecated Action

This legacy action will soon be deprecated in favor of the more inclusive TensorMechanics/MasterAction. See the description, example use, and parameters on the TensorMechanics/Master action system page.

## Description

The LegacyTensorMechanicsAction is a convenience object that simplifies part of the tensor mechanics system setup. It adds StressDivergence Kernels (for the current coordinate system).

## Constructed MooseObjects

The Legacy Tensor Mechanics Action is used to construct the kernels for the specified coordinate system.

Table 1: Correspondence Among Action Functionality and MooseObjects for the Tensor Mechanics Master Action

FunctionalityReplaced ClassesAssociated Parameters
Calculate stress divergence equilibrium for the given coordinate systemStressDivergenceTensors or StressDivergenceRZTensors or StressDivergenceRSphericalTensorsdisplacements : a string of the displacement field variables

Note that there are many variations for the calculation of the stress divergence. Review the theoretical introduction for the Stress Divergence. Pay particular attention to the setting of the use_displaced_mesh parameter discussion; this parameter depends on the strain formulation used in the simulation.

note:Use of the Tensor Mechanics MasterAction Recommended

We recommend that users employ the TensorMechanics/MasterAction whenever possible to ensure consistency between the test function gradients and the strain formulation selected.

## Example Input File Syntax


[Kernels]
[./TensorMechanics]
[../]
[]
(moose/modules/tensor_mechanics/test/tests/elastic_patch/elastic_patch.i)

## Input Parameters

• displacementsThe nonlinear displacement variables for the problem

C++ Type:std::vector

Description:The nonlinear displacement variables for the problem

### Required Parameters

• decomposition_methodTaylorExpansionMethods to calculate the finite strain and rotation increments

Default:TaylorExpansion

C++ Type:MooseEnum

Description:Methods to calculate the finite strain and rotation increments

• strain_base_nameThe base name used for the strain. If not provided, it will be set equal to base_name

C++ Type:std::string

Description:The base name used for the strain. If not provided, it will be set equal to base_name

• base_nameMaterial property base name

C++ Type:std::string

Description:Material property base name

• use_displaced_meshFalseWhether to use displaced mesh in the kernels

Default:False

C++ Type:bool

Description:Whether to use displaced mesh in the kernels

• incrementalFalseUse incremental or total strain

Default:False

C++ Type:bool

Description:Use incremental or total strain

• eigenstrain_namesList of eigenstrains to be applied in this strain calculation

C++ Type:std::vector

Description:List of eigenstrains to be applied in this strain calculation

• strainSMALLStrain formulation

Default:SMALL

C++ Type:MooseEnum

Description:Strain formulation

Default:False

C++ Type:bool

• inactiveIf specified blocks matching these identifiers will be skipped.

C++ Type:std::vector

Description:If specified blocks matching these identifiers will be skipped.

• volumetric_locking_correctionFalseFlag to correct volumetric locking

Default:False

C++ Type:bool

Description:Flag to correct volumetric locking

• use_finite_deform_jacobianFalseJacobian for corrotational finite strain

Default:False

C++ Type:bool

Description:Jacobian for corrotational finite strain

• active__all__ If specified only the blocks named will be visited and made active

Default:__all__

C++ Type:std::vector

Description:If specified only the blocks named will be visited and made active

• temperatureThe temperature

C++ Type:NonlinearVariableName

Description:The temperature

### Optional Parameters

• generate_outputAdd scalar quantity output for stress and/or strain

C++ Type:MultiMooseEnum

Description:Add scalar quantity output for stress and/or strain

• additional_generate_outputAdd scalar quantity output for stress and/or strain (will be appended to the list in generate_output)

C++ Type:MultiMooseEnum

Description:Add scalar quantity output for stress and/or strain (will be appended to the list in generate_output)

### Output Parameters

• save_inThe displacement residuals

C++ Type:std::vector

Description:The displacement residuals

• blockThe list of ids of the blocks (subdomain) that the stress divergence kernels will be applied to

C++ Type:std::vector

Description:The list of ids of the blocks (subdomain) that the stress divergence kernels will be applied to

• diag_save_inThe displacement diagonal preconditioner terms

C++ Type:std::vector

Description:The displacement diagonal preconditioner terms

• scalar_out_of_plane_strainScalar variable for the out-of-plane strain (in y direction for 1D Axisymmetric or in z direction for 2D Cartesian problems)

C++ Type:NonlinearVariableName

Description:Scalar variable for the out-of-plane strain (in y direction for 1D Axisymmetric or in z direction for 2D Cartesian problems)

• out_of_plane_pressure0Function used to prescribe pressure in the out-of-plane direction (y for 1D Axisymmetric or z for 2D Cartesian problems)

Default:0

C++ Type:FunctionName

Description:Function used to prescribe pressure in the out-of-plane direction (y for 1D Axisymmetric or z for 2D Cartesian problems)

• out_of_plane_directionzThe direction of the out-of-plane strain.

Default:z

C++ Type:MooseEnum

Description:The direction of the out-of-plane strain.

• planar_formulationNONEOut-of-plane stress/strain formulation

Default:NONE

C++ Type:MooseEnum

Description:Out-of-plane stress/strain formulation

• pressure_factor1Scale factor applied to prescribed pressure

Default:1

C++ Type:double

Description:Scale factor applied to prescribed pressure