FreeCad FEM exploitation des résultats

Forum destiné aux questions et discussions en français
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
46Cpi
Posts: 41
Joined: Wed Apr 15, 2020 6:36 am

FreeCad FEM exploitation des résultats

Post by 46Cpi »

Bonjour à tous,
En fait par FEM statique je cherche à retrouver les efforts sur les surfaces d'appuis.
Par exemple pour un objet soumis à son propre poids le calcul FEM impose des surfaces d'appuis sous forme de contraintes activées sur ces surfaces. La FEM donne les déplacements et les contraintes dans l'objet.
Comment retrouver les efforts sur ces surface d'appuis, (en N newton la surface de la zone étant connue ou en pression moyenne en N/m²) ?
paul18
Posts: 202
Joined: Sat Jul 19, 2014 7:44 pm
Location: France

Re: FreeCad FEM exploitation des résultats

Post by paul18 »

Bonjour,

Dans les solveurs industriels, il y a des modules qui font ce genre de boulot (il faut créer une section et demander à intégrer les efforts y passant) ou des éléments spécifiques sont ajoutés, donc j'avoue n'avoir rien eu à développer; en revanche dans la MEF, appliquer une pression ou une contrainte sur une face revient à appliquer des efforts (sens et valeurs) aux nœuds de façon à être énergétiquement équivalent (voir figure 147 page 309 de la doc de ccx).

Je pense donc qu'il faut se développer un programme qui récupère et somme toutes les valeurs aux nœuds, et la résultante sera l'effort recherché; on pourra s'aider des travaux et programmes de M. Kraska par exemple.

Très intéressante cette étude sur les miroirs ;)

Paul
Last edited by paul18 on Mon May 11, 2020 4:26 pm, edited 1 time in total.
46Cpi
Posts: 41
Joined: Wed Apr 15, 2020 6:36 am

Re: FreeCad FEM exploitation des résultats

Post by 46Cpi »

Merci bien Paul pour avoir porter un intérêt à ma problématique sur les miroirs astro.
La solution en FEM de bloquer le mouvement perpendiculairement à l’axe optique n’est pas une solution représentative de la réalité (puisque normalement les appuis sont sur bascules triangles asymétriques) mais permet de trouver dans un premier temps une des meilleurs position des nombreux appuis. Après en remplaçant ces contraintes localisées par des pressions ou une force sur ces petites surfaces (sauf en une des zones pour que le miroir ne « voyage » pas) j’ai pu retrouvé les valeurs, c’est ce que j’ai fait tout le week-end car les temps de calcul FEM et la détermination des valeurs était très long. En fait la recherche consiste à soulever le miroir par ces points du bas tout en laissant l’objet pouvoir pivoter autour d’un point fixe, en résumer le faire flotter tout en retrouvant la position horizontale avec les déformations minimales correspondant aux appuis bloqués. Cela fonctionne mais c’est très long, d’où mon post pour une solution plus confortable et surtout pouvoir faire d'autres simulations beaucoup moins fastidieuses.

Optiquement c’est très important car si la flexion (inévitable) n’est pas réduite au minimum, la conique de la surface miroir change en fonction de la direction de pointage (entre le zénith et l’inclinaison) et donc induit une aberration de sphéricité.

Je pense avoir compris la figure 147 page 309 même si mon anglais est plus que médiocre.
Comment retrouver les labels des nœuds et les valeurs en ces nœuds ?

À votre avis est-ce que ParaView pourrait être d’un secours de ce coté là ?

Bien cordialement
43Cpi
User avatar
-alex-
Veteran
Posts: 1861
Joined: Wed Feb 13, 2019 9:42 pm
Location: France

Re: FreeCad FEM exploitation des résultats

Post by -alex- »

46Cpi wrote: Sun May 10, 2020 10:06 am Bonjour à tous,
En fait par FEM statique je cherche à retrouver les efforts sur les surfaces d'appuis.
Si tu ce que tu veux obtenir ce sont les efforts de réaction sur ton modèle, il y a la méthode suivante avec CCX:
https://forum.freecadweb.org/viewtopic. ... on#p167047
46Cpi
Posts: 41
Joined: Wed Apr 15, 2020 6:36 am

Re: FreeCad FEM exploitation des résultats

Post by 46Cpi »

Alex mon incompétence ne m'a pas permis de comprendre le lien qui pourtant me semble être une solution.
Alors peut-être sur un exemple simple une tige de section carré 10x10mm me permettrait de comprendre la procédure

- premier tronçon longueur 10mm (position x=0mm)
- second tronçon longueur 200mm (position x=10mm)
- troisième tronçon longueur 10mm (position x=210mm)
- quatrième tronçon longueur 50mm (position x=220mm)
Ces 4 tronçons forment l'objet barre par fusion

J'active Analysis
J'attribue une matière SolidMatérial
je place les contraintes
- contrainte de gravité ContraintSelfWeight
- contrainte sur la première extrémité tronçon 1 FemConstraintDisplacement bloquer X et Y
- contrainte sur le dessous du tronçon 1 FemConstraintDisplacement blocage en Z
- contrainte sur le dessous du tronçon 3 aussi de 10mm FemConstraintDisplacement blocage en z
J'active FEMMeshGmsh ou FEMMeshNetgen pour le maillage

Les 2 zones d'appuis de 10mm en dessous placées asymétriquement subissent donc des charges différentes par le poids de la barre puisque le tronçon 4 est dans le vide. Quelles charges supportent chacun des 2 appuis dans la direction Z matérialisé par leur surface de 10x10mm (100mm²) et le blocage dans la direction Z ?

J'utilise FreeCad 018
J'ai compris qu'en activant CalculiXccxTools avant de lancer quoi que ce soit on peut choisir un répertoire de travail autre que le temporaire "Temp" .
il y a aussi le bouton "Write inp file" et "Edit inp file" mais ce dernier est grisé au départ
Alors comment procéder pour modifier le fichier inp et l'activer ?
Puis comment retrouver le fichier.dat évoqué dans le lien avec les informations recherchées ?

Merci d'avance
46Cpi
User avatar
-alex-
Veteran
Posts: 1861
Joined: Wed Feb 13, 2019 9:42 pm
Location: France

Re: FreeCad FEM exploitation des résultats

Post by -alex- »

46Cpi wrote: Tue May 12, 2020 10:11 am Alors peut-être sur un exemple simple une tige de section carré 10x10mm me permettrait de comprendre la procédure
Fais toi la main avec le fichier exemple du lien que je t'ai mis, comme cela tu as un cadre précis et commun à tous pour essayer -> apprendre -> vérifier ou questionner -> comprendre

46Cpi wrote: Tue May 12, 2020 10:11 am J'ai compris qu'en activant CalculiXccxTools avant de lancer quoi que ce soit on peut choisir un répertoire de travail autre que le temporaire "Temp" .
il y a aussi le bouton "Write inp file" et "Edit inp file" mais ce dernier est grisé au départ
Alors comment procéder pour modifier le fichier inp et l'activer ?
Tu peux effectivement changer de répertoire, mais ce n'est pas obligatoire.
En activant CalculiXccxTools dans l'analyse tu cliques sur Write .inp file, puis une fois que le fichier inp (input) est écrit:
- soit tu lances le calcul directement
- soit tu édites le fichier pour le modifier, l’enregistrer, puis lancer le calcul. Comme cela tu peux activer des options qui ne sont pas encore implémentées dans FreeCAD, ce qui est le cas pour l'obtention des efforts de réactions (on pourrait imaginer obtenir ces efforts par exemple en sélectionnant les faces adéquates du modèle via une icône "Efforts de réaction": ça n'existe pas encore).

46Cpi wrote: Tue May 12, 2020 10:11 am Puis comment retrouver le fichier.dat évoqué dans le lien avec les informations recherchées ?
Si tu as modifiés le répertoire de travail, alors le fichier .dat (output data) se trouve dans ce répertoire une fois le calcul achevé. Si tu as conservé le répertoire tmp, alors lorsque tu lances le calcul le chemin du répertoire est affiché en partie haute de l'onglet Mechanical analysis, c'est dans ce répertoire (différent à chaque analyse) que tu trouveras le fichier .dat (les efforts de réaction ne seront présents que si tu as effectué précédemment la modification du fichier .inp comme indiqué dans le lien.


Ce que je peux te dire de plus c'est que cela fonctionne, j'ai obtenu des efforts de réaction ainsi sur certains de mes modèles. Mais il faut juste avoir conscience que modifier le fichier .inp manuellement et à chaque calcul, pour l'obtention des efforts de réaction sur quelques faces ça va, mais sur des dizaines de faces là ça devient très rude. Dans ce dernier cas il faudrait un script, et il se poserait encore la difficulté d'identification face <-> effort.
46Cpi
Posts: 41
Joined: Wed Apr 15, 2020 6:36 am

Re: FreeCad FEM exploitation des résultats

Post by 46Cpi »

Merci alex avec tes explications j'ai réussi sur ton exemple Ringauge.
Mais avec du temps car après avoir ouvert Ringauge.FCStd tout ce qui se trouve dans Analysis, sauf les contraintes, ne peuvent s'activer.
Donc il faut supprimer/reconstituer l'Analysis complet pour que cela fonctionne ..

J'ai compris comment éditer et enregistrer le fichier.inp. Et après le Run CalculiX les forces apparaissent bien dans fichier.dat, OK merci

Malheureusement avec mon exemple d'une barre simple sur 2 appuis et soumis à la pesanteur, cela ne fonctionne pas (pas de force dans le .dat, que les déplacements et contraintes). Cela provient peut-être du script ou alors il faut imposer un déplacement non nul aux appuis ?

Après dans ton exemple les efforts sont matérialisés par 2 faces opposées parallèles. Avec 3 faces dans l'espace, les 3 valeurs des forces globales seraient peut-être sorties mais alors ces valeurs ne correspondraient aux efforts pour une face donnée.
Peut-être faudrait-il regrouper les nœuds d'une de ces faces dans un groupe et pouvoir faire ressortir les forces uniquement de ce groupe ?
User avatar
-alex-
Veteran
Posts: 1861
Joined: Wed Feb 13, 2019 9:42 pm
Location: France

Re: FreeCad FEM exploitation des résultats

Post by -alex- »

46Cpi wrote: Tue May 12, 2020 3:24 pm Mais avec du temps car après avoir ouvert Ringauge.FCStd tout ce qui se trouve dans Analysis, sauf les contraintes, ne peuvent s'activer.
Donc il faut supprimer/reconstituer l'Analysis complet pour que cela fonctionne ..
Oui, l'atelier FEM évolue constamment et tout ou partie du contenu de l'objet Analyse est souvent devenu obsolète entre la version 0.17 et 0.19 (les matériaux notamment).

46Cpi wrote: Tue May 12, 2020 3:24 pm Malheureusement avec mon exemple d'une barre simple sur 2 appuis et soumis à la pesanteur, cela ne fonctionne pas (pas de force dans le .dat, que les déplacements et contraintes). Cela provient peut-être du script ou alors il faut imposer un déplacement non nul aux appuis ?
Après dans ton exemple les efforts sont matérialisés par 2 faces opposées parallèles. Avec 3 faces dans l'espace, les 3 valeurs des forces globales seraient peut-être sorties mais alors ces valeurs ne correspondraient aux efforts pour une face donnée.
Peut-être faudrait-il regrouper les nœuds d'une de ces faces dans un groupe et pouvoir faire ressortir les forces uniquement de ce groupe ?
Plusieurs choses:
- oui la force de réaction est donnée pour l'ensemble des nœuds appartenant à la contrainte de fixation, donc pour obtenir une force de réaction par face tu dois créer autant de contraintes de fixation que de faces, donc 1 face Max par contrainte.
- je me suis aperçu que dans la version 0.19 la carte NODE PRINT est maintenant présente par défaut, donc plus besoin d'éditer le fichier inp. Je t'incite donc à utiliser FreeCAD 0.19 (pour info. seule les contraintes fixes sont prises en compte par défaut pour les efforts de réaction, pour les déplacements imposés il faut toujours modifier le fichier .inp comme avant).
- j'ai essayé sur la pièce test ci-dessous et cela fonctionne avec le chargement "poids propre". Malheureusement c'est le nom d'origine de chaque contrainte qui est présent dans le fichier .dat, et renommer les contraintes dans l'arbre des fonctions à des fins d'identification ne sert donc à rien semble t'il.
Le modèle est un bloc acier 7.9kg/dm3 de 1dm3 fixé sur 2 arrêtes (donc sur-contraint, d'où les forces parasites en x et y):
Pappui = Mbloc x G / 2 = 7.9 x 9.81 / 2 = 38.75N (38.8N dans fichier .dat)

effort_reaction_bloc_2_appuis.png
effort_reaction_bloc_2_appuis.png (259.99 KiB) Viewed 1924 times
effort_reaction_bloc_2_appuis.FCStd
(8.42 KiB) Downloaded 35 times

OS: Ubuntu 20.04 LTS (XFCE/xubuntu)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.20980 (Git)
Build type: Unknown
Branch: master
Hash: c2818d9159385d23b182dc7167af2d4bacbee94c
Python version: 3.8.2
Qt version: 5.12.8
Coin version: 4.0.0
OCC version: 7.3.0
Locale: English/United States (en_US)
46Cpi
Posts: 41
Joined: Wed Apr 15, 2020 6:36 am

Re: FreeCad FEM exploitation des résultats

Post by 46Cpi »

Alex tu es mon sauveur. Oui cela fonctionne.
J’ai mis beaucoup plus de temps que prévu parce que je suis une quiche en informatique, d’abord pour te comprendre et ensuite pour des essais de vérification sur une tige simple avec appuis dissymétriques donc avec des charges qui doivent êtres différentes en chaque appuis.
Et la somme des charges doit correspondre au poids total (au-moins pour la direction verticale). Et c'est OK ...

Le FreeCad 019 que j’ai trouvé pour Windows 7 à un atelier FEM non fonctionnel, il manquerait une DLL…
Bref j’ai donc utilisé la dernière version 0.18. stable.

En résumer
Après l’activation de CalculiXccxTools, choisir un dossier de travail et lancer la création du fichier.inp que l’on retrouve dans le dossier créé.
Modifier/enregistrer ce fichier.inp (confère lien du post)
Lancer Run CalculiX
Et enfin lire le résultat dans le fichier.dat du dossier.

Détail important :
- avec la modification du fichier.inp décrite on ne peut que chercher que le résultat pour un appuis
- l’identité de cet appuis qui est une contrainte, doit être bien saisie par exemple « FemConstraintDisplacement002 » avec son nom généré par le système lors de sa création (et non renommé)

Petit plus :

- chaque appuis est une contrainte, mais pas forcément une contrainte de fixation(FemConstraintFixed). Avec une contrainte de déplacement ça marche aussi et je gage que cela fonctionne avec d’autres types de contraintes FEM ce qui ouvre d’autres lumières …
- si on supprime le texte « TOTALS=ONLY » de la ligne à ajouter, on obtient les forces en chaque nœuds de l’appui. Et la somme des valeurs correspond bien à la somme totale.
- j’ai aussi découverts grâce à ton exemple qu’un appuis n’est pas forcément une surface, ce peut être aussi une arête et cela s’avère utile dans des cas.

Donc un grand merci à toi Alex.

Serait-il possible de modifier le fichier.inp de manière a avoir plusieurs lignes de résultat, par exemple les forces pour chacun des appuis avec leurs bons noms ?

Il serait peut-être utile d’informer les développeurs que retrouver les efforts aux liaisons sont nécessaires, c’est un des éléments de base de l’analyse en mécanique et sont des données complémentaire à l’analyse des contraintes et des déformations. Ce n’est qu’une suggestion sans connaître tout le travail que cela représente, cependant ces infos sont déjà dans les calculs ...

Bien cordialement
46Cpi
User avatar
-alex-
Veteran
Posts: 1861
Joined: Wed Feb 13, 2019 9:42 pm
Location: France

Re: FreeCad FEM exploitation des résultats

Post by -alex- »

Content que ça t'ait aidé, c'était le but ;)

46Cpi wrote: Sun May 17, 2020 2:28 pm Serait-il possible de modifier le fichier.inp de manière a avoir plusieurs lignes de résultat, par exemple les forces pour chacun des appuis avec leurs bons noms ?
C'est ce que je te disais plus haut, dans FreeCAD 0.19 les efforts de réaction sont automatiquement inclus dans le fichier .dat, pour les contraintes de type "fixe", pour les autres types il faut toujours modifier le fichier .inp manuellement.
Si tu n'as pas FreeCAD 0.19, alors il te suffit de modifier le fichier .inp comme tu l'as déjà fait, et d'empiler les lignes avec à chaque ligne la contrainte concernée, par exemple comme cela:

Code: Select all

** outputs --> dat file
** reaction forces for Constraint fixed
*NODE PRINT, NSET=ConstraintFixed, TOTALS=ONLY
RF
*NODE PRINT, NSET=ConstraintFixed001, TOTALS=ONLY
RF
*NODE PRINT, NSET=ConstraintDisplacement, TOTALS=ONLY
RF
**etc.......

Au sujet des noms de contrainte dans le fichier .dat, c'est le nom de création de la fonction qui est repris dans le fichier .dat, pas son "label". Si tu as beaucoup d'appuis fixes cela peut-être délicat de s'y retrouver, mais en créant tes contraintes dans un ordre bien défini sur ton modèle je pense qu'il est possible de s'y retrouver malgré tout.
Sinon tu peux créer tes contraintes toi même dans la console python, avec le nom qui te convient. Par exemple:

Code: Select all

App.activeDocument().addObject("Fem::ConstraintFixed","appui-fixe-A")
App.activeDocument().addObject("Fem::ConstraintFixed","appui-fixe-B")
App.activeDocument().addObject("Fem::ConstraintFixed","appui-fixe-C")
App.activeDocument().addObject("Fem::ConstraintDisplacement","appui-dep-A")
etc... ainsi tu créés tes appuis à l'avance, puis tu les déplaces tous d'un coup dans le conteneur "Analyse", puis tu les édites un par un pour leur attribuer leur face. Et puis...c'est ok :D


Il serait peut-être utile d’informer les développeurs que retrouver les efforts aux liaisons sont nécessaires, c’est un des éléments de base de l’analyse en mécanique et sont des données complémentaire à l’analyse des contraintes et des déformations. Ce n’est qu’une suggestion sans connaître tout le travail que cela représente, cependant ces infos sont déjà dans les calculs ...
Concernant les efforts aux liaisons, je partage ton point de vue, c'est important, mais finalement on peut les obtenir, encore plus facilement depuis que la carte NODE-PRINT est inclue par défaut lors de la génération du fichier .inp. Donc depuis FreeCAD 0.19 les efforts de réaction des contraintes de type "fixe" sont présents dans le fichier de sortie .dat, ce sera peut-être étendue aux autres types à l'avenir...
Au sujet des développeurs, je pense qu'ils le savent (puisque ça vient d'être partiellement inclue).
Peut-être qu'une interface graphique viendra un jour, si on la demande aux développeurs je pense qu'ils répondront "si vous la voulez, vous pouvez la coder" ;)
Juste pour information, l'édition du fichier .dat pourrait devenir plus rapide bientôt via l'ajout de fonction SECTION-PRINT implémenté par l'utilisateur @UR_ : https://forum.freecadweb.org/viewtopic.php?f=18&t=43044.
Donc, à condition d'utiliser la fonction "section print" le fichier .dat semble être ajouté dans l'arbre après calcul, ce serait donc un moyen d'y accéder rapidement je suppose (je n'ai pas testé, cette fonction n'est pas encore présente dans la branche principale de FreeCAD 0.19).


Si tu rencontres des difficultés envoie un modèle de ton besoin, ça sera plus concret.
Ton sujet ressemble à ceux décrit ici http://serge.bertorello.free.fr/support/support ?
Combien de points d'appuis dans ton cas?
Post Reply