Tensor Mechanics Master Action System

Set up stress divergence kernels with coordinate system aware logic

The TensorMechanics Master Action is a convenience object that simplifies part of the mechanics system setup. It performs

  • Add StressDivergence Kernels (for the current coordinate system)

  • Add Strain calculation material (for the chosen strain model)

  • Correctly set use of displaced mesh

  • Optional: Setup of displacement variables (with the correct order for the current mesh)

  • Optional: Add AuxVariables and AuxKernels for various tensor components and quantity outputs

  • Optional: Set up out-of-plane stress/strain consistently

Constructed MooseObjects

The Tensor Mechanics Master Action is used to construct the kernels, displacement variables, and strain materials in a consistent manner as required for a continuum mechanics simulation simulation. Optionally it generates aux variables and auxkernels to aid in the output of tensor components and scalar quantities.

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
Add the displacement variablesVariablesadd_variables: boolean
Calculation of strain for the given coordinate systemComputeFiniteStrain or ComputePlaneFiniteStrain or ComputeAxisymmetric1DFiniteStrain or ComputeAxisymmetricRZFiniteStrainstrain: MooseEnum to select finite or strain formulations
ComputeSmallStrain or ComputePlaneSmallStrain or ComputeAxisymmetric1DSmallStrain or ComputeAxisymmetricRZSmallStrain
ComputeIncrementalSmallStrain or ComputePlaneIncrementalStrain or ComputeAxisymmetric1DIncrementalStrain or ComputeAxisymmetricRZIncrementalStrainincremental : boolean for using a incremental strain formulation
Add AuxVariables and AuxKernels for various tensor component and quantity outputsAuxVariables and RankTwoAux or RankTwoScalarAux or RankFourAuxgenerate_output: a string of the quantities to add
Add the optional global strain contribution to the strain calculationCouples the GlobalStrain systemglobal_strain: name of the material property that computes the global strain tensor

Note that there are many variations for the calculation of the stress divergence and the strain measure. Review the theoretical introduction for the Stress Divergence and the Strain Formulations for more information.

Example Input File Syntax

Subblocks

The subblocks of the Master action are what triggers MOOSE objects to be built. If none of the mechanics is subdomain restricted a single subblock can be used

[./Master]
  [./all]
    strain = FINITE
    add_variables = true
  [../]
[../]
(modules/tensor_mechanics/test/tests/finite_strain_elastic/finite_strain_elastic_new_test.i)

if different mechanics models are needed, multiple subblocks with subdomain restrictions can be used.

[Modules/TensorMechanics/Master]
  # parameters that apply to all subblocks are specified at this level. They
  # can be overwritten in the subblocks.
  add_variables = true
  strain = FINITE
  generate_output = 'stress_xx'

  [./block1]
    # the `block` parameter is only valid insde a subblock.
    block = 1
  [../]
  [./block2]
    block = 2
    # the `additional_generate_output` parameter is also only valid inside a
    # subblock. Values specified here are appended to the `generate_output`
    # parameter values.
    additional_generate_output = 'strain_yy'
  [../]
[]
(modules/tensor_mechanics/test/tests/action/two_block_new.i)

Parameters supplied at the [Modules/TensorMechanics/Master] level act as defaults for the Master action subblocks.

Input Parameters

  • displacementsThe nonlinear displacement variables for the problem

    C++ Type:std::vector

    Options:

    Description:The nonlinear displacement variables for the problem

Required Parameters

  • 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

    Options:

    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

  • decomposition_methodTaylorExpansionMethods to calculate the finite strain and rotation increments

    Default:TaylorExpansion

    C++ Type:MooseEnum

    Options:TaylorExpansion EigenSolution

    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

    Options:

    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

    Options:

    Description:Material property base name

  • use_displaced_meshFalseWhether to use displaced mesh in the kernels

    Default:False

    C++ Type:bool

    Options:

    Description:Whether to use displaced mesh in the kernels

  • eigenstrain_namesList of eigenstrains to be applied in this strain calculation

    C++ Type:std::vector

    Options:

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

  • inactiveIf specified blocks matching these identifiers will be skipped.

    C++ Type:std::vector

    Options:

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

  • strainSMALLStrain formulation

    Default:SMALL

    C++ Type:MooseEnum

    Options:SMALL FINITE

    Description:Strain formulation

  • add_variablesFalseAdd the displacement variables

    Default:False

    C++ Type:bool

    Options:

    Description:Add the displacement variables

  • incrementalFalseUse incremental or total strain

    Default:False

    C++ Type:bool

    Options:

    Description:Use incremental or total strain

  • volumetric_locking_correctionFalseFlag to correct volumetric locking

    Default:False

    C++ Type:bool

    Options:

    Description:Flag to correct volumetric locking

  • use_finite_deform_jacobianFalseJacobian for corrotational finite strain

    Default:False

    C++ Type:bool

    Options:

    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

    Options:

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

  • temperatureThe temperature

    C++ Type:NonlinearVariableName

    Options:

    Description:The temperature

Optional Parameters

  • save_inThe displacement residuals

    C++ Type:std::vector

    Options:

    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

    Options:

    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

    Options:

    Description:The displacement diagonal preconditioner terms

Advanced Parameters

  • 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

    Options:

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

  • pressure_factor1Scale factor applied to prescribed pressure

    Default:1

    C++ Type:double

    Options:

    Description:Scale factor applied to prescribed pressure

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

    Default:z

    C++ Type:MooseEnum

    Options:x y z

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

  • planar_formulationNONEOut-of-plane stress/strain formulation

    Default:NONE

    C++ Type:MooseEnum

    Options:NONE PLANE_STRAIN GENERALIZED_PLANE_STRAIN

    Description:Out-of-plane stress/strain formulation

  • 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

    Options:

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

  • generate_outputAdd scalar quantity output for stress and/or strain

    C++ Type:MultiMooseEnum

    Options: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 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 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 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 firstinv_stress firstinv_strain hydrostatic_stress max_principal_stress mid_principal_stress min_principal_stress secondinv_stress secondinv_strain thirdinv_stress thirdinv_strain vonmises_stress

    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

    Options: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 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 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 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 firstinv_stress firstinv_strain hydrostatic_stress max_principal_stress mid_principal_stress min_principal_stress secondinv_stress secondinv_strain thirdinv_stress thirdinv_strain vonmises_stress

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

Output Parameters

Associated Actions

Available Actions