Welcome to the forums. Please post in English or French.

You are not logged in.

#1 2022-08-18 22:11:28

Registered: 2022-07-06
Posts: 3

SIngularity, while trying to solve a contact with friction

Hello i am trying to solve a contact problem, in which I have 2 parts touching each other, one of them has a vertical downward force, thus it will compress and slide a little onto the second part ( which simulates a concrete floor), but for I am not able to solve a singularity problem:

║ <EXCEPTION> <FACTOR_11>                                                                        ║
║                                                                                                ║
║ Problème : la matrice est singulière ou presque singulière :                                   ║
║   Lors de la factorisation de la matrice, on a rencontré un problème                           ║
║   (pivot nul ou presque nul) à la ligne 759 qui correspond au degré de liberté donné           ║
║ ci-dessus.                                                                                     ║
║                                                                                                ║
║ Risques et conseils :                                                                          ║
║    * Si la ligne correspond a un degré de liberté physique, il s'agit probablement d'un        ║
║ mouvement                                                                                      ║
║      de corps rigide mal bloqué.                                                               ║
║      Vérifiez les conditions aux limites.                                                      ║
║      Si vous faites du contact, il ne faut pas que la structure ne "tienne" que par le         ║
║ contact.                                                                                       ║
║      Vérifiez également les caractéristiques matériaux (module d'Young, ...).                  ║
║                                                                                                ║
║    * Si la ligne correspond a un degré de liberté de Lagrange, il s'agit sans doute d'une      ║
║ condition                                                                                      ║
║      limite redondante.                                                                        ║
║      En particulier, il se peut que la relation linéaire surabondante provienne des conditions ║
║ de contact.                                                                                    ║
║      Peut-être devriez vous exclure certains noeuds des conditions de contact                  ║
║      (mots clés SANS_NOEUD et SANS_GROUP_NO).                                                  ║
║                                                                                                ║
║    * Si le solveur utilisé est LDLT ou MULT_FRONT, vous pouvez utiliser le solveur MUMPS       ║
║      car celui-ci est le seul à pouvoir factoriser les matrices qui ne sont pas définies       ║
║ positives.                                                                                     ║
║                                                                                                ║
║    * Parfois, en parallèle, le critère de détection de singularité de MUMPS est trop           ║
║ pessimiste ! Il reste néanmoins souvent                                                        ║
║      possible de faire passer le calcul complet en relaxant ce critère (augmenter de 1 ou 2 la ║
║ valeur du mot-clé NPREC) ou                                                                    ║
║      en le débranchant (valeur du mot-clé NPREC=-1) ou en relançant le calcul sur moins de     ║
║ processeurs.                                                                                   ║
║                                                                                                ║
║    * Il se peut aussi que ce phénomène soit tout à fait normal avec X-FEM si la fissure passe  ║
║      très près d'un noeud.                                                                     ║
║      Si le nombre de décimales perdues n'est pas trop grand (max 10 décimales),                ║
║      vous pouvez relancer le calcul en augmentant le nombre de décimales perdues autorisé :    ║
║      mot-clé NPREC du mot clé facteur SOLVEUR.                                                 ║
║      Sinon, contactez l'équipe de développement.                                               ║
║                                                                                                ║

I have already tried with different options in DEFI_CONTACT, but nothing seems to work, also checked the geometries by using LIASON_MAIL( to check if there is a problem with them) and the simulation ran perfectly.

This is my first time trying to use DEFI_CONTACT and I have read some documentation but I really don't know what do do now and I would really appreciate some help.

I have attached the comm file to this post.

Thanks in Advance

RunCase_1_Stage_1.comm, Size: 4.41 KiB, Downloads: 21


#2 2022-08-19 09:25:46

Registered: 2019-06-18
Posts: 332

Re: SIngularity, while trying to solve a contact with friction


you do not show your mesh, the reason for the singularity could be there. However, as a general advice for CONTACT with FRICTION:
First get your simulation to converge without friction, then switch on friction (if you can reasonably avoid friction, then do it without). If you have a singularity, try to find the location of the node (only possible if you use 'Build Compound' in mesh module, likely not possible with ASSE_MAILLAGE (numbering of nodes might change!)). In 'Build Compound' do not use 'Merge nodes' if you use CONTACT:
My general recipe for CONTACT is:
1) Mesh: the slave surface must be finer than the master surface
2) Reorient the normal vector of the contact surfaces (ORIE_PEAU....), you did not do this.
3) use a FONC_MULT for ramping up the force (fixations must be separate BC from forces; you may add more than one BC in STAT_NON_LINE). You did not do this.
4) a well defined static problem, also with CONTACT, normally does not need many timesteps, one should suffice. What do I mean by that: if your problem is not well defined (additional degrees of freedom somewhere, or dangling nodes etc.), many timesteps will likely not save you in a static, non-linear problem.
5) in DEFI_CONTACT, I found the safest way to do it with PENALISATION (also for FRICTION), and POINT_FIXE for everthing else. Maybe start with this, and give it a high enough NB_ITER_GEOM (maybe between 5 and 10 depending on geometry). Your coef_pena_cont is small, assuming element sizes in the mm-range (but I do not know your element sizes...).
6) during the simulation, if RESI_GLOB_RELA is not much higher than, let's say, 10^-4 you are likely to get convergence. If it is around 1 or 1^-1, then you are likely in trouble.

This is what I mostly do, others may find different approaches,


Last edited by mf (2022-08-19 09:31:49)