Projet

Général

Profil

Assistance #259

contours

Ajouté par Christian GOUALOU il y a environ 4 ans. Mis à jour il y a environ 4 ans.

Statut:
En cours
Priorité:
Normal
Assigné à:
Début:
26/08/2020
Echéance:
% réalisé:

90%

Temps estimé:
Temps passé:

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

physical groups.png (346 ko) physical groups.png Christian GOUALOU, 26/08/2020 16:56
pb cylindre.png (165 ko) pb cylindre.png Christian GOUALOU, 31/08/2020 14:07
platineFC2.zip (3,89 Mo) platineFC2.zip Christian GOUALOU, 31/08/2020 14:08
le.geo.png (235 ko) le.geo.png le .geo Gérard Rio, 14/09/2020 09:40
Sans titre 2.png (182 ko) Sans titre 2.png def d'une ref de volume "tutu" Gérard Rio, 14/09/2020 09:41
Sans titre 3.png (314 ko) Sans titre 3.png le maillage Gérard Rio, 14/09/2020 09:42
Sans titre 4.png (81,2 ko) Sans titre 4.png la sauvegarde dans le bon format (via export) Gérard Rio, 14/09/2020 09:42
Sans titre 5.png (115 ko) Sans titre 5.png utilisation de msh2her.pl Gérard Rio, 14/09/2020 09:42
Sans titre 6.png (122 ko) Sans titre 6.png vérification du .her via hz_visuMail.pl Gérard Rio, 14/09/2020 09:42
DATA.info (1,06 ko) DATA.info Christian GOUALOU, 19/09/2020 15:50
#1

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

??

#2

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

  • Statut changé de Nouveau à En cours
#3

Mis à jour par Christian GOUALOU il y a environ 4 ans

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

#4

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

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
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 -
>> 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
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+

#5

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

#6

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

#7

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.
à+

#8

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

#9

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

#10

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
#-----------------------------------------------
  1. 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.

#11

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.

Formats disponibles : Atom PDF

Redmine Appliance - Powered by TurnKey Linux