La gestion du contact avec Abaqus
Ah, le contact ... Vous pouvez être à peu près certain,
dès qu'une étude demande de prendre en compte les phénomènes
de contact, et les non-linéarités qui vont avec, d'entendre
prononcer dans les plus brefs délais la phrase magique : "Tu veux
prendre en compte le contact ? Ah, il faudrait passer le calcul sous
Abaqus,
alors". Pourquoi ce code a-t-il une telle aura dans ce domaine bien
particulier
? Mystère ! Enfin non, je suis sûrement injuste, ca ne relève pas du
mystère, des dizaines de benchs ont prouvé la validité des résultats
fournis par le bébé
de messieurs Hibbitt, Karlsson et Sorensen (HKS, je parle d'un temps
que les moins de trente ans ...), aujourd'hui propriété de Dassault
Systèmes sous la marque Simulia.
En tout cas, rares sont les mécaniciens
capables de répondre à la question "pourquoi Abaqus plutôt
qu'un autre code ?", autrement que par "parce que !" ... :-)
Maintenant que vous voilà persuadés d'avoir l'outil absolu
entre les mains, l'idée serait de parvenir à s'en servir,
et autant que faire se peut à s'en servir correctement. Comme souvent,
il faut commencer par analyser le problème, et par savoir dans quelle
"case" le ranger.
Veut-on représenter un contact entre deux pièces modélisées
en volumique, ou entre une pièce en volumique et une en surfacique,
ou bien entre deux pièces en surfacique, ou encore entre une pièce
et elle-même ? Peut-on assumer que les déplacements et glissements
relatifs entre les pièces sont infinitésimaux, ou bien sont-ils
d'un ordre de grandeur comparable aux pièces elles-même ?
Y a-t-il du frottement, et faut-il en tenir compte ? Peut-on supposer
que
l'une des pièces est rigide, ou bien les déformations des
deux pièces doivent-elles être prises en compte ?
Procédons avec désordre et sans méthode, en répondant
aux questions un peu comme elles viennent à l'esprit du calculus
vulgum à qui on vient de confier une étude.
1) Corps déformables ou non ? Comment définir mes zones de contact ?
L'essentiel à ce propos est de savoir, et le message risque d'etre assez récurrent, que quelle que soit la réponse Abaqus permet de modéliser la plupart des situations.
Si dans le joli dessin 3D ci-dessus la sphère se révèle
être une balle de tennis, et le plan un bout de la dalle du central
de Roland-Garros (appréciez la fidélité du rendu des
couleurs), vous serez sans doute d'accord avec moi pour dire que le
court
est bien plus rigide que la balle, et peut donc être assimilé
à une surface indéformable.
On peut définir des surfaces rigides soit par l'intermédiaire
d'un maillage déjà existant, auquel on attribuera un statut
de "corps rigide", soit par l'intermédiaire d'une formule analytique.
Dans le premier cas, la syntaxe à utiliser est la suivante :
*RIGID BODY,REF NODE=n,ELSET=nom_elset
Dans le second cas :
*RIGID BODY,REF NODE=n,ANALYTICAL SURFACE=nom_surface
*SURFACE,TYPE=SEGMENTS/CYLINDER/REVOLUTION,NAME=nom_surface
...
On notera dans les deux cas la présence du paramètre
(obligatoire) REF NODE, qui associe à
chaque corps
rigide un noeud de référence, auquel seront par exemple imposées
les conditions aux limites.
Concernant la manière de définir les surfaces analytiques
(type segments en 2d, cylinder ou revolution en 3d), je vous laisse
éplucher
le Keywords Manual :-)
Dans le cas de figure le plus général tous les corps en
présence sont considérés comme déformables.
La carte RIGID BODY n'est donc pas nécessaire, et
on peut
se contenter de la syntaxe suivante :
*SURFACE,TYPE=ELEMENT,NAME=nom_surface
nom_elset,identifiant_face
La ligne de données doit contenir le nom du set d'éléments
à inclure dans la surface, ainsi qu'un moyen d'identifier quelle
"face" devra etre prise en compte. Si la pièce est modélisée
par des éléments 2d, le code doit savoir si le contact a
lieu du coté de la normale sortante (SPOS)
ou entrante
(SNEG). Si le modèle est volumique, il faut soit
spécifier
manuellement un numéro de face, soit, ce qui reste et de loin le
plus simple, laisser le code identifier automatiquement les faces
externes
du solide en question. L'identifiant est alors superflu, et la ligne de
commande doit s'arreter après la virgule suivant le nom de l'elset.
Un logiciel de prétraitement digne de ce nom, tel qu'Ansa, vous
permettra évidemment de rendre assez transparente cette phase, qui
serait excessivement pénible à la main sur un modèle complexe ...
2) Définition et nature des interactions
Maintenant que ces surfaces sont définies "par pièce",
il est nécessaire de préciser quelles sont les interactions
susceptibles d'avoir lieu. Pour revenir à notre exemple tennistique,
il nous faut préciser que l'on fait interagir la balle avec le sol,
et non avec la tempe du juge de filet ou avec la raquette de Tatiana
Golovin.
C'est le role des cartes *CONTACT PAIR et *SURFACE
INTERACTION.
Exemple :
*CONTACT PAIR, INTERACTION=type_interaction
surface_1, surface_2
*SURFACE INTERACTION, NAME=type_interaction
*FRICTION
0.4
Cette séquence d'instructions permet de spécifier un coefficient de
frottement de 0.4 entre les surfaces 1 et 2. La carte FRICTION doit
suivre la carte SURFACE INTERACTION qu'elle complète. On peut
évidemment définir plusieurs types d'interaction, et plusieurs
coefficients de frottement sur un même modèle (par exemple un
coefficient de frottement sous tête dans le cas d'un assemblage vissé
et un autre pour le frottement entre les deux pièces maintenues par la
vis).
3) Maitre ? Esclave ?
Les
développeurs d'Abaqus n'ayant pas spécifiquement versé dans la mouvance
SM, il ne faut pas chercher d'histoire de donjeon derrière cette
terminologie. Lorsque deux pièces sont en contact, l'une doit
être déclarée maitre, et l'autre esclave. C'est l'ordre d'apparition
des surfaces dans la carte CONTACT PAIR qui définit la nature de cette
relation : la première est l'esclave, la deuxième la maitre.
La surface maitre est utilisée, via sa normale, pour la définition de
la direction de contact. Les noeuds de la surface esclave n'ont pas le
droit de pénetrer la surface maitre, alors que l'inverse est (en
principe) possible. Le choix de cette hiérarchie dépend des critères
suivants :
- si l'un des corps est infiniment rigide, c'est lui qui sera choisi
comme maitre
- si les deux sont déformables, la pièce la plus rigide et/ou maillée
le plus grossièrement sera choisie comme maitre (nb : il s'agit ici de
la rigidité -locale- de la structure et non simplement du matériau qui
la constitue)
4) Petit ou grand glissement ?
La
formulation la plus générale du contact entre deux pièces fait appel à
une hypothèse dite de "grand glissement" (finite sliding). Elle
autorise tout déplacement relatif (translation comme rotation) entre
surfaces en contact. Elle est cependant coûteuse en temps de calcul.
Sous certaines conditions bien spécifiques, on peut alléger le problème
en faisant une hypothèse de "petit glissement" (small sliding). Les
rotations relatives peuvent toujours être arbitrairement grandes, mais
les déplacements sont contraints : chaque noeud d'une surface esclave
ne doit au cours de l'analyse interagir qu'avec un même élément de la
surface maitre.
5) Quelques astuces
- utiliser STEP,UNSYMM=YES si frottement "fort" (f>0.2)