Schema di numerazione degli elementi e libreria delle funzioni di forma¶
La funzione di forma \(N_\alpha^e(\boldsymbol{r})\) introdotta in Funzioni di forma e approssimazione agli elementi finiti assume una forma specifica per ciascun tipo di elemento. Questo capitolo classifica i gruppi di elementi forniti da FrontISTR utilizzando numeri di tipo elemento a tre cifre e presenta l'interfaccia della libreria delle funzioni di forma per gestire uniformemente ciascun elemento. I sistemi di coordinate naturali e le funzioni di forma specifiche degli elementi solidi tridimensionali, nonché la conversione dell'ordine dei nodi intermedi per gli elementi quadratici, sono trattati in Funzioni di forma degli elementi solidi tridimensionali, mentre le indicazioni per la scelta dei tipi di elemento sono fornite in Libreria degli elementi (funzioni).
Classificazione degli elementi e regole di denominazione¶
I tipi di elemento FrontISTR sono identificati da numeri a tre cifre. Il significato di ciascuna cifra è il seguente.
- Prima cifra (gruppo di elementi): 1 = elemento lineare/link, 2 = elemento piano, 3 = elemento solido, 5 = elemento di interfaccia, 6 = elemento trave, 7 = elemento shell.
- Seconda cifra (forma di base): distingue la forma geometrica all'interno del gruppo di elementi (triangolo, quadrilatero, tetraedro, prisma o esaedro).
- Terza cifra (ordine di interpolazione): 1 = primo ordine (solo nodi d'angolo), 2 = secondo ordine (inclusi i nodi intermedi). Come eccezione, l'elemento truss a due nodi ha numero 301.
Gli elementi disponibili sono elencati per gruppo nella tabella seguente.
| Gruppo di elementi | Tipo di elemento | Numero di nodi | Descrizione |
|---|---|---|---|
| Elemento lineare | 111 | 2 | Elemento link a 2 nodi (non disponibile per l'analisi delle tensioni) |
| 112 | 3 | Elemento link a 3 nodi (non disponibile per l'analisi delle tensioni) | |
| Elemento piano | 231 | 3 | Elemento triangolare lineare a 3 nodi |
| 232 | 6 | Elemento triangolare quadratico a 6 nodi | |
| 241 | 4 | Elemento quadrilatero lineare a 4 nodi | |
| 242 | 8 | Elemento quadrilatero quadratico a 8 nodi (famiglia Serendipity) | |
| Elemento solido | 301 | 2 | Elemento truss a 2 nodi |
| 341 | 4 | Elemento tetraedrico lineare a 4 nodi | |
| 342 | 10 | Elemento tetraedrico quadratico a 10 nodi | |
| 351 | 6 | Elemento prismatico lineare a 6 nodi | |
| 352 | 15 | Elemento prismatico quadratico a 15 nodi | |
| 361 | 8 | Elemento esaedrico lineare a 8 nodi | |
| 362 | 20 | Elemento esaedrico quadratico a 20 nodi (famiglia Serendipity) | |
| Elemento di interfaccia | 541 | 4×2 | Elemento a faccia quadrilatera lineare a 4 nodi (non disponibile per l'analisi delle tensioni) |
| 542 | 8×2 | Elemento a faccia quadrilatera quadratico a 8 nodi (non disponibile per l'analisi delle tensioni) | |
| Elemento trave | 611 | 2 | Elemento trave Bernoulli-Euler a 2 nodi (6 DOF per nodo) |
| 641 | 2×2 | Elemento trave Bernoulli-Euler a 2 nodi (3 DOF per nodo, per DOF misti) | |
| Elemento shell | 731 | 3 | Elemento shell triangolare MITC3 (6 DOF per nodo) |
| 741 | 4 | Elemento shell quadrilatero MITC4 (6 DOF per nodo) | |
| 743 | 9 | Elemento shell quadrilatero MITC9 (6 DOF per nodo) | |
| 761 | 3×2 | Elemento shell triangolare MITC3 (3 DOF per nodo, per DOF misti) | |
| 781 | 4×2 | Elemento shell quadrilatero MITC4 (3 DOF per nodo, per DOF misti) |
L'elemento esaedrico lineare 361 dispone di più formulazioni (integrazione completa, modo incompatibile, B-bar e F-bar), selezionate tramite il controllo dell'analisi. Per i dettagli, vedere Formulazioni avanzate degli elementi.
L'elemento trave 641 e gli elementi shell 761/781 sono formulazioni per collegare elementi strutturali con 6 gradi di libertà a elementi solidi con 3 gradi di libertà negli stessi nodi; un nodo strutturale è rappresentato da due nodi a 3 DOF. Le formulazioni stesse sono identiche alle corrispondenti versioni a 6 DOF (611, 731 e 741).
Libreria delle funzioni di forma¶
Le routine di calcolo degli elementi (costruzione della matrice di rigidezza e del vettore delle forze interne) non dispongono di routine separate per ciascun tipo di elemento. Richiamano invece la libreria delle funzioni di forma attraverso un'interfaccia unificata che riceve come argomento il numero del tipo di elemento fetype. Il modulo elementInfo (fistr1/src/lib/element/element.f90) fornisce le funzioni seguenti.
NumOfQuadPoints(fetype): restituisce il numero di punti di integrazione \(n_q\) per il tipo di elemento.getQuadPoint(fetype, np, pos): restituisce le coordinate naturali \(\boldsymbol{r}_i\) del punto di integrazione \(i\).getWeight(fetype, np): restituisce il peso \(w_i\) del punto di integrazione \(i\).getShapeFunc(fetype, r, N): restituisce i valori della funzione di forma \(N_\alpha^e(\boldsymbol{r})\) nelle coordinate naturali \(\boldsymbol{r}\).getShapeDeriv(fetype, r, dN): restituisce le derivate rispetto alle coordinate naturali \(\partial N_\alpha^e/\partial \boldsymbol{r}\) delle funzioni di forma.getGlobalDeriv(fetype, n_e, r, X^e, J, dN_x): date le coordinate nodali dell'elemento \(\boldsymbol{X}^e\), restituisce le derivate rispetto alle coordinate fisiche \(\partial N_\alpha^e/\partial \boldsymbol{x}\) e il determinante jacobiano \(J\).getNumberOfSubface(fetype),getSubFace(fetype, k, ...): restituiscono il numero di facce di confine dell'elemento e i numeri dei nodi che costituiscono ciascuna faccia. Sono utilizzate per costruire carichi superficiali e superfici di contatto.
Ogni funzione esegue internamente una diramazione in base al numero del tipo di elemento e richiama le subroutine delle funzioni di forma e delle loro derivate nei moduli di livello inferiore forniti per ciascun tipo di elemento (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). Le tabelle numeriche delle coordinate e dei pesi dei punti di integrazione sono raccolte in quadrature.f90. Per aggiungere un nuovo tipo di elemento, implementare il corrispondente modulo di livello inferiore e aggiungere le relative diramazioni a ciascuna funzione di elementInfo.
Conversione dell'ordine dei nodi intermedi per elementi triangolari quadratici¶
Per l'elemento triangolare quadratico 232, l'ordine dei nodi intermedi differisce tra il formato di input della mesh HEC-MW (che ordina prima i nodi d'angolo attorno all'elemento e quindi i nodi intermedi lungo i lati 1-2, 2-3, …) e il formato interno di FrontISTR presupposto dalle funzioni di forma della libreria degli elementi. La differenza tra i due formati viene risolta immediatamente dopo il caricamento della mesh da hecmw2fstr_mesh_conv (fistr1/src/common/hecmw2fstr_mesh_conv.f90 e hecmw2fstr_connect_conv.c), che riordina i sei nodi in \(\{1,2,3,6,4,5\}\) secondo la tabella di conversione Table232. Poiché la conversione viene eseguita direttamente sull'array che memorizza la connettività degli elementi, tutte le successive chiamate alla libreria degli elementi utilizzano l'ordine dei nodi interno di FrontISTR. All'output dei risultati, la conversione inversa fstr2hecmw_mesh_conv ripristina il formato HEC-MW prima della scrittura, quindi per input e output gli utenti devono conoscere soltanto il formato HEC-MW.
Gli elementi solidi tridimensionali quadratici 342 (tetraedrico) e 352 (prismatico) dispongono di conversioni automatiche analoghe, mentre il 362 (esaedrico quadratico) non richiede conversione. Per il loro trattamento, vedere Funzioni di forma degli elementi solidi tridimensionali. Per l'elemento piano quadrilatero quadratico 242 e l'elemento di interfaccia 542 non viene eseguita alcuna conversione, poiché l'ordine dei nodi intermedi è lo stesso nel formato di input HEC-MW e nel formato interno.
Argomenti correlati¶
- Funzioni di forma e approssimazione agli elementi finiti — Definizione matematica delle funzioni di forma
- Integrazione numerica — Punti di integrazione, pesi e forma approssimata dell'integrazione degli elementi
- Funzioni di forma degli elementi solidi tridimensionali — Coordinate naturali e funzioni di forma specifiche per gli elementi solidi continui
- Formulazioni avanzate degli elementi — B-bar / F-bar / modo incompatibile / shell / trave
- Libreria degli elementi (funzioni) — Opzioni dei tipi di elemento e indicazioni per la scelta