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

You are not logged in.

#1 2016-05-24 19:36:06

GuillermoBarraza
Member
Registered: 2016-05-24
Posts: 49

[SOLVED]Mechanical contact of two cylinders

Hi, everyone.

I'm having troubles with a mechanical contact of two cylinders. The idea is simple: one cylinder is laying on the other sharing just a planar face (shown in the attached file). I have a pressure on a face of the top cylinder and a restriction of encastre on the bottom face of the other cylinder. Runing my Code_Aster .comm I get the next error:

!------------------------------------------------------------------------------------------------------------!
   ! <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 70 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.        !
   !                                                                                                            !
   !    * 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'm quite sure I didn't overlooked any boundary condition, and already tried changing the solver to MUMPS, but didn't work. Could anyone help me?

Thanks

Last edited by GuillermoBarraza (2016-11-15 20:58:10)


Attachments:
Cylinders.zip, Size: 5.72 KiB, Downloads: 367

Offline

#2 2016-05-25 06:36:14

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

Re: [SOLVED]Mechanical contact of two cylinders

hello

GuillermoBarraza wrote:

I'm quite sure I didn't overlooked any boundary condition...Thanks

i am almost  sure you did!
try this


BC_F=AFFE_CHAR_MECA(
	MODELE=MODEL,
       FACE_IMPO=(
            _F(
		  GROUP_MA='Grempot_Faces',
           	  DX=0.0,DY=0.0,DZ=0.0,
	      ),
	),
);
#split the load from the fix condition
load=AFFE_CHAR_MECA(
	MODELE=MODEL,
        PRES_REP=(
             _F(GROUP_MA='Grflujo_Faces',PRES=1.0e+06,),
         ),
);
#set a load stepping
load_m=DEFI_FONCTION(
    NOM_PARA='INST',
    VALE=(0,0, 1,1),
    PROL_GAUCHE='CONSTANT',PROL_DROITE='CONSTANT',
);

RESULT=STAT_NON_LINE(
	MODELE=MODEL,
	CHAM_MATER=MATER,
	EXCIT=(
		_F(CHARGE=BC_F,),
		#apply the load stepping
		_F(CHARGE=load,TYPE_CHARGE='FIXE_CSTE',FONC_MULT=load_m,),
	),
	CONTACT=CONT,
	#this little bit about material behaviour
	COMP_INCR=_F(
             RELATION='ELAS',DEFORMATION='PETIT',
             GROUP_MA=('Grcilindro1_Volumes','Grcilindro2_Volumes',),
        ),
	INCREMENT=_F(LIST_INST=LIST,),
	NEWTON=_F(MATRICE='TANGENTE',REAC_ITER=1,),
	CONVERGENCE=_F(RESI_GLOB_RELA=0.0001,ITER_GLOB_MAXI=30,),
	SOLVEUR=_F(METHODE='MUMPS',), #if you want
 );

i suggest you my book for further reading,
freely available here
http://framabook.org/beginning-with-code_aster/


jean pierre aubry


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

Offline

#3 2016-05-25 16:22:29

GuillermoBarraza
Member
Registered: 2016-05-24
Posts: 49

Re: [SOLVED]Mechanical contact of two cylinders

Thanks Jean Pierre.

I included the part that was missing but now I have the next error:

ERREUR A LA VERIFICATION SYNTAXIQUE - INTERRUPTION
>> JDC.py : DEBUT RAPPORT
DEBUT CR validation : fort.1
   Etape : STAT_NON_LINE    ligne : 90    fichier : u'fort.1'
      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      ! Mots clés inconnus : COMP_INCR !
      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   Fin Etape : STAT_NON_LINE
FIN CR validation :fort.1

So now, reading the documentation of Code_Aster, it seems that for version 12.x it changed to COMPORTEMENT instead of COMP_INCR COMP_ELAS. I tried with this, obtaining the same error. I attach the .hdf and .comm files. I don't know if it's a bad selection of the mesh groups for the contact condition or something else.

Best regards,

Guillermo

Last edited by GuillermoBarraza (2016-05-25 16:53:46)

Offline

#4 2016-05-25 18:44:22

GuillermoBarraza
Member
Registered: 2016-05-24
Posts: 49

Re: [SOLVED]Mechanical contact of two cylinders

GuillermoBarraza wrote:

I attach the .hdf and .comm files.

I forgot to add the files. Here they are.

Last edited by GuillermoBarraza (2016-05-25 18:46:55)


Attachments:
Cylinders.zip, Size: 160.16 KiB, Downloads: 409

Offline

#5 2016-05-26 06:33:03

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

Re: [SOLVED]Mechanical contact of two cylinders

Grcilindro1_Volumes is completely free in space with STAT_NON_LINE this yield a singular matrix

you have to fix it

you can fix Grcontacto1_Faces in X and Y
and
provide a spring, K_TR_D_L element from the middle of Grflujoo1_Faces to a point some length above
give it the property of a very soft spring
then Grcilindro1 will be restrained enough


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

Offline

#6 2016-05-27 18:18:14

GuillermoBarraza
Member
Registered: 2016-05-24
Posts: 49

Re: [SOLVED]Mechanical contact of two cylinders

I haven't find the way to implement K_TR_D_L, so I changed one of the boundary conditions (the force on the top face) for a imposed displacement (DZ=*value*) and it seems that Grcilindro1_Volumes is fully restrained. And now I don't have the same error, now I have one of Non Convergence.
I have tried to change the maximum number of iterations, refine the time step, etc. and still have the same mistake. Do I have to keep increasing the number of  iterations?


Attachments:
Cylinders.zip, Size: 160.21 KiB, Downloads: 357

Offline

#7 2016-05-30 06:31:31

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

Re: [SOLVED]Mechanical contact of two cylinders

you have to learn how to use discrete element, they are most useful

attached is a file that solves with

1/ splitting the BC/loads between fixed and variable with time

2/ changing CONTACT to FORMULATION='DISCRETE',


Attachments:
mecanico2.comm, Size: 3.25 KiB, Downloads: 382

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

Offline

#8 2016-06-01 00:01:20

GuillermoBarraza
Member
Registered: 2016-05-24
Posts: 49

Re: [SOLVED]Mechanical contact of two cylinders

Thanks a lot, Jean Pierre. Now it works without problem, it's just that I'd rather do it with an imposed force or displacement on the top of "cilindro1" instead of moving the hole cylinder a certain distance.

Offline

#9 2021-12-05 15:09:47

miib
Member
From: La Capanna Dello Zio Tom
Registered: 2021-03-23
Posts: 179

Re: [SOLVED]Mechanical contact of two cylinders

? wrote:

# ------------------------------------------------------------------------------------------
  # Commands No:  0008 Concept of the type:  modele_sdaster
  # ------------------------------------------------------------------------------------------
  model = AFFE_MODELE(MAILLAGE=mesh,
                      AFFE=(_F(GROUP_MA=('d', ),
                               PHENOMENE='MECANIQUE',
                               MODELISATION=('3D', ),),
                            _F(GROUP_MA=('u', ),
                               PHENOMENE='MECANIQUE',
                               MODELISATION=('3D', ),),
                            _F(GROUP_MA=('f', ),
                               PHENOMENE='MECANIQUE',
                               MODELISATION=('2D_DIS_TR', ),),
                            ),
                      INFO=1,
                      DISTRIBUTION=_F(PARTITIONNEUR='METIS',
                                      METHODE='SOUS_DOMAINE',),
                      VERI_JACOBIEN='OUI',)


Sur les 1260 mailles du maillage mesh, on a demandé l'affectation de 744, on a pu en affecter 744
Modélisation     Type maille  Élément fini     Nombre
2D_DIS_TR        SEG2         MECA_2D_DIS_TR_L 1
3D               TETRA4       MECA_TETRA4      743
   
   !--------------------------------------------------------------------!
   ! <A> <MODELE1_14>                                                   !
   !                                                                    !
   ! Le modèle contient un mélange d'éléments finis 2D (plan Oxy) et 3D !
   !                                                                    !
   !   -> Risque & Conseil :                                            !
   !      Sur ce genre de modèle, on ne sait                            !
   ! pas déterminer s'il est 2D ou 3D.                                  !
   !      Parfois, cela empêche de faire le "bon choix".                !
   !                                                                    !
   !                                                                    !
   ! This is a warning. If you do not understand the meaning of this    !
   !  warning, you can obtain unexpected results!                       !
   !--------------------------------------------------------------------!

i have a problem with the model


Attachments:
soft.zip, Size: 19.08 KiB, Downloads: 82

I ever used code_aster for study.
Code_Aster ??? is the Novacula Occami of the FEM world.
“Non è bene cercare di fermare il progresso della conoscenza. L'ignoranza non è mai meglio della conoscenza.” Enrico Fermi.

Offline

#10 2021-12-05 17:25:37

miib
Member
From: La Capanna Dello Zio Tom
Registered: 2021-03-23
Posts: 179

Re: [SOLVED]Mechanical contact of two cylinders

i'm going a few over using 'DIS_TR'

!-------------------------------------------------------------------------------------!
   ! <EXCEPTION> <CALCUL_10>                                                             !
   !                                                                                     !
   !  The computation of the option FORC_NODA is not possible. It misses the CARA_ELEM.  !
   !                                                                                     !
   ! --------------------------------------------                                        !
   ! Contexte du message :                                                               !
   !    Option         : FORC_NODA                                                       !
   !    Type d'élément : MECA_DIS_TR_L                                                   !
   !                                                                                     !
   !   Maillage       : mesh                                                             !
   !    Maille         : M629                                                            !
   !    Type de maille : SEG2                                                            !
   !    Cette maille appartient aux groupes de mailles suivants                          !
   ! :                                                                                   !
   !       f                                                                             !
   !    Position du centre de gravité de la maille :                                     !
   !       x=0.000500 y=0.000000 z=0.001000                                              !
   !-------------------------------------------------------------------------------------!


I ever used code_aster for study.
Code_Aster ??? is the Novacula Occami of the FEM world.
“Non è bene cercare di fermare il progresso della conoscenza. L'ignoranza non è mai meglio della conoscenza.” Enrico Fermi.

Offline