Il grafico che ti ha ingannato
Hai già visto questo grafico. I residui scendono, passano sotto 10⁻³ e il solutore dichiara che la soluzione è a convergenza. Esporti i contorni e vai a casa. La mattina dopo qualcuno chiede la temperatura di uscita, controlli il bilancio di massa per abitudine, e ingresso e uscita differiscono del 4%.
Non si è bloccato nulla. Il solutore ha fatto ciò che gli era stato chiesto, e il criterio che gli era stato dato era sbagliato. Una soluzione CFD a convergenza è quella in cui altre iterazioni non cambiano più la risposta che ti interessa e le leggi di conservazione si chiudono. I residui ne sono soltanto un indizio.
Che cosa misura un residuo?
Per ogni equazione, il solutore somma quanto ogni cella è lontana dal soddisfare il bilancio discretizzato, poi divide per un valore di riferimento perché il numero sia leggibile. È il residuo scalato che vedi a schermo.
È una somma globale. Un milione di celle ben comportate possono nasconderne cento cattive vicino a uno spigolo vivo, e quelle cento possono trovarsi proprio dove leggi il risultato.
È anche relativo a un riferimento che di solito dipende dalle prime iterazioni. Parti da una buona stima iniziale e i residui hanno poco spazio per scendere, così una soluzione corretta può sembrare non a convergenza. Parti da una cattiva e scendono di quattro ordini mentre il campo di moto si sta ancora riorganizzando. Un residuo di 10⁻³ non ha di per sé alcun significato fisico.
Le tre verifiche
Ne uso tre, e le voglio tutte.
- I residui sono scesi e si sono appiattiti. Guarda la forma della curva più che una soglia. Deve scendere di diversi ordini e poi smettere di muoversi.
- Le grandezze che ti interessano hanno smesso di cambiare. Metti dei monitor prima di partire: temperatura di uscita, perdita di carico, una forza, la potenza termica. La prova è una curva piatta alla precisione che ti serve.
- I bilanci si chiudono. La massa entrante è uguale a quella uscente. L’energia entrante è uguale a quella uscente più ciò che hanno assorbito le pareti. Per la maggior parte dei lavori di ingegneria voglio uno sbilanciamento netto pari a una piccola frazione di punto percentuale della portata.
Ogni verifica può essere superata mentre un’altra fallisce. È il motivo per cui sono tre.
Che aspetto ha quando non concordano
Un calcolo illustrativo: un condotto riscaldato in regime stazionario, con monitor sulla temperatura di uscita e sul bilancio di massa. I numeri sono inventati per l’esempio.
| Iterazione | Residuo di continuità | Temperatura di uscita (K) | Sbilanciamento di massa |
|---|---|---|---|
| 500 | 1 × 10⁻³ | 341.2 | 2.1% |
| 1000 | 1 × 10⁻⁴ | 338.6 | 0.6% |
| 2000 | 3 × 10⁻⁵ | 337.9 | 0.05% |
| 3000 | 2.8 × 10⁻⁵ | 337.9 | 0.04% |
All’iterazione 500 il criterio predefinito è soddisfatto e il solutore si fermerebbe. La temperatura di uscita è a 3,3 K dal valore finale. Se il salto termico nel condotto è di 40 K, è un errore dell’8% sulla potenza termica, in un calcolo che ha dichiarato la convergenza.
Tra le iterazioni 2.000 e 3.000 tutte e tre concordano: il residuo è piatto, la temperatura non si è mossa alla prima cifra decimale e lo sbilanciamento è trascurabile. Questa è convergenza.
Quando i residui non scendono
- Si fermano su un plateau. Di solito poche celle scadenti. Trova dove sono i residui più alti e guarda la mesh in quel punto. Se i monitor sono piatti e i bilanci chiusi, il plateau può essere accettabile. Scrivilo nella relazione.
- Oscillano con periodo regolare. Il flusso potrebbe essere instazionario. La scia di un corpo tozzo o un diffusore con separazione rilasciano vortici, e un solutore stazionario li inseguirà all’infinito. La soluzione è un calcolo transitorio. Altre iterazioni non servono.
- Scendono e poi risalgono. Qualcosa sta andando storto lentamente. Guardalo prima che il calcolo diverga.
- Convergono al primo ordine e non al secondo. Gli schemi del primo ordine smussano i gradienti, il che calma tutto e rende la risposta troppo diffusiva. Probabilmente la mesh è troppo rada per i gradienti reali.
I calcoli transitori hanno due convergenze
In una simulazione instazionaria ogni passo temporale deve convergere al proprio interno, e poi l’intero calcolo deve raggiungere il regime statisticamente stazionario. Spesso si controlla l’una e si dimentica l’altra.
All’interno di un passo temporale i residui dovrebbero scendere di un paio di ordini prima che il solutore prosegua. Se non accade, riduci il passo temporale o consenti più iterazioni interne. Lungo il calcolo, la grandezza monitorata dovrebbe assestarsi su un andamento ripetitivo o su una media stabile. Media solo dopo.
Una lista di controllo prima di fidarti di un risultato stazionario
- I residui sono scesi di diversi ordini e sono piatti.
- Ogni grandezza della relazione ha un monitor, e ciascuno è piatto alla precisione riportata.
- Lo sbilanciamento di massa è una piccola frazione di punto percentuale della portata.
- Lo sbilanciamento di energia è altrettanto piccolo, dove conta lo scambio termico.
- La discretizzazione è del secondo ordine nelle ultime iterazioni.
- I valori massimi e minimi nel campo sono fisicamente plausibili: nessuna temperatura sotto l’ingresso più freddo, nessuna velocità dieci volte quella di ingresso.
- Se qualcosa oscilla, hai deciso se il flusso è instazionario.
Bastano cinque minuti. La convergenza però è solo la prima domanda. Una soluzione perfettamente a convergenza su una mesh rada resta la risposta sbagliata, ottenuta con cura. Il passo successivo è capire quanto il risultato dipende dalla mesh.
Fonti e approfondimenti
Servizio correlato
Revisione dei modelli e studi su misura
Capire quali conclusioni sono supportate dal modello, dove resta incertezza e cosa richiede verifica.
Scopri i servizi