Assistance #241
Forcer la détection du contact pour les noeuds extérieurs au volume
Description
Bonjour Gérard,
Dans certain cas de maillages fins, lorsque après déploiement j'active le contact, certains nœuds frontières qui sont hors des volume de contact ne sont pas détecté comme devant être en contact.
Dans le principe du contact je comprends ce comportement mais dans mon cas je veux forcer le contact !
D'apès la doc Herezh propose 2 paramètres : PRECISION_BOITE_PRELOCALISATION et MINI_EXTRA_BOITE_PRELOCALISATION avec des valeurs par défaut (1.05 et 0.001 respect.). Suffit-il d'augmenter l'un ou l'autre de ces paramètres pour garantir la détection ? As-tu des conseils sur le sujet ?
Il y a 2 ans, lorsque j'avais essayer d'utiliser le contact à la place des CLL tu m'avais proposé un jeux de paramètres avec notamment AJOUT_EXTRA_BOITE_PRELOCALISATION. Je ne vois pas ce paramètre dans la doc actuelle ?
Merci pour ton aide,
Frank
Fichiers
Mis à jour par Gérard Rio il y a plus de 4 ans
Bonjour Frank,
est-ce que tu utilises un contact collant ?
Mis à jour par Frank Petitjean il y a plus de 4 ans
J'utilise un contact glue_contact avec le type de pénalisation 8.
Mis à jour par Frank Petitjean il y a plus de 4 ans
Dans mon cas le contact doit être symétrique puisque je souhaite que les nœuds des bords soient plaqués sur les faces de mes hexa.
Mis à jour par Gérard Rio il y a plus de 4 ans
- Statut changé de Nouveau à En cours
- % réalisé changé de 0 à 80
oui, dans ton cas je pense que le contact collant est une bonne solution.
Pour détecter le contact, Herezh utilise une boite de pré localisation du volume de l'élément frontière, qui est déterminée par un point (= 3 coordonnées) mini (encomb_min_fr) et un point maxi (encomb_max_fr).
Ce qui suit est relatif à un élément volumique qui contient des frontières surfaciques:
Tout d'abord, on regarde les mini et maxi en x,y et z des coordonnées des noeuds de la frontière -> une première boite.
Ensuite on va calculer un "delta" que l'on va ajouter tout autour.
1) on calcule un premier vecteur "delta" = (encomb_max_fr - encomb_min_fr (de la boite)) * (PRECISION_BOITE_PRELOCALISATION - 1.)
2) on calcule une variable : miniajout = MINI_EXTRA_BOITE_PRELOCALISATION * || delta ||
3) on ajoute "miniajout" dans les trois direction de "delta"
4) de plus on rajoute également dans les trois directions la grandeur utilisateur : AJOUT_EXTRA_BOITE_PRELOCALISATION
5) enfin on fait : encomb_min_fr -= delta, et encomb_max_fr += delta.
Donc on voit que l'on a 3 paramètres sur lesquels on peut agir :
- PRECISION_BOITE_PRELOCALISATION qui va agir de manière multiplicative et différente dans les 3 directions, donc par exemple ne change pas la taille de la boite dans la direction d'épaisseur
- MINI_EXTRA_BOITE_PRELOCALISATION qui permet d'agir de manière multiplicative et identique dans les 3 direction,
- AJOUT_EXTRA_BOITE_PRELOCALISATION : ajout forfaitaire qui agit de manière additive et identique dans les 3 directions.
Voilà pour le fonctionnement primaire. Ensuite il y a des particularités dans le cas de frontière de membrane et dans le cas de grand déplacement, mais je ne pense pas que cela concerne ton pb pour l'instant, du coup je laisse de côté pour l'instant.
Effectivement, si le noeud esclave n'est pas dans la boite de prélocalisation, le contact est réputé ne pas pouvoir avoir lieu. Donc une solution est d'agir sur les paramètres qui contrôlent la construction de la boite.
Concernant la doc: je vais la compléter car effectivement il manque l'info. Mais AJOUT_EXTRA_BOITE_PRELOCALISATION est bien présent et opérationnel dans Herezh !
Est-ce que ma réponse te convient ?
Mis à jour par Frank Petitjean il y a plus de 4 ans
- Fichier modele_deplace_Gmsh.png modele_deplace_Gmsh.png ajouté
- Fichier maillage.her maillage.her ajouté
- Fichier modele.CVisu modele.CVisu ajouté
- Fichier modele.info modele.info ajouté
- Fichier plan_sym.her plan_sym.her ajouté
- Fichier modele_deplace_Gmsh.pos modele_deplace_Gmsh.pos ajouté
Ta réponse est plus détaillée que la doc, merci !
J'ai augmenté les paramètres qui contrôlent la boite sans effet. Ce qui montre que les valeurs par défaut sont bien adaptées à mon cas.
Il doit de passer autre chose que je n'arrive pas à comprendre, et qui est bien lié à la taille des éléments. Certains nœuds ne sont pas pris pris en compte par le contact. Étrangement un seul bord du maillage est concerné bien que le maillage soit symétrique, et seul une partie du bord, toujours la même (voir le fichier image ou le .pos).
Il s'agit d'un simple BPS (sans élément double) mais avec un facteur bias pour le maillage tel que la rangée d'éléments aux bords soit très mince. Il n'y a pas de problème autrement.
Je laisse tomber l'affaire pour l'instant car il me faut livrer Herezh. Je fais le choix de désactiver le contact pour cette famille de ballon (BPS avec calotte). J'applique directement les CLL. Cela fonctionne mais c'est un peu dommage car la solution du contact a maintenant ma préférence. Comme tu l'as déjà signalé, les CL en déplacement (comme nos CLL) contraignent fortement la position final des nœuds tandis qu'un contrôle en force laisse plus de latitude à la structure pour trouver sa position d'équilibre. Si les 2 méthodes donnent des résultats identiques pour les structures massives, rigides et bien chargées, ce n'est pas le cas pour nos ballons. Le cas extrêmes étant les BSO.
Affaire à suivre donc...
Mis à jour par Gérard Rio il y a plus de 4 ans
Frank,
Je vais essayer de comprendre ce qui se passe...
Mis à jour par Gérard Rio il y a plus de 4 ans
bonjour Frank, j'ai fait une première investigation.
Je ne comprenais pas pourquoi on n’avait pas de détection des noeuds près du centre. En fait, je pense que les panneaux maîtres n'étaient pas assez dans les négatifs. Du coup le pb n'est pas au niveau des boites d'encombrement, mais au niveau de la frontière elle-même.
Ce qui se passe:
1) il y a une recherche grossière de contact potentiel: => utilisation de boite de prélocalisation + vérif de la distance maxi de projection
2) si la recherche grossière est ok, là il y a une recherche + précise qui ne fait plus référence à la boite de prélocalisation
Dans ton cas j'ai effectivement détecté le pb :
1) Compte tenu de la position initiale de la frontière, si on veut que le test grossier passe, effectivement la boite devait être augmentée
Mais cela ne suffit pas, car ensuite quand la recherche s'affine, la projection sur la frontière inférieure est légèrement extérieur à l'élément !
Du coup j'ai déplacé arbitrairement les frontières maîtres de -0.5 au lieu de -0.1 suivant x, et là je détecte bien les contacts:
==> LesContacts::Def Elem Cont, initialement 0 elem contact apres Def Elem Cont: 158 elem contact , 158 nouveau(x)
Bon... je vais continuer le calcul pour voir la suite !
mais pour tes calculs tu peux peut-être repositionner de la même manière, tes éléments maîtres
@suivre !
Mis à jour par Gérard Rio il y a plus de 4 ans
suite :
- le calcul va à terme et a priori avec ma version (6.943) , le contact est bien pris en compte ...
- E_cinetique/E_statique_ET_Res/Reac_et_Fext --> 0.000509088
======== fin module de visualisation par fichiers de points au format maple ========
======== fin du module de visualisation format Gid ========
======== fin du module de visualisation format Gmsh ========
... convergence en 2403 iterations
Je vais mettre à jour la version d'Herezh sur le site car j'ai fait des modifs sur les variables utilisateurs...
Ce n'est pas entièrement fini mais c'est bien avancé !!
Mis à jour par Gérard Rio il y a environ 4 ans
bonjour Frank,
est-ce que je peux fermer ce ticket ?
Mis à jour par Frank Petitjean il y a environ 4 ans
Oh oui, le contact passe maintenant très bien à tout les coups. Merci
Frank
Mis à jour par Gérard Rio il y a environ 4 ans
- Statut changé de En cours à Résolu
- % réalisé changé de 80 à 100
OK