Julia code to calculate pure shear deformations

## Introduction

Pure shear and planar tension may seem totally different, but as I will show in this article, in some conditions they are imposing the same deformation gradient, and are therefore the same.

Also see our article on: “Is uniaxial compression the same as biaxial tension?“.

## First, What is the Difference Between Pure Shear and Simple Shear?

**Pure Shear**

**Simple Shear**

\[ \mathbf{F} = \begin{bmatrix} 1/(1-\alpha^2) & 0 & 0\\ 0 & 1 & \alpha\\ 0 & \alpha & 1\end{bmatrix} \]

Two off-diagonal shear terms are non-zero. The \(F_{11}\) term was selected in order to conserve the volume.

\[ \mathbf{F} = \begin{bmatrix} 1 & 0 & 0\\ 0 & 1 & \alpha\\ 0 & 0 & 1\end{bmatrix} \]

One off-diagonal shear term is non-zero.

The true strain for these two loading modes can be quickly calculated using the (free) Julia language. The following code gives the results to the right.

` ````
```using LinearAlgebra
alpha = 0.4
F = [ 1/(1-alpha^2) 0 0; 0 1 alpha; 0 alpha 1 ]
Eln = log(sqrt(F * transpose(F)))

` ````
```True Strain:
0.174353 0.0 0.0
0.0 -0.0871767 0.423649
0.0 0.423649 -0.0871767

## Pure Shear - Deformations

The deformation gradient for Pure shear was listed in the previous section. One of the cool features of the deformation gradient is that if you apply it to a position vector, then the resulting vector becomes the position of that location in its deformed state. The Julia code shown below show how a circle if deformed when operated on by pure shear with \(\alpha=0.1\) and \(\alpha=0.3\). The resulting shapes are shown below.

` ````
```using Plots
pyplot()
function runit(alpha)
F = [1/(1-alpha*alpha) 0 0; 0 1 alpha; 0 alpha 1]
N = 90
angles = range(0, 2*pi, length=N)
x0 = zeros(N)
y0 = zeros(N)
x1 = zeros(N)
y1 = zeros(N)
for (i,angle) in enumerate(angles)
pos0 = [0; cos(angle); sin(angle)]
x0[i] = pos0[2]
y0[i] = pos0[3]
pos1 = F * pos0
x1[i] = pos1[2]
y1[i] = pos1[3]
end
plot(x0, y0, label="Undeformed", linestyle=:solid, linewidth=2)
plot!(x1, y1, label="Deformed", linestyle=:solid, linewidth=2)
plot!(size=(600,600), xlims=(-2.0, 2.0), ylims=(-2.0, 2.0), legend=:topright, framestyle=:box)
plot!(tickfontsize=14, guidefontsize=16, legendfontsize=10, xlabel="Y-axis", ylabel="Z-axis")
savefig("fig.png")
end
runit(1.0)

## Planar Tension - Deformations

Planar tension is performed using wide specimens that are not very tall (the width is typically 10X the height). By using this specimen geometry the deformation state becomes almost planar. That is, there is no deformation in the horizontal 2-direction.

Now, rotate the deformation gradient by 45°C around the 1-direction:

\[ \mathbf{F} = \mathbf{Q}^{\top} \cdot \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1+\alpha & 0\\ 0 & 0 & 1/(1+\alpha) \end{bmatrix} \cdot \mathbf{Q} \]

where

\[ \mathbf{Q} = \begin{bmatrix} 1 & 0 & 0\\ 0 & \cos(45^\circ) & \sin(45^{\circ})\\ 0 & -\sin(45^{\circ}) & \cos(45^{\circ}) \end{bmatrix} \]

For the case when \( \alpha \) is close to zero, the equation for the deformation gradient can be simplified to:

\[ \mathbf{F} = \begin{bmatrix} 1+\Delta & 0 & 0\\ 0 & 1 & \alpha\\ 0 & \alpha & 1 \end{bmatrix} \]

##### Which is the same as for pure shear!

The derivation shows that pure shear and planar tension are the same if the deformations are small. To explore this further I calculated the main stress in pure shear and planar tension using different values of \( \alpha \) using an incompressible neo-Hookean material model with a shear modulus of 1 MPa. The figure below shows that there is good agreement between pure shear and planar tension for \( \alpha < 0.4 \).

## Conclusions

- Pure shear is the same as planar tension IF the material is incompressible and the deformations are small.
- Both planar tension and pure shear experiments are difficult to perform.
- Always use DIC when running a planar tension test in order to verify that the deformation field is valid.