MES: Siatka MES z kształtu przy pomocy generatora Gmsh

From FreeCAD Documentation
Revision as of 23:51, 19 November 2023 by NewJoker (talk | contribs) (Created page with "===Wzrost siatki===")

Siatka MES z kształtu przy pomocy generatora Gmsh

Lokalizacja w menu
Siatka → Siatka MES z kształtu przy pomocy generatora Gmsh
Środowisko pracy
MES
Domyślny skrót
brak
Wprowadzono w wersji
-
Zobacz także
Poradniki MES

Opis

Geometria do analizy metodą elementów skończonych musi być poddana dyskretyzacji do siatki MES. To narzędzie korzysta z programu Gmsh (który musi być zainstalowany w systemie) do generowania siatki.

W zależności od Twojego systemu operacyjnego i pakietu instalacyjnego, Gmsh może być dołączony do programu FreeCAD lub nie. Więcej informacji można znaleźć na stronie Instalacja środowiska MES.

Użycie

  1. Wybierz kształt, który chcesz analizować. Dla objętości musi to być bryła pojedyncza lub złożona. Bryła złożona jest konieczna jeśli część jest wykonana z wielu materiałów (bryłę złożoną można utworzyć przy pomocy narzędzia Fragmentacja funkcją logiczną).
  2. Opcjonalnie, edytuj minimalny i maksymalny rozmiar elementu (autodetekcja często tworzy zbyt rzadkie siatki).
  3. Wciśnij przycisk Zastosuj i poczekaj aż zakończy się generowanie siatki.
  4. Zamknij okno dialogowe. Powinieneś widzieć nowy obiekt FEMMeshGMSH dodany do aktywnego kontenera analizy.

Po utworzeniu siatki można zmienić jej właściwości używając edytora właściwości. Po zmianie właściwości należy ponownie otworzyć okno dialogowe narzędzia i wcisnąć przycisk Zastosuj (można zostawić okno dialogowe otwarte podczas zmieniania właściwości).

Właściwości

  • DANEAlgorithm2D: Algorytm do tworzenia siatek 2D. Dostępne algorytmy są opisane tutaj. Dla Delaunay zobacz triangulacja Delone.
  • DANEAlgorithm3D: Algorytm do tworzenia siatek 3D. Dostępne algorytmy są opisane tutaj.
  • DANECharacteristic Length Max: Maksymalny rozmiar elementów. Jeśli ustawione jest 0.0 to rozmiar zostanie dobrany automatycznie. Ta właściwość może być również zmieniona w oknie dialogowym narzędzia w polu Maksymalny rozmiar elementu.
  • DANECharacteristic Length Min: Minimalny rozmiar elementów. Jeśli ustawione jest 0.0 to rozmiar zostanie dobrany automatycznie. Ta właściwość może być również zmieniona w oknie dialogowym narzędzia w polu Minimalny rozmiar elementu.
  • DANECoherence Mesh:
    • true (domyślne); zduplikowane węzły siatki zostaną usunięte
    • false
  • DANEElement Dimension: Przestrzeń elementów siatki. Ta właściwość może być również zmieniona w oknie dialogowym narzędzia w polu Wymiar elementu.
    • From Shape (domyślne); przestrzeń zostanie określona na podstawie przestrzeni obiektu, dla którego siatka jest generowana
    • 1D
    • 2D
    • 3D
  • DANEElement Order: Rząd elementów. Ta właściwość może być również zmieniona w oknie dialogowym narzędzia w polu Kolejność elementów. dostępne w wersji 0.20
    • 1st
    • 2nd (domyślne)
      Uwaga: Jeśli korzystasz z solvera Elmer, możesz trafić na ten błąd: ERROR:: GetEdgeBasis: Can't handle but linear elements, sorry. To oznacza, że dane równanie (typ analizy) nie wspiera siatek drugiego rzędu. W takim wypadku użyj siatki piwrwszego rzędu lub sprawdź stronę wiki danego równania żeby znaleźć ewentualne możliwości używania siatek drugiego rzędu.
  • DANEGeometrical Tolerance: Tolerancja geometryczna dla dopasowania siatki do krawędzi obiektu. Domyślne ustawienie 0.0 oznacza, że Gmsh skorzysta z wartości 1e-8.
  • DANEGroups Of Nodes: Wszytkie węzły a nie tylko elementy zostaną zapisane dla każdej fizycznej grupy siatki. Fizyczne grupy siatki to zbiory obiektów siatki (punktów, krawędzi, powierzchni i objętości). Są one identyfikowane za pomocą przestrzeni i indywidualnego oznaczenia. Przykładowo, siatka tego samego obszaru obiektu jest wewnętrznie oznaczana tak samo. Więc wszystkie powierzchnie tego obszaru będą tworzyły jedną grupę fizyczną.
  • DANEHigh Order Optimize: Czy i jak siatki z właściwością DANEElement Order = 2nd są optymalizowane. Optymalizacja odbywa się poprzez deformację krawędzi elementu.
    dostępne w wersji 0.20 Gmsh wspiera różne algorytmy optymalizacji. Elastic to algorytm, w którym elementy siatki są traktowane jako kolekcja deformowalnych ciał lepkosprężystych. Siatki pierwszego rzędu nie mogą być optymalizowane, ponieważ ich krawędzie są liniowe i nie można ich deformować.
  • DANEMesh Size From Curvature dostępne w wersji 0.20: Liczba elementów siatki na razy promień krzywizny. Aby uzyskać gęstszą siatkę dla małych wierzchołków lub otworów, należ zwiększyć tą wartość dla lepszych wyników.

Efekt właściwości Mesh Size From Curvature'; po lewej: ustawionej na 12, po prawej: dezaktywowanej

  • DANEOptimize Netgen: Czy siatka będzie optymalizowana przy pomocy generatora siatki 3D Netgen aby poprawić jakość elementów czworościennych. Uwaga: ponieważ Netgen może tworzyć tylko elementy czworościenne, ta opcja jest ignorowana dla siatek, których właściwość DANEElement Dimension nie jest ustawiona na 3D.
  • DANERecombination Algorithm dostępne w wersji 0.20: Algorytm używany przez DANERecombine 3D All i przez DANERecombine All. Więcej informacji można znaleźć w sekcji Rekombinacja elementów a szczegóły technicznej znajdują się w dokumentacji Gmsh.
  • DANERecombine 3D All dostępne w wersji 0.20: Stosuje algorytm rekombinacji 3D dla wszystkich objętości. Czworościany będą przekształcone w pięciościany, prostopadłościany lub piramidki gdzie będzie to możliwe.
  • DANERecombine All: Stosuje algorytm rekombinacji dla wszystkich powierzchni. Trójkąty będą przekształcone w czworokąty gdzie będzie to możliwe a recombination algorithm to all surfaces.
  • DANEOptimize Std Optymalizuje siatkę aby zwiększyć jakość elementów czworościennych.
  • DANESecond Order Linear: Czy węzły elementów drugiego rzędu (jeśli wlaściwość DANEElement Order jest ustawiona 2nd) i/lub punkty zagęszczania siatki są tworzone przez interpolację liniową.
    • true; używana jest interpolacja liniowa
    • false (domyślne); używana jest interpolacja krzywoliniowa

Uwagi

Ujemne jakobiany

Jeśli pojawia się błąd o ujemnych jakobianach, można wypróbować następujące podejściaː

  • Ustawić właściwość DANESecond Order Linear na true, ale zostawić DANEElement Order na 2nd.
  • Ustawić DANEElement Order na 1st.
  • Zmniejszyć rozmiar elementów siatki poprzez redukcję DANECharacteristic Length Max.
  • Jeśli używany jest solver ccxtools i przycisk uruchamiania (nie panel zadań) to węzły elementów z ujemnymi jakobianami będą zaznaczone na zielono.

Wzrost siatki

At edges and small geometric entities, the mesh has to be smaller than in areas without edges. So the mesh element size grows away from the edges. The growing strategy of Gmsh is to grow between edges of different sizes. So the growing fails when an area has the same sized edges like for example this tube:

Failing mesh growing because the cylindrical area is surrounded by the same edges

To enable a sensible mesh growing, you must in this case add an edge to the area. In the example, this would be a circle in the middle of the cylinder. The circle is added as part of a BooleanFragments compound (to form a CompSolid), see the project file of the example.

Sensible mesh growing due to the additional edge in the middle of the cylindrical aread

Rekombinacja elementów

Elements can be recombined in two ways, on the surface of objects so that triangles will be recombined into quadrangles if possible and in the volume of objects so that tetrahedra will be recombined into prisms, hexahedra or pyramids if possible. Thinking about the geometry, it becomes clear that the recombination result depends strongly on the geometry of the body and that recombining a 3D body only at the surface will mostly lead to strange results.

To illustrate this, look at the image below. A cuboid body is meshed using the standard settings (tetrahedra, 2nd order mesh). This is the subimage at the upper left. The image at the upper right shows the result, when additionally the elements are recombined only at the surface of the body. The result is bad because the changed surface elements don't fit to the unchanged volume elements. So DANERecombine All alone usually only makes sense for 2D meshes.
When we use now also DANERecombine 3D All, the result is better, see the lower left subimage. However, the result doesn't show a great difference compared to the mesh without recombinations. Since our body is a cuboid, it is therefore sensible to use a recombination algorithm that tries to create cuboids as well. And this result is shown in the subimage at the lower right.

The Simple recombination algorithm will leave some triangles in the mesh in case the recombining leads to badly shaped quads. In such cases use a full-quad recombination algorithm, which will automatically perform a coarser mesh followed by the recombination, smoothing and subdividing. See forum topic

Effect of mesh element recombination.
Upper left: standard mesh.
Upper right: recombination only at the surface using the Simple algorithm.
Lower left: recombination at the surface and in the volume using the Simple algorithm.
Lower right: recombination at the surface and in the volume using the Simple full-quad algorithm