- displacementsThe nonlinear displacement variables for the problem
C++ Type:std::vector
Description:The nonlinear displacement variables for the problem
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 WeakPlaneStress Kernel (for weak enforcement of the plane stress condition)
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
Functionality | Replaced Classes | Associated Parameters |
---|---|---|
Calculate stress divergence equilibrium for the given coordinate system | StressDivergenceTensors and optionally WeakPlaneStress or StressDivergenceRZTensors or StressDivergenceRSphericalTensors | displacements : a string of the displacement field variables |
Add the displacement variables | Variables | add_variables : boolean |
Calculation of strain for the given coordinate system | ComputeFiniteStrain or ComputePlaneFiniteStrain or ComputeAxisymmetric1DFiniteStrain or ComputeAxisymmetricRZFiniteStrain | strain : MooseEnum to select finite or strain formulations |
ComputeSmallStrain or ComputePlaneSmallStrain or ComputeAxisymmetric1DSmallStrain or ComputeAxisymmetricRZSmallStrain | ||
ComputeIncrementalSmallStrain or ComputePlaneIncrementalStrain or ComputeAxisymmetric1DIncrementalStrain or ComputeAxisymmetricRZIncrementalStrain | incremental : boolean for using a incremental strain formulation | |
Add AuxVariables and AuxKernels for various tensor component and quantity outputs | AuxVariables and RankTwoAux or RankTwoScalarAux or RankFourAux | generate_output : a string of the quantities to add |
Add the optional global strain contribution to the strain calculation | Couples the GlobalStrain system | global_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
- 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
- add_variablesFalseAdd the displacement variables
Default:False
C++ Type:bool
Description:Add the displacement variables
- base_nameMaterial property base name
C++ Type:std::string
Description:Material property base name
- 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
- 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
- extra_vector_tagsThe tag names for extra vectors that residual data should be saved into
C++ Type:std::vector
Description:The tag names for extra vectors that residual data should be saved into
- 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
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
Description:If specified blocks matching these identifiers will be skipped.
- incrementalFalseUse incremental or total strain
Default:False
C++ Type:bool
Description:Use incremental or total strain
- strainSMALLStrain formulation
Default:SMALL
C++ Type:MooseEnum
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
Description:The base name used for the strain. If not provided, it will be set equal to base_name
- temperatureThe temperature
C++ Type:VariableName
Description:The temperature
- use_automatic_differentiationFalseFlag to use automatic differentiation (AD) objects when possible
Default:False
C++ Type:bool
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
Description:Whether to use displaced mesh in the kernels
- use_finite_deform_jacobianFalseJacobian for corrotational finite strain
Default:False
C++ Type:bool
Description:Jacobian for corrotational finite strain
- volumetric_locking_correctionFalseFlag to correct volumetric locking
Default:False
C++ Type:bool
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
Description:Add scalar quantity output for stress and/or strain (will be appended to the list in `generate_output`)
- generate_outputAdd scalar quantity output for stress and/or strain
C++ Type:MultiMooseEnum
Description:Add scalar quantity output for stress and/or strain
Output Parameters
- 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
- save_inThe displacement residuals
C++ Type:std::vector
Description:The displacement residuals
Advanced Parameters
- 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.
- 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_strainVariable for the out-of-plane strain for plane stress models
C++ Type:VariableName
Description:Variable for the out-of-plane strain for plane stress models
- 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
- 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
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
- Tensor Mechanics App
- CommonTensorMechanicsAction
- TensorMechanicsActionSet up stress divergence kernels with coordinate system aware logic