Pereiti prie turinio

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

AI-assisted translation May contain errors Official docs Status