.. _linear_elasticity-two_bodies_contact: linear_elasticity/two_bodies_contact.py ======================================= **Description** Contact of two elastic bodies with a penalty function for enforcing the contact constraints. Find :math:\ul{u} such that: .. math:: \int_{\Omega} D_{ijkl}\ e_{ij}(\ul{v}) e_{kl}(\ul{u}) + \int_{\Gamma_{c}} \varepsilon_N \langle g_N(\ul{u}) \rangle \ul{n} \ul{v} = 0 \;, \quad \forall \ul{v} \;, where :math:\varepsilon_N \langle g_N(\ul{u}) \rangle is the penalty function, :math:\varepsilon_N is the normal penalty parameter, :math:\langle g_N(\ul{u}) \rangle are the Macaulay's brackets of the gap function :math:g_N(\ul{u}) and .. math:: D_{ijkl} = \mu (\delta_{ik} \delta_{jl}+\delta_{il} \delta_{jk}) + \lambda \ \delta_{ij} \delta_{kl} \;. Usage examples:: sfepy-run sfepy/examples/linear_elasticity/two_bodies_contact.py --save-regions-as-groups --save-ebc-nodes sfepy-view two_bodies.mesh.vtk -f u:wu:f2:p0 1:vw:p0 gap:p1 -2 python3 sfepy/scripts/plot_logs.py log.txt sfepy-view two_bodies.mesh_ebc_nodes.vtk -2 sfepy-view two_bodies.mesh_regions.vtk -2 .. image:: /../doc/images/gallery/linear_elasticity-two_bodies_contact.png :download:source code  .. literalinclude:: /../sfepy/examples/linear_elasticity/two_bodies_contact.py