Schéma číslovania prvkov a knižnica tvarových funkcií¶
Tvarová funkcia \(N_\alpha^e(\boldsymbol{r})\) uvedená v Tvarových funkciách a aproximácii metódou konečných prvkov má pre každý typ prvku špecifický tvar. Táto kapitola klasifikuje skupiny prvkov poskytované FrontISTR pomocou trojciferných čísel typov prvkov a uvádza rozhranie knižnice tvarových funkcií na jednotné spracovanie jednotlivých prvkov. Konkrétne prirodzené súradnicové systémy a tvarové funkcie trojrozmerných objemových prvkov, ako aj konverzia poradia stredových uzlov kvadratických prvkov, sú opísané v Tvarových funkciách trojrozmerných objemových prvkov, zatiaľ čo odporúčania na výber typov prvkov sú uvedené v Knižnici prvkov (funkcie).
Klasifikácia prvkov a pravidlá pomenovania¶
Typy prvkov FrontISTR sú identifikované trojcifernými číslami. Význam jednotlivých číslic je nasledujúci.
- Prvá číslica (skupina prvku): 1 = čiarový/prútový prvok, 2 = rovinný prvok, 3 = objemový prvok, 5 = rozhraniový prvok, 6 = nosníkový prvok, 7 = škrupinový prvok.
- Druhá číslica (základný tvar): rozlišuje geometrický tvar v rámci skupiny prvkov (trojuholník, štvoruholník, tetraéder, hranol alebo hexaéder).
- Tretia číslica (rád interpolácie): 1 = prvý rád (iba rohové uzly), 2 = druhý rád (vrátane stredových uzlov). Výnimkou je dvojuzlový prútový prvok s číslom 301.
Dostupné prvky sú v nasledujúcej tabuľke zoradené podľa skupiny prvkov.
| Skupina prvkov | Typ prvku | Počet uzlov | Opis |
|---|---|---|---|
| Čiarový prvok | 111 | 2 | 2-uzlový spojovací prvok (nie je dostupný pre analýzu napätí) |
| 112 | 3 | 3-uzlový spojovací prvok (nie je dostupný pre analýzu napätí) | |
| Rovinný prvok | 231 | 3 | 3-uzlový lineárny trojuholníkový prvok |
| 232 | 6 | 6-uzlový kvadratický trojuholníkový prvok | |
| 241 | 4 | 4-uzlový lineárny štvoruholníkový prvok | |
| 242 | 8 | 8-uzlový kvadratický štvoruholníkový prvok (rodina Serendipity) | |
| Objemový prvok | 301 | 2 | 2-uzlový prútový prvok |
| 341 | 4 | 4-uzlový lineárny tetraedrický prvok | |
| 342 | 10 | 10-uzlový kvadratický tetraedrický prvok | |
| 351 | 6 | 6-uzlový lineárny hranolový prvok | |
| 352 | 15 | 15-uzlový kvadratický hranolový prvok | |
| 361 | 8 | 8-uzlový lineárny hexaedrický prvok | |
| 362 | 20 | 20-uzlový kvadratický hexaedrický prvok (rodina Serendipity) | |
| Rozhraniový prvok | 541 | 4×2 | 4-uzlový lineárny prvok so štvoruholníkovou stenou (nie je dostupný pre analýzu napätí) |
| 542 | 8×2 | 8-uzlový kvadratický prvok so štvoruholníkovou stenou (nie je dostupný pre analýzu napätí) | |
| Nosníkový prvok | 611 | 2 | 2-uzlový Bernoulliho-Eulerov nosníkový prvok (6 stupňov voľnosti na uzol) |
| 641 | 2×2 | 2-uzlový Bernoulliho-Eulerov nosníkový prvok (3 stupne voľnosti na uzol, pre zmiešané stupne voľnosti) | |
| Škrupinový prvok | 731 | 3 | trojuholníkový škrupinový prvok MITC3 (6 stupňov voľnosti na uzol) |
| 741 | 4 | štvoruholníkový škrupinový prvok MITC4 (6 stupňov voľnosti na uzol) | |
| 743 | 9 | štvoruholníkový škrupinový prvok MITC9 (6 stupňov voľnosti na uzol) | |
| 761 | 3×2 | trojuholníkový škrupinový prvok MITC3 (3 stupne voľnosti na uzol, pre zmiešané stupne voľnosti) | |
| 781 | 4×2 | štvoruholníkový škrupinový prvok MITC4 (3 stupne voľnosti na uzol, pre zmiešané stupne voľnosti) |
Lineárny hexaedrický prvok 361 má viacero formulácií (úplná integrácia, nekompatibilný mód, B-bar a F-bar), ktoré sa vyberajú prostredníctvom riadenia analýzy. Podrobnosti nájdete v Pokročilých formuláciách prvkov.
Nosníkový prvok 641 a škrupinové prvky 761/781 sú formulácie na spojenie konštrukčných prvkov so 6 stupňami voľnosti s objemovými prvkami s 3 stupňami voľnosti v rovnakých uzloch; jeden konštrukčný uzol je reprezentovaný dvoma uzlami s 3 stupňami voľnosti. Samotné formulácie sú totožné so zodpovedajúcimi verziami so 6 stupňami voľnosti (611, 731 a 741).
Knižnica tvarových funkcií¶
Výpočtové rutiny prvkov (zostavenie matice tuhosti a vektora vnútorných síl) nemajú samostatné rutiny pre každý typ prvku. Namiesto toho volajú knižnicu tvarových funkcií cez jednotné rozhranie, ktoré prijíma číslo typu prvku fetype ako argument. Modul elementInfo (fistr1/src/lib/element/element.f90) poskytuje nasledujúce funkcie.
NumOfQuadPoints(fetype): vracia počet integračných bodov \(n_q\) pre daný typ prvku.getQuadPoint(fetype, np, pos): vracia prirodzené súradnice \(\boldsymbol{r}_i\) integračného bodu \(i\).getWeight(fetype, np): vracia váhu \(w_i\) integračného bodu \(i\).getShapeFunc(fetype, r, N): vracia hodnoty tvarových funkcií \(N_\alpha^e(\boldsymbol{r})\) v prirodzených súradniciach \(\boldsymbol{r}\).getShapeDeriv(fetype, r, dN): vracia derivácie tvarových funkcií podľa prirodzených súradníc \(\partial N_\alpha^e/\partial \boldsymbol{r}\).getGlobalDeriv(fetype, n_e, r, X^e, J, dN_x): pre zadané uzlové súradnice prvku \(\boldsymbol{X}^e\) vracia derivácie podľa fyzikálnych súradníc \(\partial N_\alpha^e/\partial \boldsymbol{x}\) a determinant Jacobiánu \(J\).getNumberOfSubface(fetype),getSubFace(fetype, k, ...): vracajú počet hraničných stien prvku a čísla uzlov tvoriacich každú stenu. Používajú sa na zostavenie plošných zaťažení a kontaktných plôch.
Každá funkcia sa interne vetví podľa čísla typu prvku a volá podprogramy tvarových funkcií a ich derivácií v nižších moduloch poskytovaných pre jednotlivé typy prvkov (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). Číselné tabuľky súradníc integračných bodov a váh sú sústredené v quadrature.f90. Pri pridávaní nového typu prvku implementujte zodpovedajúci nižší modul a pridajte jeho vetvy do každej funkcie v elementInfo.
Konverzia poradia stredových uzlov kvadratických trojuholníkových prvkov¶
Pri kvadratickom trojuholníkovom prvku 232 sa poradie stredových uzlov líši medzi vstupným formátom siete HEC-MW (ktorý usporiada rohové uzly okolo prvku a potom stredové uzly pozdĺž hrán 1-2, 2-3, …) a interným formátom FrontISTR predpokladaným tvarovými funkciami v knižnici prvkov. Rozdiel medzi oboma formátmi sa vyrieši bezprostredne po načítaní siete pomocou hecmw2fstr_mesh_conv (fistr1/src/common/hecmw2fstr_mesh_conv.f90 a hecmw2fstr_connect_conv.c), ktorý podľa konverznej tabuľky Table232 zmení poradie šiestich uzlov na \(\{1,2,3,6,4,5\}\). Keďže sa konverzia vykonáva priamo v poli uchovávajúcom konektivitu prvkov, všetky následné volania knižnice prvkov používajú interné poradie uzlov FrontISTR. Pri výstupe výsledkov inverzná konverzia fstr2hecmw_mesh_conv pred zápisom obnoví formát HEC-MW, takže používateľom stačí poznať formát HEC-MW pre vstup aj výstup.
Kvadratické trojrozmerné objemové prvky 342 (tetraedrický) a 352 (hranolový) majú podobné automatické konverzie, zatiaľ čo pri prvku 362 (kvadratický hexaedrický) sa konverzia nevykonáva. Ich spracovanie nájdete v Tvarových funkciách trojrozmerných objemových prvkov. Pri kvadratickom rovinnom štvoruholníkovom prvku 242 a rozhraniovom prvku 542 sa konverzia nevykonáva, pretože poradie stredových uzlov je vo vstupnom formáte HEC-MW rovnaké ako v internom formáte.
Súvisiace témy¶
- Tvarové funkcie a aproximácia metódou konečných prvkov — matematická definícia tvarových funkcií
- Numerická integrácia — integračné body, váhy a približný tvar integrácie prvku
- Tvarové funkcie trojrozmerných objemových prvkov — konkrétne prirodzené súradnice a tvarové funkcie objemových prvkov kontinua
- Pokročilé formulácie prvkov — B-bar / F-bar / nekompatibilný mód / škrupina / nosník
- Knižnica prvkov (funkcie) — možnosti typov prvkov a odporúčania na výber