Projet

Général

Profil

Actions

Assistance #389

ouvert

Réalisation d'une simulation avec contact apparaissant en cours de calcul

Ajouté par Victorien CLEMENT il y a 16 jours. Mis à jour il y a 2 jours.

Statut:
En cours
Priorité:
Normal
Assigné à:
Début:
10/10/2025
Echéance:
% réalisé:

80%

Temps estimé:
Temps passé:

Description

Bonjour Gérard,

Dans la continuité de échanges, je suis actuellement en train de faire des essais de simulations avec contacts.

Afin de me rapprocher au plus de mon expérimental (essai in-situ où le joint est comprimé dans un outillage) j'ai réalisé des tests où les dimensions de la bague font que les bords internes et internes de cette dernière ne sont pas en contact avec la chemise et la tige au départ de l'essai et rentre en contacts au cours de l'essai théoriquement comme on l'observe expérimentalement.

Lors de ces tests je remarque que dès le premier incrément, HEREZH mets les nœuds de ma bague directement en contact alors qu'ils ne sont pas censés y être (cela se confirme par les nœuds sont à 0.0001 de la surface soit directement le paramètre PENETRATION_CONTACT_MAXI au lieu de 0.06 pour le diamètre interne et de 0.055 pour le diamètre externe).

De plus, lorsque l'on regarde la réponse en contrainte, on peut observer que malgré le fait que la bague soit en compression tout le long de la simulation, au démarrage, la contrainte est négative (comme si la bague était en traction peut être ?). En regardant les différentes contributions, ce sont les contributions sphériques qui sont négatives (du coup à cause du mouvement des nœuds présenté avant j'imagine).

En te remerciant pour ton aide

Cordialement

Victorien CLEMENT


Fichiers

Capture d_écran 2025-10-09 181711.png (3,34 ko) Capture d_écran 2025-10-09 181711.png Vue gmsh premier incrément Victorien CLEMENT, 10/10/2025 11:43
Capture d_écran 2025-10-09 181559.png (3,15 ko) Capture d_écran 2025-10-09 181559.png Vue par hz_visuMail des maillages avant calcul Victorien CLEMENT, 10/10/2025 11:43
10_Essais_contact.zip (2,77 Mo) 10_Essais_contact.zip Fichiers de calcul et figures liées Victorien CLEMENT, 10/10/2025 11:48
Essais_contact.info (13,3 ko) Essais_contact.info Gérard Rio, 18/10/2025 11:05

Mis à jour par Gérard Rio il y a 13 jours

  • Statut changé de Nouveau à En cours

oui, j'ai cru trouver rapidement la solution mais en fait je n'en suis pas si sûr finalement donc je préfère regarder de plus près.
Je suis absent le reste de la semaine, je regarde en début de semaine prochaine....

Mis à jour par Gérard Rio il y a 8 jours

bonjour Victorien,
je pense avoir une explication, mais c'est un peu complexe.

avec le type de contact :

*CONTACT_TYPE 4 *

cf. doc, le fct est le suivant: par défaut à la première itération, le noeud esclave est projeté sur la facette maître ce qui entraîne une force de réaction fonction de la distance parcourue entre la position initiale et la position projetée. On en déduit un facteur de pénalisation (force / distance). Ensuite dès la seconde itération, le noeud esclave est relâché, et une force de contact est calculée en utilisant la pénalisation obtenue à la première itération.

1) la force est modulée en fct du gap (= pénétration avec gap < 0, ou sinon distance entre le projeté et la position du noeud).
paramètre: PENETRATION_BORNE_REGULARISATION
Pour être sûr d'avoir toujours une force nulle pour un gap positif je mets:

PENETRATION_BORNE_REGULARISATION_PLUS 0.

2) si j'utilise une loi linéaire au lieu de la loi complexe "graphite" j'obtiens pour l'évolution des résidus:

=============================================================================
....... re-analyse du contact ........
INCREMENT DE CHARGE : 1 intensite 0.00010000000000000 t= 0.00010000000000000 dt= 0.00010000000000000 ============================================================================
...
contact: reaction ==> F_N => [0.00000000000000000 : 2536057.01206084620207548], F_T max = 0.00000000000000000, [-0.00000786655474627 <= gap_N <= 0.00000897716752846], [0.00000000000000000 <= gap_T <= 0.00000000000000000]
ITERATION : 1
(assemblage 1) reaction maxi : 2842600.92209215, du ddl X1, du noeud/maillage 8/2
  • Norme Residu/Reaction --> 0.00036913
    ...
    contact: reaction ==> F_N => [-457.16736514339186215 : 568.82653018851226534], F_T max = 0.00000000000000000, [-0.00000002151810108 <= gap_N <= 0.00000002242956398], [0.00000000000000000 <= gap_T <= 0.00000000000000000]
    ITERATION : 2
    (assemblage 1) reaction maxi : 996102.71405092, du ddl X2, du noeud/maillage 5/1
  • Norme Residu/Reaction --> 2.54655047
    ...
    contact: reaction ==> F_N => [0.00000000000000000 : 100000000.00000000000000000], F_T max = 0.00000000000000000, [0.00000000000000000 <= gap_N <= 0.10000002242956540], [0.00000000000000000 <= gap_T <= 0.00000000000000000]
    ITERATION : 3
    (assemblage 1) reaction maxi : 57724.41714836, du ddl X2, du noeud/maillage 7/1
  • Norme Residu/Reaction --> 3.07244473
    ...
    contact: reaction ==> F_N => [0.00000000000000000 : 100000000.00000000000000000], F_T max = 0.00000000000000000, [0.00000000000000000 <= gap_N <= 0.05973449062940617], [0.00000000000000000 <= gap_T <= 0.00000000000000000]
    ITERATION : 4
    (assemblage 1) reaction maxi : 1459.78248795, du ddl X2, du noeud/maillage 7/1
  • Norme Residu/Reaction --> 1.74706120
    contact: reaction ==> F_N => [0.00000000000000000 : 100000000.00000000000000000], F_T max = 0.00000000000000000, [0.00000000000000000 <= gap_N <= 0.05999999334678030], [0.00000000000000000 <= gap_T <= 0.00000000000000000]
    ITERATION : 5
    (assemblage 1) reaction maxi : 0.01693550, du ddl X2, du noeud/maillage 7/1
  • Norme Residu/Reaction --> 0.76866875
    contact: reaction ==> F_N => [0.00000000000000000 : 100000000.00000000000000000], F_T max = 0.00000000000000000, [0.00000000000000000 <= gap_N <= 0.06000000000000405], [0.00000000000000000 <= gap_T <= 0.00000000000000000]
    ITERATION : 6
    (assemblage 1) reaction maxi : 0.00000002, du ddl X2, du noeud/maillage 2/1
  • Norme Residu/Reaction --> 8.69825937
    etc..
max puissance exterieure   =   0.00000000
max puissance interieurs = 0.00000020
max des reactions = 0.00000002
max du residu total = 0.00000020

a) On voit que l'on a du contact à l'itération 2 puis on n'a plus de contact et on converge vers la solution, mais cela prend qq itérations, car on part d'une situation très fortement en déséquilibre.
b) à l'itération 6 on a convergé, mais pourtant Norme Residu/Reaction reste grand, cela provient du fait qu’on divise des nombres très petits. En fait il faut utiliser une autre norme: par exemple:

NORME min(Res,Res/MaX(Reaction_et_PVExterne))_verification_ddouble

avec cette norme c'est OK

3) maintenant si j'utilise la loi complexe "graphite" le calcul suit la même logique par contre il n'arrive pas à converger. Je pense que c'est dû à la méthode : à la première itération projection du noeud, et ensuite la loi n'arrive pas à ramener le noeud dans une position d'équilibre décollée. Mais c'est un mixte loi x méthode.

4) J'ai testé une autre méthode que j'ai implanté récemment, ou le facteur de pénalisation est calculé à partir de la raideur globale.

para_contact ------------
CONTACT_TYPE 2
PROP_VALPROPRE_RAIDEUR 0.01
TYPE_PENALISATION_PENETRATION 12
PENETRATION_CONTACT_MAXI 0.0001
PENETRATION_BORNE_REGULARISATION_PLUS 0.

là tout se passe correctement avec:
- au début pas de contact latéral
- puis contact à l'extérieur
- puis contact intérieur, extérieur

Donc ça semble être une solution pour ton problème.

Ceci étant, le type 4 est performant dans d'autres cas ... tout dépend de la configuration géométrique et du type des lois !

Je te joins le .info que j'ai utilisé.

Mis à jour par Victorien CLEMENT il y a 3 jours

Bonjour Gérard,

Merci pour les informations.
Je viens d'essayer de tester la solution avec "CONTACT_TYPE 2" mais mon HEREZH bloque au paramètres "PROP_VALPROPRE_RAIDEUR". En fouillant un peu dans les docs/site internet, j'ai vu que ce paramètre (parmi la plupart des mAJ sur le contact) est apparu à partir de la version 7.054 d'HEREZH. Cependant, cette version (et celles qui suivent) n'est disponible que sur osX alors que je tourne avec les versions AppImage sur Linux (qui s'arrêtent à la version 7.053 donc juste avant l'implémentation de ces paramètres). Est-il possible dans ce cas d'avoir prochainement une version AppImage ?

Mis à jour par Gérard Rio il y a 2 jours

je viens de mettre la version 7.057 AppImage
J'y ai introduit des éléments supplémentaires concernant le frottement, mais ces suppléments ne fonctionne pas correctement pour l'instant, donc je n'ai pas encore documenté.

Actions

Formats disponibles : Atom PDF

Redmine Appliance - Powered by TurnKey Linux