Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2013:10_13

Commit 2013-10-13

Modifications

Bug Fix

Projection d'un point sur un cercle

Lors de la projection d'un point sur un cercle pour la détection du contact en 2D, il y avait un problème lors de la mise à jour du point de collement (Warning). Une fois que l'on a la projection du point sur le cercle, nous devons déterminer sa coordonnée réduite u ([0, 1]) pour pouvoir déterminer à nouveau sa position ultérieurement. Cependant, il y avait une erreur et le calcul de la position du point ne correspondait pas à la projection du point.

Conditions aux limites : radial loading

Cette condition aux limites est imposée au moyen d'un “incremental load”. Il y avait un bug parce qu'elle se comportait comme un “total load” au lieu d'un incremental load.

Matrice de raideur tangente numérique (Force driven)

Il est possible d'utiliser la matrice de raideur tangente numérique pour une interaction de contact pilotée en force.

Nettoyage des éléments de contact

Suite à mon commit sur les matériaux de contact, j'ai nettoyé les routines des éléments de contact. Je résume ci-dessous les différences majeures par rapport à la version précédente.

Eléments de contact mécanique

Réorganisation des noeuds de l'élément : Noeud mécanique esclave + Noeuds mécaniques esclave auxiliaire + Noeuds mécaniques outil + Noeud thermiques esclave + Noeuds thermiques outil.

Lors de la détection du contact, nous ne calculons plus les composantes normales et/ou tangentielles de la force de contact. Cette routine est déplacée lors du calcul des forces extérieures mécaniques.

Lors de l'utilisation des schémas d'intégration conservatif, nous calculons une force de contact élémentaire mécanique dissipative. Désormais, le calcul de cette force de contact a été totalement découplée, ainsi que sa contribution à la matrice de raideur tangente élémentaire.

Correction des signes dans le post traitement des forces en ALE pour l'extraction des résultats (ajout d'un signe négatif pour la composante normale et tangentielle).

Eléments de contact thermo-mécanique du 1er degrés

Réorganisation des degrés de liberté : Dofs mécaniques + Dofs thermiques.

Réorganisation des noeuds de l'élément : Noeud mécanique esclave + Noeuds mécaniques esclave auxiliaire + Noeuds mécaniques outil + Noeud thermiques esclave + Noeuds thermiques outil.

Réécriture des fonctions pour le calcul de la force de contact thermique élémentaire et de la matrice de raideur tangente thermique élémentaire.

Eléments de contact thermo-mécanique du 2ième degrés

Réorganisation des degrés de liberté : Dofs mécaniques + Dofs thermiques.

Réorganisation des noeuds de l'élément : Noeud mécanique esclave + Noeuds mécaniques esclave auxiliaire + Noeuds mécaniques outil + Noeud thermiques esclave + Noeuds thermiques outil + Noeuds thermiques esclave d'interface + Noeuds outil d'interface.

Correction d'une erreur dans la détermination des noeuds esclaves d'interface en 3D + d'une erreur dans les “poids” des forces de contact thermique nodale de l'élément ainsi que dans l'expression de la matrice de raideur tangente thermique.

Méthode AIC

Il est possible d'utiliser la méthode Area In Contact pour les éléments de contact :

''AREAINCONTACT =  AIC'' Prise en compte de la surface liée au noeud esclave pour pondérer les forces de contact 
: Pénalité pondérée : Force = Penalité * gap * "Aire de contact nodale calculée à chaque itération mécanique"

L'aire de contact nodale varie dès lors au cours des itérations mécaniques et pour se faire, il faut ajouter les ddls mécaniques des noeuds esclaves utilisées pour calculer l'aire de contact de l'élément et déterminer la variation de l'aire de contact nodale en fonction du noeud esclave et des noeuds esclaves auxiliaires pour la matrice de raideur tangente mécanique.

La méthode a été développée en état plan déformation, en modélisation axisymétrique et en 3D pour toutes les méthodes de calcul de l'aire nodale de contact.

A priori, il est possible d'utiliser la méthode en formalisme ALE (routine endAle() adaptée) et en rupture (routine checkFreeNodes() adaptée).

Extracteur des forces de contact d'une interaction de contact

Nous pouvons utiliser cet extracteur pour déterminer la résultante des forces de contact selon X, Y et Z d'une interaction de contact :

contactForceValueExtractor=ContactForceValueExtractor(contInt,  natureId, contactForceType=TOTAL_FORCE, sOp=None, maxV=-1)

Inputs:

contInt Référence vers une interaction de contact
natureId ScalarNatureID (TX, TY, TZ) (scalaire uniquement)
contactForceType Type de force de contact
NORMAL_FORCE : Force normale de contact
TANGENTIAL_FORCE : Force tangentielle de contact
TOTAL_FORCE=default : Force normale + Force tangentielle de contact
sOp SortingOperator
defaut=None
maxV Nombre de valeurs conservées après opérateur de tri
defaut=-1 ⇒ sort toutes les valeurs

La force de contact sur l'entité esclave d'une interaction de contact est seulement prise en considération dans l'extracteur.

Il est indispensable d'utiliser cette extracteur en formalisme ALE, parce que l'extracteur de force d'une interaction utilise la routine fillVector( ), qui calcule le vecteur des forces élémentaires utilisé pour assembler la force interne, externe et d'inertie du schéma d'intégration temporelle.

Perspectives

Méthode du lagrangien augmenté :

  • Débugger la méthode
  • Ajout de nouveaux critères d'arrêt
  • Implémentation des cas test de référence de l'article de J. C. Simo and T. A. Laursen, 1990
  • Mettre à jour l'aire de contact nodale au cours des augmentations
  • Nettoyer et implémenter des nouveaux extracteurs de contact
  • Regarder si il est possible de faire des GPState en fonction du matériau et de la méthode de contact utilisée. (Gestion de mémoire + clarté du code)

Fichiers ajoutés/supprimés

[r]:
[a]:mtGeo/AreaInContactMethod.cpp
[a]:mtGeo/AreaInContactMethod.h
[a]:mtElements/boundaries/SlaveBoundary.h
[a]:mtElements/boundaries/ContactForceValueExtractor.h
[a]:mtElements/boundaries/ContactForceValueExtractor.cpp

Tests ajoutés/supprimés

[r]:
[a]: 

Gaëtan WAUTELET 2013/10/13

commit/2013/10_13.txt · Last modified: 2016/03/30 15:23 (external edit)