Legacy Kernel-Only Tensor Mechanics Action

Set up stress divergence kernels with coordinate system aware logic

warningwarning: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.

commentnote: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]
    use_displaced_mesh = true
  [../]
[]
(moose/modules/tensor_mechanics/test/tests/elastic_patch/elastic_patch.i)

Input Parameters

  • displacementsThe nonlinear displacement variables for the problem

    C++ Type:std::vector<VariableName>

    Controllable:No

    Description:The nonlinear displacement variables for the problem

Required Parameters

  • absolute_value_vector_tagsThe tag names for extra vectors that the absolute value of the residual should be accumulated into

    C++ Type:std::vector<TagName>

    Controllable:No

    Description:The tag names for extra vectors that the absolute value of the residual should be accumulated into

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

    Default:__all__

    C++ Type:std::vector<std::string>

    Controllable:No

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

  • add_variablesFalseAdd the displacement variables

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Add the displacement variables

  • automatic_eigenstrain_namesFalseCollects all material eigenstrains and passes to required strain calculator within TMA internally.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Collects all material eigenstrains and passes to required strain calculator within TMA internally.

  • base_nameMaterial property base name

    C++ Type:std::string

    Controllable:No

    Description:Material property base name

  • constraint_typesType of each constraint: stress or strain.

    C++ Type:MultiMooseEnum

    Options:strain, stress, none

    Controllable:No

    Description:Type of each constraint: stress or strain.

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

  • cylindrical_axis_point1Starting point for direction of axis of rotation for cylindrical stress/strain.

    C++ Type:libMesh::Point

    Controllable:No

    Description:Starting point for direction of axis of rotation for cylindrical stress/strain.

  • cylindrical_axis_point2Ending point for direction of axis of rotation for cylindrical stress/strain.

    C++ Type:libMesh::Point

    Controllable:No

    Description:Ending point for direction of axis of rotation for cylindrical stress/strain.

  • decomposition_methodTaylorExpansionMethods to calculate the finite strain and rotation increments

    Default:TaylorExpansion

    C++ Type:MooseEnum

    Options:TaylorExpansion, EigenSolution, HughesWinget

    Controllable:No

    Description:Methods to calculate the finite strain and rotation increments

  • directionDirection stress/strain is calculated in

    C++ Type:libMesh::Point

    Controllable:No

    Description:Direction stress/strain is calculated in

  • eigenstrain_namesList of eigenstrains to be applied in this strain calculation

    C++ Type:std::vector<MaterialPropertyName>

    Controllable:No

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

  • extra_vector_tagsThe tag names for extra vectors that residual data should be saved into

    C++ Type:std::vector<TagName>

    Controllable:No

    Description:The tag names for extra vectors that residual data should be saved into

  • formulationTOTALSelect between the total Lagrangian (TOTAL) and updated Lagrangian (UPDATED) formulations for the new kernel system.

    Default:TOTAL

    C++ Type:MooseEnum

    Options:TOTAL, UPDATED

    Controllable:No

    Description:Select between the total Lagrangian (TOTAL) and updated Lagrangian (UPDATED) formulations for the new kernel system.

  • global_strainName of the global strain material to be applied in this strain calculation. The global strain tensor is constant over the whole domain and allows visualization of the deformed shape with the periodic BC

    C++ Type:MaterialPropertyName

    Controllable:No

    Description:Name of the global strain material to be applied in this strain calculation. The global strain tensor is constant over the whole domain and allows visualization of the deformed shape with the periodic BC

  • inactiveIf specified blocks matching these identifiers will be skipped.

    C++ Type:std::vector<std::string>

    Controllable:No

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

  • incrementalFalseUse incremental or total strain (if not explicitly specified this defaults to incremental for finite strain and total for small strain)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Use incremental or total strain (if not explicitly specified this defaults to incremental for finite strain and total for small strain)

  • new_systemFalseIf true use the new LagrangianStressDiverence kernels.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:If true use the new LagrangianStressDiverence kernels.

  • scalingThe scaling to apply to the displacement variables

    C++ Type:double

    Controllable:No

    Description:The scaling to apply to the displacement variables

  • spherical_center_pointCenter point of the spherical coordinate system.

    C++ Type:libMesh::Point

    Controllable:No

    Description:Center point of the spherical coordinate system.

  • strainSMALLStrain formulation

    Default:SMALL

    C++ Type:MooseEnum

    Options:SMALL, FINITE

    Controllable:No

    Description:Strain formulation

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

    C++ Type:std::string

    Controllable:No

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

  • targetsFunctions giving the target values of each constraint.

    C++ Type:std::vector<FunctionName>

    Controllable:No

    Description:Functions giving the target values of each constraint.

  • temperatureThe temperature

    C++ Type:std::vector<VariableName>

    Controllable:No

    Description:The temperature

  • use_automatic_differentiationFalseFlag to use automatic differentiation (AD) objects when possible

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Flag to use automatic differentiation (AD) objects when possible

  • use_displaced_meshFalseWhether to use displaced mesh in the kernels

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to use displaced mesh in the kernels

  • use_finite_deform_jacobianFalseJacobian for corrotational finite strain

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Jacobian for corrotational finite strain

  • verboseFalseDisplay extra information.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Display extra information.

  • volumetric_locking_correctionFalseFlag to correct volumetric locking

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Flag to correct volumetric locking

Optional Parameters

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

    C++ Type:MultiMooseEnum

    Options:cauchy_stress_xx, cauchy_stress_xy, cauchy_stress_xz, cauchy_stress_yx, cauchy_stress_yy, cauchy_stress_yz, cauchy_stress_zx, cauchy_stress_zy, cauchy_stress_zz, creep_strain_xx, creep_strain_xy, creep_strain_xz, creep_strain_yx, creep_strain_yy, creep_strain_yz, creep_strain_zx, creep_strain_zy, creep_strain_zz, creep_stress_xx, creep_stress_xy, creep_stress_xz, creep_stress_yx, creep_stress_yy, creep_stress_yz, creep_stress_zx, creep_stress_zy, creep_stress_zz, deformation_gradient_xx, deformation_gradient_xy, deformation_gradient_xz, deformation_gradient_yx, deformation_gradient_yy, deformation_gradient_yz, deformation_gradient_zx, deformation_gradient_zy, deformation_gradient_zz, elastic_strain_xx, elastic_strain_xy, elastic_strain_xz, elastic_strain_yx, elastic_strain_yy, elastic_strain_yz, elastic_strain_zx, elastic_strain_zy, elastic_strain_zz, mechanical_strain_xx, mechanical_strain_xy, mechanical_strain_xz, mechanical_strain_yx, mechanical_strain_yy, mechanical_strain_yz, mechanical_strain_zx, mechanical_strain_zy, mechanical_strain_zz, pk1_stress_xx, pk1_stress_xy, pk1_stress_xz, pk1_stress_yx, pk1_stress_yy, pk1_stress_yz, pk1_stress_zx, pk1_stress_zy, pk1_stress_zz, pk2_stress_xx, pk2_stress_xy, pk2_stress_xz, pk2_stress_yx, pk2_stress_yy, pk2_stress_yz, pk2_stress_zx, pk2_stress_zy, pk2_stress_zz, plastic_strain_xx, plastic_strain_xy, plastic_strain_xz, plastic_strain_yx, plastic_strain_yy, plastic_strain_yz, plastic_strain_zx, plastic_strain_zy, plastic_strain_zz, small_stress_xx, small_stress_xy, small_stress_xz, small_stress_yx, small_stress_yy, small_stress_yz, small_stress_zx, small_stress_zy, small_stress_zz, strain_xx, strain_xy, strain_xz, strain_yx, strain_yy, strain_yz, strain_zx, strain_zy, strain_zz, stress_xx, stress_xy, stress_xz, stress_yx, stress_yy, stress_yz, stress_zx, stress_zy, stress_zz, effective_plastic_strain, effective_creep_strain, firstinv_stress, firstinv_cauchy_stress, firstinv_pk1_stress, firstinv_pk2_stress, firstinv_small_stress, firstinv_strain, hydrostatic_stress, hydrostatic_cauchy_stress, hydrostatic_pk1_stress, hydrostatic_pk2_stress, hydrostatic_small_stress, intensity_stress, intensity_cauchy_stress, intensity_pk1_stress, intensity_pk2_stress, intensity_small_stress, l2norm_mechanical_strain, l2norm_stress, l2norm_cauchy_stress, l2norm_pk1_stress, l2norm_strain, l2norm_elastic_strain, l2norm_plastic_strain, l2norm_creep_strain, max_principal_mechanical_strain, max_principal_stress, max_principal_cauchy_stress, max_principal_pk1_stress, max_principal_pk2_stress, max_principal_small_stress, max_principal_strain, maxshear_stress, maxshear_cauchy_stress, maxshear_pk1_stress, maxshear_pk2_stress, maxshear_small_stress, mid_principal_mechanical_strain, mid_principal_stress, mid_principal_cauchy_stress, mid_principal_pk1_stress, mid_principal_pk2_stress, mid_principal_small_stress, mid_principal_strain, min_principal_mechanical_strain, min_principal_stress, min_principal_cauchy_stress, min_principal_pk1_stress, min_principal_pk2_stress, min_principal_small_stress, min_principal_strain, secondinv_stress, secondinv_cauchy_stress, secondinv_pk1_stress, secondinv_pk2_stress, secondinv_small_stress, secondinv_strain, thirdinv_stress, thirdinv_cauchy_stress, thirdinv_pk1_stress, thirdinv_pk2_stress, thirdinv_small_stress, thirdinv_strain, triaxiality_stress, triaxiality_cauchy_stress, triaxiality_pk1_stress, triaxiality_pk2_stress, triaxiality_small_stress, volumetric_mechanical_strain, volumetric_strain, vonmises_stress, vonmises_cauchy_stress, vonmises_pk1_stress, vonmises_pk2_stress, directional_stress, directional_strain, axial_stress, axial_strain, axial_plastic_strain, axial_creep_strain, axial_elastic_strain, hoop_stress, hoop_strain, hoop_plastic_strain, hoop_creep_strain, hoop_elastic_strain, radial_stress, radial_strain, spherical_hoop_stress, spherical_hoop_strain, spherical_hoop_plastic_strain, spherical_hoop_creep_strain, spherical_hoop_elastic_strain, spherical_radial_stress, spherical_radial_strain

    Controllable:No

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

  • additional_material_output_familySpecifies the family of FE shape functions to use for this variable.

    C++ Type:MultiMooseEnum

    Options:MONOMIAL, LAGRANGE

    Controllable:No

    Description:Specifies the family of FE shape functions to use for this variable.

  • additional_material_output_orderSpecifies the order of the FE shape function to use for this variable.

    C++ Type:MultiMooseEnum

    Options:CONSTANT, FIRST, SECOND, THIRD, FOURTH, FIFTH, SIXTH, SEVENTH, EIGHTH, NINTH

    Controllable:No

    Description:Specifies the order of the FE shape function to use for this variable.

  • generate_outputAdd scalar quantity output for stress and/or strain

    C++ Type:MultiMooseEnum

    Options:cauchy_stress_xx, cauchy_stress_xy, cauchy_stress_xz, cauchy_stress_yx, cauchy_stress_yy, cauchy_stress_yz, cauchy_stress_zx, cauchy_stress_zy, cauchy_stress_zz, creep_strain_xx, creep_strain_xy, creep_strain_xz, creep_strain_yx, creep_strain_yy, creep_strain_yz, creep_strain_zx, creep_strain_zy, creep_strain_zz, creep_stress_xx, creep_stress_xy, creep_stress_xz, creep_stress_yx, creep_stress_yy, creep_stress_yz, creep_stress_zx, creep_stress_zy, creep_stress_zz, deformation_gradient_xx, deformation_gradient_xy, deformation_gradient_xz, deformation_gradient_yx, deformation_gradient_yy, deformation_gradient_yz, deformation_gradient_zx, deformation_gradient_zy, deformation_gradient_zz, elastic_strain_xx, elastic_strain_xy, elastic_strain_xz, elastic_strain_yx, elastic_strain_yy, elastic_strain_yz, elastic_strain_zx, elastic_strain_zy, elastic_strain_zz, mechanical_strain_xx, mechanical_strain_xy, mechanical_strain_xz, mechanical_strain_yx, mechanical_strain_yy, mechanical_strain_yz, mechanical_strain_zx, mechanical_strain_zy, mechanical_strain_zz, pk1_stress_xx, pk1_stress_xy, pk1_stress_xz, pk1_stress_yx, pk1_stress_yy, pk1_stress_yz, pk1_stress_zx, pk1_stress_zy, pk1_stress_zz, pk2_stress_xx, pk2_stress_xy, pk2_stress_xz, pk2_stress_yx, pk2_stress_yy, pk2_stress_yz, pk2_stress_zx, pk2_stress_zy, pk2_stress_zz, plastic_strain_xx, plastic_strain_xy, plastic_strain_xz, plastic_strain_yx, plastic_strain_yy, plastic_strain_yz, plastic_strain_zx, plastic_strain_zy, plastic_strain_zz, small_stress_xx, small_stress_xy, small_stress_xz, small_stress_yx, small_stress_yy, small_stress_yz, small_stress_zx, small_stress_zy, small_stress_zz, strain_xx, strain_xy, strain_xz, strain_yx, strain_yy, strain_yz, strain_zx, strain_zy, strain_zz, stress_xx, stress_xy, stress_xz, stress_yx, stress_yy, stress_yz, stress_zx, stress_zy, stress_zz, effective_plastic_strain, effective_creep_strain, firstinv_stress, firstinv_cauchy_stress, firstinv_pk1_stress, firstinv_pk2_stress, firstinv_small_stress, firstinv_strain, hydrostatic_stress, hydrostatic_cauchy_stress, hydrostatic_pk1_stress, hydrostatic_pk2_stress, hydrostatic_small_stress, intensity_stress, intensity_cauchy_stress, intensity_pk1_stress, intensity_pk2_stress, intensity_small_stress, l2norm_mechanical_strain, l2norm_stress, l2norm_cauchy_stress, l2norm_pk1_stress, l2norm_strain, l2norm_elastic_strain, l2norm_plastic_strain, l2norm_creep_strain, max_principal_mechanical_strain, max_principal_stress, max_principal_cauchy_stress, max_principal_pk1_stress, max_principal_pk2_stress, max_principal_small_stress, max_principal_strain, maxshear_stress, maxshear_cauchy_stress, maxshear_pk1_stress, maxshear_pk2_stress, maxshear_small_stress, mid_principal_mechanical_strain, mid_principal_stress, mid_principal_cauchy_stress, mid_principal_pk1_stress, mid_principal_pk2_stress, mid_principal_small_stress, mid_principal_strain, min_principal_mechanical_strain, min_principal_stress, min_principal_cauchy_stress, min_principal_pk1_stress, min_principal_pk2_stress, min_principal_small_stress, min_principal_strain, secondinv_stress, secondinv_cauchy_stress, secondinv_pk1_stress, secondinv_pk2_stress, secondinv_small_stress, secondinv_strain, thirdinv_stress, thirdinv_cauchy_stress, thirdinv_pk1_stress, thirdinv_pk2_stress, thirdinv_small_stress, thirdinv_strain, triaxiality_stress, triaxiality_cauchy_stress, triaxiality_pk1_stress, triaxiality_pk2_stress, triaxiality_small_stress, volumetric_mechanical_strain, volumetric_strain, vonmises_stress, vonmises_cauchy_stress, vonmises_pk1_stress, vonmises_pk2_stress, directional_stress, directional_strain, axial_stress, axial_strain, axial_plastic_strain, axial_creep_strain, axial_elastic_strain, hoop_stress, hoop_strain, hoop_plastic_strain, hoop_creep_strain, hoop_elastic_strain, radial_stress, radial_strain, spherical_hoop_stress, spherical_hoop_strain, spherical_hoop_plastic_strain, spherical_hoop_creep_strain, spherical_hoop_elastic_strain, spherical_radial_stress, spherical_radial_strain

    Controllable:No

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

  • material_output_familySpecifies the family of FE shape functions to use for this variable.

    C++ Type:MultiMooseEnum

    Options:MONOMIAL, LAGRANGE

    Controllable:No

    Description:Specifies the family of FE shape functions to use for this variable.

  • material_output_orderSpecifies the order of the FE shape function to use for this variable.

    C++ Type:MultiMooseEnum

    Options:CONSTANT, FIRST, SECOND, THIRD, FOURTH, FIFTH, SIXTH, SEVENTH, EIGHTH, NINTH

    Controllable:No

    Description:Specifies the order of the FE shape function to use for this variable.

Output Parameters

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

    C++ Type:std::vector<SubdomainName>

    Controllable:No

    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<AuxVariableName>

    Controllable:No

    Description:The displacement diagonal preconditioner terms

  • save_inThe displacement residuals

    C++ Type:std::vector<AuxVariableName>

    Controllable:No

    Description:The displacement residuals

Advanced Parameters

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

    Default:z

    C++ Type:MooseEnum

    Options:x, y, z

    Controllable:No

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

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

    C++ Type:FunctionName

    Controllable:No

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

  • out_of_plane_pressure_material0Material used to prescribe pressure (applied toward the body) in the out-of-plane direction

    Default:0

    C++ Type:MaterialPropertyName

    Controllable:No

    Description:Material used to prescribe pressure (applied toward the body) in the out-of-plane direction

  • out_of_plane_strainVariable for the out-of-plane strain for plane stress models

    C++ Type:VariableName

    Controllable:No

    Description:Variable for the out-of-plane strain for plane stress models

  • planar_formulationNONEOut-of-plane stress/strain formulation

    Default:NONE

    C++ Type:MooseEnum

    Options:NONE, WEAK_PLANE_STRESS, PLANE_STRAIN, GENERALIZED_PLANE_STRAIN

    Controllable:No

    Description:Out-of-plane stress/strain formulation

  • pressure_factorScale factor applied to prescribed out-of-plane pressure (both material and function)

    C++ Type:double

    Controllable:No

    Description:Scale factor applied to prescribed out-of-plane pressure (both material and function)

  • 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:VariableName

    Controllable:No

    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 Stress/Strain Parameters

Associated Actions

Available Actions