# Contact patch test: `contactPatchTest`

Prepared by Ivan Batistić

## Tutorial Aims

- Demonstrate that a uniform pressure field can be transmitted across a non-conformal contact interface;
- Examine the solver performance when solving contact problems in small deformation settings.

## Case Overview

The contact patch test is designed to check can a uniform pressure field can be transmitted across a non-conformal contact interface. There are different versions of the patch test in the literature [1, 2]; here patch test proposed in [3] is considered. The lower block is fixed at the bottom surface, whereas the upper block has a prescribed displacement \(\Delta = 0.01\) m at its top surface (see Figure 1). Both blocks have the same dimensions, \(1\) m width and \(0.5\) m height, and the same material properties, Young's modulus \(E = 1 × 10^6\) Pa and zero Poisson's ratio \(\nu = 0\). Gravitation effects are neglected, and there are no body forces. The problem is solved as static, using one loading increment. At the contact interface, frictionless contact is considered, i.e. \(\mu=0\).

**Figure 1: Problem geometry (dimensions in m) [4]**

## Expected Results

- Under plane strain conditions, the analytical solution to the problem is [1]: \(\sigma_{x} = \tau_{xy}=0\qquad \sigma_{y} = \dfrac{E}{1-\nu^2}\Delta \qquad \sigma_z = \nu \sigma_y.\)

For the considered case with \(\nu=0\), there are no \(\sigma_x\) and \(\sigma_z\) stresses. If one wants to set \(\nu > 0\) the above equation can be used only if the bottom surface of the lower block is allowed to deform freely in the tangential direction. Here the bottom surface of the lower block is held fixed as there is no displacement in the \(x\) direction.

The analytical solution is generated alongside solution fields using the function object compiled when running `>./Allrun`

script. Function object inputs are located in `controlDict `

where one needs to upper block top surface vertical displacement and material data:

```
functions
{
analyticalSolution
{
type contactPatchTestAnalyticalSolution;
// Upper block top surface vertical displacement
displacement 0.01;
// Young's modulus
E 1e6;
// Poisson's ratio
nu 0.0;
}
}
```

Figure 2 shows the distribution of the relative error field \(e\). The relative error (in percentages) is defined as: \(e(\%)=\dfrac{\left| \sigma_y - \sigma_y^{analytical} \right|}{\left|\sigma_y^{analytical}\right|} \cdot 100.\)

One can see that the error distribution is uniform, meaning that the `solidContact`

boundary condition can correctly transmit a spatially uniform pressure field across a flat non-conformal interface in complete contact. Results for Fig. 2 are obtained using `foam-extend 4.1`

and `linearGeometryTotalDisplacement`

solver, with the normal penalty scale set to \(f_n^{scale}=5\).

**Figure 2: Distribution of the relative error**

## Running the Case

The tutorial case is located at `solids4foam/tutorials/solids/linearElasticity/contactPatchTest`

. The case can be run using the included `Allrun`

script, i.e. `> ./Allrun`

. In this case, the Allrun consists of creating the mesh using `blockMesh`

(`> blockMesh`

) followed by running the `solids4foam`

solver (`> solids4Foam`

).

### References

[1] Wriggers, P.. Computational contact mechanics. Vol. 2. Berlin: Springer, 2006.

[3] Crisfield MA. Re-visiting the contact patch test. Int J Numer Methods Eng. 2000.