Post-traitement des résultats FEM avec Paraview

From FreeCAD Documentation
Revision as of 16:23, 15 April 2020 by David69 (talk | contribs) (Created page with "Comme expliqué précédemment, c'est la valeur négative de l'intégrale que nous recherchons. Ainsi, le volume total indicatif d'acier requis dans la direction x est de 2.27...")
Other languages:
Tutoriel
Thème
Post-traitement des résultats FEM avec Paraview
Niveau
Intermédiaire
Temps d'exécution estimé
120 minutes
Auteurs
HarryvL
Version de FreeCAD
0.19
Fichiers exemples
beam et wall dans ce fil du forum Freecad
Voir aussi
None

Introduction

Certains messages et tutoriels sur le forum utilisent Paraview (PV) pour examiner et analyser les résultats de l' atelier FEM (FEMWB) de FreeCAD. Ce tutoriel explique les bases du transfert de données de FEMWB vers PV et montre certaines des options et des paramètres d'affichage des données.

Prérequis

  • FreeCAD utilisant une version compatible avec la version désignée de ce tutoriel.
  • Paraview téléchargé directement depuis son site web ou votre gestionnaire de paquets préféré.
    • Ce tutoriel est basé sur la version Paraview 5.8.0 pour Windows, qui était la version la plus récente au moment de la rédaction du tutoriel.
  • Les fichiers FreeCAD utilisés pour ce didacticiel sont disponibles dans ici et ici, fil de discussion FreeCAD.

Transfert de données depuis FEMWB

Dans FEMWB, mettez en surbrillance l'objet CCX_Results. Ensuite, utilisez l'option de menu Fichier> Exporter> FEM result VTK (*.vtk *.vtu) pour exporter les données VTK.

Importation de données dans Paraview

L'écran de démarrage affiche un navigateur de pipeline vide. C'est là que les objets de données VTK importés et les objets de filtre appliqués (pour la géométrie ou les données) seront visibles.

Utilisez l'option de menu File> Open> *.vtk pour ouvrir le fichier VTK généré avec FEMWB.

Appuyez sur Apply dans l'onglet des propriétés. Par défaut, cela affichera une vue de dessus (en regardant le long de l'axe z) de la géométrie.

...

La géométrie grise peut être inspectée en faisant pivoter la vue. Le bouton gauche de la souris fait pivoter la géométrie, mais malheureusement d'une manière difficile à contrôler (par rapport à FreeCAD). Pour obtenir une rotation prévisible, maintenez la touche X, Y ou Z enfoncée tout en faisant glisser la souris avec le bouton gauche de la souris enfoncé pour faire pivoter le modèle autour de X, Y ou Axe Z, respectivement.

Sauvegarde/état de chargement

Plutôt que d'enregistrer des données, Paraview stocke le statut (état) des actions effectuées sur l'objet VTK importé. Par conséquent, pour enregistrer votre travail, utilisez l'option de menu File > Save State. REMARQUE: il n'y aura pas d'avertissement lorsque vous quittez Paraview pour enregistrer l'état et tout le travail peut être perdu à la sortie du programme.

Pour continuer là où vous vous étiez arrêté lors de la session précédente, utilisez File > Load State. Cela invite l'utilisateur à spécifier un fichier VTK, ce qui signifie que les actions effectuées dans la dernière session peuvent également être appliquées à un nouveau fichier VTK. De cette façon, les données de différentes analyses FEMWB peuvent être affichées exactement de la même manière, sans effort supplémentaire.

Visualiser les résultats FEMWB

Paraview propose de nombreuses options et paramètres pour afficher les résultats. Nous allons d'abord regarder l'affichage des données d'importation de base sur la géométrie d'origine et voir ensuite comment appliquer des filtres pour modifier la géométrie. Enfin, nous utiliserons la calculatrice et les filtres d'intégration pour dériver de nouveaux résultats en combinant les données d'importation de base.

Données de base affichées sur la géométrie d'origine

Étant donné que le navigateur de pipeline peut contenir plusieurs objets VTK et objets de filtre, vérifiez d'abord que l'objet VTK de droite est mis en surbrillance dans le navigateur de pipeline. Les sélections et les paramètres d'affichage de cet objet VTK se trouvent désormais dans l'onglet Propriétés. Pour vous assurer que tous les paramètres sont visibles et alignés avec ce didacticiel, appuyez sur le bouton Paramètres avancés (l'icône de la roue dentée sur l'image ci-dessous).

Le premier paramètre que nous pouvons changer est la façon dont les données sont présentées sur la géométrie. Cela se fait dans le menu déroulant Représentation. Pour l'instant, nous n'utiliserons que l'option Surface ou Wireframe.

Jusqu'à présent, aucun résultat n'est affiché. Pour cela, nous devons changer l'option de coloration. La valeur par défaut est Solid Color, mais le menu déroulant affiche toutes les données scalaires disponibles dans le fichier VTK importé.

Aux fins de ce tutoriel, nous choisissons ReinforcementRatio_x mais il est facile de passer à n'importe quel type de données.

La fenêtre RenderView affichera maintenant un iso-plot du type de données sélectionné et une légende de couleur de la plage de données.

La légende des couleurs peut être déplacée à un emplacement plus pratique et changera d'orientation à l'approche des bords de la fenêtre.

Alternativement, les paramètres de la légende des couleurs peuvent être contrôlés de manière très détaillée en ouvrant la boîte de dialogue Modifier les propriétés de la légende des couleurs depuis l'onglet Propriétés (appuyez sur la dernière icône à droite).

Cela ouvre la fenêtre suivante pour les paramètres de légende des couleurs.

La coloration de la carte iso peut être contrôlée via l'éditeur de carte de couleurs qui est activée en appuyant sur le bouton Edit de l'onglet Propriétés:

.

Le paramètre de discrétisation des couleurs est utile pour limiter le nombre de valeurs iso, créant ainsi des plages plus pratiques pour la conception. Le nombre de plages par défaut est 256, mais ici, le nombre est fixé à 10.

Application de filtres aux résultats FEMWB

Pour modifier les données de base ou la géométrie importée de FEMWB, des filtres peuvent être appliqués.

Ici, seuls les filtres Slice et Warp seront discutés. Les filtres permettant de créer des résultats composés à partir des données de base seront abordés dans la section suivante.

Pour appliquer le filtre Slice, mettez en surbrillance l'objet VTK qui doit être tranché et appuyez sur l'icône Slice. Vous pouvez également trouver le filtre Slice dans le menu Filters > Alphabetical. Cela ajoute l'objet filtre Slice au navigateur de pipeline et l'emplacement dans l'arborescence montre qu'il est appliqué à l'objet VTK. La position dans l'arborescence est importante, car les filtres peuvent être appliqués à différents objets VTK ou même à d'autres objets de filtre. L'objet filtre ne peut pas être déplacé dans l'arborescence pour modifier l'objet auquel il s'applique. L'objet cible ne peut être modifié que par le menu (ou en cliquant avec le bouton droit) sur l'option Edit > Change Input.

L'emplacement et l'orientation de la tranche peuvent être modifiés en faisant glisser la tranche et son vecteur normal avec la souris ou via l'onglet Propriétés. Dans la figure ci-dessous, l'origine de la tranche a été placée au centre de la poutre (au-dessus du support central) et la normale au plan pointe dans la direction x.

Pour vous débarrasser des boîtes englobantes, désélectionnez Show Plane box en haut de la boîte de dialogue Paramètres du plan.

Le filtre Warp by Vector peut être utilisé pour afficher la géométrie déformée. Mettez en surbrillance l'objet VTK et appuyez sur l'icône Warp by Vector. Cela ajoute le filtre au Pipeline Browser. Vous pouvez également rechercher le filtre dans le menu Filters > Alphabetical. Sélectionnez ensuite Déplacement dans le menu déroulant Vectors de l'onglet Propriétés et définissez un facteur d'échelle approprié. N'oubliez pas d'appuyer sur le bouton Appliquer après avoir modifié les paramètres.

.

La valeur de déplacement maximum est de 0,98 mm.

Pour afficher la géométrie déformée superposée à la géométrie non déformée, il suffit de rendre visible à la fois l'objet VTK et l'objet filtre Warp en cliquant sur l'icône en forme d'œil à côté. Dans l'image suivante, le paramètre de représentation de l'objet VTK a été modifié en filaire et l'opacité réduite à 0,5 pour l'empêcher d'obscurcir la géométrie déformée.

REMARQUE: à mesure que davantage d'objets sont ajoutés au Pipeline Browser et que davantage de fenêtres d'affichage sont ouvertes, il devient de plus en plus important de s'assurer que le bon objet est sélectionné dans le Pipeline Browser et que la fenêtre de droite est mise au point lors de la modification de l'onglet Propriétés. Sinon, beaucoup de temps peut être consacré à la recherche de la bonne propriété ou les modifications apportées aux propriétés peuvent ne pas prendre effet.

Application de filtres pour dériver les résultats composés des données d'importation de base

Si nous voulons connaître la quantité d'acier d'armature dans la poutre dans son ensemble ou la quantité passant à travers une section particulière, nous devons effectuer l'intégration (sommation sur la géométrie) des données de base.

Par exemple, le volume total des barres d'armature dans la poutre s'étendant dans la direction x est obtenu à partir de l'intégrale INTEGRATE(ReinforcementRatio_x * dx * dy * dz) sur toute la géométrie et la surface totale de l'acier d'armature en cours d'exécution bien qu'une section efficace particulière du beam soit obtenue à partir de INTEGRATE(ReinforcementRatio_x * dy * dz) sur une tranche.

Dans Paraview, l'intégration peut être effectuée avec un filtre d'intégration. Ce filtre peut être appliqué à l'ensemble de l'objet VTK (le beam) ou à une tranche (la section transversale).

REMARQUE: en raison d'une incompatibilité de l'ordre des nœuds entre FCFEM et PV, l'intégration sur un volume donne des résultats négatifs, c'est-à-dire INTEGRATE( 1.0 * dx * dy *dz) = - Volume au lieu de + Volume.

Pour calculer les intégrales, nous devons appliquer un filtre d'intégration, qui se trouve dans l'élément de menu Filters > Alphabetical. Mettez en surbrillance l'objet VTK et appliquez le filtre.

Appuyez sur le bouton Apply dans l'onglet Propriétés et les résultats s'ouvriront dans une fenêtre distincte à droite de l'aperçu du rendu.

Avant de ranger cela pour trouver le résultat souhaité, c'est-à-dire INTEGRATE(ReinforcementRatio_x * dx * dy * dz), voyons d'abord comment nous pouvons contrôler où la fenêtre est placée et ce qu'elle contient.

Fermez d'abord la fenêtre SpreadSheetView qui s'est ouverte à droite. Appuyez ensuite sur l'icône de fractionnement horizontal dans la fenêtre Renderview et une nouvelle fenêtre s'ouvrira avec un menu d'options d'affichage. Avant de sélectionner une option, assurez-vous que l'objet de filtre d'intégration est mis en surbrillance dans le Pipeline Browser.

Pour afficher les résultats numériques, nous devons sélectionner SpreadSheet View au bas de la liste Create View. Cela génère une feuille de calcul de tous les résultats disponibles dans l'objet VTK intégré sur le volume.

Pour inspecter INTEGRATE(ReinforcementRatio_x * dx * dy * dz), nous pouvons faire défiler vers la droite le tableau, mais nous pouvons également supprimer tous les résultats indésirables en les désélectionnant, c'est-à-dire désélectionner toutes les colonnes et sélectionner ReinforcementRatio_x.

.

Il ne nous reste plus qu'une seule valeur dans le tableau des résultats de l'intégration.

Comme expliqué précédemment, c'est la valeur négative de l'intégrale que nous recherchons. Ainsi, le volume total indicatif d'acier requis dans la direction x est de 2.27e+06 mm3 (= 2272 cm3) or 2272 cm3 * 7.6 g/cm3 = 17267 g (= 17.3 kg). En pratique, le nombre sera plus élevé en raison de considérations pratiques (par exemple, les exigences d'ancrage, les exigences minimales de renforcement, etc.). Néanmoins, ce résultat peut être utilisé pour comparer des conceptions conceptuelles

The above was an example of the integration of a variable directly exported by FEMWB. In some cases we may want to combine VTK variables to obtain new results. This can be done in several ways, but here I will only discuss the simplest, i.e. with the Calculator Filter.

For example, if we want to know the total reinforcement requirement in all three coordinate directions we would have to sum ReinforcementRatio_x, ReinforcementRatio_y and ReinforcementRatio_z.

The Calculator filter can be found as an icon on the left of the filter bar or via the menu Filters > Alphabetical. The name for the resulting variable can be entered in field Result Array Name. Here we name the result Total_Reinforcement_Ratio. The formula can be composed in the box below the Result Array Name field. Input values can be selected from the Scalars drop down menu and they can be combined into a formula for the result using the operators given. After pressing the Apply button, the result will be available as a new variable in any subsequent operations (e.g. an Integration Filter) or views (e.g. RenderView or SpreadSheetView, see below).

For example, we can now apply the integration filter to the new variable Total Reinforcement Ratio

This shows how the total reinforcement requirement compares to those in the individual coordinate directions.

Integration over a Slice

In the previous section we discussed the Integration filter and its application to the entire VTK object. To demonstrate integration over a slice we will in this section determine the total reinforcement requirement and its center of gravity for the central cross section of the beam. The end result is shown in the picture below. The interaction of various objects can be inspected in the Pipeline Browser. The slice filter is applied to the beam VTK object and two Calculator filters are applied to the slice filter to derive the new variables “Reinforcement_ratio_x * z” and “Reinforcement_ratio_x * y” from the base data. These variables need to be integrated to determine the center of gravity of the reinforcement. Finally, Integration filters are applied to each Calculator to integrate results over the Slice. Please refer to the previous section for a general introduction of the Integration filter and its settings.

Apply the following Settings in the Properties tab for the VTK object:

Properties Tab Settings Comment
Representation: Wireframe So the Slice is visible
Coloring: ReinforcementRatio_x Or any other color
Styling > Line Width: 2 Or any other setting that gives a pleasing result

Next highlight the VTK object and apply a Slice filter with the following settings on the Properties tab:

Properties Tab Settings Comment
Plane Parameters > Show Plane: deselect Remove the bounding boxes
Plane Parameters > Origin: 4000 / 100 / 200 Position of central section
Plane Parameters > Normal: 1 /0 /0 Normal of Slice points in x -direction
Coloring: ReinforcementRatio_x Optional
Styling > Line Width: 2 Or any other setting that gives a pleasing result

Settings Calculator 1

Calculator 1 computes the new variable ReinforcementRatio_x * y which needs to be integrated to obtain the y-coordinate of the reinforcement’s center of gravity.

After pressing Apply, a new variable named “ReinforcementRatio_x * y” is available for display or further processing.


Settings Calculator 2

Calculator 2 computes the new variable ReinforcementRatio_x * z which needs to be integrated to obtain the z-coordinate of the reinforcement’s center of gravity.

After pressing Apply, a new variable named “ReinforcementRatio_x * z” is available for display or further processing.

Finally, two Integration filters are applied, one on Calculator1 to integrate variable ReinforcementRatio_x * y and on Calculator2 to integrate ReinforcementRatio_x * z. Each are displayed in their own window with SpreadSheetView selected. The way to deselect all other results is explained earlier.

Finally the Center of Gravity can be calculated from the above results as:

CoG_y = 55744.2 / 556.277 = 100.2 mm (exact value: 100 mm)

CoG_z = 187144 / 556.277 = 336.4 mm (exact value: 5/6 * 400 mm)

Integration over a Line

To demonstrate visualisation and integration of results over a line we use the 2D example of a heavy wall as introduced in this FC forum thread. The FreeCAD file for this example can be downloaded in this FC forum thread. The challenge is to visualise reinforcement ratio across various vertical cross sections and to determine the required area of steel from integration of those results.

Techniques introduced in previous sections of this tutorial will not be repeated here. It is also important to note again that as more objects are added to the Pipeline Browser and more display windows are open, it becomes increasingly important to ensure that the right object is selected in the Pipeline Browser and the right Window has focus when making changes to the Properties Tab. Otherwise much time can be spent on finding the right property or changes to properties may not seem to take effect.

Starting with the VTK object imported from FEMWB we note that the PV controls operate slightly differently on a 2 dimensional object. The left mouse button drags the geometry and the middle mouse button rotates it. To position the geometry in the plane of analysis (i.e. x-y), press the icon that puts the view along the negative z axis:

For the picture below the Coloring property on the Properties tab for the VTK object was set to ReinforcementRatio_x.

The only additional object required to visualise a variable along a straight line is a Plot Over Line filter. This can be activated from the icon bar or the menu option Filters > Alphabetical.

We next want to display the horizontal reinforcement requirements in the vertical cross section under the column. To achieve this in the way shown below, the following settings need to be changed in the Properties tab of the Plot Over Line filter (make sure the LineChartView window and the Plot Over Line object both have the focus)

Properties Tab Settings Comment
Line Parameters > Point 1: 4000 / 0 / 0 Point at bottom of wall under the column
Line Parameters > Point 2: 4000 / 4000 / 0 Point at top of wall under the column
x Axis Parameters > x Array Name: ReinforcementRatio_x Displays ReinforcementRatio_x on the horizontal axis
Series Parameters: tick “arc length” only This is the length parameter along the line
Title > Chart Title: Mid Section
Annotation > Show Legend: deselect Meaningless for the current choice of vertical axis
Left Axis > Left Axis Title: Height Across Beam
Left Axis Range > Use Custom Range: deselect Deselect to maximise the data range along the axis
Bottom Axis > Bottom Axis Title: Reinforcement Ratio in x-Direction
Bottom Axis Range > Use Custom Range: deselect Deselect to maximise the data range along the axis


Note that the distance along the line (arc length) is usually on the horizontal axis and the variable that we want to display (here ReinforcementRatio_x) on the vertical axis. However, as the wall section in this example is vertical and we want to see the reinforcement requirement over the height of the wall, it is more natural to inverse the axes. This, however, comes at the expense of a lot more changes to the settings in the Properties tab for the Plot Over Line filter.


In the next two picture only the location of the line was changed. Note however that this relocation will automatically change the Left Axis Range > Use Custom Range setting to “select”. This may mean that the graph does not properly fit in the LineChartView window. It is therefore necessary to deselect this option every time the position of the line is changed. Other settings are as per the above table.

Properties Tab Settings Comment
Line Parameters > Point 1: 6700 / 0 / 0 Point at bottom of wall under left side of cut-out
Line Parameters > Point 2: 6700 / 4000 / 0 Point at top of wall above left side of cut-out
Title > Chart Title: Section left of Cut-out
Left Axis Range > Use Custom Range: deselect Deselect to maximise the data range along the axis
Bottom Axis Range > Use Custom Range: deselect Deselect to maximise the data range along the axis

Properties Tab Settings Comment
Line Parameters > Point 1: 10950 / 0 / 0 Point at bottom of wall at right-hand support
Line Parameters > Point 2: 10950 / 4000 / 0 Point at top of wall at right-hand support
Title > Chart Title: Section at Support
Left Axis Range > Use Custom Range: deselect Deselect to maximise the data range along the axis
Bottom Axis Range > Use Custom Range: deselect Deselect to maximise the data range along the axis

The total horizontal reinforcement requirement in the last cross section can now simply be obtained by applying an Integration filter to the Plot Over Line object, i.e. highlight the Plot Over Line object in the Pipeline Browser and add an Integration filter from the menu option Filters > Alphabetical.

In the usual way deselect all but the ReinforcementRatio_x result in the SpreadSheetView and read off the result as 23.11 mm2 / mm. To obtain the total cross sectional area of steel, we still need to multiply with the thickness of the wall, which in this example is (an impressive) 600 mm. So the total cross sectional area of steel running through the cross section near the right hand support is 23.11 * 600 = 13866 mm2 = 139 cm2

To achieve a more practical distribution of reinforcement we could integrate the above graph in parts. For example, if we want to know the required cross sectional area of steel in the top 400mm of the wall then we should adjust the properties of the Plot Over Line object as follows

Properties Tab Settings Comment
Line Parameters > Point 1: 10950 / 3600 / 0 Point near top of wall at right-hand support
Line Parameters > Point 2: 10950 / 4000 / 0 Point at top of wall at right-hand support
Left Axis Range > Use Custom Range: deselect Deselect to maximise the data range along the axis
Bottom Axis Range > Use Custom Range: deselect Deselect to maximise the data range along the axis

This yields the following result

The result for the top 400 mm of the wall is thus 8.436 mm2 / mm. So the top 10% of the wall requires 8.44 / 23.11 * 100% = 37% of the reinforcement steel.

This procedure could be repeated to divide the wall in zones of constant reinforcement.

Representation of Vector Results with the Glyph 3D Filter

So far we have only dealt with Scalar values, like reinforcement ratio and displacement magnitude. Visualization of vector results, like Principal Stress vectors, is done with Glyphs.

Let’s return to the VTK data object for the beam with central support and visualize maximum and minimum principal stress vectors.

Highlight the VTK data object in the Pipeline Browser and select the Glyph Filter from the Filter Icon bar or from the menu option Filter > Alphabetical. Then apply the following settings in the Properties tab of the Glyph Filter object (see table and picture):

Properties Tab Settings Comment
Glyph Source > Glyph Type: Line Unfortunately there is no option for a double sided arrow
Orientation > Orientation: Major Principal Stress The Glyph takes the principal stress direction
Scale > Scale Array: Major Principal Stress The length of the line will represent the magnitude of the principal stress
Scale > Vector Scale Mode: Scale by Magnitude
Scale > Scale Factor: 100 Or any other setting that gives a pleasing result
Masking > Glyph Mode: All Points To make sure the stress in every node is displayed
Coloring > Solid Color A single color gives greatest clarity of “stress flow”
Coloring > Edit > Green Or any other setting that gives a pleasing result
Styling > Line Width > 2 Or any other setting that gives a pleasing result

;

If all goes well you should see the following result for the example file.

Next add another Glyph Filter with the following settings for the Minor Principal Stress (don’t forget to first highlight the VTK data object in the Pipeline Browser):

Properties Tab Settings Comment
Glyph Source > Glyph Type: Line Unfortunately there is no option for a double sided arrow
Orientation > Orientation: Minor Principal Stress The Glyph takes the principal stress direction
Scale > Scale Array: Minor Principal Stress The length of the line will represent the magnitude of the principal stress
Scale > Vector Scale Mode: Scale by Magnitude
Scale > Scale Factor: 100 Or any other setting that gives a pleasing result
Masking > Glyph Mode: All Points To make sure the stress in every node is displayed
Coloring > Solid Color A single color gives greatest clarity of “stress flow”
Coloring > Edit > Red Or any other setting that gives a pleasing result
Styling > Line Width > 2 Or any other setting that gives a pleasing result

The final result shows the major and minor principal stress vectors superimposed on the beam with ReinforcementRatio_x.

Export of Graphical Results

To export a RenderView window highlight the window and use menu option File > Save Screenshot Template:Tutorials navi/fr