Přeskočit obsah

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

AI-assisted translation May contain errors Official docs Status