- 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`)

```text
[GlobalParams]
  displacements = 'disp_r disp_z'
[]
```

[](---)

- Turn on the `TensorMechanics` kernels, strain calculator, and displacement variables using the _Master_ action

```text
[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:

```text
[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](https://github.com/idaholab/moose/blob/devel/tutorials/darcy_thermo_mech/step09_mechanics/problems/step9.i)