Assistance #389
ouvertRéalisation d'une simulation avec contact apparaissant en cours de calcul
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
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
- Fichier Essais_contact.info Essais_contact.info ajouté
- % réalisé changé de 0 à 80
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é.