Our last step will be to do a 3D simulation. To create the mesh, we will use the same 2D mesh, but extrude it using the ```MeshModifiers``` block in MOOSE. We will extrude the mesh by a thickness of 0.5 and mesh it with two elements across the thickness. Below the mesh block, add the block
```puppet
[MeshModifiers]
  [./extrude]
    type = MeshExtruder
    extrusion_vector = '0 0 0.5'
    num_layers = 2
    bottom_sideset = 'back'
    top_sideset = 'front'
  [../]
[]
```
To learn more about the ```MeshModifiers``` block, look [here](http://mooseframework.org/wiki/MooseSystems/MeshModifiers/)

Next, we need to convert our simulation from a 2D axisymmetric one to a 3D one. So, remove the ```Problem block``` and change ```disp_r``` to ```disp_x``` and ```disp_z``` to ```disp_y```. Then, add the third displacement, ```disp_z``` to the `displacements` string in the `GlobalParams` block:
```yaml
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
[]
```

Also, add one more fixed boundary condition for ```disp_z``` with ```boundary = back``` in the ```BCs``` block. The 3D simulation will be significantly slower, so also decrease the ```end_time``` to 16 rather than 20.

Check your simulation against ```part_3.1.i```.

Run the simulation. You may want to run it in parallel if you have the processors. To run in parallel on the command line, use the command
```yaml
mpirun -np 8 ~/EXECUTABLE_PATH/tensor_mechanics-opt -i INPUT_FILE_NAME.i
```
You can also run in parallel using PEACOCK.

The z-displacements and the stress strain curve are shown on the right.

[image:291 align:right]
    3D domain shaded by the z-displacement

[image:292 align:right]
    Stress-strain curve from 3D domain