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.