Slaan oor na inhoud

Elementnommerstelsel en vormfunksiebiblioteek

Die vormfunksie \(N_\alpha^e(\boldsymbol{r})\) wat in Vormfunksies en eindige-elementbenadering ingevoer is, het ’n spesifieke vorm wat vir elke elementtipe verskil. Hierdie hoofstuk klassifiseer die elementgroepe wat FrontISTR verskaf met driesyfer-elementtypenommers en toon die koppelvlak van die vormfunksiebiblioteek om elke element eenvormig te hanteer. Die natuurlike koördinaatstelsels en spesifieke vormfunksies van driedimensionele soliede elemente, asook die omskakeling van die middelknop-volgorde vir kwadratiese elemente, word in Vormfunksies van driedimensionele soliede elemente behandel, terwyl leiding vir die keuse van elementtipes in Elementbiblioteek (funksies) gegee word.

Elementklassifikasie en benoemingsreëls

FrontISTR-elementtipes word deur driesyfernommers geïdentifiseer. Die betekenis van elke syfer is soos volg.

  • 1ste syfer (elementgroep): 1 = lynelement / vakwerk, 2 = vlakelement, 3 = soliede element, 5 = koppelvlakelement, 6 = balkelement, 7 = skulpelement.
  • 2de syfer (basiese vorm): onderskei die geometriese vorm binne die elementgroep (driehoek, vierhoek, tetraëder, prisma of heksaëder).
  • 3de syfer (interpolasie-orde): 1 = eerste orde (slegs hoeknodusse), 2 = tweede orde (insluitend middelknoppe). As uitsondering is die 2-nodus-vakwerkelement nommer 301.

Die beskikbare elemente word volgens elementgroep in die tabel hieronder gelys.

Elementgroep Elementtipe Aantal nodusse Beskrywing
Lynelement 111 2 2-nodus-skakelelement (nie beskikbaar vir spanningsanalise nie)
112 3 3-nodus-skakelelement (nie beskikbaar vir spanningsanalise nie)
Vlakelement 231 3 3-nodus lineêre driehoekelement
232 6 6-nodus kwadratiese driehoekelement
241 4 4-nodus lineêre vierhoekelement
242 8 8-nodus kwadratiese vierhoekelement (Serendipity-familie)
Soliede element 301 2 2-nodus-vakwerkelement
341 4 4-nodus lineêre tetraëderelement
342 10 10-nodus kwadratiese tetraëderelement
351 6 6-nodus lineêre prisma-element
352 15 15-nodus kwadratiese prisma-element
361 8 8-nodus lineêre heksaëderelement
362 20 20-nodus kwadratiese heksaëderelement (Serendipity-familie)
Koppelvlakelement 541 4×2 4-nodus lineêre vierhoekvlak-element (nie beskikbaar vir spanningsanalise nie)
542 8×2 8-nodus kwadratiese vierhoekvlak-element (nie beskikbaar vir spanningsanalise nie)
Balkelement 611 2 2-nodus Bernoulli-Euler-balkelement (6 vryheidsgrade per nodus)
641 2×2 2-nodus Bernoulli-Euler-balkelement (3 vryheidsgrade per nodus, vir gemengde vryheidsgrade)
Skulpelement 731 3 MITC3-driehoekskulpelement (6 vryheidsgrade per nodus)
741 4 MITC4-vierhoekskulpelement (6 vryheidsgrade per nodus)
743 9 MITC9-vierhoekskulpelement (6 vryheidsgrade per nodus)
761 3×2 MITC3-driehoekskulpelement (3 vryheidsgrade per nodus, vir gemengde vryheidsgrade)
781 4×2 MITC4-vierhoekskulpelement (3 vryheidsgrade per nodus, vir gemengde vryheidsgrade)

Lineêre heksaëderelement 361 het verskeie formulerings (volle integrasie, onversoenbare modus, B-bar en F-bar), wat deur die analisebeheer gekies word. Vir besonderhede, sien Gevorderde elementformulerings.

Balkelement 641 en skulpelemente 761/781 is formulerings om strukturele elemente met 6 vryheidsgrade aan soliede elemente met 3 vryheidsgrade by dieselfde nodusse te verbind; een strukturele nodus word deur twee 3-vryheidsgraadnodusse voorgestel. Die formulerings self is identies aan die ooreenstemmende 6-vryheidsgraadweergawes (611, 731 en 741).

Vormfunksiebiblioteek

Elementberekeningsroetines (samestelling van die styfheidsmatriks en internekragvektor) het nie afsonderlike roetines vir elke elementtipe nie; hulle roep die vormfunksiebiblioteek deur ’n eenvormige koppelvlak aan wat die elementtypenommer fetype as argument neem. Die module elementInfo (fistr1/src/lib/element/element.f90) verskaf die volgende funksies.

  • NumOfQuadPoints(fetype): gee die aantal integrasiepunte \(n_q\) vir die elementtipe terug.
  • getQuadPoint(fetype, np, pos): gee die natuurlike koördinate \(\boldsymbol{r}_i\) van integrasiepunt \(i\) terug.
  • getWeight(fetype, np): gee die gewig \(w_i\) van integrasiepunt \(i\) terug.
  • getShapeFunc(fetype, r, N): gee die vormfunksiewaardes \(N_\alpha^e(\boldsymbol{r})\) by natuurlike koördinate \(\boldsymbol{r}\) terug.
  • getShapeDeriv(fetype, r, dN): gee die afgeleides van die vormfunksies na natuurlike koördinate \(\partial N_\alpha^e/\partial \boldsymbol{r}\) terug.
  • getGlobalDeriv(fetype, n_e, r, X^e, J, dN_x): gegee die elementnoduskoördinate \(\boldsymbol{X}^e\), gee dit die afgeleides na fisiese koördinate \(\partial N_\alpha^e/\partial \boldsymbol{x}\) en die Jacobi-determinant \(J\) terug.
  • getNumberOfSubface(fetype), getSubFace(fetype, k, ...): gee die aantal elementgrensvlakke en die nodusnommers wat elke vlak vorm. Dit word gebruik om oppervlaklaste en kontakoppervlaktes saam te stel.

Elke funksie vertak intern volgens die elementtypenommer en roep die vormfunksie- en vormfunksie-afgeleideroetines in laervlakmodules vir elke elementtipe aan (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). Numeriese tabelle van integrasiepuntkoördinate en gewigte is in quadrature.f90 saamgevoeg. Om ’n nuwe elementtipe by te voeg, implementeer die ooreenstemmende laervlakmodule en voeg vertakkings daarvoor by elke funksie in elementInfo.

Omskakeling van middelknop-volgorde vir kwadratiese driehoekelemente

Vir kwadratiese driehoekelement 232 verskil die middelknop-volgorde tussen die HEC-MW-maasinvoerformaat (waar hoeknodusse eers rondom die element gevolg word en middelknoppe dan langs rande 1-2, 2-3, … georden word) en die FrontISTR-interne formaat wat deur die vormfunksies in die elementbiblioteek veronderstel word. Die verskil tussen die twee formate word opgelos deur hecmw2fstr_mesh_conv (fistr1/src/common/hecmw2fstr_mesh_conv.f90 en hecmw2fstr_connect_conv.c), wat onmiddellik ná die maas gelees is aangeroep word en die ses nodusse volgens die omskakelingstabel Table232 na \(\{1,2,3,6,4,5\}\) herrangskik. Omdat die omskakeling direk op die skikking wat elementkonnektiwiteit stoor uitgevoer word, gebruik alle daaropvolgende elementbiblioteekaanroepe die FrontISTR-interne nodusvolgorde. By resultaatuitvoer herstel die omgekeerde omskakeling fstr2hecmw_mesh_conv die HEC-MW-formaat voordat dit geskryf word, sodat gebruikers slegs die HEC-MW-formaat vir beide invoer en uitvoer hoef in ag te neem.

Kwadratiese driedimensionele soliede elemente 342 (tetraëder) en 352 (prisma) het soortgelyke outomatiese omskakelings, terwyl 362 (kwadratiese heksaëder) geen omskakeling het nie. Vir die hantering daarvan, sien Vormfunksies van driedimensionele soliede elemente. Vir kwadratiese vlak-vierhoekelement 242 en koppelvlakelement 542 word geen omskakeling gedoen nie omdat die middelknop-volgorde in die HEC-MW-invoerformaat en interne formaat dieselfde is.

Verwante onderwerpe

AI-assisted translation May contain errors Official docs Status