Strategia Iterativa Globale
In SeismoBuild, tutte le analisi sono trattate come potenzialmente nonlineari e quindi in tutti i casi (ad eccezione del problema agli autovalori) viene applicata una procedura di soluzione iterativa incrementale in cui i carichi sono applicati in incrementi predefiniti ed equilibrati tramite procedure iterative. Le modalità di funzionamento ed il background teorico di questo algoritmo di soluzione sono descritti nella sezione Procedura di soluzione di problemi nonlineari, alla quale l'utente può riferirsi per approfondire il significato dei parametri descritti nel seguito.
Numero
massimo di iterazioni
Questo
parametro definisce il numero massimo di iterazioni da utilizzare
in ciascun incremento di carico (passo dell'analisi). Il valore
di default è 40, che dovrebbe essere appropriato per la maggior
parte delle applicazioni pratiche. Qualora, però, la struttura
risultasse soggetta a livelli estremamente elevati di nonlinearità
geometrica e/o del materiale, può essere necessario aumentare
questo valore. Lo stesso vale quando si utilizzano nel modello
elementi di collegamento con rigidezza molto elevata o molto bassa:
anche in questo caso risulta spesso essere necessario un numero
maggiore di iterazioni per raggiungere l'equilibro strutturale.
Numero massimo di iterazioni
Questo parametro definisce il numero massimo di iterazioni da utilizzare
in ciascun incremento di carico (passo dell'analisi). Il valore
di default è 40, che dovrebbe essere appropriato per la maggior
parte delle applicazioni pratiche. Qualora, però, la struttura
risultasse soggetta a livelli estremamente elevati di nonlinearità
geometrica e/o del materiale, può essere necessario aumentare
questo valore.
Numero di aggiornamenti
della rigidezza
Questo parametro definisce il numero di iterazioni, dall'inizio
dell'incremento, in cui la matrice di rigidezza tangente della
struttura è ricalcolata e aggiornata. Vale la pena notare che
assegnare valore nullo a questo parametro significa adottare la
procedura di Newton-Raphson modificato (mNR), mentre assegnare
un valore pari al numero di iterazioni significa trasformare
la procedura nel metodo di Newton-Raphson (NR).
Solitamente il numero ideale di aggiornamenti della rigidezze è compreso fra il 50% e il 75% del numero massimo di iterazioni nell'incremento, fornendo un ottimo bilanciamento fra la riduzione del tempo computazionale e la stabilità derivante dal non-aggiornamento della matrice di rigidezza e il corrispondente aumento dell'onere computazionale dovuto alla necessità di ulteriori iterazioni per raggiungere la convergenza. Il valore di default del parametro, 35, è tuttavia leggermente più conservativo, e porta all'adozione di una procedura di soluzione ibrida, a metà tra gli approcci classici NR e mNR (si veda anche la discussione in Algoritmo incrementale iterativo).
Iterazione
di Divergenza
Questo parametro definisce l'iterazione dopo la quale si attivano
le verifiche di divergenza e di previsione delle iterazioni (si
veda il paragrafo divergenza
e previsione dell'iterazione per ulteriori dettagli). In tutte
le successive iterazioni, se la soluzione risulta divergere o
se viene superato il numero previsto di iterazioni richieste,
le iterazioni nell'incremento corrente sono interrotte, viene
ridotto l'incremento di carico (o il passo di tempo) e l'analisi
è ripresa dal precedente punto di equilibrio (fine del precedente
incremento o passo di analisi).
Mentre queste due verifiche sono solitamente molto utili per evitare il calcolo di inutili iterazioni di equilibrio nei casi in cui la mancanza di convergenza diventa evidente ai primi passi di un dato incremento di carico, è molto difficile se non impossibile raccomandare un valore ideale che funzioni per tutti i tipi di analisi. Infatti, se l'iterazione di divergenza è troppo bassa può non permettere che problemi altamente non lineari giungano a convergenza, mentre un valore troppo alto può portare la soluzione verso modi numericamente spuri dai quali la convergenza non può mai essere raggiunta (tipico dei modelli in cui si utilizzano elementi con una rigidezza molto elevata per modellare connessioni rigide). Un valore intorno al 75% del numero massimo di iterazioni in un incremento fornisce di solito un buon punto di partenza. Il valore di default in SeismoStruct è 35.
Massima tolleranza
Come discusso nel paragrafo Instabilità
Numerica, ad ogni iterazione, all'inizio di ogni incremento
di carico, è controllata la possibilità che la soluzione diventi
numericamente instabile, paragonando la norma euclidea dei carichi
non bilanciati (si veda qui per dettagli su questa norma) con
una predefinita massima tolleranza (default=1e20), di diversi
ordini di grandezza maggiore del vettore di carico applicato.
Se la norma non bilanciata supera questa tolleranza, allora la
soluzione è ritenuta numericamente instabile, le iterazioni nell'incremento
corrente sono interrotte, l'incremento del carico (o passo di
tempo) è ridotto e l'analisi è ripresa dall'ultimo punto di equilibrio
(fine del precedente incremento o del passo di analisi).
Riduzione Massima del Passo
Nel caso di mancata convergenza, divergenza della soluzione o instabilità
numerica, l'algoritmo
di regolazione automatica del passo di SeismoStruct impone
una riduzione dell'incremento di carico o del passo di tempo prima
che l'analisi venga ripresa dall'ultimo punto di equilibrio (fine
del precedente incremento o passo di analisi). Comunque, al fine
di evitare che analisi mal condizionate (ossia che non raggiungono
mai la convergenza) continuino a girare indefinitamente, un fattore
di riduzione massima del passo viene imposto e verificato
dopo ciascuna riduzione automatica del passo. In altre parole,
il nuovo passo di analisi ridotto automaticamente viene confrontato
con l'incremento di carico iniziale o con il passo di tempo definito
dall'utente all'inizio dell'analisi, e se il rapporto tra il primo
e il secondo è più piccolo del valore della riduzione massima
del passo allora l'analisi viene terminata. Il valore di default
di questo parametro è 0.001: significa che se le difficoltà di
convergenza portano all'adozione di un passo di analisi che è
1000 volte più piccolo del valore iniziale di incremento di carico
o del passo di tempo specificato dall'utente, allora il problema
è ritenuto malcondizionato e l'analisi viene terminata.
Numero minimo
di iterazioni
Questo parametro definisce il numero minimo di iterazioni da effettuare
all'interno di ogni incremento di carico (passo dell'analisi).
Il valore predefinito è 1. Attraverso questo parametro è possibile
ottenere una migliore convergenza quando il criterio basato sugli
spostamenti è allentato e quello basato sulle forze è molto stretto
(questo accade in modelli piccoli nella regione altamente anelastica).
Moltiplicatori
di Incremento/Decremento del passo
Come descritto qui,
l'algoritmo di regolazione automatica del passo in SeismoStruct
comporta la possibilità di utilizzare riduzioni adattive del passo
di analisi, che dipendono dal livello di non-convergenza verificato.
Quando la soluzione ottenuta è molto lontana dalla convergenza,
viene utilizzato un moltiplicatore grande del decremento del
passo (default=0.125, cioè l'incremento nell'analisi corrente
verrà suddiviso in 8 incrementi uguali prima che l'analisi venga
ripresa). Se, d'altra parte, la soluzione è molto vicina alla
convergenza, allora si utilizza un moltiplicatore piccolo
del decremento del passo (default=0.5, cioè l'incremento
nell'analisi corrente verrà applicato in successione in due passi).
Nei casi intermedi si utilizza invece un moltiplicatore medio
del decremento del passo (default=0.25, cioè l'incremento
nell'analisi corrente verrà suddiviso in quattro carichi uguali).
Come anche descritto in regolazione automatica..., una volta che la convergenza viene raggiunta, l'incremento di carico o il passo di tempo possono essere aumentati gradualmente fino ad una dimensione pari al valore iniziale specificato dall'utente. Questo viene realizzato tramite l'uso di un fattore di incremento del passo. Quando l'analisi converge in maniera efficiente (dettagli qui), si utilizza un moltiplicatore piccolo dell'incremento del passo (default=1.0, cioè l'incremento nell'analisi corrente rimarrà invariato nei passi successivi). Se, d'altra parte, la soluzione convergente è stata ottenuta in maniera altamente inefficiente (dettagli qui), allora si utilizza un moltiplicatore grande dell'incremento del passo (default=2.0, cioè l'incremento di carico corrente sarà raddoppiato). Nei casi intermedi un moltiplicatore medio dell'incremento del passo viene invece utilizzato (default=1.5, cioè un incremento del 50% sarà applicato al passo corrente dell'analisi).
Nota: Si fa presente all'utente che non è possibile scegliere i parametri incrementali/iterativi in modo tale che funzionino per qualunque tipo di analisi. I valori di default per lo schema di impostazioni predefiniti in SeismoBuild solitamente risultano adeguati per la maggior parte delle applicazioni, ma può essere necessario modificarli per alcuni progetti particolarmente impegnativi, in cui si verificano forti irregolarità nella risposta (ad esempio grosse differenze in termini di rigidezza, instabilità di alcuni elementi strutturali, cambiamenti drastici nella forma ed intensità dei carichi, ecc.). A titolo di esempio, si noti che un incremento del carico più piccolo può migliorare la stabilità numerica, impedendo alla struttura di seguire un percorso di risposta meno stabile e incorretto, ma, se troppo piccolo, può anche rendere quasi impossibile il raggiungimento della convergenza. Gli utenti che incontrassero dei problemi sono invitati a consultare il Forum di Supporto Tecnico, dove sono forniti ulteriori suggerimenti.