d4.06.14 Structures de données sd_contact#

Résumé:

Ce document décrit le contenu de l’objet de type sd_contact produit par la commande DEFI_CONTACT mais également quelques objets utilisés lors de la résolution dans les opérateurs non-linéaires.

Table des Matières

Structure de définition du contact#

sd_contact (K8) ::= record

 /FORMULATION = toutes

(o) “.CHME.MODEL.NOMO” : V K8 long = 1 (o) “.CONTACT.PARACI” : V I long = ZPARI (o) “.CONTACT.PARACR” : V R long = ZPARR (o) “.TYPE” : V K8 long = 1

/FORMULATION = “LIAISON_UNIL”

(o) “.UNILATE.NDIMCU” : V I long = 2 (o) “.UNILATE.CMPGCU” : V K8 long = NCMPG (o) “.UNILATE.COED” : V K8 long = NNOCU (o) “.UNILATE.COEG” : V K8 long = NCMPG (o) “.UNILATE.LISNOE” : V I long = NNOCU (o) “.UNILATE.POINOE” : V I long = NNOCU+1 (o) “.UNILATE.COEFPE” : V Rlong = NNOCU

/FORMULATION = contact unilatéral (“DISCRETE” ou “CONTINUE” ou “XFEM”)

  1. “.CONTACT.NDIMCO” : V I long = ZDIME

/FORMULATION = maillées (“DISCRETE” ou “CONTINUE”)


(o) “.CONTACT.METHCO” : V I long = ZMETH*NZOCO (o) “.CONTACT.DIRAPP” : V K8 long = 3*NZOCO (o) “.CONTACT.DIRNOR” : V K8 long = ZDIRN*NZOCO (o) “.CONTACT.JFO1CO” : V K8 long = NZOCO (o) “.CONTACT.JFO2CO” : V K8 long = NZOCO (o) “.CONTACT.TOLECO” : V R long = ZTOLE*NZOCO (o) “.CONTACT.JEUCOQ” : V R long = NMACO (o) “.CONTACT.JEUPOU” : V R long = NMACO

(o) “.CONTACT.PZONECO” : V I long = NZOCO+1 (o) “.CONTACT.PSUMACO” : V I long = NSUCO+1 (o) “.CONTACT.PSUNOCO” : V I long = NSUCO+1 (o) “.CONTACT.MAILCO” : V I long = NMACO (o) “.CONTACT.NOEUCO” : V I long = NNOCO (o) “.CONTACT.MANOCO” : V I long = NMANO (o) “.CONTACT.PMANOCO” : V I long = 1+NNOCO (o) “.CONTACT.NOMACO” : V I long = NNOMA (o) “.CONTACT.PNOMACO” : V I long = 1+NMACO

(f) “.CONTACT.PSSNOCO” : V I long = 1+NZOCO (f) “.CONTACT.SSNOCO” : V I long = STOCNO


(o) “.CONTACT.TYPENO” : V I long = ZTYPN*NNOCO (o) “.CONTACT.TYPEMA” : V I long = ZTYPM*NMACO (o) “.CONTACT.MAESCL” : V I long = ZMAES*NTMAE

/FORMULATION = “DISCRETE” (o) “.CONTACT.CARADF” : V R long = ZCMDF*NZOCO

  1. “.CHME” : V sd_char_meca

/FORMULATION = “CONTINUE” (o) “.CONTACT.CARACF” : V R long = ZCMCF*NZOCO (f) “.CONTACT.PSANOFR” : V I long = 1+NZOCO (f) “.CONTACT.SANOFR” : V I long = STOCNO (f) “.CONTACT.EXCLFR” : V R long = ZEXCL*NZOCO

  1. “.CHME.LIGRE” : V sd_ligrel

/FORMULATION = “XFEM” (o) “.CONTACT.CARAXF” : V R long = ZCMXF*NZOCO (o) “.CONTACT.MODELX” : V K8 long = 1 (o) “.CONTACT.XFIMAI” : V K8 long = NZOCO (o) “.CONTACT.XNRELL” : V K24 long = NFIS (o) “.CONTACT.MAESCX” : V I long = ZMESX*NTMAE

La longueur des SD pour le contact est stockée dans la routine FORTRAN CFMMVD. L’appel est simple:

ZDIME = CFMMVD('ZDIME')

Par exemple, ZDIMEdonne la longueur de l’objet DEFICO(1:16)//”.NDIMCO”. Lorsque la SD est multi-zones, la valeur ZLONGretournée par CFMMVDest un multiplicateur (la longueur totale de l’objet vaut alors NZOCO*ZLONGavec NZOCO le nombre de zones en contact). Tout changement de la longueur des SD de contact doit passer par cet utilitaire. On prendra garde à répercuter simultanément le changement dans sd_contact.py.

Objets communs pour toutes les formulations#

(o)    '.CHME.MODEL.NOMO' : V K8 long = 1

(o)    '.CONTACT.PARACI' : V I long = ZPARI

(o)    '.CONTACT.PARACR' : V R long = ZPARR

(o)    '.TYPE' : V K8 long = 1

Voici la description des objets uniques (c’est-à-dire ne dépendant pas de la zone de contact) pour toutes les méthodes. Il y a trois objets:

“.CHME.MODELE.NOMO” – donne le nom du MODELE

“.CONTACT.PARACI” – différents paramètres de type entier - routine d’accès unique CFDISI

“.CONTACT.PARACR”– différents paramètres de type réel - routine d’accès unique CFDISR

“.TYPE”– type de la charge (“MECA_RE”)

Pour chaque élément des objets contenant les paramètres, on donne dans le tableau ci-dessous:

  1. L’index;

  2. Une description;

  3. Le(s) mot-clef(s) concerné(s) dans DEFI_CONTACT;

  4. La question à poser dans CFDISIou CFDISR;

  5. Si l’information est pertinente (O) ou pas (N) pour chaque FORMULATION( D : DISCRETE, C : CONTINUE, X : XFEM, L : LIAISON_UNIL)

Paramètres de type entier PARACI#

(o)    '.CONTACT.PARACI' : V I long = ZPARI

Index

Description

DEFI_CONTACT

Question CFDISI

D

C

X

U

1

Type de réactualisation géométrique 0 –SANS -1 – AUTOMATIQUE x –CONTROLEavec x=NB_ITER_GEOM

REAC_GEOM NB_ITER_GEOM

NB_ITER_GEOM

O

O

O

N

2

Arrêt sur matrice de contact singulière 0 – OUI 1 – NON

STOP_SINGULIER

STOP_SINGULIER

O

N

N

O

3

Nombre de seconds membres simultanés pendant la construction du complément de Schur

NB_RESOL

NB_RESOL

O

N

N

O

4

Type de formulation 1 – DISCRETE 2 – CONTINUE 3 – XFEM 4 – LIAISON_UNIL

FORMULATION

FORMULATION

O

O

O

O

5

Nombre multiplicateur d’itérations de contact x –ITER_CONT_TYPE=”MULT” avec x=ITER_CONT_MULT -1–ITER_CONT_TYPE=”MAXI”

ITER_CONT_TYPE ITER_CONT_MULT

ITER_CONT_MULT

O

O

O

N

6

Nombre maximum d’itérations géométriques

ITER_GEOM_MAXI

ITER_GEOM_MAXI

O

O

O

N

7

Nombre maximum d’itérations de frottement

ITER_FROT_MAXI

ITER_FROT_MAXI

N

O

O

N

8

Zones toutes en mode sans calcul 0 – NON 1 – OUI

RESOLUTION

ALL_VERIF

O

O

N

N

9

Type d’algorithme pour la géométrie 0 – POINT_FIXE 1 – NEWTON

ALGO_RESO_GEOM

ALGO_RESO_GEOM

O

O

O

N

10

Nombre maximumd’itérations de contact x –ITER_CONT_TYPE=”MAXI” avec x=ITER_CONT_MAXI -1–ITER_CONT_TYPE=”MULT”

ITER_CONT_TYPE ITER_CONT_MAXI

ITER_CONT_MAXI

N

O

O

N

11

Zones toutes en contact initial (” INTERPENETRE “) 0 – NON 1 – OUI

CONTACT_INIT

ALL_INTERPENETRE

N

O

N

N

12

Nombre d’itérations du GCP

ITER_GCP_MAXI

ITER_GCP_MAXI

O

N

N

N

13

Type de préconditionneur du GCP 0 – SANS 1 – DIRICHLET

PRE_COND

PRE_COND

O

N

N

N

14

Nombre d’itérations du préconditionneur du GCP

ITER_PRE_MAXI

ITER_PRE_MAXI

O

N

N

N

15

Type de Recherche linéaire pour GCP 0 – ADMISSIBLE 1 – NON_ADMISSIBLE

RECH_LINEAIRE

RECH_LINEAIRE

O

N

N

N

16

Modèle axisymétrique 0 – NON 1 – OUI

Dans AFFE_MODELE

AXISYMETRIQUE

N

O

N

N

17

Méthode pour le contact- DISCRETE 1 – CONTRAINTE 2 – GCP 4 – PENALISATION

ALGO_CONT

ALGO_CONT

O

N

N

N

Méthode pour le contact- CONTINUE 6– OUI

rien

ALGO_CONT

N

O

N

N

Méthode pour le contact- XFEM 7– OUI

rien

ALGO_CONT

N

N

O

N

18

Méthode pour le frottement- DISCRETE 0– pas de frottement 1 – PENALISATION

FROTTEMENT ALGO_FROT

ALGO_FROT

O

N

N

N

Méthode pour le frottement- CONTINUE 6– OUI

FROTTEMENT

ALGO_FROT

N

O

N

N

Méthode pour le frottement- XFEM 7– OUI

FROTTEMENT

ALGO_FROT

N

N

O

N

19

Lissage des normales 0 – NON 1 – OUI

LISSAGE

LISSAGE

O

O

N

N

20

Adaptation des coefficients d’augmentation 0 – NON 1 – OUI

ADAPT_COEF

ADAPT_COEF

N

O

N

N

21

Au moins une zone en cohésif 0 – NON 1 – OUI

ALGO_CONT

EXIS_XFM_CZM

N

N

O

N

22

Au moins une zone en pénalisation 0 – NON 1 – OUI

ALGO_CONT ALGO_FROT

EXIS_PENA

N

O

O

N

23

Au moins une zone en mode sans calcul 0 – NON 1 – OUI

RESOLUTION

EXIS_VERIF

O

O

N

N

24

Toutes les zones en intégration nodale 0 – NON 1 – OUI

INTEGRATION

ALL_INTEG_NOEUD

N

O

N

N

25

Arrêt si interpénétration en mode sans calcul 0 – NON 1 – OUI

STOP_INTERP

STOP_INTERP

O

O

N

N

26

Au moins une zone en contact bilatéral 0 – NON 1 – OUI

GLISSIERE

EXIS_GLISSIERE

O

O

O

N

27

Type d’algorithme pour le contact 0 – POINT_FIXE 1 – NEWTON

ALGO_RESO_CONT

ALGO_RESO_CONT

N

O

N

N

28

Type d’algorithme pour le frottement 0 – POINT_FIXE 1 – NEWTON

ALGO_RESO_FROT

ALGO_RESO_FROT

N

O

N

N

Paramètres de type entier PARACR#

(o)    '.CONTACT.PARACR' : V R long = ZPARR

Index

Description

DEFI_CONTACT

Question CFDISR

D

C

X

U

1

Seuil pour laréactualisation géométrique x –RESI_GEOM

RESI_GEOM

RESI_GEOM

O

O

O

N

2

Seuil pour laréactualisation du frottement x –RESI_FROT

RESI_FROT

RESI_FROT

N

O

O

N

3

Tolérance interpénétration en mode sans calcul x –TOLE_INTERP

TOLE_INTERP

TOLE_INTERP

O

O

N

N

4

Résidudu GCP x –RESI_ABSO

RESI_ABSO

RESI_ABSO

O

N

N

N

5

Résidudu préconditionneur GCP x –COEF_RESI

COEF_RESI

COEF_RESI

O

N

N

N

Objet commun pour le contact unilatéral#

Objet NDIMCO#

Cet objet est commun à toutes les formulations du contact unilatéral, il n’existe donc pas dans le cas de la formulation LIAISON_UNIL.

(o)    '.CONTACT.NDIMCO' : V I long = ZDIME

Index

Description

Question CFDISI

1

Dimension de l’espace

NDIM

2

Nombre de zones de contact

NZOCO

3

Nombre de surfaces de contact

NSUCO

4

Nombre de mailles de contact

NMACO

5

Nombre de nœuds de contact

NNOCO

6

Non utilisé

7

Non utilisé

8

Nombre total de nœuds esclaves

NTNOE

9

Nombre total de mailles esclaves

NTMAE

10

Nombre total de nœuds maîtres

NTNOM

11

Nombre total de mailles maîtres

NTMAM

12

Nombre total de nœuds esclaves effectivement en contact

NTNOEC

13

Nombre total de mailles esclaves effectivement en contact

NTMAEC

14

Nombre total de nœuds maîtres effectivement en contact

NTNOMC

15

Nombre total de mailles maîtres effectivement en contact

NTMAMC

16

Nombre total de points

NTPT

17

Nombre total de points effectivement en contact

NTPC

18

Dimension du tableau de connectivité mailles→nœuds

NTMANO

Remarques:

  • Le nombre de points n’a de sens que dans la formulation CONTINUE (il dépend alors du schéma d’intégration). Pour les méthodes discrètes, il est égal au nombre de nœuds esclaves;

  • Le terme «effectivement en contact» correspond au cas où les quantités sont liées à une résolution du calcul (RESOLUTION=”OUI” dans DEFI_CONTACT). Par exemple, pour les nœuds esclaves:

  • NTNOE : nombre total de nœuds esclaves;

  • NTNOEC : nombre de nœuds esclaves sur lesquels on va faire le calcul;

  • NTNOEV=NTNOE-NTNOEC : nombre de nœuds esclaves sur lesquels on ne va faire que l’appariement;

Objets communs à toutes les formulations maillées#

Voici la description des objets dépendant de la zone de contact dédiés aux formulations maillées (méthode CONTINUE et DISCRETE).

Options d’appariement par zone#

Ces objets correspondent aux options d’appariement variables d’une zone de contact à l’autre. Pour chaque élément des objets contenant les paramètres on donne dans les tableaux ci-dessous:

  1. L’index;

  2. Une description;

  3. Le(s) mot-clef(s) concerné(s) dans DEFI_CONTACT;

  4. La question à poser dans MMINF* ;

Objet METHCO#

(o)    '.CONTACT.METHCO' : V I long = ZMETH*NZOCO

 Objet indexé par le numéro de la zone de contact.

Index sur la zone

Description

DEFI_CONTACT

Question MMINF*

1

Type d’appariement 0 – NODAL 1 – MAIT_ESCL

APPARIEMENT

MMINFI

APPARIEMENT

2

Présence du mot-clef DIST_POUTRE

DIST_POUTRE

MMINFL

DIST_POUTRE

3

Présence du mot-clef DIST_COQUE

DIST_COQUE

MMINFL

DIST_COQUE

4

Type de normale 0 – MAIT 1 – MAIT_ESCL 2 – ESCL

NORMALE

MMINFI

NORMALE

MMINFL

MAIT ESCL MAIT_ESCL

5

Type du vecteur porté par la maille maître 0 – AUTO 1 – FIXE 2 – VECT_Y

VECT_MAIT MAIT_FIXE MAIT_VECT_Y

MMINFI

VECT_MAIT

MMINFR

VECT_MAIT_DIRX [1]

VECT_MAIT_DIRY VECT_MAIT_DIRZ

6

Type du vecteur porté par la maille esclave 0 – AUTO 1 – FIXE 2 – VECT_Y

VECT_ESCL ESCL_FIXE ESCL_VECT_Y

MMINFI

VECT_ESCL

MMINFR

VECT_ESCL_DIRX [2]

VECT_ESCL_DIRY VECT_ESCL_DIRZ

7

Type de recherche d’appariement 0 – AUTO 1 – FIXE

TYPE_APPA DIRE_APPA

MMINFI

TYPE_APPA

MMINFR

TYPE_APPA_DIRX [3]

TYPE_APPA_DIRY TYPE_APPA_DIRZ

MMINFL

TYPE_APPA_FIXE

8

Nombre de mailles esclaves sur la zone

MMINFI

NBMAE

9

Nombre de nœuds esclaves sur la zone

MMINFI

NBNOE

10

Nombre de mailles maîtres sur la zone

MMINFI

NBMAM

11

Nombre de nœuds maîtres sur la zone

MMINFI

NBNOM

12

Nombre de mailles esclaves en contact effectif sur la zone

MMINFI

NBMAEC

13

Nombre de nœuds esclaves en contact effectif sur la zone

MMINFI

NBNOEC

14

Nombre de mailles maîtres en contact effectif sur la zone

MMINFI

NBMAMC

15

Nombre de nœuds maîtres en contact effectif sur la zone

MMINFI

NBNOMC

16

Décalage dans les vecteurs pour les mailles esclaves

MMINFI

JDECME

17

Décalage dans les vecteurs pour les mailles maîtres

MMINFI

JDECMM

18

Décalage dans les vecteurs pour les nœuds esclaves

MMINFI

JDECNE

19

Décalage dans les vecteurs pour les nœuds maîtres

MMINFI

JDECNM

20

Nombre de points

MMINFI

NTPT

21

Nombre points effectivement en contact

MMINFI

NTPC

22

Zone en mode sans calcul 0 – NON (RESOLUTION=”NON”) 1 – OUI (RESOLUTION=”OUI”)

RESOLUTION

MMINFL

VERIF CALCUL

Objet DIRAPP#

(o)    '.CONTACT.DIRAPP' : V K8 long = 3*NZOCO



 Objet indexé par le numéro de la zone de contact.

Index sur la zone

Description

DEFI_CONTACT

Question MMINF*

1

Direction de recherche d’appariement suivant X

DIRE_APPA

MMINFR

DIRE_APPA_DIRX

2

Direction de recherche d’appariement suivant Y

DIRE_APPA

MMINFR

DIRE_APPA_DIRY

3

Direction de recherche d’appariement suivant Z

DIRE_APPA

MMINFR

DIRE_APPA_DIRZ

Objet DIRNOR#

(o)    '.CONTACT.DIRNOR' : V K8 long = ZDIRN*NZOCO

 Objet indexé par le numéro de la zone de contact.

Index sur la zone

Description

DEFI_CONTACT

Question MMINF*

1

Normale maîtresuivant X

MAIT_FIXE MAIT_VECT_Y

MMINFR

VECT_MAIT_DIRX

2

Normale maîtresuivant Y

MAIT_FIXE MAIT_VECT_Y

MMINFR

VECT_MAIT_DIRY

3

Normale maîtresuivant Z

MAIT_FIXE MAIT_VECT_Y

MMINFR

VECT_MAIT_DIRZ

4

Normale esclavesuivant X

ESCL_FIXE ESCL_VECT_Y

MMINFR

VECT_ESCL_DIRX

5

Normale esclavesuivant Y

ESCL_FIXE ESCL_VECT_Y

MMINFR

VECT_ESCL_DIRY

6

Normale esclavesuivant Z

ESCL_FIXE ESCL_VECT_Y

MMINFR

VECT_ESCL_DIRZ

Objets JFO1CO et JFOCO2#

  1. “.CONTACT.JFO1CO” : V K8 long = NZOCO

(o)    '.CONTACT.JFO2CO' : V K8 long = NZOCO

 Objet indexé par le numéro de la zone de contact.

Index sur la zone

Description

DEFI_CONTACT

Question MMINF*

1

Jeu supplémentaire sur maille maître Nom de la fonction

DIST_MAIT

MMINFL

DIST_MAIT

Index sur la zone

Description

DEFI_CONTACT

Question MMINF*

1

Jeu supplémentaire sur maille esclave Nom de la fonction

DIST_ESCL

MMINFL

DIST_ESCL

Objet TOLECO#

(o)    '.CONTACT.TOLECO' : V R long = ZTOLE*NZOCO

 Objet indexé par le numéro de la zone de contact.

Index sur la zone

Description

DEFI_CONTACT

Question MMINF*

1

Paramètre projection hors-maille

TOLE_PROJ_EXT

MMINFR

TOLE_PROJ_EXT

2

Paramètre tolérance distance d’appariement

TOLE_APPA

MMINFR

TOLE_APPA

3

Paramètre tolérance interpénétration en mode sans calcul

TOLE_INTERP

MMINFR

TOLE_INTERP

Options d’appariement par maille (esclave)#

Objets JEUPOU / JEUCOQ#

(o)    '.CONTACT.JEUPOU' : V R long = NMACO

(o)    '.CONTACT.JEUCOQ' : V R long = NMACO

Ces objets contiennent le jeu supplémentaire par maille esclave lorsque l’on utilise des poutres (mot-clef DIST_POUTRE) ou des coques (mot-clef DIST_COQUE). L’information (épaisseur de la coque ou rayon de la poutre est lue directement dans la SD cara_elemdonnée dans DEFI_CONTACT ).

Objet indexé par le numéro de la maille esclave dans MAILCO (POSMAE).

Index sur la maille esclave

Description

DEFI_CONTACT

1

Jeu supplémentaire sur maille esclave de poutre

DIST_ POUTRE CARA_ELEM

Index sur la maille esclave

Description

DEFI_CONTACT

1

Jeu supplémentaire sur maille esclave de coque

DIST_ COQUE CARA_ELEM

Description des zones de contact#


Le système de contact est composé de plusieurs zones, elles-mêmes divisées en deux surfaces composées de mailles, contenant des nœuds. Les surfaces de contact sont repérées par leur numéro absolu \(i\) dans la liste de toutes les surfaces de contact, toutes zones confondues.

Seuls les tableaux MAILCO, NOEUCO et SANSNO répertorient les nœuds et les mailles par leur numéro absolu dans le maillage ; tous les autres tableaux utilisent l’indice dans MAILCO et NOEUCO pour désigner une maille ou un nœud. Cet indice est souvent appelé position et noté POSMA/POSNO dans les routines (alors que le numéro absolu de la maille ou du nœud sont plutôt indiqués par NUMMA/NUMNO).


Objet PZONECO#

(o)    '.CONTACT.PZONECO' : V I long = NZOCO+1

Pointeur d’accès vers les surfaces pour chaque zone de contact.

Numéro ISURF1de la première surface (maître) pour la zone IZONE:

ISURF1 = ZI(JZONE+IZONE-1)+1

Numéro ISURF2de la seconde surface (esclave) pour la zone IZONE:

ISURF2 = ZI(JZONE+IZONE)

Routine d’accès direct (à privilégier):

SUBROUTINE CFZONE(DEFICO,IZONE ,TYPSUR,ISURF )

IN DEFICO : SD DE DEFINITION DU CONTACT IN IZONE : NUMERO DE LA ZONE DE CONTACT IN TYPSUR : TYPE DE SURFACE “MAIT” “ESCL” OUT ISURF : NUMERO DANS LA SURFACE POUR ACCES PSUNOCO/PSUMACO

Objets PSUMACO/PSUNOCO#

(o)    '.CONTACT.PSUMACO' : V I long = NSUCO+1

(o)    '.CONTACT.PSUNOCO' : V I long = NSUCO+1

Pointeur d’accès vers les mailles/nœuds de chaque surface de contact. On pointe vers les objets MAILCOet NOEUCO.

Décalage JDECMA dans MAILCO pour la première maille de la surface ISURF:

JDECMA = ZI(JSUMA+ISURF-1)

Décalage JDECNO dans NOEUCO pour le premier nœud de la surface ISURF:

JDECNO = ZI(JSUNO+ISURF-1)

Nombre NBMAde mailles pour la surface ISURF:

NBMA = ZI(JSUMA+ISURF) – ZI(JSUMA+ISURF-1)

Nombre NBNOde nœuds pour la surface ISURF:

NBNO = ZI(JSUNO+ISURF) – ZI(JSUNO+ISURF-1)

Pour accéder à un nœud ou à une maille, on utilise les décalages donnés dans PSUMACO/PSUNOCO pour parcourir MAILCOet NOEUCO. Les entiers (souvent notés POSMAdans le code) contenus dans PSUMACOvarient entre 1et NMACO.Les entiers (souvent notés POSNOdans le code) contenus dans PSUNOCOvarient entre 1et NNOCO.

Routine d’accès direct (à privilégier):

SUBROUTINE CFNBSF(DEFICO,ISURF ,TYPENT,NBENT ,JDEC )

IN DEFICO : SD DE DEFINITION DU CONTACT IN TYPENT : TYPE D’ENTITE “NOEU” ACCES AUX NOEUDS ATTACHES A LA SURFACE “MAIL” ACCES AUX MAILLES ATTACHEES A LA SURFACE IN ISURF : NUMERO DE LA SURFACE OUT NBENT : NOMBRE D’ENTITES OUT JDEC : DECALAGE DANS LES VECTEURS POUR LE PREMIER DE LA SURFACE

Objets MAILCO/NOEUCO#

(o)    '.CONTACT.MAILCO' : V I long = NMACO

(o)    '.CONTACT.NOEUCO' : V I long = NNOCO

Donne le numéro absolu des mailles/nœuds de contact. On pointe vers les objets de la SD maillage.

On accède à ces objets grâce aux pointeurs PSUMACO/PSUNOCO.

Numéro absolu NUMMAde la I-ème maille de la surface de numéro ISURF:

NUMMA = ZI(JMACO+JDECMA-1+ISURF)

Numéro absolu NUMNOdu I-ème noeud de la surface de numéro ISURF:

NUMNO = ZI(JNOCO+JDECNO-1+ISURF)

Les entiers (souvent notés NUMMAdans le code) contenus dans MAILCOvarient entre 1et le nombre total de mailles dans le maillage.Les entiers (souvent notés NUMNOdans le code) contenus dans NOEUCOvarient entre 1et le nombre total de nœuds dans le maillage.

Routines d’accès direct (à privilégier):

SUBROUTINE CFNUMM(DEFICO,NMA ,POSNMA,NUMNMA)

IN DEFICO : SD DE CONTACT (DEFINITION) IN NMA : NOMBRE DE MAILLES IN POSNMA : INDICES DANS MAILCO DES MAILLES OUT NUMNMA : NUMEROS ABSOLUS DES MAILLES DANS LE MAILLAGE

SUBROUTINE CFNUMN(DEFICO,NNO ,POSNNO,NUMNNO)

IN DEFICO : SD DE CONTACT (DEFINITION) IN NNO : NOMBRE DE NOEUDS IN POSNNO : INDICES DANS NOEUCO DES NOEUDS OUT NUMNNO : NUMEROS ABSOLUS DES NOEUDS DANS LE MAILLAGE

SUBROUTINE CFPOSN(DEFICO,POSMAI,POSNNO,NNOMAI)

IN DEFICO : SD DE CONTACT (DEFINITION) IN POSMAI : INDICE DE LA MAILLE (DANS SD CONTACT) OUT POSNNO : INDICES DANS NOEUCO DES NOEUDS OUT NNOMAI : NOMBRE DE NOEUDS DE LA MAILLE (DANS LES SD DE CONTACT)

SUBROUTINE CFNOMM(NOMA ,DEFICO,TYPENT,POSENT,NOMENT)

IN NOMA : NOM DU MAILLAGE IN DEFICO : SD DE DEFINITION DU CONTACT IN POSENT : POSITION DE L’ENTITE DANS LES SD CONTACT IN TYPENT : TYPE D’ENTITE <MAIL> MAILLE <NOEU> NOEUD OUT NOMENT : NOM DE L’ENTITE

Objets MANOCO/PMANOCO#

  1. “.CONTACT.PMANOCO” : V I long = NNOCO+1

(o)    '.CONTACT.MANOCO' : V I long = NMANO

On accède à la connectivitéinverse via les objets MANOCO/PMANOCO. La connectivitéinverse retourne pour un nœud donné les mailles qui y sont attachées.

L’objet PMANOCO est indexé par le numéro du nœud de contact dans NOEUCO (numéro donné par PSUNOCO et souvent noté POSNO dans le code). Les valeurs contenues dans PMANOCO pointent vers MANOCO, elles varient entre 1 et NMANO. Les entiers (souvent notés POSMA dans le code) contenus dans MANOCO varient entre 1 et NMACO (ils pointent vers MAILCO).

Décalage JDEC dans MANOCO de la première maille attachée au nœud de numéro POSNO dans CONTNO:

JDEC = ZI(JPOMA+POSNO-1)

Nombre NBMANOde mailles attachées au nœud de numéro POSNO dans CONTNO:

NBMANO = ZI(JPOMA+POSNO) – ZI(JPOMA+POSNO-1)


Numéro POSMA dans MAILCO de la I-ème maille attachée au nœud de numéro POSNO dans CONTNO:

POSMA = ZI(JMANO+JDEC-1+I)

Routines d’accès direct (à privilégier):

SUBROUTINE CFNBEN(DEFICO,POSENT,TYPENT,NBENT ,JDECEN)

IN DEFICO : SD DE DEFINITION DU CONTACT IN POSENT : POSITION DE L’ENTITE DANS LES SD CONTACT IN TYPENT : TYPE D’ENTITE “CONINV” POSENT EST UN NOEUD -> ON ACCEDE AUX MAILLES ATTACHEES A CE NOEUD (CONNECTIVITE INVERSE) “CONNEX” POSENT EST UNE MAILLE -> ON ACCEDE AUX NOEUDS ATTACHES A CETTE MAILLE (CONNECTIVITE DIRECTE) OUT NBENT : NOMBRE D’ENTITES ATTACHES OUT JDECEN : DECALAGE POUR TABLEAU

SUBROUTINE CFINVM(DEFICO,JDECIV,IMA ,POSMA )

IN DEFICO : SD DE CONTACT (DEFINITION)

IN IMA : NUMERO ORDRE DE LA MAILLE DANS SD CONN. INVERSE.

IN JDECIV : DECALAGE POUR LECTURE DANS SD CONN. INVERSE.

OUT POSMA : POSITION DE LA MAILLE

Objets NOMACO/PNOMACO#

  1. “.CONTACT.PNOMACO” : V I long = NMACO+1

(o)    '.CONTACT.NOMACO' : V I long = NNOMA

On accède à la connectivité des mailles via un objet dédié et non via les objets habituels de la sd_maillage(comme CONNEX). Il y a en effet une différence à cause des QUAD8dont on exclut les nœuds milieux du contact (la maille de contact QUAD8ne contient donc que 4nœuds). De plus la connectivité a été réduite aux mailles de contact, ce qui permet un accès plus rapide.

L’objet PNOMACOest indexé par le numéro de la maille de contact dans MAILCO(numéro donné par PSUMACOet souvent noté POSMAdans le code). Les valeurs contenues dans PNOMACOpointent vers NOMACO, elles varient entre 1et NNOMA. Les entiers (souvent notés POSNOdans le code) contenus dans NOMACOvarient entre 1et NNOCO(ils pointent vers NOEUCO).

Décalage JDEC dans NOMACO du premier nœud de la maille de numéro POSMA dans MAILCO:

JDEC = ZI(JPONO+POSMA-1)

Nombre NBNOMAde nœuds pour la maille de numéro POSMA dans MAILCO:

NBNOMA = ZI(JPONO+POSMA) - ZI(JPONO+POSMA-1)


Numéro POSNO dans NOEUCO du I-ème nœud de la maille de numéroPOSMA dans MAILCO:

POSNO = ZI(JNOMA+JDEC-1+I)

Routines d’accès direct (à privilégier):

SUBROUTINE CFNBEN(DEFICO,POSENT,TYPENT,NBENT ,JDECEN)

IN DEFICO : SD DE DEFINITION DU CONTACT IN POSENT : POSITION DE L’ENTITE DANS LES SD CONTACT IN TYPENT : TYPE D’ENTITE “CONINV” POSENT EST UN NOEUD -> ON ACCEDE AUX MAILLES ATTACHEES A CE NOEUD (CONNECTIVITE INVERSE) “CONNEX” POSENT EST UNE MAILLE -> ON ACCEDE AUX NOEUDS ATTACHES A CETTE MAILLE (CONNECTIVITE DIRECTE) OUT NBENT : NOMBRE D’ENTITES ATTACHES OUT JDECEN : DECALAGE POUR TABLEAU

SUBROUTINE CFCONN(DEFICO,JDECNO,INO ,POSNO )

IN DEFICO : SD DE CONTACT (DEFINITION) IN INO : NUMERO ORDRE DU NOEUD DANS SD CONN. IN JDECNO : DECALAGE POUR LECTURE DANS SD CONN. OUT POSNO : POSITION DU NOEUD

Exclusion des nœuds/mailles#

Objets PSSNOCO / SSNOCO#

(f)    '.CONTACT.PSSNOCO' : V I long = NZOCO+1

(f)    '.CONTACT.SSNOCO' : V I long = STOCNO

Objets utilisés pour exclure des nœuds donnés par SANS_GROUP_NO/SANS_NO ou SANS_GROUP_MA/SANS_MAILLE et valable pour les formulationsDISCRETE et CONTINUE. PSSNOCOest un pointeur d’indirection vers SSNOCO.

Décalage JDEC dans SSNOCOdu premier nœud exclu pour la zone IZONE:

JDEC = ZI(JPSANS+IZONE-1)

Nombre NBEXNOde nœuds exclus pour la zone IZONE:

NBEXNO = ZI(JPSANS+IZONE) – ZI(JPSANS+IZONE-1)

Le numéro absoludu nœud dans le maillageest stocké dans SSNOCO à l’indice donné par PSSNOCO.

Informations sur les mailles et les nœuds#

Objet TYPENO#

(o)    '.CONTACT.TYPENO' : V I long = ZTYPN*NNOCO

L’objet “.CONTACT.TYPENO” est indexé par le numéro du nœud de dans NOEUCO (numéro donné par PSUNOCOet souvent noté POSNOdans le code). Il retourne le type du nœud : -1 si il est esclave, +1 si il est maître, ainsi que la zone de contact à laquelle il appartient.

Routines d’accès direct (à privilégier):

SUBROUTINE CFZONN(DEFICO,POSNO ,IZONE )

IN DEFICO : SD DE CONTACT (DEFINITION) IN POSNO : INDICE DANS NOEUCO DU NOEUD OUT IZONE : NUMERO DE LA ZONE

SUBROUTINE CFTYPN(DEFICO,POSNO ,TYPNO )

IN DEFICO : SD DE CONTACT (DEFINITION) IN POSNO : INDICE DANS NOEUCO DU NOEUD OUT TYPNO : TYPE DU NOEUD “MAIT” OU “ESCL”

Objet TYPEMA#

(o)    '.CONTACT.TYPEMA' : V I long = ZTYPM*NMACO

L’objet “.CONTACT.TYPEMA” est indexé par le numéro de la maille de contact dans MAILCO (numéro donné par PSUMACOet souvent noté POSMAdans le code). Il retourne le type de la maille : -1 si il est esclave, +1 si il est maître. Il sert également de pointeur d’accès à l’objet MAESCL en fournissant l’indice INDMAE d’une maille esclave dans l’ensemble des mailles esclaves regroupées.

Routine d’accès direct (à privilégier):

SUBROUTINE CFTYPM(DEFICO,POSMA ,TYPMA )

IN DEFICO : SD DE CONTACT (DEFINITION) IN POSMA : INDICE DANS MAILCO DE LA MAILLE OUT TYPMA : TYPE DE LA MAILLE “MAIT” OU “ESCL”

Objet MAESCL#

(o)    '.CONTACT.MAESCL' : V I long = ZMAES*NTMAE

 Objet accédé grâce au pointeur TYPEMA.

Le tableau est construit en regroupant toutes les mailles esclaves de toutes les zones. De MAESCL(1)à MAESCL(NBMAE(1)), on a toutes les mailles esclaves de la première zone de contact, puis de MAESCL(NBMAE(1)+1)à MAESCL(NBMAE(2)), on a toutes les mailles esclaves de la seconde zone de contact, etc. L’objet TYPEMA fournit un tel indice et sert donc de pointeur d’accès à MAESCL.

Ce tableau retourne diverses informations sur les mailles esclaves (essentiellement en formulation CONTINUE).

Index sur la maille esclave

Description

Question MMINFM

1

Valeur de l’index de la maille dans MAILCO

Pas d’accès

2

Numéro de la zone à laquelle appartient la maille

IZONE

3

Nombre de points d’intégration

NPTM

4

Élément dont des nœuds sont exclus par SANS_*_FR

NDEXFR

Objets spécifiques pour la formulation DISCRETE#

On donne dans cette section la description des objets dépendant de la zone de contact et dédiés à la formulation DISCRETE.

Objet CARADF#

(o)    '.CONTACT.CARADF' : V R long = ZCMDF*NZOCO

 Objet indexé par le numéro de la zone de contact.

Index sur la zone

Description

DEFI_CONTACT

Question MMINF*

1

Contribution matrice de frottement

COEF_MATR_FROT

MMINFR

COEF_MATR_FROT

2

Coefficient de pénalisation pour le contact

E_N

MMINFR

E_N

3

Coefficient de pénalisation pour le frottement

E_T

MMINFR

E_T

4

Coefficient de frottement de Coulomb

COULOMB

MMINFR

COEF_COULOMB

5

Paramètre d’alarme en mode contact bilatéral (glissière)

ALARME_JEU

MMINFR

ALARME_JEU

6

Contact bilatéral sur la zone 0 – NON 1 – OUI

GLISSIERE

MMINFL

GLISSIERE_ZONE

SD char_meca#

(f)    '.CHME' : V sd_char_meca

Cette SD est une sd_char_meca ( cf. [D4.06.04]) utilisée pour imposer des relations linéaires aux nœuds milieux en présence d’éléments QUAD8.

Objets spécifiques pour la formulation CONTINUE#

Objet CARACF#

(o)    '.CONTACT.CARACF' : V R long = ZCMCF*NZOCO

 Objet indexé par le numéro de la zone de contact.

Index sur la zone

Description

DEFI_CONTACT

Question MMINF*

1

Type d’intégration 1 – “AUTO” X2 – “GAUSS” X3 – “SIMPSON” X4 – “NCOTES”

X - ORDRE_INT

INTEGRATION ORDRE_INT

MMINFI

INTEGRATION

2

Valeur du coefficient d’augmentation en contact

COEF_CONT COEF_PENA_CONT

MMINFR

COEF_AUGM_CONT

3

Type d’algorithme en contact (augmenté ou pénalisé) 1 – STANDARD 3 – PENALISATION

ALGO_CONT

MMINFI

ALGO_CONT

4

Valeur du coefficient d’augmentation en frottement

COEF_FROT COEF_PENA_FROT

MMINFR

COEF_AUGM_FROT

5

Type d’algorithme en frottement (augmenté ou pénalisé) 1 – STANDARD 3 – PENALISATION

ALGO_FROT

MMINFI

ALGO_FROT

6

Coefficient de frottement de Coulomb

COULOMB

MMINFR

COEF_COULOMB

7

Valeur initiale du seuil de Tresca

SEUIL_INIT

MMINFR

SEUIL_INIT

8

Surfaces initialement en contact 0 – NON 1 – OUI 2 - INTERPENETRE

CONTACT_INIT

MMINFI

CONTACT_INIT

9

Contact bilatéral sur la zone 0 – NON 1 – OUI

GLISSIERE

MMINFL

GLISSIERE_ZONE

10

Élimination de nœuds du contact 0 – NON 1 – OUI

SANS_*_NO

MMINFL

SANS_GROUP_NO

11

Élimination de nœuds du frottement 0 – NON 1 – OUI

SANS_*_FR

MMINFL

SANS_GROUP_NO_FR

12

Nombre de directions de frottement exclues 0 – aucune direction exclue 1 – une seule direction exclue 2 – toutes directions exclues

SANS_*_FR DIRE_EXCL_FROT

MMINFI

EXCL_DIR

Objets PSANOFR/SANOFR#

En formulation CONTINUE uniquement, on traite les mots-clefs SANS_GROUP_NO_FR/SANS_NOEUD_FR qui permettent de repérer des nœuds ou des mailles particulières sur les surfaces de contact:

(f)    '.CONTACT.PSANOFR' : V I long = 1+NZOCO

(f)    '.CONTACT.SANOFR' : V I long = STOCNO

Le stockage de ces informations est sensiblement identique au stockage des nœuds exclus du contact ( cf. § 5.4 ).

Une routine utilitaire permet de dire si un nœud fait partie des groupes précédemment décrits:

SUBROUTINE CFMMEX(DEFICO,TYPEXC,IZONE ,NUMNOE,SUPPOK)

IN DEFICO : SD POUR LA DEFINITION DE CONTACT

IN TYPEXC : TYPE D'EXCLUSION

'FROT' DONNE PAR SANS_*_FR

'CONT' DONNE PAR SANS_*

IN IZONE : NUMERO DE LA ZONE DE CONTACT

IN NUMNOE : NUMERO ABSOLU DU NOEUD A CHERCHER

OUT SUPPOK : VAUT 1 SI LE NOEUD FAIT PARTIE DES NOEUDS EXCLUS

Objet EXCLFR#

(f)    '.CONTACT.EXCLFR' : V R long = ZEXCL*NZOCO

Cet objet sert à préciser les vecteurs d’exclusion de direction de frottement dans le cas de l’option SANS_*_FR .

Objet indexé par le numéro de la zone de contact.

Index sur la zone

Description

DEFI_CONTACT

Question MMINF*

1

Direction d’exclusionsuivant X

DIRE_EXCL_FROT

MMINFR

EXCL_FROT_DIRX

2

Direction d’exclusionsuivant Y

DIRE_EXCL_FROT

MMINFR

EXCL_FROT_DIRY

3

Direction d’exclusionsuivant Z

DIRE_EXCL_FROT

MMINFR

EXCL_FROT_DIRZ

SD ligrel#

(o)    '.CHME.LIGRE' : V sd_ligrel

Cette SD de type sd_ligrel( cf. [D4.06.02]) contient la définition des Lagrange tardifs ajoutés au modèle sur les nœuds esclaves par la formulation continue.

Objets spécifiques pour la formulation XFEM#

Objet MODELX#

(o)    '.CONTACT.MODELX' : V K8 long = 1

Cet objet contient le nom du modèle XFEM. Il sert à la vérification quand LIAISON_XFEM=OUI.


Objet CARAXF#

(o)    '.CONTACT.CARAXF' : V R long = ZCMXF*NZOCO

 Objet indexé par le numéro de la zone de contact.

Index sur la zone

Description

DEFI_CONTACT

Question MMINF*

1

Type d’intégration

INTEGRATION

MMINFI

INTEGRATION

2

Valeur du paramètre COEF_REGU_CONT

COEF_REGU_CONT

MMINFR

COEF_AUGM_CONT COEF_REGU_CONT

3

Valeur du paramètre COEF_REGU_FROT

COEF_REGU_FROT

MMINFR

COEF_AUGM_FROT COEF_REGU_FROT

4

Coefficient de frottement de Coulomb

COULOMB

MMINFR

COEF_COULOMB

5

Frottement dans la zone 0 – NON 3 – OUI

FROTTEMENT

MMINFI

FROTTEMENT_ZONE

MMINFL

FROTTEMENT_ZONE

6

Valeur initiale du seuil de Tresca

SEUIL_INIT

MMINFR

SEUIL_INIT

7

Surfaces initialement en contact 0 – NON 1 – OUI

CONTACT_INIT

MMINFI

CONTACT_INIT

8

Non utilisé

9

Algorithme de suppression LBB 0 – NON 1 – VERSION1 2 – VERSION2

ALGO_LAGR

MMINFI

ALGO_LAGR

10

Contact bilatéral sur la zone 0 – NON 1 – OUI

GLISSIERE

MMINFL

GLISSIERE_ZONE

11

Valeur du paramètre COEF_STAB_CONT

COEF_STAB_CONT

MMINFR

COEF_STAB_CONT

12

Valeur du paramètre COEF_PENA_CONT

COEF_PENA_CONT

MMINFR

COEF_PENA_CONT

13

Valeur du paramètre COEF_STAB_FROT

COEF_STAB_FROT

MMINFR

COEF_STAB_FROT

14

Valeur du paramètre COEF_PENA_FROT

COEF_PENA_FROT

MMINFR

COEF_PENA_FROT

15

Paramètre projection hors-maille

TOLE_PROJ_EXT

MMINFR

TOLE_PROJ_EXT

16

Type de relation pour CZM 0 – PAS DE CZM 1 – CZM_EXP_REG 2 – CZM_LIN_REG

RELATION

MMINFR

RELATION

MMINFL

CONT_XFEM_CZM

17

Algorithme pour le contact 1 – STANDARD 2 – AVANCE 3 – PENALISATION 4 – CZM

ALGO_CONT

MMINFR

CZM_FERMETURE

MMINFL

ALGO_CONT_PENA

18

Algorithme pour le frottement 1 – STANDARD 2 – AVANCE 3 – PENALISATION

ALGO_FROT

MMINFL

ALGO_FROT_PENA

Objet XFIMAI#

(o)    '.CONTACT.XFIMAI' : V K8 long = NZOCO

 Objet indexé par le numéro de la zone de contact.

Cet objet stocke le numéro de la fissure maître associé à chaque zone de contact. Il sert à retrouver le

nom d’une fissure associée à une zone de contact donnée.

Objet XNRELL#

(o)    '.CONTACT.XNRELL' : V K24 long = NFIS

Cet objet stocke pour chaque fissure maître le nom de l’objet ..LISEQ associé à cette fissure. Soit NFIS le nombre de fissures du modèle X-FEM (objet NFIS du modèle X-FEM) et soit fiss la fissure d’indice i dans la liste des fissures du modèle X-FEM.(objet .FISS du modèle X-FEM). Soit enfin v_sdline un pointeur permettant d’accéder à l’objet XNRELL. On a alors:

v_sdline(i) = fiss//”.LISEQ”

L’objet .LISEQ associé à une fissure stocke les relations d’égalité à appliquer pour satisfaire la condition LBB dans le cadre d’une formulation mixte pour le contact en X-FEM ( cf. [D4.10.02], §3.5.2 pour la description complète de cet objet). Les relations d’égalité à appliquer sont calculées par xconta.F90. Les relations d’égalité sont appliquées soit:

  • par xrela_elim.F90, si on ne souhaite conserver qu’un seul degré de liberté, parmi l’ensemble des degrés de libertés liés par la relation d’égalité, lors de l’écriture du système linéaire à résoudre (ELIM_ARETE = “ELIM”, dans DEFI_CONTACT);

  • par xfem_rel_lin.F90, si on souhaite conserver l’ensemble des degrés de liberté dans l’écriture du système linéaire à résoudre et qu’on impose les conditions d’égalité en utilisant des multiplicateurs de Lagrange(ELIM_ARETE = “DUAL”, dans DEFI_CONTACT).

Objet MAESCX#

(o)    '.CONTACT.MAESCX' : V K24 long = ZMESX*NTMAE

Cet objet est l’équivalent, dans le cadre de la formulation du contact X-FEM en grands glissements, de l’objet MAESCL, utilisé dans les formulations FEM. Il est à noter que dans le cas de la multi-fissuration, tous les éléments enrichis X-FEM associés à une fissure donnée ne vont pas nécessairement calculer des contributions aux intégrales de contact ( cf. [D4.10.02], §3.3.8 pour plus de détails). Ces éléments se distinguent par le fait qu’ils ne définissent pas de facettes de contact, i.e. de sous-éléments utilisés pour calculer une intégrale sur la surface de la fissure ( cf. [D4.10.02], §4.4).

Index sur la maille esclave

Description

1

Valeur de l’index de la maille dans le maillage

2

Numéro de la zone à laquelle appartient la maille

3

Nombre de points d’intégration Si l’élément ne contribue pas aux intégrales de contact: 1 est stocké

4

Statut de la maille enrichie * 1: maille enrichie Heaviside, * 2: maille enrichie Crack-Tip, * 3: maille enrichie Heaviside-Crack-Tip. Si l’élément ne contribue pas aux intégrales de contact: l’opposé du statut est stocké. Soit: * -1: maille enrichie Heaviside, * -2: maille enrichie Crack-Tip, * -3: maille enrichie Heaviside-Crack-Tip.

5

Valeur de l’index de la fissure dans la liste des fissures vues par la maille (objet XMAFISdu modèle X-FEM, cf. [D4.10.02], §4.6.4)

Objets spécifiques pour la formulation LIAISON_UNIL#

Objet NDIMCU#

(o)    '.UNILATE.NDIMCU' : V I long = 2

Index

Description

Question CUDISI

1

Nombre total de liaisons unilatérales

NNOCU

2

Nombre total de ddls impliqués dans les liaisons unilatérales

NCMPG

Objet COEFD#

(o)    '.UNILATE.COEFD' : V K8 long = NNOCU


Cet objet stocke le nom des fonctions donnant le coefficient des conditions unilatérales au membre de droite.

Objet LISNOE#

(o)    '.UNILATE.LISNOE' : V I long = NNOCU


Cet objet stocke le numéro des nœuds impliqués dans les conditions unilatérales.

Objet POINOE#

  1. “.UNILATE.POINOE” : V I long = NNOCU+1

Cet objet sert de pointeur d’accès aux objets CMPGCU et COEFG.

Décalage JDECMP pour la première composante de la condition unilatérale INO:

JDECMP = ZI(JPOIN+INO-1)

Nombre NCMPde composantes pour impliquées dans la condition unilatérale INO:

NCMP = ZI(JPOIN+INO) – ZI(JPOIN+INO-1)

Objets CMPGCU et COEFG#

(o)    '.UNILATE.CMPGCU' : V K8 long = NCMPG

(o)    '.UNILATE.COEFG' : V K8 long = NCMPG

Ces objets permettent de stocker les degrés de liberté sur lesquels s’appliquent les conditions unilatérales ainsi que le nom des fonctions qui sont les coefficients de ces conditions (au membre de gauche donc).

ICMP-eme composante de la INO-ème condition unilatérale:

CMP = ZK8(JCMPG+JDECMP-1+ICMP)

Coefficient fonction de la ICMP-eme composante de la INO-ème condition unilatérale:

COEFG = ZK8(JCOEFG+JDECMP-1+ICMP)

Objet COEFPE#

(o)    '.UNILATE.COEFPE' : V Rlong = NNOCU


Cet objet stocke les valeurs des coefficients de pénalité.

Champs élémentaires pour la résolution du contact continu#

On décrit ici la routine mmchmlqui sert à stocker les quantités spécifiques des éléments tardifs de contact. On distingue les quantités spécifiques à la méthode LAC et ceux de la méthode continue.

Quantités élémentaires pour la résolution méthode continue : routine mmchml_c#

Il s’agit du champ associé au paramètre “PCONFR”.

Index du champ

Description

1(resp 38)

Première coordonnée paramétrique du point esclave courant (resp. précédent)

2(resp 39)

Deuxième coordonnée paramétrique du point esclave de contact(resp. précédent)

3(resp 40)

Première coordonnée paramétrique du point projeté maître (resp. précédent)

4(resp 41)

Deuxièmecoordonnée paramétrique du point projeté maître(resp. précédent)

5(resp 32)

Première coordonnée du premier vecteur tangent dans le repère global (resp. précédent)

6(resp 33)

Deuxièmecoordonnée du premier vecteur tangent dans le repère global (resp. précédent)

7(resp 34)

Troisièmecoordonnée du premier vecteur tangent dans le repère global (resp. précédent)

8(resp 35)

Première coordonnée du deuxième vecteur tangent dans le repère global(resp. précédent)

9(resp 36)

Deuxièmecoordonnée du deuxième vecteur tangent dans le repère global (resp. précédent)

10(resp 37)

Troisièmecoordonnée du deuxième vecteur tangent dans le repère global (resp. précédent)

11

Poids associé aux point de Gauss

12 (resp 27)

Indicateur courant (resp. précédent) de contact

13 (resp 26)

Pression de contact (resp. précédent)

14

Jeu supplémentaire de contact

15

Type algorithme de contact (STANDARD/PENALISATION)

16

Coefficient de régularisation de contact (COEF_CONT/COEF_PENA_CONT)

17

Boucle point fixe de frottement

18

Type algorithme de frottement (STANDARD/PENALISATION)

19

Coefficient de régularisation de frottement(COEF_FROT/COEF_PENA_FROT)

20

Coefficient de frottement

21

Point exclu en frottement

22

Dynamique ou quasi-statique

23

Incrément de temps

24

Non utilisé

25

Boucle point fixe de géométrie

26

Non utilisé

27

Non utilisé

28

Non utilisé

29

Non utilisé

30

Adaptation en cyclage

31

Coefficient de combinaison convexe pour le frottement

42

Non utilisé

43

Non utilisé

44

Indicateur d’adhérence précédent

45

Mode robuste de contact adaptatif : basculement automatique en pénalisation

46

Mode robuste de frottement uniquement pour le mode adaptatif : ALGO_CONT=”PENALISATION”, ALGO_FROT=”STANDARD” ADPATATION=”ADAPT_COEF”.

47

Indicateur d’adhérence en mode adaptatif: ALGO_CONT=”PENALISATION”, ALGO_FROT=”STANDARD” ADPATATION=”ADAPT_COEF”.

48-60

Non utilisé

Quantités élémentaires pour la résolution méthode LAC : routine mmchml_l#

Il s’agit du champ associé au paramètre “PCONFR”.

Index du champ

Description

1

Normale lissée ou non

2

Type jacobien

3

Non utilisé

10

État de cyclage du patch

11

Coefficient d’intersection du patch

12 (resp 37)

Statut de contact du patch (resp. précédent)

13(resp 38)

Multiplicateur de Lagrange (resp. précédent)

14

Axisou non?

15

gap_curr

16

Mesure = 0.0

17

rho_n (prévu pour coefficient de régularisation)= 0.0

18

eval (prévu pour algorithme de Bussetta) = 0,0

19-24

Non utilisé

25

Boucle géométrique de contact

26

Non utilisé

Algorithmes spécifiques au traitement des statuts de contact : méthode continue#

Objets spécifiques au cyclage#

Il s’agit des objets jeveux “CYCHIS”,”CYCNBR”,”CYCETA”,”CYCLIS”,”CYCCOE”.

  • “CYCHIS’est l’objet qui stocke l’historique des valeurs associées à un point de contact.

  • “CYCLIS’est l’objet qui sert à faire la détection d’un statut cyclant

  • “CYCNBR’est l’objet qui compte les cycles de 3 itérations (statuts variant de 0 1 0 ou 1 0 1).

  • “CYCETA’est l’objet qui stocke l’état courant du cyclageà un point de contact.

  • “CYCCOE’est l’objet qui stocke des valeurs spécifiques aux coefficients de régularisation d’un point de contact.

La détection du cyclage se déroule sur 3 itérations de Newton.

Index de l’objet CYCLIS

Description (Pour le point de contact)

1

Entier codé \(\text{cycl\_ecod}={2}^{0}\ast \mathit{statut}({\mathit{It}}_{k-2})+{2}^{1}\ast \mathit{statut}({\mathit{It}}_{k-1})+{2}^{2}\ast \mathit{statut}({\mathit{It}}_{k})\) pour le cyclage en contact. Par exemple: si le point a oscillé en statuts de contact: 101 alors cycl_ecod=5, 010 alors cycl_ecod=2.

2

Entier codé pour le cyclage adhérence-glissement

3

Entier codé pour le cyclage glissement avant – glissement arrière

4

Flip Flop

Index de l’objet CYCNBR

Description (Pour le point de contact)

1

Comptage d’un cycle d’oscillation pour le contact. Après 3 itérations de Newton, le compteur se remet à zéro

2

Comptage d’un cycle d’oscillation pour le cyclage adhérence-glissement

3

Comptage d’un cycle d’oscillation pour le cyclage glissement avant – glissement arrière

4

Flip Flop

Index de l’objet CYCETA

Description (Pour le point de contact)

1

Sauvegarde de l’état de cyclage de contact du point. C’est la détection effective du cyclage qui survient toutes les 3 itérations de Newton. Si un point est détecté comme cyclant alors on le garde comme cyclant jusqu’à ce qu’il se stabilise en statuts.

2

Sauvegarde de l’état de cyclage adhérence-glissement

3

Sauvegarde de l’état de cyclage glissement avant – glissement arrière

4

Flip Flop

L’algorithme de cyclage : ALGO_CONT=STANDARD/PENALISATION#

Principen°1 : Faire une combinaison convexe des matrices élémentaires courantes + précédentes.Cas-test type contact rasant : ssnv128z

\(\mathit{MATRCF}[{\mathit{It}}_{K}]=\mathit{ALPHA}\ast \mathit{MATRCF}[{\mathit{It}}_{K-1}]+(1-\mathit{ALPHA})\ast \mathit{MATRCF}[{\mathit{It}}_{K}]\)

Ici \(\mathit{MATRCF}\) est la matrice élémentaire associée au point de contact esclave courant avec \(alpha<1\) .

Quand est-ce qu’on fait de l’adaptation des matrices de contact-frottement?

CAS 1 : adaptation = “CYCLAGE” + Quelque soit ALGO_CONT/ALGO_FROT

CAS 2 : adaptation = “TOUT” + NEWT_FROT , type_adap=5

CAS 3 : adaptation = “TOUT” + NEWT_FROT , ALGO_CONT = PENALISATION

CAS 4 : adaptation = “TOUT” + POINT_FIXE_FROT OU PAS DE FROT + ALGO_CONT = PENALISATION

CAS 5 : tous les autres cas du moment ou adaptation = “TOUT” type_adap=4

Pour détecter un statut cyclant en contact, on fait un zonage de la loi de contact de Signorini:

  • Zone 1: Le point de contact esclave a une pression de contact et un jeu tel qu’il est en situation de séparation franche avec le corps maître.

  • Zone 2: Le point de contact esclave a une pression de contact et un jeu tel qu’il est en situation de séparation non franche avec le corps maître.

  • Zone 3: Le point de contact esclave a une pression de contact et un jeu tel qu’il est en situation de contact rasant avec le corps maître.

  • Zone 4: Le point de contact esclave a une pression de contact et un jeu tel qu’il est en situation de contact franc avec le corps maître.

Les statuts de cyclage de contact d’un point esclavesont les suivant:

  • Objet CYCETA//CONTACT//cycl_stat = 11 le point a oscillé entre la zone 3 et la zone 2, c’est la zone rasante. C’est l’une des situations les plus pénalisantes.

  • Objet CYCETA//CONTACT//cycl_stat = 12 le point a oscillé entre la zone 2 et la zone 4, le contact a du mal à s’établir.

  • Objet CYCETA//CONTACT//cycl_stat = 13 le point a oscillé entre la zone 1 et la zone 3, le décollement a du mal à s’établir.

  • Objet CYCETA//CONTACT//cycl_stat = 14 le point a oscillé entre la zone 1 et la zone 4, le point n’est pas stable en contact.

  • Objet CYCETA//CONTACT//cycl_stat = 15 tous les autres cas de cyclage. Par exemple, on maintient le statut cyclant jusqu’à ce que le point ait convergé en statuts.

  • Objet CYCETA//CONTACT//cycl_stat = 10tous les autres cas.

-CYCETA//CONTACT//FLIP-FLOP Le Flip-Flop est un mode de détection particulier de cyclage en statut de contact. Il s’agit d’un point qui cycle ou nonet qui en plus a une très faible pression de contact.Ici la notion de comptage périodique sur 3 itérations de Newton disparaît. On sait juste que le statut de contact précédent n’est pas le même que celui courant. La pression est dite faible si la valeur de la pression courante est 1.D-6 fois inférieure à la moyenne des pressions de contact de toutes les zones.

La détection du cyclage adhérent-glissant ne se fait que si le point de contact est resté stable en statut de contact sur 3 itérations et que le point courant est réellement en contact. Si ces deux conditions sont réunies alors, le zonage de la loi de Coulomb se fait ainsi:

  • Zone 1: Le point de contact esclave a une pression de frottement en dessous du seuil de Coulomb et un glissement tel qu’il est en situation d’adhérence de manière franche.

  • Zone 2: Le point de contact esclave a une pression de frottement proche du seuil de Coulomb tel qu’il est en situation d’adhérence avec faible glissement potentiel.

  • Zone 3: Le point de contact esclave a une pression de frottement proche du seuil de Coulomb et un glissement quasi-nul tel qu’il est en situation d’adhérence potentiel.

  • Zone 4: Le point de contact esclave a une pression de contact et un jeu tel qu’il est en situation de contact franc avec le corps maître.

Les statuts de cyclage de frottement adhérence-glissement d’un point esclavesont les suivant:

  • Objet CYCETA//ADHE_GLIS//cycl_stat = 11 le point a oscillé entre la zone 3 et la zone 2, c’est l’une des situations les plus pénalisantes du fait que le point a beaucoup de mal à se stabiliser.

  • Objet CYCETA//ADHE_GLIS//cycl_stat = 12 le point a oscillé entre la zone 1 et la zone 3, cas où l’adhérence a du mal à s’établir.

  • Objet CYCETA//ADHE_GLIS//cycl_stat = 13 le point a oscillé entre la zone 2 et la zone 4, le point a du mal établir un glissement de manière franche.

  • Objet CYCETA//ADHE_GLIS//cycl_stat = 14 le point a oscillé entre la zone 1 et la zone 4, le point n’est pas stable en adhérence-glissement.

La détection du cyclage glissement avant-glissement arrière ne se fait que si le point de contact est resté stable en statut de contact et pas d’adhérence-glissement sur 3 itérations et que le point courant est réellement en contact. Si ces trois conditions sont réunies alors on utilise le produit scalaire entre le vecteur glissement avant et le vecteur glissement arrière pour déterminer le statut cyclant.

  • Objet CYCETA//GLIAV_GLIAR//cycl_stat = 11 le point est en train d’osciller très faiblement autour d’une position stable adhérente.

  • Objet CYCETA//GLIAV_GLIAR//cycl_stat = 12 le point est en train d’osciller autour d’une position stable adhérente avec un grand glissement suivi de petits glissements.

  • Objet CYCETA//GLIAV_GLIAR//cycl_stat = 13 le point est en train d’osciller autour d’une position stable adhérente avec de grands glissements

Principen°2: Recherche optimale du coefficient de contact pour la pénalisation.Cas-test type : ssnv128y

Principen°3: Cas spécifique au flip-flop géométrique/statut de contact.Cas-test type ssnv504h,k