Schéma číslování prvků a knihovna tvarových funkcí¶
Tvarová funkce \(N_\alpha^e(\boldsymbol{r})\) zavedená v části Tvarové funkce a aproximace metodou konečných prvků má pro každý typ prvku konkrétní tvar. Tato kapitola klasifikuje skupiny prvků poskytované FrontISTR pomocí trojciferných čísel typů prvků a představuje rozhraní knihovny tvarových funkcí pro jednotné zacházení s jednotlivými prvky. Konkrétní přirozené souřadnicové systémy a tvarové funkce trojrozměrných objemových prvků, stejně jako převod pořadí středových uzlů u kvadratických prvků, jsou popsány v části Tvarové funkce trojrozměrných objemových prvků, zatímco pokyny k výběru typů prvků jsou uvedeny v části Knihovna prvků (funkce).
Klasifikace prvků a pravidla pojmenování¶
Typy prvků FrontISTR jsou označovány trojcifernými čísly. Význam jednotlivých číslic je následující.
- První číslice (skupina prvků): 1 = čárový prvek/příhradový prvek, 2 = rovinný prvek, 3 = objemový prvek, 5 = rozhranový prvek, 6 = nosníkový prvek, 7 = skořepinový prvek.
- Druhá číslice (základní tvar): rozlišuje geometrický tvar v rámci skupiny prvků (trojúhelník, čtyřúhelník, čtyřstěn, hranol nebo šestistěn).
- Třetí číslice (řád interpolace): 1 = první řád (pouze rohové uzly), 2 = druhý řád (včetně středových uzlů hran). Výjimkou je dvouuzlový příhradový prvek s číslem 301.
Poskytované prvky jsou podle skupin uvedeny v následující tabulce.
| Skupina prvků | Typ prvku | Počet uzlů | Popis |
|---|---|---|---|
| Čárový prvek | 111 | 2 | 2uzlový spojovací prvek (není dostupný pro analýzu napětí) |
| 112 | 3 | 3uzlový spojovací prvek (není dostupný pro analýzu napětí) | |
| Rovinný prvek | 231 | 3 | 3uzlový lineární trojúhelníkový prvek |
| 232 | 6 | 6uzlový kvadratický trojúhelníkový prvek | |
| 241 | 4 | 4uzlový lineární čtyřúhelníkový prvek | |
| 242 | 8 | 8uzlový kvadratický čtyřúhelníkový prvek (Serendipity rodina) | |
| Objemový prvek | 301 | 2 | 2uzlový příhradový prvek |
| 341 | 4 | 4uzlový lineární čtyřstěnný prvek | |
| 342 | 10 | 10uzlový kvadratický čtyřstěnný prvek | |
| 351 | 6 | 6uzlový lineární hranolový prvek | |
| 352 | 15 | 15uzlový kvadratický hranolový prvek | |
| 361 | 8 | 8uzlový lineární šestistěnný prvek | |
| 362 | 20 | 20uzlový kvadratický šestistěnný prvek (Serendipity rodina) | |
| Rozhranový prvek | 541 | 4×2 | 4uzlový lineární prvek se čtyřúhelníkovou stykovou plochou (není dostupný pro analýzu napětí) |
| 542 | 8×2 | 8uzlový kvadratický prvek se čtyřúhelníkovou stykovou plochou (není dostupný pro analýzu napětí) | |
| Nosníkový prvek | 611 | 2 | 2uzlový Bernoulli-Eulerův nosníkový prvek (6 stupňů volnosti na uzel) |
| 641 | 2×2 | 2uzlový Bernoulli-Eulerův nosníkový prvek (3 stupně volnosti na uzel, pro smíšené stupně volnosti) | |
| Skořepinový prvek | 731 | 3 | Trojúhelníkový skořepinový prvek MITC3 (6 stupňů volnosti na uzel) |
| 741 | 4 | Čtyřúhelníkový skořepinový prvek MITC4 (6 stupňů volnosti na uzel) | |
| 743 | 9 | Čtyřúhelníkový skořepinový prvek MITC9 (6 stupňů volnosti na uzel) | |
| 761 | 3×2 | Trojúhelníkový skořepinový prvek MITC3 (3 stupně volnosti na uzel, pro smíšené stupně volnosti) | |
| 781 | 4×2 | Čtyřúhelníkový skořepinový prvek MITC4 (3 stupně volnosti na uzel, pro smíšené stupně volnosti) |
Lineární šestistěnný prvek 361 má několik formulací (plná integrace, nekompatibilní mód, B-bar a F-bar), které se volí prostřednictvím řízení analýzy. Podrobnosti viz Pokročilé formulace prvků.
Nosníkový prvek 641 a skořepinové prvky 761/781 jsou formulace pro spojení konstrukčních prvků se 6 stupni volnosti s objemovými prvky se 3 stupni volnosti ve stejných uzlech; jeden konstrukční uzel je reprezentován dvěma uzly se 3 stupni volnosti. Samotné formulace jsou shodné s odpovídajícími verzemi se 6 stupni volnosti (611, 731 a 741).
Knihovna tvarových funkcí¶
Výpočetní rutiny prvků (sestavení matice tuhosti a vektoru vnitřních sil) nemají samostatné rutiny pro každý typ prvku. Místo toho volají knihovnu tvarových funkcí prostřednictvím jednotného rozhraní, které přijímá číslo typu prvku fetype jako argument. Modul elementInfo (fistr1/src/lib/element/element.f90) poskytuje následující funkce.
NumOfQuadPoints(fetype): vrací počet integračních bodů \(n_q\) pro daný typ prvku.getQuadPoint(fetype, np, pos): vrací přirozené souřadnice \(\boldsymbol{r}_i\) integračního bodu \(i\).getWeight(fetype, np): vrací váhu \(w_i\) integračního bodu \(i\).getShapeFunc(fetype, r, N): vrací hodnoty tvarových funkcí \(N_\alpha^e(\boldsymbol{r})\) v přirozených souřadnicích \(\boldsymbol{r}\).getShapeDeriv(fetype, r, dN): vrací derivace tvarových funkcí podle přirozených souřadnic \(\partial N_\alpha^e/\partial \boldsymbol{r}\).getGlobalDeriv(fetype, n_e, r, X^e, J, dN_x): pro zadané uzlové souřadnice prvku \(\boldsymbol{X}^e\) vrací derivace podle fyzikálních souřadnic \(\partial N_\alpha^e/\partial \boldsymbol{x}\) a determinant Jacobiánu \(J\).getNumberOfSubface(fetype),getSubFace(fetype, k, ...): vracejí počet hraničních ploch prvku a čísla uzlů tvořících jednotlivé plochy. Používají se k sestavení povrchových zatížení a kontaktních ploch.
Každá funkce se interně větví podle čísla typu prvku a volá podprogramy tvarových funkcí a jejich derivací v modulech nižší úrovně poskytovaných pro jednotlivé typy prvků (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). Numerické tabulky souřadnic integračních bodů a vah jsou soustředěny v quadrature.f90. Chcete-li přidat nový typ prvku, implementujte odpovídající modul nižší úrovně a přidejte pro něj větve do jednotlivých funkcí v elementInfo.
Převod pořadí středových uzlů kvadratických trojúhelníkových prvků¶
U kvadratického trojúhelníkového prvku 232 se pořadí středových uzlů hran liší mezi vstupním formátem sítě HEC-MW (který řadí nejprve rohové uzly po obvodu prvku a poté středové uzly na hranách 1-2, 2-3, …) a interním formátem FrontISTR předpokládaným tvarovými funkcemi v knihovně prvků. Rozdíl mezi oběma formáty se vyřeší bezprostředně po načtení sítě funkcí hecmw2fstr_mesh_conv (fistr1/src/common/hecmw2fstr_mesh_conv.f90 a hecmw2fstr_connect_conv.c), která podle převodní tabulky Table232 přeuspořádá šest uzlů do pořadí \(\{1,2,3,6,4,5\}\). Protože se převod provede přímo v poli uchovávajícím konektivitu prvků, všechna následná volání knihovny prvků používají interní pořadí uzlů FrontISTR. Při výstupu výsledků inverzní převod fstr2hecmw_mesh_conv před zápisem obnoví formát HEC-MW, takže uživatelé potřebují pro vstup i výstup znát pouze formát HEC-MW.
Kvadratické trojrozměrné objemové prvky 342 (čtyřstěnný) a 352 (hranolový) používají obdobné automatické převody, zatímco 362 (kvadratický šestistěnný) žádný převod nemá. Jejich zpracování viz Tvarové funkce trojrozměrných objemových prvků. U kvadratického rovinného čtyřúhelníkového prvku 242 a rozhranového prvku 542 se převod neprovádí, protože pořadí středových uzlů je ve vstupním formátu HEC-MW a v interním formátu shodné.
Související témata¶
- Tvarové funkce a aproximace metodou konečných prvků — Matematická definice tvarových funkcí
- Numerická integrace — Integrační body, váhy a přibližný tvar integrace prvku
- Tvarové funkce trojrozměrných objemových prvků — Konkrétní přirozené souřadnice a tvarové funkce pro objemové prvky kontinua
- Pokročilé formulace prvků — B-bar / F-bar / nekompatibilní mód / skořepina / nosník
- Knihovna prvků (funkce) — Možnosti typů prvků a pokyny pro výběr