Il supporto a OpenSees non è limitato agli elementi gestiti da NextFEM Designer, ma si estende anche a elementi personalizzabili dall’utente. Scopri in questo articolo come includere in NextFEM Designer un isolatore a pendolo inverso (ad attrito) in un’analisi dinamica non lineare.
NextFEM Designer supporta il solutore esterno OpenSees, permettendo di gestire automaticamente la scrittura del modello, il lancio dell’analisi e l’elaborazione grafica dei risultati.
In generale, un modello che gira con il solutore predefinito può essere calcolato in OpenSees semplicemente cambiando il solver nelle opzioni del programma.
NextFEM Designer semplifica la modellazione in OpenSees, gestendo:
-
La modellazione a fibre delle
sezioni, che viene controllata dalla maschera Sezioni, potendo impostare
anche la meshatura utilizzata. Sezioni non parametriche vengono meshate
automaticamente.
La scrittura delle sezioni a fibre comprende anche le armature longitudinali
per ogni elemento;
- I materiali nD lineari, oltre a J2Plasticity e DruckerPrager; i materiali uniassiali Concrete01, Concrete02, Steel02, MinMax, oltre ai materiali per l’analisi termica a collasso;
- Le impostazioni per l’analisi (es. storie di carico o di spostamento, accelerogrammi, spettri di progetto, ecc.) sono scritte automaticamente;
- Gli elementi CatenaryCable, corotTrussSection, forceBeamColumn, ShellNLDKGT e ShellMITC4, oltre a molti elementi solidi;
- Supporto alle fibre con materiali nD analoghi ai precedenti;
- Supporto al suolo elastico con generazione automatica del letto di molle.
L’analisi viene svolta automaticamente, potendo lanciare il modello dall’interno del programma. NextFEM fornisce gratuitamente una serie di procedure in Tcl che gestiscono e standardizzano i recorder per i risultati, ottimizzando la velocità di analisi. Siamo inoltre stati i primi a fornire la libreria gratuita RSpectrum per l’analisi con spettro di risposta; ora l’utente può scegliere se utilizzare l’analisi integrata. Tutti gli elementi non lineari del modulo NonLinear sono disponibili anche in OpenSees (ad es. macroelemento muratura, cerniere plastiche, molle VRM e dissipatori AMD, ecc.).
Per il post processing il programma fornisce:
- Lettura e visualizzazione di spostamenti, reazioni, diagrammi di sollecitazione, tensioni e forze nelle shell (tramite stress recovery eseguito dal programma)
- Raccolta e organizzazione di risultati particolari, come ad esempio per le analisi modali e con spettro di risposta: masse partecipanti, fattori di partecipazione, periodi, ecc.
In sintesi, NextFEM Designer fornisce un supporto integrato e trasparente alle analisi con OpenSees, permettendo a quest’ultimo di essere utilizzato al pari del solver integrato (ad es. per confronto dei risultati). Tutti gli elementi supportati sono stati validati autonomamente e costituiscono un set solido per l’ingegnere strutturista, mantenendo la semplicità d’uso tipica di NextFEM Designer.
Può essere talvolta necessario, per esigenze particolari, inserire un elemento non direttamente supportato da NextFEM Designer, come ad esempio il Triple Friction Pendulum. Vedremo in questo caso come integrare nell’analisi il settaggio dell’elemento in modo semplice e rapido, utilizzando per rapidità un modello di una mensola, formata da 3 travi in serie.
Dalla versione 2.5.3.3, è possibile assegnare ad un elemento trave, tria o quad una flag OSscript, alla quale assegnare il percorso do un file .tcl da caricare al posto dell’elemento originale.
Ad esempio, selezioniamo la trave alla base e assegniamo la flag, utilizzando il file .tcl di seguito.
# bearing information
set L1 0.36; # effective length (m)
set L2 1.25;
set L3 1.25;
set mu1fast 0.018; # friction coefficient at fast velocity, at $W = 1000 N
set mu2fast 0.075;
set mu3fast 0.16;
set mu1slow 0.012; # friction coefficient at slow velocity, at $W = 1000 N
set mu2slow 0.052;
set mu3slow 0.12;
set n1fast .7; # constant for controlling the variation of the friction coefficient on vertical force at fast velocity
set n2fast .7;
set n3fast .7;
set n1slow .8; # constant for controlling the variation of the friction coefficient on vertical force at slow velocity
set n2slow .8;
set n3slow .8;
set alpha10 25.; # constants for determining rate parameter at different value of vertical force (s/m)
set alpha11 0.0; # (s/m/N)
set alpha12 0.0; # (s/m/N^2)
set alpha20 25.;
set alpha21 0.0;
set alpha22 0.0;
set alpha30 25.;
set alpha31 0.0;
set alpha32 0.0;
set d1 0.1; # pendulum displacement limit (m)
set d2 0.2;
set d3 0.2;
set uy 0.001; # displacement where sliding starts (m)
set kvc 1000000.; # vertical compression stiffness (N/m)
set kvt 1.; # vertical tension stiffness (N/m)
set minFv 0.1; # minimum compression force in the bearing (N)
set W 1000.; # static weight supported by the bearing (N)
set tol 1.e-5; # relative tolerance for checking convergence
set g 9.81; # gravity acceleration (m/s^2)
#-----------------------------------------------
# Creating friction models
# frictionModel VelNormalFrcDep tag aSlow nSlow aFast nFast alpha0 alpha1 alpha2 maxMuFact
frictionModel VelNormalFrcDep 1 [expr $mu1slow/pow($W,$n1slow-1.0)] $n1slow [expr $mu1fast/pow($W,$n1fast-1.0)] $n1fast $alpha10 $alpha11 $alpha12 3.0
frictionModel VelNormalFrcDep 2 [expr $mu2slow/pow($W,$n2slow-1.0)] $n2slow [expr $mu2fast/pow($W,$n2fast-1.0)] $n2fast $alpha20 $alpha21 $alpha22 3.0
frictionModel VelNormalFrcDep 3 [expr $mu3slow/pow($W,$n3slow-1.0)] $n3slow [expr $mu3fast/pow($W,$n3fast-1.0)] $n3fast $alpha30 $alpha31 $alpha32 3.0
#-----------------------------------------------
# Creating materials for compression and rotation behaviors
uniaxialMaterial Elastic 99991 $kvc;
uniaxialMaterial Elastic 99992 10.;
#-----------------------------------------------
# Creating TripleFrictionPendulum element
# element TripleFrictionPendulum $eleTag $iNode $jNode $frnTag1 $frnTag2 $frnTag3 $vertMatTag $rotZMatTag $rotXMatTag $rotYMatTag $L1 $L2 $L3 $d1 $d2 $d3 $W $uy $kvt $minFv $tol
element TripleFrictionPendulum $eleTag $iNode $jNode 1 2 3 99991 99992 99992 99992 $L1 $L2 $L3 $d1 $d2 $d3 $W $uy $kvt $minFv $tol;
Il codice di esempio è stato mutuato proprio dagli esempi nella pagina del Triple Friction Pendulum (TFP) di cui al link precedente. Ovviamente dovremo eseguire alcune modifiche per garantire la compatibilità con il resto del modello:
- I tag dei materiali del pendolo non dovranno coincidere con quelli del resto del modello, per questo conviene rinumerarli (1 -> 99991, ecc.)
- Il codice viene inserito nel modello per OpenSees scritto da NextFEM Designer sostituendo tutte le occorrenze di $eleTag $iNode $jNode con il numero dell’elemento nel modello e la sua connettività nodale;
- Prestare infine molta attenzione ai parametri dell’elemento TFP, come ad esempio il peso W che è parametro di input e che va contestualizzato nel modello in cui l’elemento è impiegato;
- Per inserire più elementi TFP nel modello, creare un secondo .tcl con la sola definizione dell’elemento (element TripleFrictionPendulum $eleTag $iNode $jNode …) e utilizzando per i TFP successivi al primo. Questo per non replicare tutti i parametri.
Lanciare quindi il modello; troveremo i risultati non lineari del TFP in Estrai dati.
Come nota finale, si specifica che l’inserimento di elementi avviene solo per le analisi non lineari (statiche o dinamiche), mentre le analisi lineari in OpenSees continuano ad utilizzare materiale e sezione della trave originale.