Prepared by Ivan Batistić
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\).
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\).
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
).
[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.