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

You are not logged in.

#1 2022-01-21 10:40:09

sdr30j651
Member
Registered: 2022-01-19
Posts: 9

[SOLVED] Boundary condition for contact probleme

Hello,

I'm new to code_aster, so I learn it by modeling the given problems from Abaqus tutorials. Unfortunately, I can't get any further in the Kontakt 3d tutorial, so I need help.

Here is a brief description of the model. There are two stacked plates, which partially overlap and are joined by rivets.

The left side face of the lower plate is fixed in the X-direction. And its lowest point of the corner on the symmetry plane is fixed in the Z-direction to avoid the rigid body motion. The right side surface of the upper plate is loaded with a displacement of 2.5 mm in the X-direction.

(Just for information, here is the link to the Abaqus tutorial that I am working now: 130.149.89.49:2080/v2016/books/gsa/ch12s08.html)

For the contact modeling
I set the face direction by ORIE_PIEU and define the contact by DEFI_CONTACT ( Continue, COULOMB).

But I got the same error message because of a singular matrix, no matter how many times I tried.
I think this problem is caused by the lack of a boundary condition, so I would like to ask you which boundary condition I have to set more.

As I see it, weak springs need to be added for constraint in the top plate's x and z directions and the rivet's z-direction. Is that enough, or have I missed something?

I attached my comm and med file.

I would be sincerly grateful for your help.

Last edited by sdr30j651 (2022-01-21 18:19:22)


Attachments:
ContactRivet.tar.xz, Size: 137.57 KiB, Downloads: 172

Offline

#2 2022-01-21 13:13:03

jonas loenartz
Member
Registered: 2021-10-01
Posts: 69

Re: [SOLVED] Boundary condition for contact probleme

Hello,

Sometimes you can encounter the problem of a singular matrix, when parts of your mesh are only "held in place" by the contact (even if it is only certain DOFs), because of rigid body motion.
I had a similar issue in the past and the way I solved this, was, by adding CONTACT_INIT = 'OUI' and SEUIL_INIT = 1.0.
You basically say, that the initial contact state is 'true" and to block lateral motion, you set an initial value for contact pressure in your prefered unit-system (1.0 in the code snippet) . This applies only for the initial steps of your calculation and won't be reflected in the results.

ZONE=(_F(COULOMB=0.5,
                                GROUP_MA_ESCL=('C_Top_rs', ),
                                GROUP_MA_MAIT=('C_Top_pr', ),
                                CONTACT_INIT = 'OUI',
			        SEUIL_INIT = 1.0,
                                SANS_GROUP_MA=('E_common_p13', )),
                                ...
             )

would be the way to go here. If your calculation still doesn't converge, you can try increasing SEUIL_INIT.

Good luck and I hope this will do the trick!
Jonas

Offline

#3 2022-01-21 15:12:57

sdr30j651
Member
Registered: 2022-01-19
Posts: 9

Re: [SOLVED] Boundary condition for contact probleme

Hello,

Thank you so much, Jonas Loenartz, for your tips. I learned a new one, thanks for your help!

But unfortunately, my model still has the singularity problem, although I tried it with and without soft springs and also with different values of SEUIL_INIT.

Therefore, I assume there are some problems with the BC. I assume that it is not due to the under constraint but to the over constraint. Especially, due to the contact surfaces. Could it be the reason for the singular matrix?  and If it is, could I solve this issue by adding chamfers at the edges where several contacts exist?

In the attached file, I enclosed comm and med file of the model with soft springs, and additionally a pdf file describing graphically the contact zone and BC of my model. Could you please check if something is wrong?

It would be sincerely appreciated if you could help me.

Last edited by sdr30j651 (2022-01-21 15:35:00)


Attachments:
contact_rivet_sorfspring.tar.xz, Size: 509.54 KiB, Downloads: 179

Offline

#4 2022-01-21 15:44:11

jeanpierreaubry
Guru
From: nantes (france)
Registered: 2009-03-12
Posts: 3,981

Re: [SOLVED] Boundary condition for contact probleme

hello

the export file would really help to understand which one of the files is used in UNITE=2,3,4

edit
in addition there is a mixup in the files
there are not enough files to play the case one med file is missing,
another one is a result!!!!

jean pierre aubry

Last edited by jeanpierreaubry (2022-01-21 15:50:25)


consider reading my book
freely available here https://framabook.org/beginning-with-code_aster/

Offline

#5 2022-01-21 16:00:08

sdr30j651
Member
Registered: 2022-01-19
Posts: 9

Re: [SOLVED] Boundary condition for contact probleme

Hello,

thanks for the reply jeanpierreaubry.

Oh sorry. I attached the wrong med file.
I'll upload it again.

The UNITE and the mesh file are matched as follows:
UNITE / File_name
2 / Mesh_pbot
3 / Mesh_comp_pt
4 / Mesh_comp_rv

Best regard


Attachments:
contact_rivet_softspring.tar.xz, Size: 515.14 KiB, Downloads: 193

Offline

#6 2022-01-21 16:22:55

jeanpierreaubry
Guru
From: nantes (france)
Registered: 2009-03-12
Posts: 3,981

Re: [SOLVED] Boundary condition for contact probleme

Degré de liberté de Lagrange associé au blocage du noeud N4825 et de la composante LAGR.

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 19631 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).

the first sentence and the last one are relevant
you may have common nodes in the contact zones

this error appears at the very step as you can see from the message file
there is hardly any need to go any further

this is a very common error


consider reading my book
freely available here https://framabook.org/beginning-with-code_aster/

Offline

#7 2022-01-21 16:29:08

sdr30j651
Member
Registered: 2022-01-19
Posts: 9

Re: [SOLVED] Boundary condition for contact probleme

Hello,

oh It was becuase of common node.
I will try again to solve that problem.

Thank you very much for your reply jean pierre aubry!

Best regard

Offline

#8 2022-01-21 16:37:16

jeanpierreaubry
Guru
From: nantes (france)
Registered: 2009-03-12
Posts: 3,981

Re: [SOLVED] Boundary condition for contact probleme

in fact it may not be that
your zones for contact are very strange i can see some of them that do no thave any chance to ever get in contact
like 'C_Top_pr_f', and 'C_Top_rs', as they belong to the same part


consider reading my book
freely available here https://framabook.org/beginning-with-code_aster/

Offline

#9 2022-01-21 17:02:36

sdr30j651
Member
Registered: 2022-01-19
Posts: 9

Re: [SOLVED] Boundary condition for contact probleme

oh, you're right. I applied the wrong contact pair. Sorry again and thank you for noticing me about it!

The right contact pair for second zone should be "C_Top_rb" (Master) and "C_Top_pr_f" (Slave).
I checked again every pair and I think there are no more wrong pairs.
But sadly I still got the same singularity issue... but this time at a different node.
Thus I think there still remain some common nodes as you informed me before.

Best regard

Offline

#10 2022-01-21 17:23:17

konyaro
Member
From: Genève
Registered: 2016-04-02
Posts: 272

Re: [SOLVED] Boundary condition for contact probleme

Hello,
as written many times on this forum, I advise you to use a more robust contact formulation, for instance:

contact = DEFI_CONTACT(FORMULATION='CONTINUE',
                       FROTTEMENT='COULOMB',
                       MODELE=model,
                       LISSAGE='OUI',
                       REAC_GEOM='CONTROLE',
                       NB_ITER_GEOM=2,
                       ALGO_RESO_GEOM='POINT_FIXE',
                       ALGO_RESO_CONT='NEWTON',
                       ALGO_RESO_FROT='NEWTON',
                       ZONE=(_F(ALGO_CONT='PENALISATION',
                                ALGO_FROT='PENALISATION',
                                COEF_PENA_CONT=200000.0,
                                COEF_PENA_FROT=500.0,
                                COULOMB=0.5,
                                GROUP_MA_ESCL=('C_Top_rs', ),
                                GROUP_MA_MAIT=('C_Top_pr', ),
                                SANS_GROUP_MA=('E_common_p13', )), ...

regards,

Konyaro


Attachments:
Stage_1.comm, Size: 9.38 KiB, Downloads: 183

失敗は成功のもと (L'échec est la base de la réussite)

Offline

#11 2022-01-24 10:25:52

sdr30j651
Member
Registered: 2022-01-19
Posts: 9

Re: [SOLVED] Boundary condition for contact probleme

Thank you sosososo much konyaro! It works!

Best regard

Offline

#12 2022-11-23 16:40:46

markuss
Member
From: Leipzig
Registered: 2020-01-20
Posts: 8

Re: [SOLVED] Boundary condition for contact probleme

konyaro wrote:

Hello,
as written many times on this forum, I advise you to use a more robust contact formulation, for instance:

contact = DEFI_CONTACT(FORMULATION='CONTINUE',
                       FROTTEMENT='COULOMB',
                       MODELE=model,
                       LISSAGE='OUI',
                       REAC_GEOM='CONTROLE',
                       NB_ITER_GEOM=2,
                       ALGO_RESO_GEOM='POINT_FIXE',
                       ALGO_RESO_CONT='NEWTON',
                       ALGO_RESO_FROT='NEWTON',
                       ZONE=(_F(ALGO_CONT='PENALISATION',
                                ALGO_FROT='PENALISATION',
                                COEF_PENA_CONT=200000.0,
                                COEF_PENA_FROT=500.0,
                                COULOMB=0.5,
                                GROUP_MA_ESCL=('C_Top_rs', ),
                                GROUP_MA_MAIT=('C_Top_pr', ),
                                SANS_GROUP_MA=('E_common_p13', )), ...

Konyaro


Hi,
do you know how to interprete the Parameter RESI_FROT, when you are choosing NEWTON for ALGO_RESO_FROT?
Kindly regards,
Markus

Offline