Elementų numeravimo schema ir formos funkcijų biblioteka¶
Formos funkcijų ir baigtinių elementų aproksimacijos skyriuje įvesta formos funkcija \(N_\alpha^e(\boldsymbol{r})\) kiekvienam elemento tipui turi konkrečią formą. Šiame skyriuje FrontISTR pateikiamos elementų grupės klasifikuojamos trijų skaitmenų elementų tipų numeriais ir aprašoma formos funkcijų bibliotekos sąsaja, leidžianti vienodai apdoroti skirtingus elementus. Konkrečios trimačių tūrinių elementų natūraliųjų koordinačių sistemos ir formos funkcijos, taip pat kvadratinių elementų tarpinių mazgų tvarkos konvertavimas aprašyti Trimačių tūrinių elementų formos funkcijose, o elementų tipų pasirinkimo gairės pateiktos Elementų bibliotekoje (funkcijos).
Elementų klasifikavimas ir pavadinimų taisyklės¶
FrontISTR elementų tipai identifikuojami trijų skaitmenų numeriais. Kiekvieno skaitmens reikšmė tokia.
- Pirmasis skaitmuo (elementų grupė): 1 = linijinis elementas / strypas, 2 = plokštuminis elementas, 3 = tūrinis elementas, 5 = sąsajos elementas, 6 = sijos elementas, 7 = apvalkalo elementas.
- Antrasis skaitmuo (bazinė forma): skiria geometrinę formą elementų grupėje (trikampis, keturkampis, tetraedras, prizmė arba heksaedras).
- Trečiasis skaitmuo (interpoliacijos eilė): 1 = pirmoji eilė (tik kampiniai mazgai), 2 = antroji eilė (su tarpiniais kraštinių mazgais). Išimtis – dviejų mazgų strypo elemento numeris 301.
Tiekiami elementai pagal grupes pateikti lentelėje.
| Elementų grupė | Elemento tipas | Mazgų skaičius | Aprašymas |
|---|---|---|---|
| Linijinis elementas | 111 | 2 | 2 mazgų jungties elementas (įtempių analizei nenaudojamas) |
| 112 | 3 | 3 mazgų jungties elementas (įtempių analizei nenaudojamas) | |
| Plokštuminis elementas | 231 | 3 | 3 mazgų tiesinis trikampis elementas |
| 232 | 6 | 6 mazgų kvadratinis trikampis elementas | |
| 241 | 4 | 4 mazgų tiesinis keturkampis elementas | |
| 242 | 8 | 8 mazgų kvadratinis keturkampis elementas (Serendipity šeima) | |
| Tūrinis elementas | 301 | 2 | 2 mazgų strypo elementas |
| 341 | 4 | 4 mazgų tiesinis tetraedrinis elementas | |
| 342 | 10 | 10 mazgų kvadratinis tetraedrinis elementas | |
| 351 | 6 | 6 mazgų tiesinis prizminis elementas | |
| 352 | 15 | 15 mazgų kvadratinis prizminis elementas | |
| 361 | 8 | 8 mazgų tiesinis heksaedrinis elementas | |
| 362 | 20 | 20 mazgų kvadratinis heksaedrinis elementas (Serendipity šeima) | |
| Sąsajos elementas | 541 | 4×2 | 4 mazgų tiesinis keturkampio paviršiaus elementas (įtempių analizei nenaudojamas) |
| 542 | 8×2 | 8 mazgų kvadratinis keturkampio paviršiaus elementas (įtempių analizei nenaudojamas) | |
| Sijos elementas | 611 | 2 | 2 mazgų Bernoulli-Euler sijos elementas (6 LL vienam mazgui) |
| 641 | 2×2 | 2 mazgų Bernoulli-Euler sijos elementas (3 LL vienam mazgui, mišriems LL) | |
| Apvalkalo elementas | 731 | 3 | MITC3 trikampis apvalkalo elementas (6 LL vienam mazgui) |
| 741 | 4 | MITC4 keturkampis apvalkalo elementas (6 LL vienam mazgui) | |
| 743 | 9 | MITC9 keturkampis apvalkalo elementas (6 LL vienam mazgui) | |
| 761 | 3×2 | MITC3 trikampis apvalkalo elementas (3 LL vienam mazgui, mišriems LL) | |
| 781 | 4×2 | MITC4 keturkampis apvalkalo elementas (3 LL vienam mazgui, mišriems LL) |
Tiesinis heksaedrinis elementas 361 turi kelias formuluotes (pilnojo integravimo, nesuderinamųjų modų, B-bar ir F-bar), kurios pasirenkamos analizės valdyme. Išsamiau žr. Pažangios elementų formuluotės.
Sijos elementas 641 ir apvalkalo elementai 761/781 skirti konstrukciniams elementams su 6 laisvės laipsniais jungti su tūriniais elementais, turinčiais 3 laisvės laipsnius tuose pačiuose mazguose; vienas konstrukcinis mazgas vaizduojamas dviem 3 LL mazgais. Pačios formuluotės yra tokios pat kaip atitinkamų 6 LL versijų (611, 731 ir 741).
Formos funkcijų biblioteka¶
Elementų skaičiavimo paprogramės (standumo matricos ir vidinių jėgų vektoriaus sudarymas) neturi atskirų procedūrų kiekvienam elemento tipui. Vietoj to jos kviečia formos funkcijų biblioteką per vieningą sąsają, kurios argumentas yra elemento tipo numeris fetype. Modulis elementInfo (fistr1/src/lib/element/element.f90) pateikia šias funkcijas.
NumOfQuadPoints(fetype): grąžina elemento tipo integravimo taškų skaičių \(n_q\).getQuadPoint(fetype, np, pos): grąžina integravimo taško \(i\) natūraliąsias koordinates \(\boldsymbol{r}_i\).getWeight(fetype, np): grąžina integravimo taško \(i\) svorį \(w_i\).getShapeFunc(fetype, r, N): grąžina formos funkcijų reikšmes \(N_\alpha^e(\boldsymbol{r})\) natūraliosiose koordinatėse \(\boldsymbol{r}\).getShapeDeriv(fetype, r, dN): grąžina formos funkcijų išvestines natūraliųjų koordinačių atžvilgiu \(\partial N_\alpha^e/\partial \boldsymbol{r}\).getGlobalDeriv(fetype, n_e, r, X^e, J, dN_x): pagal elemento mazgų koordinates \(\boldsymbol{X}^e\) grąžina išvestines fizikinių koordinačių atžvilgiu \(\partial N_\alpha^e/\partial \boldsymbol{x}\) ir Jacobiano determinantą \(J\).getNumberOfSubface(fetype),getSubFace(fetype, k, ...): grąžina elemento ribinių paviršių skaičių ir kiekvieną paviršių sudarančių mazgų numerius. Naudojama paviršinėms apkrovoms ir kontaktiniams paviršiams sudaryti.
Kiekviena funkcija viduje šakojasi pagal elemento tipo numerį ir kviečia žemesnio lygio moduliuose kiekvienam elemento tipui pateiktas formos funkcijų bei jų išvestinių paprogrames (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). Integravimo taškų koordinačių ir svorių skaitinės lentelės sutelktos quadrature.f90. Norint pridėti naują elemento tipą, reikia įgyvendinti atitinkamą žemesnio lygio modulį ir pridėti jo šakas prie kiekvienos elementInfo funkcijos.
Kvadratinių trikampių elementų tarpinių mazgų tvarkos konvertavimas¶
Kvadratinio trikampio elemento 232 tarpinių mazgų tvarka HEC-MW tinklelio įvesties formate (pirmiausia kampiniai mazgai aplink elementą, tada tarpiniai mazgai išilgai briaunų 1-2, 2-3, …) skiriasi nuo FrontISTR vidinio formato, kurio tikisi elementų bibliotekos formos funkcijos. Šis skirtumas iškart po tinklelio nuskaitymo pašalinamas hecmw2fstr_mesh_conv (fistr1/src/common/hecmw2fstr_mesh_conv.f90 ir hecmw2fstr_connect_conv.c): pagal konvertavimo lentelę Table232 šeši mazgai pertvarkomi į \(\{1,2,3,6,4,5\}\). Kadangi konvertavimas atliekamas tiesiogiai elementų jungiamumą saugančiame masyve, visi tolesni elementų bibliotekos kvietimai naudoja FrontISTR vidinę mazgų tvarką. Išvedant rezultatus atvirkštinis konvertavimas fstr2hecmw_mesh_conv prieš įrašymą atkuria HEC-MW formatą, todėl naudotojui tiek įvestyje, tiek išvestyje pakanka žinoti tik HEC-MW formatą.
Kvadratiniai trimačiai tūriniai elementai 342 (tetraedrinis) ir 352 (prizminis) turi panašius automatinius konvertavimus, o 362 (kvadratinis heksaedrinis) nekonvertuojamas. Jų traktavimą žr. Trimačių tūrinių elementų formos funkcijose. Kvadratiniam plokštuminiam keturkampiam elementui 242 ir sąsajos elementui 542 konvertavimas neatliekamas, nes tarpinių mazgų tvarka HEC-MW įvesties ir vidiniame formatuose sutampa.
Susijusios temos¶
- Formos funkcijos ir baigtinių elementų aproksimacija — matematinis formos funkcijų apibrėžimas
- Skaitinis integravimas — integravimo taškai, svoriai ir apytikslė elemento integralo forma
- Trimačių tūrinių elementų formos funkcijos — konkrečios kontinuumo tūrinių elementų natūraliosios koordinatės ir formos funkcijos
- Pažangios elementų formuluotės — B-bar / F-bar / nesuderinamųjų modų / apvalkalo / sijos formuluotės
- Elementų biblioteka (funkcijos) — elementų tipų parinktys ir pasirinkimo gairės