Post-Processing wyników MES za pomocą Paraview
Ćwiczenie |
Temat |
---|
Post-Processing wyników MES za pomocą ParaView |
Poziom trudności |
średnio zaawansowany |
Czas wykonania |
120 minut |
Autorzy |
HarryvL |
Wersja FreeCAD |
0.19 |
Pliki z przykładami |
belka i ściana znalezione w tym wątku na forum |
Zobacz również |
- |
Wprowadzenie
Niektóre wpisy na forum i przykładu korzystają z Paraview (PV) do przeglądania i analizy wyników ze środowiska pracy MES. Ten przykład wyjaśnia podstawy przenoszenia danych ze środowiska pracy MES do PV i pokazuje niektóre opcje i ustawienia do wyświetlania danych.
Wymagania wstępne
- Wersja FreeCAD kompatybilna z podaną w tym przykładzie.
- Program Paraview pobrany bezpośrednio z jego strony lub preferowanego menedżera pakietów.
- Ten przykład jest oparty na wersji Paraview 5.8.0 dla Windows, która była najnowszą dostępną wersją w momencie opracowywania przykładu.
- Pliki FreeCAD używane w tym przykładzie dostępne w tym i tym wątku na forum FreeCAD.
Transfer danych ze środowiska MES
W środowisku MES podświetl obiekt CCX_Results. Następnie skorzystaj z opcji Plik > Eksport > Wyniki MES VTK (*.vtk *.vtu) aby wyeksportować dane VTK.
Import danych w Paraview
Ekran startowy pokazuje pustą przeglądarkę filtrów. Tam widoczne będą zaimportowane obiekty danych VTK i zastosowane obiekty filtrów (dla geometrii lub danych).
Skorzystaj z opcji File > Open > *.vtk aby otworzyć plik VTK, który został wygenerowany w środowisku pracy MES.
Wciśnij Apply w zakładce właściwości. Domyślnie spowoduje to pokazanie widoku z góry (patrząc w dół wzdłuż osi Z) geometrii.
Szarą geometrię można obejrzeć obracając widok. Lewy przycisk myszy powoduje obrót, ale niestety w trudny do kontrolowania sposób (w porównaniu z FreeCAD). Aby uzyskać przewidywalny obrót, przytrzymaj klawisze X, Y lub Z podczas przeciągania myszą z wciśniętym lewym przyciskiem aby obracać model odpowiednio wokół osi X, Y lub Z
Zapisywanie/wczytywanie stanu
Zamiast zapisywania danych, Paraview przechowuje status (stan) akcji przeprowadzonych na zaimportowanym obiekcie VTK. Zatem, aby zapisać swoją pracę, użyj opcji File > Save State. Uwaga: nie będzie ostrzeżenia przy opuszczaniu Paraview aby zapisać stan i można stracić całą pracę opuszczając program.
Aby kontynuować z ostatniego momentu poprzedniej sesji, użyj File > Load State. To wymusza wskazanie pliku VTK, co oznacza, że akcje przeprowadzone w ostatniej sesji mogą też być zastosowane do nowego pliku VTK. W ten sposób, dane z różnych analiz ze środowiska pracy MES można wyświetlać w dokładnie taki sam sposób, bez żadnego dodatkowego wysiłku.
Zwizualizuj wyniki środowiska MES
Paraview ma wiele opcji i ustawień do wyświetlania wyników. Najpierw przyjrzymy się wyświetlaniu bazowych danych z importu na oryginalnej geometrii a następnie zobaczymy jak stosować filtry aby modyfikować geometrię. Wreszcie, skorzystamy z filtrów kalkulatora i całkowania, aby uzyskać nowe wyniki z operacji na zaimportowanych danych.
Podstawowe dane wyświetlane na oryginalnej geometrii
Ponieważ przeglądarka filtrów może zawierać wiele obiektów VTK i filtrów, najpierw potwierdź, że wyświetlany w niej jest odpowiedni obiekt VTK. Wybory i ustawienia do wyświetlania tego obiektu VTK mogą teraz być znalezione w zakładce Properties (właściwości). Aby upewnić się, że wszystkie ustawienia są widoczne i zgodne z tym przykładem, wciśnij przycisk Advanced Settings (zaawansowane ustawienia - symbol koła zębatego na rysunku poniżej).
Pierwsze ustawienie, które możemy zmienić to sposób w jaki dane są wyświetlane na geometrii. Jest to robione w menu rozwijanym Representations. Na razie skorzystamy tylko z opcji Surface i Wireframe.
Póki co nie są wyświetlane żadne wyniki. Do tego musimy zmienić opcję Coloring. Domyślna wartość to Solid Color, ale menu rozwijane pokazuje wszystkie dane skalarne, które są dostępne w zaimportowanym pliku VTK.
Dla celów tego przykładu wybierzemy ReinforcementRatio_x, ale łatwo można zmienić typ danych na dowolny inny.
Okno RenderView pokaże teraz wykres izokonturów wybranego typu danych oraz legendę kolorów zakresu danych.
Legendę kolorów można przesunąć po ekranie do bardziej wygodnej lokalizacji i zmieni ona orientację zbliżając się do dowolnej krawędzi okna.
Alternatywnie, ustawienia legendy kolorów można kontrolować bardziej szczegółowo po otwarciu okna dialogowego Edit Color Legend Properties z zakładki Properties (wciśnij ostatnią ikonę po prawej stronie).
Otworzy to następujące okno z ustawieniami legendy kolorów
Kolorowanie mapy izokonturów można kontrolować poprzez okno Color Map Editor, które jest aktywowane po wciśnięciu przycisku Edit w zakładce Properties:
Ustaienie Color Discretization jest przydatne do ograniczenia liczby izo wartości, tworząc bardziej praktyczne zakresy dla projektowania. Domyślna wartość to 256, ale tutaj jest to 10.
Stosowanie filtrów do wyników środowiska MES
Aby zmodyfikować dane bazowe lub geometrię zaimportowaną ze środowiska MES, można skorzystać z filtrów.
Tutaj omówimy tylko filtry Slice i Warp. Filtry do tworzenia wyników zbiorczych z danych bazowych będą omówione w następnej sekcji.
Aby zastosować filtr Slice, podświetl obiekt VTK, który ma być przycięty i wciśnij przycisk Slice. Alternatywnie, znajdź filtr Slice w menu Filters > Alphabetical. Dodaje to obiekt filtra Slice do przeglądarki filtrów a lokalizacja w drzewie pokazuje, że jest on zastosowany do obiektu VTK. Pozycja w drzewie jest istotna, ponieważ filtry można stosować do różnych obiektów VTK a nawet do innych obiektów filtrów. Obiekt filtra nie może być przeciągnięty w drzewie aby zmienić obiekt, do którego jest przypisany. Docelowy obiekt można zmienić tylko poprzez opcję z menu (lub kliknięcie prawym przyciskiem myszy) Edit > Change Input.
The location and orientation of the slice can be modified by dragging the slice and its normal vector with the mouse or through the Properties tab. In the below figure the origin of the slice has been placed at the center of the beam (over the central support) and the normal to the plane points in the x-direction.
To get rid of the bounding boxes deselect the Show Plane box at the top of the Plane Parameters dialogue.
The Warp by Vector filter can be used to display the deformed geometry. Highlight the VTK object and press the Warp by Vector Icon. This adds the filter to the Pipeline Browser. Alternatively look for the filter in the menu Filters > Alphabetical. Next select Displacement in the Vectors drop-down menu of the Properties tab and set an appropriate scale factor. Don’t forget to press the Apply button after changing the settings.
The maximum displacement value is 0.98 mm.
To show the deformed geometry superimposed on the undeformed geometry, simply make both the VTK object and Warp filter object visible by clicking the eye icon next to it. In the following picture the Representation setting for the VTK object was changed to Wireframe and the Opacity reduced to 0.5 to prevent it from obscuring the Deformed geometry.
NOTE: 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.
Applying Filters to Derive Compound Results from Base Import Data
If we want to know the amount of reinforcement steel in the beam as a whole or the amount passing though a particular cross section we need to perform integration (summation over the geometry) of the base data.
For example, the total volume of reinforcement bars in the beam running in x-direction is obtained from the integral INTEGRATE(ReinforcementRatio_x * dx * dy * dz)
over the full geometry and the total area of reinforcement steel running though a particular beam cross section is obtained from INTEGRATE(ReinforcementRatio_x * dy * dz)
over a slice.
In Paraview, integration can be done with an Integration Filter. This filter can be applied to the entire VTK object (the beam) or to a Slice (the cross section).
NOTE: due to a mismatch of node ordering between FCFEM and PV, integration over a volume renders negative results, i.e. INTEGRATE( 1.0 * dx * dy *dz)
= - Volume instead of + Volume.
To calculate integrals we need to apply an Integration Filter, which can be found in the menu item Filters > Alphabetical. Highlight the VTK object and apply the filter.
Press the Apply button in the Properties tab and the results will open in a separate window to the right of the Renderview.
Before we tidy this up to find the desired result, i.e. INTEGRATE(ReinforcementRatio_x * dx * dy * dz)
, lets first see how we can control where the window is placed and what it contains.
First close the SpreadSheetView window that has opened to the right. Then press the horizontal split icon on the Renderview window and a new window will open with a menu of display options. Before selecting an option, make sure the Integration filter object is highlighted in the Pipeline Browser.
To display numerical results we need to select SpreadSheet View at the bottom of the Create View list. This generates a spreadsheet of all available results in the VTK object integrated over the volume.
To inspect INTEGRATE(ReinforcementRatio_x * dx * dy * dz)
we could scroll to the right through the table, but we can also remove all unwanted results by deselecting them, i.e. deselect All Columns and select ReinforcementRatio_x.
Now we are left with just one value in the table of integration results
As explained before this is the negative value of the integral we are looking for. So the indicative total volume of steel required in x direction is 2.27e+06 mm3 (= 2272 cm3) or 2272 cm3 * 7.6 g/cm3 = 17267 g (= 17.3 kg). In practice the number will be higher due to practical considerations (e.g. anchoring requirements, minimum reinforcement requirements, etc.). Nevertheless, this result can be used to compare conceptual designs
The above was an example of the integration of a variable directly exported by FEM Workbench. 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 FEM Workbench, 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
- Materiał: Bryła, Ciecz, Nieliniowy materiał mechaniczny, Materiał zbrojony (beton), Edytor materiału
- Geometria elementu: Geometria elementu, Obrót w okół osi, Geometria elementu 2D, Element przepływu
Wiązania
- Elektromagnetyczne: Potencjał elektryczny, Gęstość prądu, Magnetyzacja
- Geometryczne: Obrót w płaszczyźnie, Zapis wyników z przekroju, Zdefiniuj odkształcenie
- Mechaniczne: Zdefiniuj przytwierdzenie, Zdefiniuj przemieszczenie, Zdefiniuj kontakt, Zdefiniuj powiązanie, Wiązanie sprężyny, Zdefiniuj siłę, Zdefiniuj obciążenie ciśnieniem, Zdefiniuj siłę odśrodkową, Zdefiniuj obciążenie ciężarem własnym
- Termiczne: Warunek początkowy temperatury, Zdefiniuj strumień ciepła, Zdefiniuj temperaturę, Zdefiniuj objętościowe źródło ciepła
- Zmieniające wiązania: Zdefiniuj przenikalność elektryczną próżni
- Siatki: Siatka Netgen, Siatka GMSH, Warstwa graniczna siatki, Obszar siatki, Grupa siatki, Utwórz zestaw węzłów, Siatka MES na obiekt środowiska Siatka
- Solver: Narzędzia CalculiX, Elmer, Mystran, Z88; Równania: Elastyczności, Elektrostatyczne, Siły elektrostatycznej, Magnetodynamiczne, RMagnetodynamiczne 2D, Przepływu, Strumienia, Ciepła; Solver: Kontrola pracy solvera, Uruchom solver
- Wyniki: Oczyszczanie z wyników, Prezentacja wyników; Postprocessing: Zastosuj zmiany, Prezentacja graficzna, Filtr rozpraszający, Skalarny filtr obcinający, Filtr odcięcia funkcji, Filtr odcięcia obszaru, Filtr konturów, Filtr danych wzdłuż linii, Wykres liniowości naprężeń, Filtr obcinania danych w punkcie, Utwórz funkcję, Filtr funkcji płaszczyzny, Filtr funkcji sfery, Filtr funkcji walca, Filtr funkcji prostopadłościanu
- Dodatkowe: Konfiguracja, Instalacja środowiska MES, Siatka, FEM Solver, CalculiX, Beton, Rodzaje elementów
- Jak zacząć
- Instalacja: Pobieranie programu, Windows, Linux, Mac, Dodatkowych komponentów, Docker, AppImage, Ubuntu Snap
- Podstawy: Informacje na temat FreeCAD, Interfejs użytkownika, Profil nawigacji myszką, Metody wyboru, Nazwa obiektu, Edytor ustawień, Środowiska pracy, Struktura dokumentu, Właściwości, Pomóż w rozwoju FreeCAD, Dotacje
- Pomoc: Poradniki, Wideo poradniki
- Środowiska pracy: Strona Startowa, Złożenie, BIM, CAM, Rysunek Roboczy, MES, Inspekcja, Siatka, OpenSCAD, Część, Projekt Części, Punkty, Inżynieria Wsteczna, Robot, Szkicownik, Arkusz Kalkulacyjny, Powierzchnia 3D, Rysunek Techniczny, Test Framework