Hi,
I am working on a self-contact problem of deforming elastic solid. I would like to know how to implement well the penalty method in FEniCS to avoid auto-collisions.
***
Supposing the problem is:
- Supposing the solid undergoes large deformations that lead to auto-penetration as shown on the below pictures:
(reference: V. A. Yastrebov, Numerical methods in contact mechanics, John Wiley & Sons, 2013), with xS: a slave node and xM: its projection onto the opposite boundary of the same solid (~master node) and n: the normal vector at xM, as shown on the two above pictures.
Then, in case of self-penetration, the variation form would becomes:
And writting the above equation with v instead of du as the test-function, the variational form to implement in FEniCS would be:
***
Here are my questions:
-
Is that last equation correct and should-it be the one to implement in FEniCS?
-
Do I have to compute local test function v (vS and vM) for both contact boundaries, i.e. at both slave node xS and at its master projection xM ? If so, how should I express the test function locally with FEniCS?
-
How to correctly project the ”slave” node xS onto ”master” boundary to get the normal gap:
-
As in that case, the “slave” and “master” contact boundaries are actually the same object (self-
contact), how to distinguish them? Which are the methods with FEniCS? Building two local submeshes with distinct boundaries? -
Then, to compute the projection xM of the slave node, are there also specific methods?
-
Many thanks for your help,
Anne