Assistance #259
contours
Description
Rebonjour Gérard,
J'essaye de définir avec Gmsh des contours qui me permettraient d'introduire des conditions aux limites.
Pour cela, j'ai importé la pièce (en 3D) qui m'intéresse au format STEP (voir P.J.).
C'est chouette de voir que toute la forme est paramétrée et éditable par Gmsh !
Je vais ensuite dans Physical groups et je sélectionne par exemple une arête.
Je donne un nom et je sors (enfin en faisant abort).
A ce niveau, je trouve que ce n'est pas très clair au niveau de l'interface graphique de Gmsh.
Ensuite je maille, puis j'exporte le maillage vers un .msh au format correct pour msh2her.
Sauf que dans ce fichier .msh, il n'est fait aucune référence à mon arête...
Est-ce comme cela qu'il faut procéder ?
Dans 90% des cas, j'aurai à travailler sur des pièces importées (dans ce format STEP).
Merci et bonne soirée !
Christian
Fichiers
Mis à jour par Gérard Rio il y a environ 4 ans
Il y a plusieurs solutions indiquées pour obtenir les bons maillages et reférences adéquates.
As-tu regarder les tutoriels situés en:
https://herezh.irdl.fr/projects/exemples-simulations/documents
??
Mis à jour par Christian GOUALOU il y a environ 4 ans
- Fichier pb cylindre.png pb cylindre.png ajouté
- Fichier platineFC2.zip platineFC2.zip ajouté
Bonjour Gérard,
Je suis toujours dans la définition de références pour une pièce importée en STEP.
Je te rapporte 2 choses :
• Je n'arrive pas à récupérer les références associées aux Physical Groups que j'ai introduits dans Gmsh.
Via msh2her puis l'optimisation du maillage.
Les références n'apparaissent pas dans mon .lis
Je pense que c'est à cause de la nature importée de la géométrie ?
Le .geo contient en effet juste un Merge.
• Du coup, j'utilise ton utilitaire "informations avec plus creation_reference"
Et je rencontre un autre souci avec la condition de définition d'un cylindre.
L'utilitaire ne considère pas les valeurs négatives pour les coordonnées d'un point du cylindre.
Je n'arrive donc à référencer qu'un trou sur les 2 (celui qui est dans les X positifs).
Voir l'image dans l'archive (c'est complet) et la capture du shell relativement au problème (en PJ).
Là je suis bloqué, sauf à opérer une translation vers les X positifs de toute la pièce...
NB :
• Pour "attraper" une arête linéaire (ça marche) de noeuds entre 2 points, j'ai utilisé 2 conditions :
- l'inclusion dans un cylindre de faible diamètre (d'axe défini par les 2 points),
+ l'inclusion entre 2 plans // contenant ces 2 points.
-> je me demandais s'il n'y avait pas plus simple ?
Merci pour ton retour,
Christian
Mis à jour par Gérard Rio il y a environ 4 ans
- Fichier le.geo.png le.geo.png ajouté
- Fichier Sans titre 2.png Sans titre 2.png ajouté
- Fichier Sans titre 3.png Sans titre 3.png ajouté
- Fichier Sans titre 4.png Sans titre 4.png ajouté
- Fichier Sans titre 5.png Sans titre 5.png ajouté
- Fichier Sans titre 6.png Sans titre 6.png ajouté
Bonjour Christian,
je répond tout d'abord à la première méthode, que je viens de simuler et qui fonctionne.
1) je récupère le .step dans gmsh > ok>> obligatoire car sinon dans le fichier de sortie il n'y aura "que la ligne titi !!". La raison est que dès que l'on définit une physical, le maillage produit ne contient que les physical !!. Je valide ("e") puis "q" pour sortir des physical
2) je crée une physical sur une ligne que je nomme titi. Gmsh me demande si je veux créer un .geo, réponse "Create new '.geo' file "
3) je crée une physical sur tout le volume -
4) je maille (ici par défaut)
5) je sauvegarde au format ascii 2
6) j'utilise msh2her.pl pour récupérer le format her --> DATA.her
7) je visualise le résultat avec: hz_visuMail.pl DATA, on voit qu'il y a bien une référence de ligne: "A_titi"
--> on peut donc ainsi définir des ref de ligne, de surface, de volume
Ensuite pour la mise en données d'Herezh, on aura donc:
- des éléments volumiques tétraédriques qui permettront de calculer les efforts internes, c-a-d ceux correspondants aux actions des contraintes internes. Ils dépendent de la loi de comportement adopté
- des éléments linéiques, pour lesquels on utilisera une loi "LOI_RIEN1D" car ces éléments ne doivent pas intervenir dans la raideur interne. Par contre on pourra leur appliquer des efforts externes ce qui permettra d'imposer les efforts linéiques que l'on veut. On peut ainsi suivant le même modèle, imposer des efforts ponctuels, surfaciques et volumiques. De même on peut imposer des conditions cinématiques sur des ref de noeuds.
Est-ce que cela répond à tes questions ?
a+
Mis à jour par Gérard Rio il y a environ 4 ans
- % réalisé changé de 0 à 90
re...
suite avec la seconde méthode. --> il y avait un mauvais fct dans Herezh. Je ne dis pas bug car c'est un truc bizarre que j'ai un peu de mal à comprendre.
Au moment de la lecture via un getline, je suis "en général" obligé de supprimer le premier caractère que je lis ce se trouve être un caractère non exploitable, mais dans certain cas il faut que je réintègre ce caractère en particulier si c'est un chiffre. J'ai cherché partout l'explication ... et à part trouvé des gens qui avait la même interrogation que moi, je n'ai pas trouvé d'explication.
Bref, ici dans ton cas (et c'était vrai également pour d'autres questions/réponses dans Herezh) le premier '-' était supprimé car ce n'était pas un chiffre , et cela je ne l'avais pas pris en compte. Du coup, j'ai modifié et maintenant cela fonctionne avec version 6.954 (et suivantes).
Je met à jour les versions mac.
Peux-tu tester pour me dire si c'est ok pour toi ?
Merci d'avance
Mis à jour par Gérard Rio il y a environ 4 ans
suite de Christian:
Cette première méthode fonctionne en effet !
1) J’avais lu que Gmsh ne sauvait que les Physical Groups
Mais je n’avais pas pensé à déclarer le volume entier.
2) Il ne faut par ailleurs pas cocher l’option Save all elements,
ce que je faisais intuitivement.
Par contre, lorsque l’on passe dans msh2her :
Je ne vois pas pour l’instant l’intérêt de garder les éléments linéaires et surfaciques.
Je pense appliquer les blocages et les forces sur les noeuds.
Peut-être pour les contacts, les liaisons ?
Un grand merci pour ta patience et les infos détaillées !
Christian
Mis à jour par Gérard Rio il y a environ 4 ans
effectivement, si l'objectif est d'utiliser des ref de noeuds, ce n'est pas la peine de garder les surfaces et lignes.
à+
Mis à jour par Christian GOUALOU il y a environ 4 ans
Gérard,
Le calcul tourne depuis 2h sur mon Mac (le maillage est sans doute trop fin) mais seulement si je déclare une loi élastique pour le matériau.
J'avais lancé initialement le calcul avec une loi élasto-plastique et Herezh ne semblait pas converger (+ message d'erreur).
Je pensais à cet égard utiliser la loi de PRANDTL & REUSS (?).
Je mets le .info en PJ. Merci si tu peux déjà y jeter un oeil !
A+
Christian
Mis à jour par Gérard Rio il y a environ 4 ans
je crois savoir ce qui se passe.
gmsh n'optimise pas la largeur de bande, du coup tu obtiens une numérotation de noeuds qui conduit à des matrices de raideur gigantesques.
Il y a une option dans Herezh++ pour qu'Herezh optimise et recalcule une nouvelle numérotation qui optimise la largeur de bande.
Mais le plus simple est que tu me postes ta mise en données complète et je te la modifierai, cela te donnera un exemple de mise en données.
Pour la loi de comportement élastoplastique, il faut utiliser un comportement d'élasto-hystérésis. Je te posterai en retour un exemple de loi pour un acier.
a suivre
Mis à jour par Gérard Rio il y a environ 4 ans
Après avoir optimisé la largeur de bande on peut regarder la partie résolution.
Dans le cas où on a un grand nombre de ddl et que la loi est très simple (ex: élasticité), le temps de calcul se situe plutôt du côté de la résolution. Pour améliorer ce temps de calcul, on peut utiliser une méthode de résolution plus performante que la méthode par défaut via les paramètres de contrôles: voir documentation : "Paramètres de contrôles et de pilotage -> Résolution des systèmes linéaires ".
Par exemple on peut utiliser une méthode de résolution fournie par la bibliothèque Lapack. Pour cela on indique dans la mise en données:
para_syteme_lineaire#-----------------------------------------------
- PARAMETRE | VALEUR |
#-----------------------------------------------
TYPE_MATRICE BANDE_SYMETRIQUE_LAPACK
Sur l'osX, la bibliothèque est parallélisée par défaut, la résolution est donc nettement plus rapide !
NB: on peut également utiliser un algo de gradient conjugué, lorsque cela converge (pas toujours malheureusement) c'est en général la méthode la plus rapide.
Mis à jour par Gérard Rio il y a environ 4 ans
Ne pas oublier de regarder le fichier .cpu qui donne la répartition des temps cpu consommés. Cela permet d'orienté la mise en données
NB: Si le calcul initial est trop long, on peut le limiter à 1 incrément et avec une précision faible, ceci de manière à avoir rapidement une idée de comment cela se passe.