Cylindrical punch with rounded edge: punch
 Prepared by Philip Cardiff and Ivan Batistić
Tutorial Aims
- Demonstrate the solver performance when solving contact problems in small deformation settings;
- Demonstrate the process of meshing multiple bodies using the cartesianMeshutility.
Case Overview
In this example, a cylindrical punch is pressed into an elastic cylindrical foundation (Figure 1). This case is proposed as a contact mechanics benchmark by the National Agency for Finite Element Methods and Standards (NAFEMS) [1]. The material properties of the punch are similar to steel (\(E_p = 210\) GPa, \(\nu_p = 0.3\)), whereas the foundation has aluminium properties (\(E_f = 70\) GPa, \(\nu_f = 0.3\)). The punch is loaded with a uniform pressure distribution at its top surface \(p = 100\) MPa. The bottom surface of the elastic foundation is fixed. Friction is considered, and the coefficient of friction is set to \(\mu=0.1\). The problem is solved with one load increment, neglecting inertia and gravity effects. The case can be solved using an axisymmetric computational model; however, the setup herein considers a 3-D model with symmetries.
![Figure 1: Problem geometry [2, 3]](/tutorials/more-tutorials/solid-mechanics/linearElasticity/images/punch-geometry.png)
Figure 1: Problem geometry [2, 3]
Expected Results
The resulting displacement and stress fields are expected to be axisymmetric. At the edge of the contact region, a stress peak can be expected due to the singular pressure distribution. More precisely, the cylinder fillet radius is too small to avoid having a geometric discontinuity causing a singular pressure distribution. This means peak contact pressures increase at this location with increasing mesh density; however, note that displacement fields converge to a mesh-independent solution.
Figure 2 shows the convergence of axial displacement, radial displacement, and contact pressure as the mesh is refined [2]. The solids4foam results match well with results reported in the literature [1].
![Figure 2: Radial and axial displacement predictions; contact pressure distribution [2]](/tutorials/more-tutorials/solid-mechanics/linearElasticity/images/punch-results.png)
Figure 2: Radial and axial displacement predictions; contact pressure distribution [2]
Running the Case
The tutorial case is located at solids4foam/tutorials/solids/linearElasticity/punch. The case can be run using the included Allrun script, i.e. > ./Allrun. In this case, the Allrun script consists of the following steps:
-  Creating the punch mesh: cp system/punch_top/meshDict system/meshDict solids4Foam::runApplication -s punch_top cartesianMesh mkdir constant/punch_top mv constant/polyMesh constant/punch_top/
-  Creating the bottom mesh: cp system/punch_bottom/meshDict system/meshDict solids4Foam::runApplication -s punch_bottom cartesianMesh
-  Merging two meshes (this is done because cfMeshcannot make meshes for separate bodies at once):solids4Foam::runApplication mergeMeshes . . -addRegion punch_top -noFunctionObjects
-  Scaling mesh: transformPoints -scale "(0.001 0.001 0.001)" >& log.transformPoints
-  Creating patches and naming them: solids4Foam::runApplication autoPatch 45 -overwrite solids4Foam::runApplication createPatch -overwrite solids4Foam::runApplication splitPatch -overwrite
-  Creating cell zones for the punch and foundation (bottom region) so different material properties can be assigned: solids4Foam::runApplication setSet -batch batch.setSet solids4Foam::runApplication setsToZones
-  Running the case: solids4Foam::runApplication solids4Foam