• Mechanics is a complicated beast.
  • There are currently 2 different implementations in Modules, and we are in the process of fully deprecating one of those.

    • tensor_mechanics is our flexible and modular solid mechanics implementation (every new project should use this).
    • solid_mechanics is a legacy module that is soon to be removed from MOOSE (do not use this).
  • Axisymmetric coordinates (RZ) set up rotational symmetry around second coordinate component (the former "y" axis), so the domain must be rotated.

  • To enable TensorMechanics we need to:
  • Declare what the displacement variables should be (disp_r, disp_z)
[GlobalParams]
  displacements = 'disp_r disp_z'
[]

  • Turn on the TensorMechanics kernels, strain calculator, and displacement variables using the Master action
[Module/TensorMechanics/Master]
  [./all]
    # This block adds all of the proper Kernels, strain calculators, and Variables
    # for TensorMechanics in the correct coordinate system (autodetected)
    add_variables = true
    strain = FINITE
  [../]
[]

  • Turn on a elastic mechanics material:
[Materials] # blocks use global "displacements" parameter
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 200e9 # (Pa) from wikipedia
    poissons_ratio = .3 # from wikipedia
    block = 0
  [../]
  [./_elastic_stress]
    type = ComputeFiniteStrainElasticStress
    block = 0
  [../]
[]

The strain calculator for the selected strain formulation and coordinate system is added automatically.

Tensor Mechanics Input File

step09_mechanics/problems/step9.i