Przejdź do treści

Translation update pending

The Polish translation may be out of date because the Japanese source has changed. The existing translation remains available while it is being updated.

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 (6 DOF na węzeł; belka Bernoulliego-Eulera lub Timoshenki)
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 Wysokowydajnych 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). Jednak 641 obsługuje wyłącznie sformułowanie belki Bernoulliego-Eulera i nie obsługuje sformułowania belki Timoshenki dostępnego dla 611.

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