Przejdź do treści

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