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”)
“.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
“.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
“.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:
L’index;
Une description;
Le(s) mot-clef(s) concerné(s) dans DEFI_CONTACT;
La question à poser dans CFDISIou CFDISR;
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:
L’index;
Une description;
Le(s) mot-clef(s) concerné(s) dans DEFI_CONTACT;
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#
“.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#
“.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#
“.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#
“.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.
Index de l’objet CYCHIS |
Description (Pour le point de contact) |
1 |
Indicateur de contact courant |
2 |
Coefficient de contact courant |
3 |
Pression de contact courant |
4 |
Jeu courant |
5 |
Indicateur courant de frottement |
6 |
Coefficient de frottement |
7 |
Pression courante de frottementnormalisée : composante 1 dans le repère global |
8 |
Pression courante de frottementnormalisée : composante 2dans le repère global |
9 |
Pression courante de frottementnormalisée : composante 3 dans le repère global |
10 |
Glissement courantde frottement : composante 1 dans le repère global |
11 |
Glissement courant de frottement: composante 2 dans le repère global |
12 |
Glissement courant de frottement: composante 3 dans le repère global |
13 |
Tangente couranten°1: composante n°1 dans le repère global |
14 |
Tangente courante n°1: composante n°2 dans le repère global |
15 |
Tangente courante n°1: composante n°3 dans le repère global |
16 |
Tangente courante n°2: composante n°1 dans le repère global |
17 |
Tangente courante n°2: composante n°2 dans le repère global |
18 |
Tangente courante n°2: composante n°3 dans le repère global |
19 |
Coordonnée couranteparamétrique n°1 du point de contact courant esclave |
20 |
Coordonnée courante paramétrique n°2 du point de contact courant esclave |
21 |
Coordonnée courante paramétrique n°1 du point projeté courant maître |
22 |
Coordonnée courante paramétrique n°2du point projeté courant maître |
23 |
Non utilisé |
24 |
Numéro courant de l’élément maître apparié au point esclave |
25 |
Indicateur de contact précédent |
26 |
Coefficient de contact précédent |
27 |
Pression de contact précédent |
28 |
Jeu précédent |
29 |
Indicateur précédentde frottement |
30 |
Coefficient de frottement précédent |
31 |
Pression précédente de frottementnormalisée : composante 1 dans le repère global |
32 |
Pressionprécédente de frottementnormalisée : composante 2 dans le repère global |
33 |
Pressionprécédente de frottementnormalisée : composante 3 dans le repère global |
34 |
Glissementprécédent de frottement : composante 1 dans le repère global |
35 |
Glissement précédent de frottement: composante 2 dans le repère global |
36 |
Glissement précédent de frottement: composante 3 dans le repère global |
37 |
Tangente précédenten°1: composante n°1 dans le repère global |
38 |
Tangente précédente n°1: composante n°2 dans le repère global |
39 |
Tangente précédente n°1: composante n°3 dans le repère global |
40 |
Tangente précédente n°2: composante n°1 dans le repère global |
41 |
Tangente précédente n°2: composante n°2 dans le repère global |
42 |
Tangente précédente n°2: composante n°3 dans le repère global |
43 |
Coordonnées précédente paramétrique n°1 du point de contact courant esclave |
44 |
Coordonnées précédente paramétrique n°2 du point de contact courant esclave |
45 |
Coordonnées précédente paramétrique n°1 du point projeté courant maître |
46 |
Coordonnées précédente paramétrique n°2du point projeté courant maître |
47 |
Numéro précédent de l’élément maître courant |
48 |
Numéro précédent de l’élément maître apparié au point esclave |
50 |
Cyclage frottement actif: 1 oui 0 non |
51 |
Mode robuste de contact: basculement en pénalisation |
52 |
Mode robuste de frottement: basculement en pénalisation |
53 |
Non Utilisé |
54 |
Choix de alphapour les vecteursde frottement |
55 |
Choix de alphapour les matrices de frottement |
56 |
Choix de alphapour les vecteursde contact |
57 |
Cyclage contact actif: 1 oui 0 non |
58 |
Non Utilisé |
59 |
Choix de alphapour les matrices de contact |
60 |
Non utilise |
61 |
Coordonnées courante du point esclave dans l’espace physique: composante n°1 |
62 |
Coordonnées courante du point esclave dans l’espace physique: composante n°2 |
63 |
Coordonnées courante du point esclave dans l’espace physique: composante n°3 |
64 |
Coordonnées courante du point maître dans l’espace physique: composante n°1 |
65 |
Coordonnées courante du point maître dans l’espace physique: composante n°2 |
66 |
Coordonnées courantedu point maître dans l’espace physique: composante n°3 |
67 |
Coordonnées précédente du point esclave dans l’espace physique: composante n°1 |
68 |
Coordonnées précédente du point esclave dans l’espace physique: composante n°2 |
69 |
Coordonnées précédente du point esclave dans l’espace physique: composante n°3 |
70 |
Coordonnées précédente du point maître dans l’espace physique: composante n°1 |
71 |
Coordonnées précédente du point maître dans l’espace physique: composante n°2 |
72 |
Coordonnées précédentedu point maître dans l’espace physique: composante n°3 |
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#
L’algorithmeva adapter le calcul des matrices de contact-frottement suivant les cas de cyclage. Il permet également de faire des heuristiques particulières (cas du flip-flop) pour aider à la convergence sur les statuts de contact. La méthode permet également de faire une recherche optimale du coefficient de C’est également dans cette routine qu’on s’assure de la convergence de la boucle sur les statuts.
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