System numeracji elementów i biblioteka funkcji kształtu¶
Funkcja kształtu \(N_\alpha^e(\boldsymbol{r})\) wprowadzona w rozdziale Funkcje kształtu i aproksymacja metodą elementów skończonych ma konkretną postać dla każdego typu elementu. W tym rozdziale sklasyfikowano grupy elementów dostępne w FrontISTR przy użyciu trzycyfrowych numerów typów elementów oraz przedstawiono interfejs biblioteki funkcji kształtu umożliwiający jednolitą obsługę każdego elementu. Konkretne układy współrzędnych naturalnych i funkcje kształtu trójwymiarowych elementów bryłowych, a także konwersję kolejności węzłów pośrednich elementów kwadratowych opisano w Funkcjach kształtu trójwymiarowych elementów bryłowych, natomiast wskazówki dotyczące wyboru typów elementów znajdują się w Bibliotece elementów (funkcje).
Klasyfikacja elementów i zasady nazewnictwa¶
Typy elementów FrontISTR są identyfikowane trzycyfrowymi numerami. Znaczenie poszczególnych cyfr jest następujące.
- Pierwsza cyfra (grupa elementów): 1 = element liniowy/pręt kratownicowy, 2 = element płaski, 3 = element bryłowy, 5 = element interfejsowy, 6 = element belkowy, 7 = element powłokowy.
- Druga cyfra (kształt podstawowy): rozróżnia kształt geometryczny w obrębie grupy elementów (trójkąt, czworokąt, czworościan, graniastosłup lub sześciościan).
- Trzecia cyfra (rząd interpolacji): 1 = pierwszy rząd (tylko węzły narożne), 2 = drugi rząd (z węzłami pośrednimi). Wyjątkiem jest dwuwęzłowy element kratownicowy oznaczony numerem 301.
Dostępne elementy zestawiono według grup elementów w poniższej tabeli.
| Grupa elementów | Typ elementu | Liczba węzłów | Opis |
|---|---|---|---|
| Element liniowy | 111 | 2 | 2-węzłowy element łącznikowy (niedostępny w analizie naprężeń) |
| 112 | 3 | 3-węzłowy element łącznikowy (niedostępny w analizie naprężeń) | |
| Element płaski | 231 | 3 | 3-węzłowy liniowy element trójkątny |
| 232 | 6 | 6-węzłowy kwadratowy element trójkątny | |
| 241 | 4 | 4-węzłowy liniowy element czworokątny | |
| 242 | 8 | 8-węzłowy kwadratowy element czworokątny (rodzina Serendipity) | |
| Element bryłowy | 301 | 2 | 2-węzłowy element kratownicowy |
| 341 | 4 | 4-węzłowy liniowy element czworościenny | |
| 342 | 10 | 10-węzłowy kwadratowy element czworościenny | |
| 351 | 6 | 6-węzłowy liniowy element graniastosłupowy | |
| 352 | 15 | 15-węzłowy kwadratowy element graniastosłupowy | |
| 361 | 8 | 8-węzłowy liniowy element sześciościenny | |
| 362 | 20 | 20-węzłowy kwadratowy element sześciościenny (rodzina Serendipity) | |
| Element interfejsowy | 541 | 4×2 | 4-węzłowy liniowy element powierzchni czworokątnej (niedostępny w analizie naprężeń) |
| 542 | 8×2 | 8-węzłowy kwadratowy element powierzchni czworokątnej (niedostępny w analizie naprężeń) | |
| Element belkowy | 611 | 2 | 2-węzłowy element belkowy Bernoulliego-Eulera (6 DOF na węzeł) |
| 641 | 2×2 | 2-węzłowy element belkowy Bernoulliego-Eulera (3 DOF na węzeł, do mieszanych DOF) | |
| Element powłokowy | 731 | 3 | Trójkątny element powłokowy MITC3 (6 DOF na węzeł) |
| 741 | 4 | Czworokątny element powłokowy MITC4 (6 DOF na węzeł) | |
| 743 | 9 | Czworokątny element powłokowy MITC9 (6 DOF na węzeł) | |
| 761 | 3×2 | Trójkątny element powłokowy MITC3 (3 DOF na węzeł, do mieszanych DOF) | |
| 781 | 4×2 | Czworokątny element powłokowy MITC4 (3 DOF na węzeł, do mieszanych DOF) |
Liniowy element sześciościenny 361 ma kilka sformułowań (pełne całkowanie, tryb niezgodny, B-bar i F-bar), wybieranych za pomocą sterowania analizą. Szczegółowe informacje znajdują się w Zaawansowanych sformułowaniach elementów.
Element belkowy 641 oraz elementy powłokowe 761/781 są sformułowaniami służącymi do łączenia elementów konstrukcyjnych o 6 stopniach swobody z elementami bryłowymi o 3 stopniach swobody w tych samych węzłach; jeden węzeł konstrukcyjny jest reprezentowany przez dwa węzły o 3 DOF. Same sformułowania są identyczne z odpowiednimi wersjami o 6 DOF (611, 731 i 741).
Biblioteka funkcji kształtu¶
Procedury obliczeniowe elementów (budowa macierzy sztywności i wektora sił wewnętrznych) nie mają oddzielnych procedur dla każdego typu elementu. Zamiast tego wywołują bibliotekę funkcji kształtu przez zunifikowany interfejs przyjmujący numer typu elementu fetype jako argument. Moduł elementInfo (fistr1/src/lib/element/element.f90) udostępnia następujące funkcje.
NumOfQuadPoints(fetype): zwraca liczbę punktów całkowania \(n_q\) dla danego typu elementu.getQuadPoint(fetype, np, pos): zwraca współrzędne naturalne \(\boldsymbol{r}_i\) punktu całkowania \(i\).getWeight(fetype, np): zwraca wagę \(w_i\) punktu całkowania \(i\).getShapeFunc(fetype, r, N): zwraca wartości funkcji kształtu \(N_\alpha^e(\boldsymbol{r})\) we współrzędnych naturalnych \(\boldsymbol{r}\).getShapeDeriv(fetype, r, dN): zwraca pochodne funkcji kształtu względem współrzędnych naturalnych \(\partial N_\alpha^e/\partial \boldsymbol{r}\).getGlobalDeriv(fetype, n_e, r, X^e, J, dN_x): dla współrzędnych węzłowych elementu \(\boldsymbol{X}^e\) zwraca pochodne względem współrzędnych fizycznych \(\partial N_\alpha^e/\partial \boldsymbol{x}\) oraz wyznacznik jakobianu \(J\).getNumberOfSubface(fetype),getSubFace(fetype, k, ...): zwracają liczbę powierzchni brzegowych elementu oraz numery węzłów tworzących każdą powierzchnię. Są używane do tworzenia obciążeń powierzchniowych i powierzchni kontaktowych.
Każda funkcja wewnętrznie rozgałęzia się według numeru typu elementu i wywołuje procedury funkcji kształtu oraz ich pochodnych w modułach niższego poziomu dostarczonych dla poszczególnych typów elementów (tet4n.f90, tet10n.f90, prism6n.f90, prism15n.f90, hex8n.f90, hex20n.f90, tri3n.f90, tri6n.f90, quad4n.f90, quad8n.f90, quad9n.f90, line2n.f90, line3n.f90). Tablice numeryczne współrzędnych punktów całkowania i wag są zgromadzone w quadrature.f90. Aby dodać nowy typ elementu, należy zaimplementować odpowiedni moduł niższego poziomu i dodać dla niego rozgałęzienia do każdej funkcji w elementInfo.
Konwersja kolejności węzłów pośrednich dla kwadratowych elementów trójkątnych¶
W przypadku kwadratowego elementu trójkątnego 232 kolejność węzłów pośrednich różni się między formatem wejściowym siatki HEC-MW (w którym najpierw porządkowane są węzły narożne wokół elementu, a następnie węzły pośrednie na krawędziach 1-2, 2-3, …) a wewnętrznym formatem FrontISTR zakładanym przez funkcje kształtu w bibliotece elementów. Różnica między tymi formatami jest usuwana bezpośrednio po wczytaniu siatki przez hecmw2fstr_mesh_conv (fistr1/src/common/hecmw2fstr_mesh_conv.f90 i hecmw2fstr_connect_conv.c), które porządkuje sześć węzłów jako \(\{1,2,3,6,4,5\}\) zgodnie z tablicą konwersji Table232. Ponieważ konwersja jest wykonywana bezpośrednio na tablicy przechowującej łączność elementów, wszystkie późniejsze wywołania biblioteki elementów używają wewnętrznej kolejności węzłów FrontISTR. Przy zapisie wyników odwrotna konwersja fstr2hecmw_mesh_conv przywraca format HEC-MW przed zapisem, dlatego użytkownik musi znać jedynie format HEC-MW zarówno dla wejścia, jak i wyjścia.
Kwadratowe trójwymiarowe elementy bryłowe 342 (czworościenny) i 352 (graniastosłupowy) mają podobne automatyczne konwersje, natomiast 362 (kwadratowy sześciościenny) nie wymaga konwersji. Sposób ich obsługi opisano w Funkcjach kształtu trójwymiarowych elementów bryłowych. Dla kwadratowego płaskiego elementu czworokątnego 242 oraz elementu interfejsowego 542 konwersja nie jest wykonywana, ponieważ kolejność węzłów pośrednich jest taka sama w formacie wejściowym HEC-MW i w formacie wewnętrznym.
Tematy powiązane¶
- Funkcje kształtu i aproksymacja metodą elementów skończonych — matematyczna definicja funkcji kształtu
- Całkowanie numeryczne — punkty całkowania, wagi i przybliżona postać całkowania po elemencie
- Funkcje kształtu trójwymiarowych elementów bryłowych — konkretne współrzędne naturalne i funkcje kształtu elementów bryłowych continuum
- Zaawansowane sformułowania elementów — B-bar / F-bar / tryb niezgodny / powłoka / belka
- Biblioteka elementów (funkcje) — opcje typów elementów i wskazówki dotyczące wyboru