Assistance #365
Cas de contact
Description
Bonjour Gérard,
Pour répondre à des besoins d'HMR dans le calcul de la maquette Burst j'ai besoin d'introduire de nouvelles conditions de contact. Il s'agit de limiter le gonflement du fuseau au secteur angulaire défini par la symétrie cyclique. Ce contact doit s'ajouter à celui déjà utilisé pour imposer la symétrie cyclique aux noeuds des bords du fuseau.
Pour commencer simplement j'ai écrit un cas test simple. Il s'agit d'un ruban de 1x5m (attention je suis en m, Pa) encastré aux extrémités et sur lequel s'applique une pression croissante. Il se gonfle en RD sans problème.
J'ai ajouté au dessus un hexaèdre qui est sensé bloquer le déploiement du ruban. J'ai passé la journée à essayer de régler les paramètres de contact sans aboutir. Est-ce que tu peux m'aider à traiter ce cas stp. Merci.
Frank
PS. J'utilise bien la dernière version d'Herezh
Fichiers
Mis à jour par Gérard Rio il y a 9 mois
- Statut changé de Nouveau à En cours
Bonjour Frank,
ok je vais regarder ce week end ...
Mis à jour par Gérard Rio il y a 9 mois
- % réalisé changé de 0 à 90
deux paramètres sont prépondérants dans ton cas:
- PENALISATION_PENETRATION qui était à 1000 et que j'ai mis à 1.e-7 donc une diminution de 1.e10
c'est ok aussi avec 1.e-6, mais à 1.e-5 le calcul diverge.
Le facteur de pénalisation est calculé à partir de la raideur du matériau maître qui dans ton cas est issue d'un module d'Young de 2e11. Si le facteur multiplicatif PENALISATION_PENETRATION est grand relativement à une pénétration imposée par la charge, importante, cela conduit à des forces de réaction gigantesques d'où une divergence. Il faut donc regarder les forces de réaction (Herezh indique le maxi) et tant que l'on a des forces énormes, il faut baisser le facteur (ou alors, diminuer le module d'Young du maître). Ici à partir de 1.e-6 c'est ok
- DISTANCE_MAXI_AU_PT_PROJETE qui était à 0.001 et que j'ai mis à 0.5
Dans ton cas de chargement, à l'incrément 4 il n'y a pas de contact et à partir de l'incrément 5 le contact se fait, mais la pénétration initiale (à la première itération) est supérieure à 0.001 d'où le contact est rejeté, car trop loin. J'ai mis 0.5, mais par exemple on peut descendre à 0.01 (et peut-être moins). Ce paramètre permet d'éviter la détection de contacts avec des faces éloignées.
voici les paramètres que j'ai utilisés pour des tests sur des bulges:
para_contact #------------------------------------
CONTACT_TYPE 2
NIVEAU_COMMENTAIRE_LESCONTACTS 1#3# FCT_ND_NIVEAU_COMMENTAIRE_LESCONTACTS fonct_pour_lesContacts #5
NIVEAU_COMMENTAIRE_CONTACT 1#3 # FCT_ND_NIVEAU_COMMENTAIRE_CONTACT fonct_pour_noeud
PENALISATION_PENETRATION 0.01
TYPE_PENALISATION_PENETRATION 2
PENETRATION_CONTACT_MAXI 0.001
PENETRATION_BORNE_REGULARISATION 0.01
NB_DECOLLEMENT_MAXI 1000
DISTANCE_MAXI_AU_PT_PROJETE 0.5
TYPE_DE_DECOLLEMENT 1
FACT_POUR_RAYON_ACCOSTAGE 0.
PRECISION_PT_SUR_FRONTIERE 1.e-7
NB_CHANGE_FRONTIERE_MAX 4 #-10
----------------------------------------------------
- en RD les divergences sont souvent dues à des forces de contact anormalement grandes.
- en modifiant les 2 paramètres indiqués plus haut, la convergence avec contact est du même ordre que celle sans contact
et par exemple à la fin du 10ième incrément Herezh affiche:- Norme E_cinetique/E_statique_ET_ResSurReact --> 0.00037842374
critere en deplacement et en residu satisfait pour l'iteration : 40 max_deltaX= 9.0888178e-06
... convergence en 40 iterations
temps_user:0/00:00:02.47 system:0/00:00:00.06 reel:0/00:00:02.62
=============================================================
| fin HEREZH++ |
=============================================================
ce qui veut dire que la pénétration maxi est de: -0.00016459292 et que la force maxi de contact est de -34.88024 ce qui semble assez raisonnable.
NB: Dans la version actuelle il y a un bug sur la sortie d'info, j'ai corrigé, mais pas mis à jour. Je vais le faire demain (V 7.024 ), mais cela ne change pas le résultat.
Mis à jour par Gérard Rio il y a 9 mois
- Fichier clipboard-202403021938-gqrd6.png clipboard-202403021938-gqrd6.png ajouté
Dans mon message précédent il manque l'affichage finale, que je remets sous forme de copie d'écran car il doit y avoir des caractères qui ne passent pas !!
Mis à jour par Frank Petitjean il y a 9 mois
Merci Gérard,
Je me suis vraiment emmêlé les pinceaux. Les 2 paramètres défaillants sont assez simples finalement.
J'ai pu revenir aux paramètres proches de ce que j'utilise déjà pour le contact "gluant" un matériau maitre très souple (E=20MPa) avec facteur de pénalisation de 0.001. Cela marche parfaitement. J'vais déjà essayé mais pas avec les autres paramètres corrects.
Puisque dans Herezh il peut y avoir de multiple couples maitre-escalve, comment spécifier des paramètres différents dans la section para_contact ?
Je m'explique, pour imposer la symétrie cyclique j'utilise un TYPE_PENALISATION_PENETRATION 8 avec un fct nD pour la pénalisation. Je voudrais pouvoir ajouter ce nouveau contact de type 4 (ou 2) pour d'autres nœuds esclaves du même maillage. Est-ce possible dans le même jeu de données ?
Sinon faut-il passer par un restart et annuler le contact gluant ? C'est jouable pour moi car le contact gluant est de toute façon désactivé lorsque j'applique les CLL.
Encore merci pour ce dépannage express week-end compris ! Moi je suis bloqué par la neige...
Frank
Mis à jour par Gérard Rio il y a 9 mois
une solution que je vois est d'utiliser une pénalisation pondérée par une fonction nD qui utilise le numéro de la zone de contact: NUM_ZONE_CONTACT (qui est le numéro d'ordre de lecture de la zone de contact)
Mais tu peux aussi utiliser le numéro du maillage maitre par exemple ... s'il y a un maître spécifique
Mis à jour par Frank Petitjean il y a 9 mois
Gérard,
J'obtiens ce que je veux en faisant un restart après convergence du contact "glue". C'est déjà énorme et le résultats en terme de forme et de contrainte est complètement différent que lorsque le fuseau à la liberté de se gonfler au-delà de son secteur angulaire. Merci pour ce succés !
La gestion de calculs avec restart n'est pas simple avec Omher et j'aimerai pouvoir faire un seul calcul. Il y a 2 contacts sur 2 zones différentes, une "glue_contact" et une "zone_contact". Ils doivent être actif successivement. Par défaut dans Herezh ils sont actifs en même temps. Si je te suis l'idée serait de donc de différentier la pénalisation selon la zone de contact. J'imagine qu'en mettant la pénalisation à 0 pour la zone 2 le contact serait inactif dans cette zone. Pour ça la grandeur NUM_ZONE_CONTACT est toute trouvée.
En demandant cette grandeur dans une sortie Maple (via avec plus visualisation) sur 2 noeuds appartenant chacun à une zone de contact les valeurs dans le fichiers sont nulles.
Est-ce normal ?
Mis à jour par Julien Troufflard il y a 9 mois
Pourquoi ne pas mettre une pression hydrostatique pour empecher le lob de sortir de son secteur ?
C'est cette astuce que j'utilisais pour les gilets de sauvetage
Mis à jour par Frank Petitjean il y a 9 mois
Il s'agit d'un problème purement géométrique avec une partie du maillage qui ne respecte pas la condition de symétrie cyclique lors du gonflement car cette condition n'est imposée qu'aux noeuds frontières. Je ne vois pas en quoi le chargement doit intervenir ?
Peux-tu t'expliquer d'avantage stp
Mis à jour par Julien Troufflard il y a 9 mois
Si le but est bien d'empêcher n'importe quel nœud de sortir d'une condition de symétrie, ça peut se faire par un chargement fictif de pression hydro en choisissant une pression assez forte. Il faut positionner la surface et la normalele long de la frontiere a ne pas franchir
Mis à jour par Frank Petitjean il y a 9 mois
Pour ceux qui suivrait ce fil je donne les explications de Julien joint au tél.
Puisqu'il s'agit d'une condition de non dépassement par rapport un plan il est possible d'imposer au point de Gause M une pression p telle si M est d'un coté du plan la pression p est nulle et de l'autre elle est assez élevée pour contrer la pression interne. C'est possible avec une pression hydrostatique (ou fonction nD). La difficulté va être d'ajuster le gradient de pression hydro pour permettre une légère pénétration et ainsi éviter les oscillations dedans/dehors.
Un grand merci à Julien pour cette "astuce" !
Mis à jour par Hugo Le Meitour il y a 9 mois
Tu peux aussi utiliser de la stabilisation hors plan sur tes points de Gauss et ou noeuds si jamais tu dépasses une condition !
Mais le problème est d'ajuster cette valeur de stabilisation ...
Bon courage
Mis à jour par Frank Petitjean il y a 9 mois
oui c'est une autre piste de même nature puisqu'avec la stabilisation on applique également des forces normales aux plans des membranes. Je vais commencer par la méthode "Julien" qui est plus facile à régler puisque c'est pression contre pression.
Merci Hugo !
Mis à jour par Frank Petitjean il y a 9 mois
L'utilisation d'une pression avec un seuil (méthode de Julien) s'est avérée très simple et efficace, j'obtiens les même résultats qu'avec du contact. Le gradient de pression n'a pas besoin d'être élevé par rapport à la pression interne pour respecter la condition de symétrie car c'est avant tout la tension dans les membrane qui assure l'équilibre de la structure.
Le ticket peut être fermé. Je remercie les 3 contributeurs pour leur aide et propositions ;-)
Mis à jour par Gérard Rio il y a 9 mois
- Statut changé de En cours à Résolu
- % réalisé changé de 90 à 100