Schema de numerotare a elementelor și biblioteca funcțiilor de formă¶
Funcția de formă \(N_\alpha^e(\boldsymbol{r})\) introdusă în Funcții de formă și aproximația prin elemente finite are o formă specifică pentru fiecare tip de element. Acest capitol clasifică grupele de elemente furnizate de FrontISTR folosind numere de tip de element cu trei cifre și prezintă interfața bibliotecii funcțiilor de formă pentru tratarea uniformă a fiecărui element. Sistemele concrete de coordonate naturale și funcțiile de formă ale elementelor solide tridimensionale, precum și conversia ordinii nodurilor intermediare pentru elementele de ordinul doi, sunt tratate în Funcțiile de formă ale elementelor solide tridimensionale, iar îndrumările pentru selectarea tipurilor de element sunt prezentate în Biblioteca de elemente (funcții).
Clasificarea elementelor și regulile de denumire¶
Tipurile de element FrontISTR sunt identificate prin numere de trei cifre. Semnificația fiecărei cifre este următoarea.
- Prima cifră (grupa elementului): 1 = element liniar/tirant, 2 = element plan, 3 = element solid, 5 = element de interfață, 6 = element de grindă, 7 = element de înveliș.
- A doua cifră (forma de bază): distinge forma geometrică din cadrul grupei de elemente (triunghi, patrulater, tetraedru, prismă sau hexaedru).
- A treia cifră (ordinul interpolării): 1 = ordinul întâi (numai nodurile de colț), 2 = ordinul al doilea (inclusiv nodurile intermediare). Ca excepție, elementul tirant cu două noduri are numărul 301.
Elementele furnizate sunt enumerate pe grupe în tabelul de mai jos.
| Grupa elementului | Tipul elementului | Numărul de noduri | Descriere |
|---|---|---|---|
| Element liniar | 111 | 2 | Element de legătură cu 2 noduri (indisponibil pentru analiza tensiunilor) |
| 112 | 3 | Element de legătură cu 3 noduri (indisponibil pentru analiza tensiunilor) | |
| Element plan | 231 | 3 | Element triunghiular liniar cu 3 noduri |
| 232 | 6 | Element triunghiular de ordinul doi cu 6 noduri | |
| 241 | 4 | Element patrulater liniar cu 4 noduri | |
| 242 | 8 | Element patrulater de ordinul doi cu 8 noduri (familia Serendipity) | |
| Element solid | 301 | 2 | Element tirant cu 2 noduri |
| 341 | 4 | Element tetraedric liniar cu 4 noduri | |
| 342 | 10 | Element tetraedric de ordinul doi cu 10 noduri | |
| 351 | 6 | Element prismatic liniar cu 6 noduri | |
| 352 | 15 | Element prismatic de ordinul doi cu 15 noduri | |
| 361 | 8 | Element hexaedric liniar cu 8 noduri | |
| 362 | 20 | Element hexaedric de ordinul doi cu 20 de noduri (familia Serendipity) | |
| Element de interfață | 541 | 4×2 | Element liniar de față patrulateră cu 4 noduri (indisponibil pentru analiza tensiunilor) |
| 542 | 8×2 | Element de ordinul doi de față patrulateră cu 8 noduri (indisponibil pentru analiza tensiunilor) | |
| Element de grindă | 611 | 2 | Element de grindă Bernoulli-Euler cu 2 noduri (6 DOF per nod) |
| 641 | 2×2 | Element de grindă Bernoulli-Euler cu 2 noduri (3 DOF per nod, pentru DOF mixte) | |
| Element de înveliș | 731 | 3 | Element de înveliș triunghiular MITC3 (6 DOF per nod) |
| 741 | 4 | Element de înveliș patrulater MITC4 (6 DOF per nod) | |
| 743 | 9 | Element de înveliș patrulater MITC9 (6 DOF per nod) | |
| 761 | 3×2 | Element de înveliș triunghiular MITC3 (3 DOF per nod, pentru DOF mixte) | |
| 781 | 4×2 | Element de înveliș patrulater MITC4 (3 DOF per nod, pentru DOF mixte) |
Elementul hexaedric liniar 361 are mai multe formulări (integrare completă, mod incompatibil, B-bar și F-bar), selectate prin controlul analizei. Pentru detalii, consultați Formulări avansate ale elementelor.
Elementul de grindă 641 și elementele de înveliș 761/781 sunt formulări pentru conectarea elementelor structurale cu 6 grade de libertate la elemente solide cu 3 grade de libertate în aceleași noduri; un nod structural este reprezentat prin două noduri cu câte 3 DOF. Formulările propriu-zise sunt identice cu versiunile corespunzătoare cu 6 DOF (611, 731 și 741).
Biblioteca funcțiilor de formă¶
Rutinele de calcul ale elementelor (construcția matricei de rigiditate și a vectorului forțelor interne) nu au rutine separate pentru fiecare tip de element. În schimb, ele apelează biblioteca funcțiilor de formă printr-o interfață unificată care primește numărul tipului de element fetype ca argument. Modulul elementInfo (fistr1/src/lib/element/element.f90) furnizează următoarele funcții.
NumOfQuadPoints(fetype): returnează numărul punctelor de integrare \(n_q\) pentru tipul de element.getQuadPoint(fetype, np, pos): returnează coordonatele naturale \(\boldsymbol{r}_i\) ale punctului de integrare \(i\).getWeight(fetype, np): returnează ponderea \(w_i\) a punctului de integrare \(i\).getShapeFunc(fetype, r, N): returnează valorile funcțiilor de formă \(N_\alpha^e(\boldsymbol{r})\) la coordonatele naturale \(\boldsymbol{r}\).getShapeDeriv(fetype, r, dN): returnează derivatele în coordonate naturale \(\partial N_\alpha^e/\partial \boldsymbol{r}\) ale funcțiilor de formă.getGlobalDeriv(fetype, n_e, r, X^e, J, dN_x): având coordonatele nodale ale elementului \(\boldsymbol{X}^e\), returnează derivatele în coordonate fizice \(\partial N_\alpha^e/\partial \boldsymbol{x}\) și determinantul Jacobianului \(J\).getNumberOfSubface(fetype),getSubFace(fetype, k, ...): returnează numărul fețelor de frontieră ale elementului și numerele nodurilor care constituie fiecare față. Sunt utilizate pentru construirea sarcinilor de suprafață și a suprafețelor de contact.
Fiecare funcție se ramifică intern în funcție de numărul tipului de element și apelează subrutinele pentru funcțiile de formă și derivatele acestora din modulele de nivel inferior furnizate pentru fiecare tip de element (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). Tabelele numerice cu coordonatele punctelor de integrare și ponderile sunt centralizate în quadrature.f90. Pentru a adăuga un nou tip de element, implementați modulul de nivel inferior corespunzător și adăugați ramificațiile pentru acesta în fiecare funcție din elementInfo.
Conversia ordinii nodurilor intermediare pentru elementele triunghiulare de ordinul doi¶
Pentru elementul triunghiular de ordinul doi 232, ordinea nodurilor intermediare diferă între formatul de intrare al rețelei HEC-MW (care ordonează nodurile de colț în jurul elementului și apoi nodurile intermediare de-a lungul muchiilor 1-2, 2-3, …) și formatul intern FrontISTR presupus de funcțiile de formă din biblioteca de elemente. Diferența dintre cele două formate este rezolvată imediat după încărcarea rețelei de hecmw2fstr_mesh_conv (fistr1/src/common/hecmw2fstr_mesh_conv.f90 și hecmw2fstr_connect_conv.c), care reordonează cele șase noduri în \(\{1,2,3,6,4,5\}\) conform tabelului de conversie Table232. Deoarece conversia se efectuează direct asupra tabloului care stochează conectivitatea elementului, toate apelurile ulterioare ale bibliotecii de elemente utilizează ordinea internă a nodurilor FrontISTR. La ieșirea rezultatelor, conversia inversă fstr2hecmw_mesh_conv restabilește formatul HEC-MW înainte de scriere, astfel încât utilizatorii trebuie să țină cont numai de formatul HEC-MW atât pentru intrare, cât și pentru ieșire.
Elementele solide tridimensionale de ordinul doi 342 (tetraedric) și 352 (prismatic) au conversii automate similare, în timp ce 362 (hexaedric de ordinul doi) nu are conversie. Consultați Funcțiile de formă ale elementelor solide tridimensionale pentru modul de tratare. Pentru elementul plan patrulater de ordinul doi 242 și elementul de interfață 542, nu se efectuează conversie, deoarece ordinea nodurilor intermediare este aceeași în formatul de intrare HEC-MW și în formatul intern.
Subiecte conexe¶
- Funcții de formă și aproximația prin elemente finite — Definiția matematică a funcțiilor de formă
- Integrare numerică — Puncte de integrare, ponderi și forma aproximativă a integrării pe element
- Funcțiile de formă ale elementelor solide tridimensionale — Coordonate naturale și funcții de formă specifice elementelor solide continue
- Formulări avansate ale elementelor — B-bar / F-bar / mod incompatibil / înveliș / grindă
- Biblioteca de elemente (funcții) — Opțiuni pentru tipurile de element și recomandări de selecție