Documentation of contact Problems¶

I would like to know the variational formulation you use in your documentation about contact problems (Link: 6.2 Contact Problems — NGS-Py 6.2.2402 documentation)

This is a penalty method, penalizing penetration. But you are free to implement the method you want using symbolic forms.

Thank you for your reply.
But I still can’t read the bilinear form or the weak formulation in the code. Could you help me?

contact.AddIntegrator / AddEnergy adds a weak form/energy.
then contact.Update(displacement, bilinearform)
adds elements to the bf to be used in the next assemble call