u4.44.13 Opérateur DEFI_CONT#
Résumé :
On définit dans cet opérateur les conditions de contact unilatéral et de frottement pour son utilisation (exclusive) dans l’opérateur [MECA_NON_LINE]
Pour le contact dans [STAT_NON_LINE] et [DYNA_NON_LINE], se référer à la documentation de [DEFI_CONTACT].
Avertissement
Cette documentation est provisoire, l’opérateur ne peut pas être utilisé dans les études AIP et il est hors du périmètre de qualification.
Syntaxe#
Détail de la syntaxe
/ char_cont
/ char_frot = DEFI_CONT(
◆ MODELE = modele,
◇ INFO = / 1 (par défaut),
/ 2,
◆ ZONE = _F(
◇ VERI_NORM = / "NON",
/ "OUI" (par défaut),
◇ ALGO_CONT = / "LAGRANGIEN" (par défaut),
/ "NITSCHE",
/ "PENALISATION",
# Si: is_in("ALGO_CONT", ("NITSCHE"))
◇ SYME = / "NON",
/ "OUI" (par défaut),
# Si: equal_to("SYME", "NON")
◇ VARIANTE = / "RAPIDE",
/ "ROBUSTE" (par défaut),
# Si: is_in("ALGO_CONT", ("LAGRANGIEN"))
◇ VARIANTE = / "CLASSIQUE",
/ "ROBUSTE" (par défaut),
◇ COEF_CONT = float (défaut: 100.0),
◇ TYPE_INTE = / "ELEM_BASE",
/ "SEG_BASE" (par défaut),
◇ APPARIEMENT = "MORTAR",
# Si: is_in("APPARIEMENT", ("MORTAR"))
◇ APPA_TOLE = float (défaut: 1e-8),
◇ AIRE_TOLE = float (défaut: 1e-8),
◇ TYPE_APPA = / "PANG",
/ "FORCEBRUTE",
/ "RAPIDE" (par défaut),
◇ COEF_MULT_APPA = float (défaut: -1.0),
◆ GROUP_MA_MAIT = grma,
◆ GROUP_MA_ESCL = grma,
# Si: is_in("ALGO_CONT", ("LAGRANGIEN","LAGRANGIEN_STD"))
◇ SANS_GROUP_MA = grma,
◇ SANS_GROUP_NO = grno,
# Si: is_in("ALGO_CONT", ("LAGRANGIEN",))
◇ TYPE_MATR_TANG = / "ANALYTIQUE" (par défaut),
/ "PERTURBATION",
# Si: is_in("ALGO_CONT", ("PENALISATION",))
◇ TYPE_MATR_TANG = / "ANALYTIQUE" (par défaut),
/ "PERTURBATION",
# Si: is_in("ALGO_CONT", ("LAGRANGIEN_STD",))
◇ TYPE_MATR_TANG = "PERTURBATION",
◇ CONTACT_INIT = / "INTERPENETRE" (par défaut),
/ "NON",
/ "OUI",
◇ DIST_SUPP = fonction / formule / nappe,
◇ CARA_ELEM = cara_elem,
# Si: exists("CARA_ELEM")
◇ DIST_POUTRE = / "NON" (par défaut),
/ "OUI",
◇ DIST_COQUE = / "NON" (par défaut),
/ "OUI",
◇ FROTTEMENT = / "NON" (par défaut),
/ "OUI",
# Si: equal_to("FROTTEMENT", "OUI")
# Si: equal_to("ALGO_CONT", "LAGRANGIEN")
◇ ALGO_FROT = "LAGRANGIEN",
# Si: equal_to("ALGO_CONT", "PENALISATION")
◇ ALGO_FROT = "PENALISATION",
# Si: equal_to("ALGO_CONT", "LAGRANGIEN_STD")
◇ ALGO_FROT = "LAGRANGIEN_STD",
◇ COEF_FROT = float (défaut: 100.0),
# Si: equal_to("TYPE_FROT", "COULOMB")
◆ COULOMB = float,
),
)
◆ : obligatoire
◇ : optionnel
⟐ : présent par défaut
& : ensemble
/ : un seul parmi
| : plusieurs choix possibles
Mise en données#
Principes#
La commande permet de décrire les zones soumises à des conditions de contact unilatéral avec ou sans frottement. La description se fait à deux niveaux :
Les paramètres globaux comme les paramètres de contrôle de l’algorithme de résolution non-linéaire (boucles de point fixe ou de Newton, paramètres spécifiques pour le solveur) sont à renseigner dans la commande [MECA_NON_LINE]
Les paramètres locaux spécifiques à chaque zone de contact.
Le concept issu de DEFI_CONT est ensuite renseigné comme paramètre dans le mot-clef simple CONTACT de la commande [MECA_NON_LINE]. Chaque zone comprend deux surfaces pouvant entrer en contact qui sont décrites par la donnée des groupes de mailles qui les constituent.
Les ensembles de mailles potentiellement en contact sont des mailles de peau: surfaciques et linéiques en dimension 3 (QUAD9, QUAD8, QUAD4, TRIA7, TRIA6, TRIA3, SEG3, SEG2), linéiques et ponctuelles en dimension deux (SEG3, SEG2 et POI1).
Les structures étudiées peuvent subir de grands glissements l’une par rapport à l’autre.
Paramètres généraux#
Mot-clef MODELE#
Le mot-clef MODELE attend un concept produit par l’opérateur [AFFE_MODELE] où sont définis les types d’éléments finis affectés sur le maillage. Le modèle est nécessairement du type MECANIQUE.
Mot-clef INFO#
Le mot-clef INFO gère le niveau des impressions sur le fichier message. Cette impression peut produire de très gros fichiers texte, il convient donc de l’utiliser avec précaution sur les études de grande taille.
Paramètres zonaux#
Définition d’une zone#
Une zone de contact est définie par deux groupes: un groupe de mailles esclaves et un groupe de mailles maîtres données par les mots-clefs GROUP_MA_MAIT et GROUP_MA_ESCL.
Pour faciliter la compatibilité des méthodes utilisant des multiplicateurs de Lagrange, il est possible d’exclure des noeuds de contact par les mots-clefs SANS_GROUP_MA et SANS_GROUP_NO. Il s’agit dans ce cas d’exclure les noeuds portant des multiplicateurs de Lagrange. Ces mots-clefs concernent donc les surfaces esclaves.
Appariement#
La première phase de réalisation du contact-frottement est la phase d”appariement. L’opération d’appariement consiste à trouver quelles mailles et quels nœuds sont potentiellement en situation de contact.
Lorsque l”APPARIEMENT="MORTAR" doit être utilisé, plusieurs méthodes d’appariement sont disponibles :
si
TYPE_APPA="PANG", on utilise la méthode PANG implémentée dansDEFI_CONTACT, qui se fonde sur un parcours des mailles par les voisins (au sens des arêtes);si
TYPE_APPA="RAPIDE", on utilise une méthode inspirée de la méthode PANG historique. Cette approche est utilisée par défaut;si
TYPE_APPA="FORCEBRUTE", on utilise un algorithme de type force brute, où on effectue une double boucle sur les mailles esclaves et maîtres. Cet algorithme est sous-optimal en termes de coût de calcul, mais il est le plus robuste numériquement.
Deux paramètres additionnels peuvent être fournis par l’utilisateur dans le cas de cet appariement, APPA_TOLE et AIRE_TOLE.
Ces deux grandeurs correspondent à des tolérances numériques utilisées dans l’ensemble des algorithmes d’appariement évoqués plus haut. APPA_TOLE
est une tolérance utilisée dans les algorithmes de Newton, tandis que AIRE_TOLE est un critère sur l’aire d’intersection calculée.
Pour ce dernier critère, on se permet de ne pas considérer des aires d’intersection « trop petites ». Mathématiquement, ceci revient à conserver
uniquement des mailles vérifiant :
où \(\Omega_{inter}\) est l’intersection obtenue, \(\delta_{area}\) la tolérance donnée par AIRE_TOLE, et
\(\texttt{F}^s\) la maille esclave initiale considérée.
Paramètres supplémentaires liés à l’appariement#
Le paramètre COEF_MULT_APPA permet d’améliorer la phase d’appariement en pré-détectant si deux mailles sont potentiellement en contact. On définit la distance \(d_{\text{cell}}\) entre deux cellules définie par
avec \(\vector{X}_b^{\text{s}}\), (respectivement \(\vector{X}_b^{\text{m}}\)) est le vecteur des coordonnées du barycentre de la maille esclave (respectivement maître).
Les mailles sont potentiellement appariées si, et seulement si :
avec \(d^{\text{s}}\) (respectivement \(d^{\text{m}}\)) le diamètre de la maille esclave (respectivement maître) et \(d_{r}\) le coefficient donné par COEF_MULT_APPA.
Si COEF_MULT_APPA est négatif, ce tri préalable est désactivé.
Le mot-clef VERI_NORM vérifie l’orientation des normales aux mailles surfaciques en 3D (mailles de peau TRIA ou QUAD) et linéiques en 2D (mailles de peau SEG). Si une normale n’est pas sortante, il y a émission d’un message d’erreur fatale.
Pour réorienter les mailles de façon à avoir des normales sortantes, il faut utiliser la commande [MODI_MAILLAGE], mot-clé ORIE_PEAU. Aucune vérification n’est possible sur les coques ou les plaques. Pour vérifier leur orientation, on renvoie également à la commande [MODI_MAILLAGE], mot-clé ORIE_NORM_COQUE.
Le mot-clef CONTACT_INIT permet de fixer le statut de contact à l’état initial.
Par défaut, seules les liaisons à jeu nul ou bien interpénétrées sont activées par l’algorithme (CONTACT_INIT="INTERPENETRE"). Il est néanmoins possible de forcer l’algorithme à activer toutes les liaisons sans exception (CONTACT_INIT="OUI"). La valeur CONTACT_INIT="INTERPENETRE" est obligatoire en cas de reprise de calcul avec un état initial. Il est également possible de désactiver tout contact initial par CONTACT_INIT="NON".
- Remarques
Il est important de vérifier que la connectivité de ces mailles est telle que la normale à la structure est sortante (pour ce faire, utilisez [MODI_MAILLAGE]
L’intersection entre surface esclave et maître d’une même zone doit être disjointe ou bien les nœuds communs doivent être exclus
Les surfaces esclaves doivent être impérativement deux à deux disjointes en formulation continue
Méthode d’intégration#
Dans le cas d’un appariement de type MORTAR, une fois celui-ci réalisé, plusieurs méthodes d’intégration sont disponibles.
Le mot-clé TYPE_INTE permet de choisir la méthode d’intégration à utiliser pour l’intégration sur les intégrales de contact. Le cas
TYPE_INTE="SEG_BASE" consiste à faire une intersection des mailles esclaves et maîtres, et à remailler l’aire d’intersection obtenue à partir du barycentre.
Cette option est celle choisie par défaut. Le cas TYPE_INTE="ELEM_BASE" consiste à ne retenir que les points d’intersection de la maille esclave qui
sont projetés dans l’intersection préalablement calculée.
Modifications du jeu#
Le jeu est toujours calculé comme étant la distance minimale entre le nœud esclave et la projection sur la maille maître la plus proche. Il est cependant possible de définir des valeurs de jeu «en dur», par exemple, pour simuler la présence d’un trou ou d’une bosse non représentée par le maillage, ou pour prendre en compte les caractéristiques géométriques des éléments de structure qui utilisent la notion de fibre neutre ou de surface moyenne.
Le mot-clef DIST_SUPP permet de modifier le jeu entre les deux surfaces. Le mot-clef accepte des fonctions ou des formules.
Une valeur négative permet de «creuser» virtuellement une surface (maître comme esclave). À l’inverse, une valeur positive permet de «grossir» une surface.
Les grandeurs renseignées sont nécessairement des fonctions des variables d’espace ou du temps (\(\left( X, Y, Z,\text{INST} \right)\) ). Si l’utilisateur désire une valeur fixe, il doit définir une fonction constante (voir [DEFI_CONSTANTE]).
Les mot-clefs DIST_POUTRE et DIST_COQUE permettent d’introduire un jeu fictif qui repose sur la description des éléments de structure dans le concept produit par [AFFE_CARA_ELEM] que l’utilisateur a obligatoirement renseigné :
pour les éléments de poutre (modélisation POU_*), le mot-clef
DIST_POUTREstipule que le code doit tenir compte d’un jeu supplémentaire correspondant au rayon de la section circulaire de la poutre.pour les éléments de plaque ou de coque (modélisation DKT ou COQUE_3 par exemple), le mot-clef
DIST_COQUEstipule que le code doit tenir compte d’un jeu supplémentaire correspondant à la demi-épaisseur autour du feuillet moyen d’une coque.
Attention, lorsque l’on utilise ces mots-clefs, le jeu fictif n’est rajouté que sur la surface esclave. Si on modélise un contact entre deux éléments de structures, il faudra donc aussi utiliser DIST_MAIT.
Quand on utilise un de ces mots-clefs, il est nécessaire de renseigner CARA_ELEM.
Algorithmes de contact#
La méthode de contact est choisie par le mot-clef ALGO_CONT. Il y a deux possibilités :
Méthodes du lagrangien augmenté (
LAGRANGIEN) qui résout le problème par dualisation et introduction de multiplicateurs de Lagrange (sur les noeuds de la surface esclave)Méthode de pénalisation (
PENALISATION) qui est une méthode qui résout le problème par régularisation (et donc de manière approchée). C’est une méthode de pénalisation non-consistante c’est-à-dire qu’elle introduit une erreur sur la solution qui ne s’estompe pas quand on raffine le maillage. Il faut alors adapter le coefficient de pénalisation pour améliorer la précision de résolutionMéthode de Nitsche (
NITSCHE) qui est une méthode qui résout le problème par régularisation (et donc de manière approchée). La méthode de Nitsche est une méthode de pénalisation consistante c’est-à-dire elle converge vers la solution quand on raffine le maillage. Elle n’est disponible qu’en 2D et pour des comportements élastiques isotropes
Il existe des variantes. Pour la méthode par lagrangien augmentée, le mot-clef VARIANTE permet de choisir entre la méthode classique d’Alart et Curnier (CLASSIQUE) et la méthode développée par Poulios et Renard (ROBUSTE).
Dans les deux cas, le mot-clef COEF_CONT permet de régler le paramètre d’augmentation qui agit sur la vitesse de convergence mais pas sur la qualité du résultat (la méthode ext exacte et respecte la condition unilatérale).
Pour la méthode de Nitsche, il existe trois variantes selon le choix d’un coefficient que l’on note généralement \(\theta\).
Le mot-clef SYME permet de choisir entre la variante produisant une matrice symétrique (cas \(theta=1\)) et une matrice non-symétrique (cas \(\theta=0\) et \(\theta=-1\)). Dans cette dernière situation, le mot-clef VARIANTE permet de choisir la valeur du coefficient \(\theta\). Le cas \(\theta=0\) correspond à la valeur RAPIDE de ce mot-clef et le cas math:theta=-1 correspond à la valeur ROBUSTE.
Il est à noter que le coefficient \(\theta\) permet de faire émerger plusieurs variantes mais qu’il est indépendant du coefficient de pénalisation nécessaire pour Nitsche et donné par le mot-clef COEF_CONT.
Pour la méthode du lagrangien augmenté, le mot-clef variante permet de choisir entre la formulation d’Alart et Curnier (VARIANTE="CLASSIQUE") ou la formulation de Poulios et Renard (VARIANTE="ROBUSTE").
La méthode classique utilise une approximation de la matrice tangente par perturbation. Le mot-clef TYPE_MATR_TANG permet en revanche de choisir entre une approximation de la matrice par PERTURBATION ou ANALYTIQUE pour la formulation de Poulios-Renard.
Algorithmes de frottement#
Pour affecter du frottement de Coulomb aux zones de contact, utilisez le mot-clef FROTTEMENT="OUI". Le paramètre COULOMB permet de fixer le coefficient de frottement.
Dans ce cas, les formulations par lagrangien augmenté et par pénalisation sont disponibles, soit ALGO_FROT="LAGRANGIEN" ou ALGO_FROT="PENALISATION".
Pour la formulation par lagrangien augmenté, on a le choix entre la formualtion classique (VARIANTE="CLASSIQUE") ou la formulation de Poulios-Renard (VARIANTE="ROBUSTE"). Le paramètre COEF_FROT permet de régler le coefficient d’augmentation uniquement dans le cas classique car la formulation de Poulios-Renard utilise le même coefficient d’augmentation pour le contact et pour le frottement.
Pour la formulation par pénalisation, le même coefficient d’augmentation est utilisé pour le contact et pour le frottement.