Projet

Général

Profil

Assistance #249

problème glue contact

Ajouté par Julien Troufflard il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Résolu
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
06/07/2020
Echéance:
% réalisé:

100%

Temps estimé:
Temps passé:

Description

Gérard,

j'essaye d'utiliser un contact collant afin de controler les noeuds aux poles d'un ballon.

Ma démarche est composée des étapes suivantes :
1) premier calcul : j'impose un déplacement imposé à tous les noeuds d'un maillage plié pour le déployer et lui donner une première forme => ce calcul fonctionne très bien et j'obtiens un premier incrément avec la forme du ballon convenue

2) avec un RESTART, je fais un second calcul visant à imposer une condition de contact collant aux noeuds des poles sur des cylindres.

C'est cette étape 2 que j'ai mis en pièce jointe. Il y a tout ce qu'il faut pour lancer le calcul (dont le .BI)

Ce que je ne comprends pas, c'est pourquoi mon calcul me conduit à une divergence énorme dès le début. La préforme du ballon est telle que les noeuds des poles respectent exactement le diamètre de chacun des cylindres dédié à un pole. Donc au départ, les noeuds des poles sont exactement sur les cylindres. Mais très rapidement, les noeuds se positionnent de façon étrange au pole Nord (noeuds N_poleN) et un ou plusieurs noeuds du pole S (N_poleS) sont projetés très loin du ballon.

peux-tu m'éclairer sur ce qu'il se passe ?

petite question supplémentaire :
pourquoi est-ce que le calcul ne converge pas alors que j'ai mis une PRECISION de 1e+10 ?


Fichiers

test_glue_contact.tar (414 ko) test_glue_contact.tar Julien Troufflard, 06/07/2020 15:42
#1

Mis à jour par Julien Troufflard il y a plus de 4 ans

modif au calcul :

j'ai mis 1.e-5 dans DISTANCE_MAXI_AU_PT_PROJETE. Déjà c'est mieux mais cela ne conduit pas à une convergence très probante malgré tout.

Et je me demande encore pourquoi la PRECISION de 1e+10 n'est pas respectée.

#2

Mis à jour par Julien Troufflard il y a plus de 4 ans

dernier edit :
non en fait, la condition de contact n'est toujours pas respectée et le ballon prend une forme très très étrange très rapidement.

#3

Mis à jour par Gérard Rio il y a plus de 4 ans

  • Statut changé de Nouveau à En cours
  • % réalisé changé de 0 à 10

Bonjour Julien,
- on n'a pas de convergence car celle-ci est évaluée à partir du résidu "et" du déplacement maxi (ici : max_deltaX_pourRelaxDyn_ 0.1) et de la précision
cf. documentation
-> le passe le paramètre à une grandeur très grande:
max_deltaX_pourRelaxDyn_ 1.e10 #0.1
-> première convergence pour l'incrément 3 en 4 itérations

- c'est intéressant de visualiser l'évolution de la déformée: ici on a en sortie uniquement le premier maillage, du coup, on ne peut pas voir l'interaction de contact
-> mode_debug_= 1
-> refonte du .CVisu en mettant: MAXINCRE 3

- pour comprendre ce qui se passe au niveau du contact glue, il faut au moins avoir un niveau de commentaire de 3
-> niveau_commentaire 3#2
on trouve dans le fichier log: 
>>>> Suppression_gap_pour_noeud_collant : 
boucle : 1
zone: 1, 10 suppression(s) de gap, maxi_distance= 0.085( passage1)
zone: 1, *** attention pour 2 noeud(s) pas de projection trouvee !!
zone: 2, 12 suppression(s) de gap, maxi_distance= 0.1( passage1)
boucle : 2

donc il y a un pb de projection pour 2 noeuds

@suivre ...

#4

Mis à jour par Gérard Rio il y a plus de 4 ans

  • % réalisé changé de 10 à 60

En fait a priori le comportement observé est normal avec le fonctionnement actuel d'Herezh car le cas du contact collant est particulier (cf. doc).
1) au début du calcul (donc pour l'incrément 1), le collage est initialisé et les éléments de contact sont définit une fois pour toute.
2) ensuite pendant tout le calcul ce sont ces éléments qui sont utilisés.
3) lors d'un restart, tous les éléments (sauf les collants) sont relus

Dans ton cas, comme le contact n'est pas actif, les seules infos sauvegardées sont les coordonnées initiales locales du noeud esclave en contact, pour les éléments collant. Au moment du restart, le déplacement tangentiel est énorme, or par défaut avec le cas collant, il y a une pénalisation tangentielle. Du coup cela génère des efforts tangentiels énormes et ... de pb de calcul !

#5

Mis à jour par Julien Troufflard il y a plus de 4 ans

J'aimerais vraiment tester cette solution par cylindre de contact. Est-ce que tu vas modifier Herezh pour tenir compte d'un nouveau contact après RESTART ?

#6

Mis à jour par Gérard Rio il y a plus de 4 ans

  • % réalisé changé de 60 à 90

j'ai pas mal réfléchi et j'arrive aux remarques suivantes:
- le contact collant avec suppression du gap initial, a été mis en place pour modifier arbitrairement le maillage initiale en évitant la conséquence d'un gap du à des erreurs de positionnement géométrique initiales entre contact. Du coup l'idée est de rétablir un maillage avec des positions initiales correctes c-a-d ne générant pas de forces de contact initiales.

Si on introduit cette notion en cours de calcul (avec un restart ou un suite .info) cela va créer une incohérence entre calcul et maillage. D'un point de vue conceptuel, cela ne me paraît pas correct et donc une bonne idée. Donc a priori je ne vais pas creuser dans cette direction.

J'ai mis à jour la documentation pour éclaircir le sujet (voir la doc 6.947 : partie def zone contact et partie paramètres de contrôle). J'en ai profiter pour introduire 2 paramètres supplémentaires (CONTACT_COLLANT et NUM_ZONE_CONTACT) pour le pilotage des paramètres de contact et la sortie en post-traitement. J'ai un peu aussi amélioré les sorties d'info sur le contact ... là c'est + cosmétique !

Par contre il y a une voie que tu pourrais explorer:
- tu sauvegardes ton maillages après le premier incrément, résultats du calcul d'expansion et avec ce nouveau maillage tu inities un nouveau calcul. Là tu auras la possibilité d'utiliser le contact collant à partir de la position expansée.

Tiens moi au courant.

#7

Mis à jour par Julien Troufflard il y a plus de 4 ans

à propos la solution que tu proposes avec nouveau calcul sur maillage expansée :
est-ce que cela veut dire que l'on considère le maillage expansé comme étant le maillage initial ? si oui, ça ne convient pas. Il faut absolument que le maillage initial de référence soit le maillage plié avec fuseaux à plats, ce qui est représente le vrai état initial de la matière.

#8

Mis à jour par Gérard Rio il y a plus de 4 ans

oui effectivement c'est un nouveau maillage. Seules les noeuds dont le gap sera supprimé, seront déplacés. Au niveau de l'histoire, je suppose que l'expansion que tu réalises s'effectue sans augmentation notable de l'énergie interne. On peut alors supposer que l'état initial est ok car sans tension ?
Sinon, la solution est d'utiliser du contact classique, éventuellement avec le type 8 ce qui permet de maintenir le contact quelque soit le signe du gap ce qui est équivalent avec du collage, mais là il n'y a pas de prise en compte de la position initiale pour calculer le déplacement tangentiel, ce qui doit-être ok je pense pour toi ?

#9

Mis à jour par Julien Troufflard il y a plus de 4 ans

ok je vais tester le contact type 8

ps : la forme expansée, c'est tout simplement la forme théorique d'un ballon gonflé. Cela déforme la matière suffisamment pour ne pas pouvoir se permettre de s'en servir comme maillage initial.

#10

Mis à jour par Gérard Rio il y a plus de 4 ans

Bonjour Julien,
est-ce que je peux fermer ce ticket ?

#11

Mis à jour par Julien Troufflard il y a plus de 4 ans

oui

#12

Mis à jour par Gérard Rio il y a plus de 4 ans

  • Statut changé de En cours à Résolu
#13

Mis à jour par Gérard Rio il y a plus de 4 ans

  • % réalisé changé de 90 à 100

Formats disponibles : Atom PDF

Redmine Appliance - Powered by TurnKey Linux