142 2
Italian Pages 451 [565] Year 2008
A Fulvia, Silvia e Marzia
Alfio Quarteroni
Modellistica numerica per problemi differenziali 4a edizione
ALFIO QUARTERONI MOX - Dipartimento di Matematica Politecnico di Milano e Ecole Polytechnique Fédérale de Lausanne
In copertina è riprodotta una simulazione (effettuata da Nicola Parolini) del flusso incomprimibile attorno a 5 cilindri risolvendo le equazioni di Navier-Stokes con una discretizzazione spaziale a volumi finiti
ISBN 978-88-470-0841-0 Springer Milan Berlin Heidelberg New York ISBN 978-88-470-0842-7 (eBook) Springer Milan Berlin Heidelberg New York Springer-Verlag fa parte di Springer Science+Business Media springer.com © Springer-Verlag Italia, Milano 2008
Quest’opera è protetta dalla legge sul diritto d’autore e la sua riproduzione è ammessa solo ed esclusivamente nei limiti stabiliti dalla stessa. Le fotocopie per uso personale possono essere effettuate nei limiti del 15% di ciascun volume dietro pagamento alla SIAE del compenso previsto. Le riproduzioni per uso non personale e/o oltre il limite del 15% potranno avvenire solo a seguito di specifica autorizzazione rilasciata da AIDRO, Via Corso di Porta Romana n. 108, Milano 20122, e-mail [email protected] e sito web www.aidro.org. Tutti i diritti, in particolare quelli relativi alla traduzione, alla ristampa, all’utilizzo di illustrazioni e tabelle, alla citazione orale, alla trasmissione radiofonica o televisiva, alla registrazione su microfilm o in database, o alla riproduzione in qualsiasi altra forma (stampata o elettronica) rimangono riservati anche nel caso di utilizzo parziale. La violazione delle norme comporta le sanzioni previste dalla legge. 9
7
8
6
5
4
3
2
1
Riprodotto da copia camera-ready fornita dagli Autori Progetto grafico della copertina: Simona Colombo, Milano Stampato in Italia: grafiche porpora, Segrate, Milano Springer-Verlag Italia Srl, Via Decembrio 28, 20137 Milano
Indice
Prefazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIII 1
Richiami sulle equazioni alle derivate parziali . . . . . . . . . . . . . . . . . . . . . . 1.1 Definizioni ed esempi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Necessità della risoluzione numerica . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Classificazione delle EDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 Forma quadratica associata ad una EDP . . . . . . . . . . . . . . . . 1.4 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 3 5 8 9
2
Equazioni di tipo ellittico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Un esempio di problema ellittico: l’equazione di Poisson . . . . . . . . . 2.2 Il problema di Poisson nel caso monodimensionale . . . . . . . . . . . . . . 2.2.1 Problema di Dirichlet omogeneo . . . . . . . . . . . . . . . . . . . . . . 2.2.2 Problema di Dirichlet non omogeneo . . . . . . . . . . . . . . . . . . 2.2.3 Problema di Neumann . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.4 Problema misto omogeneo . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.5 Condizioni al bordo miste (o di Robin) . . . . . . . . . . . . . . . . . 2.3 Il problema di Poisson nel caso bidimensionale . . . . . . . . . . . . . . . . . 2.3.1 Il problema di Dirichlet omogeneo . . . . . . . . . . . . . . . . . . . . 2.3.2 Equivalenza, nel senso delle distribuzioni, tra la forma debole e la forma forte del problema di Dirichlet . . . . . . . . 2.3.3 Il problema con condizioni miste non omogenee . . . . . . . . . 2.3.4 Equivalenza, nel senso delle distribuzioni, tra la forma debole e la forma forte per il problema di Neumann . . . . . . 2.4 Problemi ellittici più generali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 Teorema di esistenza e unicità . . . . . . . . . . . . . . . . . . . . . . . 2.5 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11 11 12 13 19 19 20 20 21 21
26 28 30 31
Il metodo di Galerkin-elementi finiti per problemi ellittici . . . . . . . . . . . 3.1 Approssimazione con il metodo di Galerkin . . . . . . . . . . . . . . . . . . . .
35 35
3
23 24
VI
Indice
3.2
Analisi del metodo di Galerkin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Esistenza e unicità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Stabilità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3 Convergenza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Il metodo degli elementi finiti nel caso monodimensionale . . . . . . . . 3.3.1 Una definizione di elemento finito nel caso Lagrangiano . . 3.3.2 L’approssimazione con elementi finiti lineari . . . . . . . . . . . . 3.3.3 Interpolazione e stima dell’errore di interpolazione . . . . . . 3.3.4 Stima dell’errore nella norma H1 . . . . . . . . . . . . . . . . . . . . . Il metodo degli elementi finiti nel caso multidimensionale . . . . . . . . 3.4.1 Risoluzione del problema di Poisson con elementi finiti . . 3.4.2 Condizionamento della matrice di rigidezza . . . . . . . . . . . . 3.4.3 Stima dell’errore di approssimazione nella norma dell’energia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.4 Stima dell’errore di approssimazione in norma L2 . . . . . . . Il problema dell’adattività della griglia . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.1 Adattività a priori basata sulla ricostruzione delle derivate . 3.5.2 Adattività a posteriori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.3 Esempi numerici di adattività . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.4 Stime a posteriori dell’errore nella norma L2 . . . . . . . . . . . . 3.5.5 Stime a posteriori di un funzionale dell’errore . . . . . . . . . . . Come si ottiene il problema aggiunto . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.1 Operatori aggiunti di un operatore lineare . . . . . . . . . . . . . . 3.6.2 Problema primale e problema aggiunto . . . . . . . . . . . . . . . . 3.6.3 Il caso non lineare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37 37 38 38 41 45 47 49 50 52 54 57
I metodi spettrali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1 Il metodo di Galerkin spettrale per problemi ellittici . . . . . . . . . . . . . . 4.2 Polinomi ortogonali e integrazione numerica gaussiana . . . . . . . . . . . 4.2.1 Polinomi ortogonali di Legendre . . . . . . . . . . . . . . . . . . . . . . 4.2.2 Integrazione gaussiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.3 Le formule di Gauss-Legendre-Lobatto . . . . . . . . . . . . . . . . 4.3 Metodi G-NI in una dimensione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 Interpretazione algebrica del metodo G-NI . . . . . . . . . . . . . 4.3.2 Condizionamento della matrice di rigidezza del metodo G-NI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.3 Equivalenza tra il metodo G-NI e un metodo di collocazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Generalizzazione al caso bidimensionale . . . . . . . . . . . . . . . . . . . . . . . 4.4.1 Convergenza del metodo G-NI . . . . . . . . . . . . . . . . . . . . . . . 4.5 Metodo G-NI e MES-NI per un problema modello monodimensionale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.1 Il metodo G-NI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.2 Il metodo MES-NI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97 97 101 101 104 105 108 109
3.3
3.4
3.5
3.6
3.7 4
59 67 71 71 74 78 82 84 85 86 87 90 91
111 112 116 118 126 127 131
Indice
4.6 4.7 5
VII
Metodi spettrali su triangoli e tetraedri . . . . . . . . . . . . . . . . . . . . . . . . . 134 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Equazioni di diffusione-trasporto-reazione . . . . . . . . . . . . . . . . . . . . . . . . . 5.1 Formulazione debole del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Analisi di un problema di diffusione-trasporto monodimensionale . . 5.3 Analisi di un problema di diffusione-reazione monodimensionale . . 5.4 Relazioni tra elementi finiti e differenze finite . . . . . . . . . . . . . . . . . . . 5.5 La tecnica del mass-lumping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6 Schemi decentrati e diffusione artificiale . . . . . . . . . . . . . . . . . . . . . . . 5.7 Autovalori del problema di diffusione-trasporto . . . . . . . . . . . . . . . . . 5.8 Metodi di stabilizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.8.1 Diffusione artificiale e schemi decentrati agli elementi finiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.8.2 Il metodo di Petrov-Galerkin . . . . . . . . . . . . . . . . . . . . . . . . . 5.8.3 Il metodo della diffusione artificiale e della streamline-diffusion nel caso bidimensionale . . . . . . . . . . . . 5.8.4 Consistenza ed errore di troncamento per i metodi di Galerkin e di Galerkin generalizzato . . . . . . . . . . . . . . . . . . . 5.8.5 Parte simmetrica e antisimmetrica di un operatore . . . . . . . 5.8.6 Metodi fortemente consistenti (GLS, SUPG) . . . . . . . . . . . . 5.8.7 Analisi del metodo GLS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.8.8 Stabilizzazione tramite funzioni a bolla . . . . . . . . . . . . . . . . 5.9 Alcuni test numerici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.10 Un esempio di adattività goal-oriented . . . . . . . . . . . . . . . . . . . . . . . . . 5.11 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
139 139 142 147 148 150 152 155 157
6
Equazioni paraboliche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1 Formulazione debole e sua approssimazione . . . . . . . . . . . . . . . . . . . . 6.2 Stime a priori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Analisi di convergenza del problema semi-discreto . . . . . . . . . . . . . . 6.4 Analisi di stabilità del θ-metodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.5 Analisi di convergenza del θ-metodo . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6 Il caso dell’approssimazione spettrale G-NI . . . . . . . . . . . . . . . . . . . . . 6.7 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
183 184 187 190 192 196 199 200
7
Differenze finite per equazioni iperboliche . . . . . . . . . . . . . . . . . . . . . . . . . 7.1 Un problema di trasporto scalare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.1 Una stima a priori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Sistemi di equazioni iperboliche lineari . . . . . . . . . . . . . . . . . . . . . . . . 7.2.1 L’equazione delle onde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3 Il metodo delle differenze finite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.3.1 Discretizzazione dell’equazione scalare . . . . . . . . . . . . . . . . 7.3.2 Discretizzazione di sistemi iperbolici lineari . . . . . . . . . . . . 7.3.3 Trattamento del bordo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4 Analisi dei metodi alle differenze finite . . . . . . . . . . . . . . . . . . . . . . . .
205 205 207 209 211 212 214 215 216 217
158 161 161 163 163 165 167 173 176 176 179
VIII
Indice
7.4.1 Consistenza e convergenza . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4.2 Stabilità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.4.3 Analisi di von Neumann e coefficienti di amplificazione . . 7.4.4 Dissipazione e dispersione . . . . . . . . . . . . . . . . . . . . . . . . . . . Equazioni equivalenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.5.1 Il caso dello schema upwind . . . . . . . . . . . . . . . . . . . . . . . . . 7.5.2 Il caso dei metodi di Lax-Friedrichs e Lax-Wendroff . . . . . 7.5.3 Sul significato dei coefficienti nelle equazioni equivalenti . 7.5.4 Equazioni equivalenti e analisi dell’errore . . . . . . . . . . . . . . Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
217 217 222 226 228 228 233 234 235 236
Elementi finiti e metodi spettrali per equazioni iperboliche . . . . . . . . . . . 8.1 Discretizzazione temporale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.1 Gli schemi di Eulero in avanti e all’indietro . . . . . . . . . . . . . 8.1.2 Gli schemi upwind, di Lax-Friedrichs e Lax-Wendroff . . . . 8.2 Gli schemi Taylor-Galerkin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3 Il caso multidimensionale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.1 Semi-discretizzazione: trattamento forte e trattamento debole delle condizioni al bordo . . . . . . . . . . . . . . . . . . . . . . 8.3.2 Discretizzazione temporale . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4 Elementi finiti discontinui . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4.1 Il caso unidimensionale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.4.2 Il caso multidimensionale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.5 Approssimazione con metodi spettrali . . . . . . . . . . . . . . . . . . . . . . . . . 8.5.1 Il metodo G-NI in un singolo intervallo . . . . . . . . . . . . . . . . 8.5.2 Il metodo DG-SEM-NI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.6 Trattamento numerico delle condizioni al bordo per sistemi iperbolici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.6.1 Trattamento debole delle condizioni al bordo . . . . . . . . . . . 8.7 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
239 239 239 241 246 250
Cenni a problemi iperbolici non lineari . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1 Equazioni scalari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2 Approssimazione alle differenze finite . . . . . . . . . . . . . . . . . . . . . . . . . 9.3 Approssimazione con elementi finiti discontinui . . . . . . . . . . . . . . . . . 9.4 Sistemi iperbolici non-lineari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
279 279 284 286 293
10 Le equazioni di Navier-Stokes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1 Formulazione debole delle equazioni di Navier-Stokes . . . . . . . . . . . 10.2 Le equazioni di Stokes e la loro approssimazione . . . . . . . . . . . . . . . . 10.3 Problemi di punto-sella . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3.1 Formulazione del problema . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3.2 Analisi del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3.3 Approssimazione con il metodo di Galerkin ed analisi di stabilità e convergenza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4 Formulazione algebrica del problema di Stokes . . . . . . . . . . . . . . . . .
299 301 306 310 310 311
7.5
7.6 8
9
250 254 256 257 261 265 265 269 271 275 278
315 318
Indice
IX
10.5 Un esempio di problema stabilizzato . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6 Un esempio numerico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.7 Discretizzazione in tempo delle equazioni di Navier-Stokes . . . . . . . 10.7.1 Metodi alle differenze finite . . . . . . . . . . . . . . . . . . . . . . . . . . 10.7.2 Metodi alle caratteristiche (o Lagrangiani) . . . . . . . . . . . . . . 10.7.3 Metodi a passi frazionari . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.8 Risoluzione del sistema di Stokes e metodi di fattorizzazione algebrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.9 Problemi di fluidi a superficie libera . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.9.1 Equazioni di Navier-Stokes con densità e viscosità variabili 10.9.2 Condizioni al contorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.9.3 Applicazioni ai fluidi a superficie libera . . . . . . . . . . . . . . . . 10.9.4 Modellistica dell’evoluzione dell’interfaccia . . . . . . . . . . . . 10.9.5 I metodi Volume of Fluid . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.9.6 Metodi Level Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.9.7 Grandezze relative all’interfaccia . . . . . . . . . . . . . . . . . . . . . 10.9.8 Esistenza e unicità . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.10 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
322 324 325 327 329 329 333 337 337 339 340 341 342 342 344 346 347
11 Cenni di programmazione degli elementi finiti . . . . . . . . . . . . . . . . . . . . . . 11.1 Fasi operative di un codice a elementi finiti . . . . . . . . . . . . . . . . . . . . . 11.1.1 Due parole sul codice utilizzato . . . . . . . . . . . . . . . . . . . . . . . 11.2 Calcolo numerico degli integrali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.1 Le coordinate baricentriche . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2.2 Alcuni esempi di formule di quadratura . . . . . . . . . . . . . . . . 11.3 Memorizzazione di matrici sparse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4 La fase di assemblaggio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.4.1 Codifica delle informazioni geometriche . . . . . . . . . . . . . . . 11.4.2 Codifica delle informazioni funzionali . . . . . . . . . . . . . . . . . 11.4.3 Mappatura tra elemento di riferimento e elemento fisico . . 11.4.4 La costruzione dei sistemi locali e di quello globale . . . . . . 11.4.5 La prescrizione delle condizioni al bordo . . . . . . . . . . . . . . . 11.5 L’integrazione in tempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.6 Ed ora consideriamo un esempio completo . . . . . . . . . . . . . . . . . . . . .
351 351 354 355 358 360 361 366 368 372 373 377 381 384 387
12 Generazione di griglie in 1D e 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.1 La generazione di griglia in 1D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.2 Reticolazione di un dominio poligonale . . . . . . . . . . . . . . . . . . . . . . . . 12.3 Generazione di griglie strutturate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.4 Generazione di griglie non strutturate . . . . . . . . . . . . . . . . . . . . . . . . . . 12.4.1 Triangolazione di Delaunay . . . . . . . . . . . . . . . . . . . . . . . . . . 12.4.2 Tecnica di avanzamento del fronte . . . . . . . . . . . . . . . . . . . . 12.5 Tecniche di regolarizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.5.1 Scambio delle diagonali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12.5.2 Spostamento dei nodi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
397 397 400 402 405 405 410 412 412 414
X
Indice
13 Il metodo dei volumi finiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.1 Alcuni principi elementari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13.2 La costruzione dei volumi di controllo per schemi vertex-centered . . 13.3 Discretizzazione di un problema di diffusione-trasporto-reazione . . . 13.4 Analisi dell’approssimazione ai volumi finiti . . . . . . . . . . . . . . . . . . . . 13.5 Implementazione delle condizioni al bordo . . . . . . . . . . . . . . . . . . . . . 13.6 Cenni alla discretizzazione delle equazioni di Navier-Stokes . . . . . .
417 418 420 423 425 426 427
14 Il metodo di decomposizione dei domini . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2 Tre classici metodi iterativi basati su DD . . . . . . . . . . . . . . . . . . . . . . . 14.2.1 Il metodo di Schwarz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.2.2 Il metodo di Dirichlet-Neumann . . . . . . . . . . . . . . . . . . . . . . 14.2.3 Il metodo di Neumann-Neumann . . . . . . . . . . . . . . . . . . . . . 14.2.4 Il metodo di Robin-Robin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.3 Formulazione multi-dominio del problema di Poisson ed equazioni di interfaccia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.3.1 L’operatore di Steklov-Poincaré . . . . . . . . . . . . . . . . . . . . . . 14.3.2 Equivalenza tra il metodo di Dirichlet-Neumann e il metodo di Richardson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.4 Approssimazione con elementi finiti del problema di Poisson e formulazione per sotto-domini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.4.1 Il complemento di Schur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.4.2 L’operatore di Steklov-Poincaré discreto . . . . . . . . . . . . . . . 14.4.3 Equivalenza tra il metodo di Dirichlet-Neumann e il metodo di Richardson precondizionato: il caso algebrico . . 14.5 Generalizzazione al caso di più sotto-domini . . . . . . . . . . . . . . . . . . . . 14.5.1 Alcuni risultati numerici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.6 Precondizionatori nel caso di più sotto-domini . . . . . . . . . . . . . . . . . . 14.6.1 Il precondizionatore di Jacobi . . . . . . . . . . . . . . . . . . . . . . . . 14.6.2 Il precondizionatore di Bramble-Pasciak-Schatz . . . . . . . . . 14.6.3 Il precondizionatore di Neumann-Neumann . . . . . . . . . . . . . 14.7 I metodi iterativi di Schwarz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14.7.1 Forma algebrica dei metodi di Schwarz per una discretizzazione ad elementi finiti . . . . . . . . . . . . . . . . . . . . . 14.7.2 Il metodo di Schwarz come precondizionatore . . . . . . . . . . 14.7.3 Metodi di Schwarz a due livelli . . . . . . . . . . . . . . . . . . . . . . . 14.8 Condizioni all’interfaccia per altri problemi differenziali . . . . . . . . . .
431 431 432 432 434 436 437
15 Introduzione al controllo ottimale per equazioni a derivate parziali . . . 15.1 Definizione del problema di controllo ottimale . . . . . . . . . . . . . . . . . . 15.2 Un problema di controllo per sistemi lineari . . . . . . . . . . . . . . . . . . . . 15.3 Alcuni esempi di problemi di controllo ottimale per problemi ellittici 15.4 Alcuni risultati per minimi di funzionali . . . . . . . . . . . . . . . . . . . . . . . 15.5 La teoria del controllo ottimale per problemi ellittici . . . . . . . . . . . . .
437 438 440 442 445 446 448 450 453 454 455 457 458 462 463 465 469 472 477 477 479 480 481 484
Indice
XI
15.6 Alcuni esempi di problemi di controllo . . . . . . . . . . . . . . . . . . . . . . . . 15.6.1 Un problema di Dirichlet con controllo distribuito . . . . . . . 15.6.2 Un problema di Neumann con controllo distribuito . . . . . . 15.6.3 Un problema di Neumann con controllo di frontiera . . . . . . 15.7 Risoluzione di problemi inversi come problemi di controllo ottimale 15.7.1 La teoria del controllo ottimale per problemi inversi . . . . . . 15.7.2 Risolubilità dell’equazione di stato e dell’equazione aggiunta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15.8 Formulazione di problemi di controllo mediante lagrangiana . . . . . . 15.8.1 Ottimizzazione vincolata per funzioni in Rn . . . . . . . . . . . . 15.8.2 L’approccio mediante Lagrangiana . . . . . . . . . . . . . . . . . . . . 15.9 Risoluzione del problema di controllo: il metodo iterativo . . . . . . . . . 15.10 Alcune considerazioni su osservabilità e controllabilità . . . . . . . . . . . 15.11 Due paradigmi di risoluzione: “discretizzare–poi–ottimizzare” oppure “ottimizzare–poi–discretizzare” . . . . . . . . . . . . . . . . . . . . . . . . 15.12 Approssimazione numerica di un problema di controllo ottimale per equazioni di diffusione–trasporto . . . . . . . . . . . . . . . . . . . . . . . . . . 15.12.1 Gli approcci: “ottimizzare–poi–discretizzare” e “discretizzare–poi–ottimizzare” . . . . . . . . . . . . . . . . . . . . . . . 15.12.2 Stima a posteriori dell’errore . . . . . . . . . . . . . . . . . . . . . . . . . 15.12.3 Un problema test: controllo delle emissioni di inquinanti . .
488 488 489 490 491 492
Appendice A: Richiami di analisi funzionale . . . . . . . . . . . . . . . . . . . . . . . . . . . A.1 Funzionali e forme bilineari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2 Differenziazione in spazi lineari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.3 Richiami sulle distribuzioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.3.1 Le funzioni a quadrato sommabile . . . . . . . . . . . . . . . . . . . . A.3.2 Derivazione nel senso delle distribuzioni . . . . . . . . . . . . . . . A.4 Gli spazi di Sobolev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.4.1 Regolarità degli spazi Hk (Ω) . . . . . . . . . . . . . . . . . . . . . . . . . A.4.2 Lo spazio H10 (Ω) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.4.3 Gli operatori di traccia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.5 Lo spazio L∞ (Ω)egli spazi Lp (Ω)con 1 ≤ p < ∞ . . . . . . . . . . . . . . . A.6 Esercizi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
517 517 519 521 523 524 526 527 527 529 530 531
494 495 495 496 499 504 505 507 509 510 513
Appendice B: Algoritmi di risoluzione di sistemi lineari . . . . . . . . . . . . . . . . . 533 B.1 Metodi diretti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 B.2 Metodi iterativi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 Riferimenti bibliografici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 Indice analitico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
Prefazione
Queste note sono tratte dalle lezioni di “Metodi Numerici per l’Ingegneria” tenute presso il Politecnico di Milano e da quelle di “Analyse Numérique des Équations aux Dérivées Partielles” svolte presso l’EPFL (École Polytechnique Fédérale de Lausanne). Esse costituiscono una introduzione elementare alla modellistica numerica di problemi differenziali alle derivate parziali, sia stazionari che evolutivi. L’enfasi è posta soprattutto su problemi lineari, ellittici, parabolici e iperbolici. Tuttavia si considerano anche alcuni problemi non lineari, quali le leggi di conservazione e le equazioni di Navier-Stokes per la meccanica dei fluidi. Numerosi esempi di interesse fisico motivano i modelli differenziali che vengono illustrati. Di ognuna delle classi di problemi considerati si illustrano le principali proprietà matematiche e se ne fornisce la cosiddetta formulazione debole, o integrale, che sta alla base del metodo di Galerkin. Indi, come caso notevole del metodo di Galerkin, si introduce il metodo degli elementi finiti, dapprima per problemi ai limiti monodimensionali, quindi nel caso multidimensionale. Se ne analizzano le proprietà di stabilità e di convergenza, si illustrano gli aspetti algoritmici e quelli relativi alla implementazione su calcolatore. Altri metodi, quali le differenze finite ed i metodi spettrali, vengono pure considerati, nell’ambito della risoluzione numerica di problemi specifici. Numerosi esercizi corredano i diversi capitoli allo scopo di fornire al lettore la possibilità di acquisire maggiore consapevolezza sui principali argomenti trattati. Il testo è diviso in Capitoli, Sezioni e Sottosezioni. Il Capitolo 1 è dedicato ad un breve richiamo delle equazioni alle derivate parziali ed alla loro classificazione. Nel Capitolo 2 vengono introdotte le equazioni ellittiche (quali i problemi di Laplace e Poisson) e la loro formulazione integrale per condizioni al bordo di tipo generale, dapprima nel caso monodimensionale, poi in quello multidimensionale. Il Capitolo 3 è dedicato al metodo di approssimazione di Galerkin in generale ed al metodo degli elementi finiti in particolare. Nel Capitolo 4 si illustrano i metodi spettrali, ovvero metodi di Galerkin con sottospazi di polinomi globali, e la loro generalizzazione ai metodi pseudo-spettrali (o di collocazione) da un lato ed al metodo degli elementispettrali dall’altro. Durante la lettura di questi capitoli il lettore troverà numerosi rinvii alle Appendici. In particolare, nell’Appendice A si introducono alcuni elementari con-
XIV
Indice
cetti di analisi funzionale, di teoria delle distribuzioni e di spazi di Sobolev, necessari per una corretta comprensione della formulazione debole (o integrale) dei problemi ai limiti. Nell’Appendice B si richiamano invece alcuni fra gli algoritmi più frequentemente utilizzati per la risoluzione di sistemi lineari generati dalla discretizzazione di problemi alle derivate parziali. Nel Capitolo 5 si introducono i problemi di diffusione e trasporto, si illustrano le difficoltà che derivano dalla presenza di strati limite nella soluzione e si discutono metodi di stabilizzazione, basati su differenze finite ed elementi finiti con opportuna viscosità numerica. Il Capitolo 6 è dedicato ai problemi parabolici, descriventi processi di diffusione, per i quali si usano metodi di discretizzazione spaziale con elementi finiti e temporale con differenze finite. I Capitoli 7, 8 e 9 riguardano i problemi iperbolici, inerenti fenomeni di propagazione di onde. Ci concentreremo soprattutto sul caso dei problemi monodimensionali, al fine di analizzare in dettaglio le proprietà di dissipazione e di dispersione dei diversi schemi numerici che vengono considerati. Il Capitolo 10 è dedicato all’approssimazione delle equazioni di Navier-Stokes e ad una breve analisi dei problemi inerenti il soddisfacimento del vincolo di incomprimibilità. Infine nei Capitoli 11 e 12 (scritti in collaborazione con F. Saleri e L. Formaggia) si illustrano gli aspetti relativi alla programmazione del metodo degli elementi finiti. Questo testo è stato scritto per gli studenti di discipline scientifiche, interessati alla modellistica per la risoluzione numerica di problemi differenziali, ma può essere utile anche a ricercatori e studiosi desiderosi di avvicinarsi a questo interessante ramo della matematica applicata. Milano e Losanna, marzo 2000
Alfio Quarteroni
In questa terza edizione sono stati riveduti ed ampliati tutti i Capitoli, ed in modo particolare il quarto dedicato ai metodi spettrali, il sesto per ciò che concerne l’analisi di problemi parabolici, l’ottavo relativamente all’approssimazione spettrale di problemi iperbolici, ed infine i Capitoli 11 e 12 concernenti gli aspetti implementativi del metodo agli elementi finiti. In particolare, il Capitolo 11 è scritto in collaborazione con A. Veneziani e L. Formaggia e riporta esempi di programmazione in C++ (un linguaggio orientato agli oggetti). Si è inoltre aggiunto un breve Capitolo, il 13, sull’introduzione al metodo dei volumi finiti. Negli ultimi due anni sono usciti in questa stessa serie due monografie che possono essere considerate un importante compendio a questo testo: “Equazioni a derivate parziali. Metodi, modelli e applicazioni” di S. Salsa, in cui si introducono ed analizzano i problemi differenziali che vengono qui trattati, e “Applicazioni ed esercizi di modellistica numerica per problemi differenziali” di L. Formaggia, F. Saleri e A. Veneziani, che a tutti gli effetti può considerarsi di supporto a questo testo per ciò che concerne la risoluzione di problemi ed esercizi nonché per l’approfondimento delle
Indice
XV
tecniche qui presentate. Segnaliamo anche il testo “Elementi di fluidodinamica” di G. Riccardi e D. Durante che, illustrando i modelli differenziali basilari della dinamica dei fluidi, può essere considerato come complementare ai Capitoli 9 e 10 inerenti la fluidodinamica numerica. Vorrei ringraziare in modo particolare Simona Perotto per il suo contributo davvero determinante, ma anche Alessandro Veneziani, Nicola Parolini e Paola Gervasio. Infine, ringrazio Francesca Bonadei di Springer per il costante aiuto e gli innumerevoli consigli finalizzati a migliorare questa nuova edizione. Milano e Losanna, 9 luglio 2006
Alfio Quarteroni
In questa quarta edizione sono stati aggiunti due nuovi capitoli, il Capitolo 14 sul metodo di decomposizione dei domini e il Capitolo 15 sui problemi di controllo per equazioni alle derivate parziali. Ringrazio Luca Dedé, Marco Discacciati, Nicola Parolini, Simona Perotto, Christoph Winkelmann e, in modo particolare, Luca Paglieri e Francesca Bonadei. Milano e Losanna, agosto 2008
Alfio Quarteroni
1 Richiami sulle equazioni alle derivate parziali
Scopo di questo capitolo è quello di richiamare i concetti di base relativi alle equazioni alle derivate parziali (in breve EDP). Per una più ampia trattazione si vedano [PS91], [RR04], [Pro94], [Col76], [Joh82], [Sal08].
1.1 Definizioni ed esempi Le equazioni alle derivate parziali sono equazioni differenziali contenenti derivate della funzione incognita rispetto a più variabili (temporali o spaziali). In particolare, indicata con u la funzione incognita nelle d + 1 variabili indipendenti x = (x1 , . . . , xd)T e t, denoteremo con ∂u ∂ p1 +···+pd +pt u ∂u ∂u , . . ., , . . . , p1 , g = 0 (1.1) P(u, g) = F x, t, u, , ∂t ∂x1 ∂xd ∂x1 . . . ∂xpdd ∂tpt una generica EDP, essendo g l’insieme dei dati dai quali dipenderà la EDP, mentre p1 , . . . , pd , pt ∈ N. Diremo che la (1.1) è di ordine q, se q è l’ordine massimo delle derivate parziali che vi compaiono, ovvero il massimo valore assunto da p1 + p2 + . . . + pd + pt . Se la (1.1) dipende linearmente dall’incognita u e dalle sue derivate, l’equazione verrà detta lineare. Nel caso particolare in cui le derivate di ordine massimo compaiano solo linearmente (con coefficienti che possono dipendere da derivate di ordine inferiore), l’equazione si dirà quasi-lineare. Si dirà semi-lineare se è quasi-lineare ed i coefficienti delle derivate di ordine massimo dipendono solo da x e t, ma non dalla soluzione u. Infine se nell’equazione non compaiono termini indipendenti dalla funzione incognita u, la EDP si dice omogenea. Elenchiamo nel seguito alcuni esempi di EDP che si incontrano frequentemente nelle scienze applicate. Esempio 1.1 Un’equazione lineare del prim’ordine è l’equazione di trasporto (o di convezione) ∂u + ∇ · (βu) = 0, ∂t A. Quarteroni: Modellistica numerica per problemi differenziali, 4a edizione c Springer-Verlag Italia, Milano 2008
(1.2)
2
1 Richiami sulle equazioni alle derivate parziali
avendo indicato con ∇ · v = div(v) =
d ∂vi i=1
∂xi
v = (v1 , . . . , vd )T ,
,
l’operatore divergenza. La (1.2), integrata su una regione Ω ⊂ Rd , esprime la conservazione della massa di un sistema materiale che occupa la regione Ω. La variabile u è la densità del sistema, mentre β(x, t) è la velocità posseduta da una particella del sistema che all’istante t occupa la posizione x. Esempio 1.2 Equazioni lineari del second’ordine sono l’equazione del potenziale −Δu = f,
(1.3)
che descrive la diffusione di un fluido in una regione Ω ⊂ Rd omogenea ed isotropa, ma anche lo spostamento verticale di una membrana elastica, l’equazione del calore (o di diffusione) ∂u − Δu = f ∂t
(1.4)
e l’equazione delle onde ∂2u − Δu = 0. ∂t2
(1.5)
Abbiamo denotato con Δu =
d ∂2 u i=1
(1.6)
∂x2i
l’operatore di Laplace (o laplaciano).
Esempio 1.3 Un esempio di equazione quasi-lineare del prim’ordine è dato dall’equazione di Burgers ∂u ∂u = 0, +u ∂t ∂x1 mentre la sua variante ottenuta aggiungendo una perturbazione del second’ordine ∂u ∂2u ∂u = 2, +u ∂t ∂x1 ∂x1
> 0,
fornisce un esempio di equazione semi-lineare. Un’equazione non lineare, sempre del second’ordine, è
∂2u ∂x21
2 +
∂2 u ∂x22
2 = f.
1.2 Necessità della risoluzione numerica
3
Una funzione u = u(x1 , . . . , xd, t) è una soluzione od un integrale particolare della (1.1), se, sostituita nella (1.1) assieme con tutte le sue derivate, rende la (1.1) una identità. L’insieme di tutte le soluzioni della (1.1) si chiama l’integrale generale. Esempio 1.4 L’equazione del trasporto nel caso monodimensionale, ∂u ∂u = 0, − ∂t ∂x1
(1.7)
ammette un integrale generale della forma u = w(x1 + t), essendo w una funzione arbitraria sufficientemente regolare (si veda l’Esercizio 2). Analogamente, l’equazione delle onde monodimensionale ∂2 u ∂2 u − =0 ∂t2 ∂x21
(1.8)
ammette come integrale generale u(x1 , t) = w1 (x1 + t) + w2 (x1 − t), essendo w1 e w2 due funzioni arbitrarie, sufficientemente regolari (si veda l’Esercizio 3).
Esempio 1.5 Consideriamo l’equazione del calore monodimensionale ∂u ∂2 u − = 0, ∂t ∂x21 per 0 < x < 1 e t > 0, con condizioni al contorno u(0, t) = u(1, t) = 0,
t>0
e la condizione iniziale u|t=0 = u0 . La soluzione è u(x1 , t) =
∞
2
u0,j e−(jπ) t sin(jπx1 ),
j=1
dove u0 = u|t=0 è il dato iniziale e u0,j
1 = 2 u0 (x1 ) sin(jπx1 ) dx1 ,
j = 1, 2, . . .
0
1.2 Necessità della risoluzione numerica In generale, non è possibile ricavare per via analitica una soluzione della (1.1). In effetti, i metodi di integrazione analitica disponibili (come la tecnica di separazione delle variabili) sono di limitata applicabilità. Peraltro, anche nel caso in cui si conosca un integrale generale, non è poi detto che si riesca a determinare un integrale particolare. Per ottenere quest’ultimo bisognerà infatti assegnare opportune condizioni su u (e/o sulle sue derivate) alla frontiera del dominio Ω.
4
1 Richiami sulle equazioni alle derivate parziali
Dagli esempi forniti appare d’altra parte evidente che l’integrale generale dipende da alcune funzioni arbitrarie (e non da costanti arbitrarie, come accade per le equazioni differenziali ordinarie), di modo che l’imposizione delle condizioni comporterà la risoluzione di problemi matematici, in generale, estremamente complicati. Di conseguenza, da un punto di vista teorico, ci si deve spesso accontentare di studiare solo l’esistenza e l’unicità della soluzione di una EDP. Da ciò segue l’importanza di disporre di metodi numerici che permettano di costruire un’approssimazione uN della soluzione esatta u e di stimare (in una qualche norma) l’errore uN − u che si commette sostituendo alla soluzione esatta u la soluzione approssimata uN . L’intero positivo N denota la dimensione (finita) del problema approssimato. Schematicamente, otterremo la situazione seguente: P(u, g) = 0
EDP esatta
↓
[metodi numerici]
PN (uN , gN ) = 0
EDP approssimata
avendo indicato con gN una approssimazione dell’insieme dei dati g dai quali dipende la EDP, e con P N la nuova relazione funzionale che caratterizza il problema approssimato. Per semplicità si può porre: u = u(g), uN = uN (gN ). Presenteremo diversi metodi numerici a partire dal Cap. 3. Ci limitiamo qui a ricordarne le principali caratteristiche. Un metodo numerico è convergente se u − uN → 0
per N → ∞
in una norma opportuna. Più precisamente si ha convergenza se e solo se ∀ε > 0 ∃N0 (ε) > 0, ∃δ(N0 , ε) : ∀N > N0 (ε), ∀gN t.c. g − gN < δ(N0 , ε) ⇒
u(g) − uN (gN ) ≤ ε.
(La norma usata per i dati non è necessariamente la stessa usata per le soluzioni.) Verificare direttamente la convergenza di un metodo numerico può non essere agevole. Conviene piuttosto passare ad una verifica delle proprietà di consistenza e di stabilità. Un metodo numerico si dice consistente se PN (u, g) → 0 per N → ∞,
(1.9)
e fortemente consistente se PN (u, g) = 0 ∀N.
(1.10)
Si noti che (1.9) si può formulare in modo equivalente come PN (u, g) − P(u, g) → 0 per N → ∞. Ciò esprime la proprietà che PN (la EDP approssimata) “tende” a P (quella esatta) per N → ∞. Diciamo invece che un metodo numerico è stabile se a piccole perturbazioni sui dati corrispondono piccole perturbazioni sulla soluzione, ovvero ∀ε > 0 ∃δ = δ(ε) > 0 : ∀δgN : δgN < δ ⇒ δuN ≤ ε, ∀N,
1.3 Classificazione delle EDP
5
essendo uN + δuN la soluzione del problema perturbato PN (uN + δuN , gN + δgN ) = 0. (Si veda [QSS08, Cap. 2] per approfondimenti.) Il risultato fondamentale, noto come teorema di equivalenza, garantisce infine che Teorema 1.1 Se un metodo è consistente, allora è convergente se e solo se è stabile. Nella scelta di un metodo numerico interverranno ovviamente anche altre caratteristiche, quali ad esempio la velocità di convergenza (ovvero l’ordine rispetto ad 1/N con cui l’errore tende a zero) ed il costo computazionale, ovvero il tempo di calcolo e la memoria richiesta per l’implementazione del metodo stesso su calcolatore.
1.3 Classificazione delle EDP Le equazioni differenziali possono essere classificate in base alla loro formulazione matematica in tre famiglie diverse: equazioni ellittiche, paraboliche ed iperboliche, per ognuna delle quali si considerano metodi numerici specifici. Limitiamoci al caso di EDP del second’ordine lineari, a coefficienti costanti, della forma Lu = A
∂2u ∂ 2u ∂2u ∂u ∂u + B + C +D +E + F u = G, 2 2 ∂x1 ∂x1 ∂x2 ∂x2 ∂x1 ∂x2
(1.11)
con G funzione assegnata e A, B, C, D, E, F ∈ R. (Si noti che una qualunque delle variabili xi potrebbe rappresentare la variabile temporale.) In tal caso, la classificazione si effettua in base al segno del cosiddetto discriminante, = B 2 − 4AC. In particolare: se < 0 l’equazione si dice ellittica, se = 0 l’equazione si dice parabolica, se > 0 l’equazione si dice iperbolica. Esempio 1.6 L’equazione delle onde (1.8) è iperbolica, mentre l’equazione del potenziale (1.3) è ellittica. Un esempio di problema parabolico è dato dall’equazione del calore (1.4), ma anche dalla seguente equazione di diffusione-trasporto ∂u − μΔu + ∇ · (βu) = 0 ∂t in cui la costante μ > 0 e il campo vettoriale β sono assegnati.
Il criterio introdotto fa dipendere la classificazione dai soli coefficienti delle derivate di ordine massimo e si giustifica con il seguente argomento. Come si ricorderà, l’equazione algebrica quadratica Ax21 + Bx1 x2 + Cx22 + Dx1 + Ex2 + F = G,
6
1 Richiami sulle equazioni alle derivate parziali
rappresenta nel piano cartesiano (x1 , x2 ) un’iperbole, una parabola od un’ellisse a seconda che sia positivo, nullo o negativo. Questo parallelo con le coniche motiva il nome attribuito alle tre classi di operatori alle derivate parziali. Indaghiamo più attentamente le differenze tra le tre classi. Supponiamo, senza che ciò sia restrittivo, che D, E, F e G siano nulli. Cerchiamo un cambio di variabili della forma ξ = αx2 + βx1 , η = γx2 + δx1 ,
(1.12)
con α, β, γ e δ da scegliersi in modo che Lu diventi multiplo di ∂ 2 u/∂ξ∂η. Essendo Lu = (Aβ 2 + Bαβ + Cα2 )
∂2u ∂ξ 2
∂2u ∂2u + (Aδ 2 + Bγδ + Cγ 2 ) 2 , +(2Aβδ + B(αδ + βγ) + 2Cαγ) ∂ξ∂η ∂η
(1.13)
si dovrà richiedere che Aβ 2 + Bαβ + Cα2 = 0, Aδ 2 + Bγδ + Cγ 2 = 0.
(1.14)
Se A = C = 0, la trasformazione banale ξ = x2 , η = x1 (ad esempio) fornisce Lu nella forma desiderata. Supponiamo allora che A o C siano non nulli. Non è restrittivo supporre A = 0. Allora se α = 0 e γ = 0, possiamo dividere la prima equazione della (1.14) per α2 e la seconda per γ 2 . Troviamo due equazioni quadratiche identiche per le frazioni β/α e δ/γ. Risolvendole, si ha β 1 −B ± , = α 2A
δ 1 −B ± . = γ 2A
Affinché la trasformazione (1.12) sia non singolare, i quozienti β/α e δ/γ devono essere diversi. Dobbiamo pertanto prendere il segno positivo in un caso, quello negativo nell’altro. Inoltre dobbiamo assumere > 0. Se fosse nullo infatti le due frazioni sarebbero ancora coincidenti, mentre se fosse negativo nessuna delle due frazioni potrebbe essere reale. In conclusione, possiamo prendere come coefficienti della trasformazione (1.12) i valori seguenti: α = γ = 2A, β = −B + , δ = −B − . Corrispondentemente, la (1.12) diventa √ √ ξ = 2Ax2 + −B + x1 , η = 2Ax2 + −B − x1 , ed il problema differenziale originario Lu = 0 trasformato diventa Lu = − 4A
∂2u = 0. ∂ξ∂η
(1.15)
1.3 Classificazione delle EDP
7
Il caso A = 0 e C = 0 può essere trattato in modo analogo prendendo ξ = x1 , η = x2 − (C/B)x1 . Concludendo, Lu può diventare un multiplo di ∂ 2 u/∂ξ∂η secondo la trasformazione (1.12) se e solo se > 0 ed in tal caso, come abbiamo anticipato, il problema è detto iperbolico. È facile verificare che la soluzione generale del problema (1.15) è u = p(ξ) + q(η), essendo p e q funzioni differenziabili di una variabile, arbitrarie. Le linee ξ = costante e η = costante sono dette le caratteristiche di L e sono caratterizzate dal fatto che su di esse le funzioni p e q, rispettivamente, si mantengono costanti. In particolare, eventuali discontinuità della soluzione u si propagano lungo le caratteristiche (lo si vedrà più in dettaglio nel Cap. 7). In effetti, se A = 0, identificando x1 con t e x2 con x, la trasformazione x = x −
B t, t = t, 2A
trasforma l’operatore iperbolico Lu = A
∂2u ∂2u ∂2u +C 2 +B 2 ∂t ∂t∂x ∂x
in un multiplo dell’operatore delle onde Lu =
2 ∂2u 2∂ u − c , con c2 = /4A2 . ∂t2 ∂x2
Dunque L è l’operatore delle onde in un sistema di coordinate che si muove con velocità −B/2A. Le caratteristiche dell’operatore delle onde sono le linee che verificano 2 dt 1 = 2, dx c ovvero dt 1 = dx c
e
dt 1 =− . dx c
Se invece = 0, come detto, L è parabolico. In tal caso esiste un solo valore di β/α in corrispondenza del quale il coefficiente di ∂ 2 u/∂ξ 2 in (1.13) si annulla. Precisamente, β/α = −B/(2A). Peraltro, essendo B/(2A) = 2C/B, questa scelta comporta anche che il coefficiente di ∂ 2 u/∂ξ∂η si annulli. Di conseguenza, la trasformazione ξ = 2Ax2 − Bx1 , η = x1 , trasforma il problema originario Lu = 0 nel seguente Lu =A
∂2u = 0, ∂η 2
8
1 Richiami sulle equazioni alle derivate parziali
la cui soluzione generale ha la forma u = p(ξ) + ηq(ξ). Un operatore parabolico ha dunque solo una famiglia di caratteristiche, precisamente ξ = costante. Le discontinuità nelle derivate di u si propagano lungo tali caratteristiche. Infine, se < 0 (operatori ellittici) non esiste alcuna scelta di β/α o δ/γ che renda nulli i coefficienti ∂ 2 u/∂ξ 2 e ∂ 2 u/∂η 2 . Tuttavia, la trasformazione ξ=
2Ax2 − Bx1 √ , η = x1 , −
trasforma Lu= 0 in Lu = A
∂2u ∂2u + 2 ∂ξ 2 ∂η
= 0,
ossia in un multiplo dell’equazione del potenziale. Essa non ha perciò alcuna famiglia di caratteristiche. 1.3.1 Forma quadratica associata ad una EDP All’equazione (1.11) si può associare il cosiddetto simbolo principale S p definito da S p (x, q) = − A(x)q12 − B(x)q1 q2 − C(x)q22 . Questa forma quadratica si può rappresentare in forma matriciale come segue: ⎤ ⎡ 1 −A(x) − B(x) ⎥ ⎢ 2 (1.16) S p (x, q) = qT ⎣ 1 ⎦ q. − B(x) − C(x) 2 Una forma quadratica è detta definita se la matrice associata ha autovalori tutti dello stesso segno (positivi o negativi); è indefinita se la matrice ha autovalori di entrambi i segni; è degenere se la matrice è singolare. Si può allora dire che l’equazione (1.11) è ellittica se la forma quadratica (1.16) è definita (positiva o negativa), iperbolica se è indefinita, parabolica se è degenere. Le matrici associate all’equazione del potenziale (1.3), del calore (1.4) (in una dimensione) e delle onde (1.5) sono date rispettivamente da −1 0 0 0 1 0 e , 0 1 0 1 0 1 e sono definita positiva nel primo caso, singolare nel secondo, indefinita nel terzo.
1.4 Esercizi
9
1.4 Esercizi 1. Si classifichino, in base all’ordine ed alla linearità, le seguenti equazioni: 2 2 2 2 ∂ u ∂ u ∂u ∂u ∂ 2 u ∂u ∂u −2 + 1+ = 0, (a) 1+ ∂x1 ∂x22 ∂x1 ∂x2 ∂x1 ∂x2 ∂x2 ∂x21 (b)
ρ
∂2u ∂4u + K = f, ∂t2 ∂x41
(c)
∂u ∂x1
2
+
∂u ∂x2
2 = f.
[Soluzione: (a) quasi-lineare, del second’ordine; si tratta dell’equazione di Plateau che regola, sotto opportune ipotesi, il moto piano di un fluido. La u che compare è il cosiddetto potenziale cinetico; (b) lineare, del quart’ordine. È l’equazione della verga vibrante, ρ è la densità della verga, mentre K è una quantità positiva che dipende dalle caratteristiche geometriche della verga stessa; (c) non lineare, del prim’ordine.] 2. Si riduca l’equazione del trasporto monodimensionale (1.7) ad una equazione della forma ∂w/∂y = 0, avendo posto y = x1 − t e si ricavi che u = w(x1 + t) è soluzione dell’equazione di partenza. [Soluzione: si effettui il cambio di variabili z = x1 + t, y = x1 − t, u(x1 , t) = w(y, z). In tal modo ∂u/∂x1 = ∂w/∂z + ∂w/∂y, mentre ∂u/∂t = ∂w/∂z − ∂w/∂y, e dunque, −2∂w/∂y = 0. Si osservi a questo punto che l’equazione così ottenuta ammette una soluzione w(y, z) che non dipende da y e dunque, usando le variabili originarie, u = w(x1 + t).] 3. Si dimostri che l’equazione delle onde 2 ∂2u 2∂ u − c = 0, ∂t2 ∂x21
con c costante, ammette come soluzione u(x1 , t) = w1 (x1 + ct) + w2 (x1 − ct), con w1 , w2 due funzioni arbitrarie sufficientemente regolari. [Soluzione: si proceda come nell’Esercizio 2, impiegando il cambio di variabili y = x1 + ct, z = x1 − ct e ponendo u(x1 , t) = w(y, z).] 4. Si verifichi che l’equazione di Korteveg-de-Vries ∂u ∂3u ∂u + α 3 = 0, +β ∂t ∂x1 ∂x1 ammette l’integrale generale della forma u = a cos(kx1 −ωt) con ω opportuno da determinarsi, a, β ed α costanti assegnate. Questa equazione descrive la posizione u di un fluido rispetto ad una posizione di riferimento, in presenza di propagazione di onde lunghe. [Soluzione: la u data soddisfa l’equazione solo se ω = kβ − αk 3 .]
10
1 Richiami sulle equazioni alle derivate parziali
5. Si consideri l’equazione x21
∂2u ∂2u − x22 2 = 0 2 ∂x1 ∂x2
con x1 x2 = 0. La si classifichi e si determino le linee caratteristiche. 6. Si consideri la generica equazione differenziale semi-lineare del second’ordine a(x1 , x2 )
∂2u ∂2u ∂2u + c(x1 , x2 ) 2 + f(u, ∇u) = 0, 2 + 2b(x1 , x2 ) ∂x1 ∂x1 ∂x2 ∂x2
∂u ∂u T , il gradiente di u. Si scriva l’equazione delle li∂x1 ∂x2 nee caratteristiche e si deduca da essa la classificazione dell’equazione proposta, commentando le varie situazioni. 7. Si ponga r(x) = |x| = (x21 +x22 )1/2 e si definisca u(x) = ln(r(x)), x ∈ R2 \{0}. Si verifichi che essendo ∇u =
Δu(x) = 0, x ∈ Ω, ¯ ⊂ R2 \{0}. dove Ω è un qualunque insieme aperto tale che Ω [Soluzione: si osservi che ∂2u 2x2i 1 = 2 1 − 2 , i = 1, 2.] ∂x2i r r
2 Equazioni di tipo ellittico
Questo capitolo è dedicato all’introduzione di problemi ellittici ed alla loro formulazione debole. Pur essendo la nostra trattazione alquanto elementare, prima di affrontarne la lettura, il lettore che fosse completamente a digiuno di conoscenze di Analisi Funzionale è invitato a consultare l’Appendice A.
2.1 Un esempio di problema ellittico: l’equazione di Poisson Si consideri un dominio (ovvero un insieme aperto) Ω ⊂ R2 limitato e connesso e sia ∂Ω la sua frontiera. Denoteremo con x la coppia di variabili spaziali (x1 , x2). Il problema oggetto del nostro esame è −Δu = f
in Ω,
(2.1)
dove f = f(x) è una funzione assegnata e il simbolo Δ denota l’operatore laplaciano (1.6) in due dimensioni. La (2.1) è un’equazione ellittica del second’ordine, lineare, non omogenea (se f = 0). Chiameremo la (2.1) la formulazione forte dell’equazione di Poisson. Ricordiamo inoltre che, nel caso in cui f = 0, l’equazione (2.1) è nota come equazione di Laplace. Fisicamente u può rappresentare lo spostamento verticale di una membrana elastica dovuto all’applicazione di una forza di intensità pari ad f, oppure la distribuzione di potenziale elettrico dovuta ad una densità di carica elettrica f. Per avere un’unica soluzione, alla (2.1) vanno aggiunte delle opportune condizioni al contorno, occorrono cioè delle informazioni relative al comportamento della soluzione u sulla frontiera ∂Ω del dominio. Si può ad esempio assegnare il valore dello spostamento u sul bordo u=g
su ∂Ω,
(2.2)
dove g è una funzione assegnata, ottenendo un problema di Dirichlet. Il caso in cui g = 0 si dice omogeneo. A. Quarteroni: Modellistica numerica per problemi differenziali, 4a edizione c Springer-Verlag Italia, Milano 2008
12
2 Equazioni di tipo ellittico
In alternativa si può imporre il valore della derivata normale di u ∇u · n =
∂u = h su ∂Ω, ∂n
essendo n la normale uscente ad Ω e h una funzione assegnata. Il problema associato si dice problema di Neumann e , nel caso del problema della membrana, corrisponde ad aver imposto la trazione al bordo della membrana stessa. Anche stavolta il caso h = 0 si dirà omogeneo. Si possono infine assegnare su porzioni diverse del bordo del dominio computazionale Ω, condizioni di tipo diverso. Ad esempio, supponendo che ∂Ω = ΓD ∪ ΓN ◦
◦
con Γ D ∩ Γ N = ∅, si possono imporre le condizioni
u=g su ΓD , ∂u = h su ΓN . ∂n
◦
Si è utilizzata la notazione Γ per indicare l’interno di Γ . Si dice in tal caso che il problema associato è di tipo misto. Anche nel caso di Dirichlet omogeneo in cui f sia una funzione continua in Ω (la chiusura di Ω), non è detto che il problema (2.1), (2.2) ammetta soluzione regolare. Ad esempio, se Ω = (0, 1) × (0, 1) e f = 1, u non potrebbe appartenere allo spazio C 2 (Ω). Infatti, se così fosse, avremmo −Δu(0, 0) = −
∂2u ∂2 u (0, 0) − 2 (0, 0) = 0 2 ∂x1 ∂x2
in quanto le condizioni al bordo imporrebbero u(x1 , 0) = u(0, x2) = 0 per ogni x1 , x2 ∈ [0, 1]. Dunque u non potrebbe verificare l’equazione (2.1), ovvero −Δu = 1 in (0, 1) × (0, 1). In conclusione, anche se f ∈ C 0 (Ω), non ha senso in generale cercare una soluzione u ∈ C 2 (Ω) del problema (2.1), (2.2), mentre si hanno maggiori probabilità di trovare una soluzione u ∈ C 2 (Ω) ∩ C 0 (Ω) (uno spazio più grande di C 2 (Ω) !). Siamo pertanto interessati a trovare una formulazione alternativa a quella forte anche perché, come vedremo nella prossima sezione, essa non consente di trattare alcuni casi fisicamente significativi. Ad esempio, non è detto che, in presenza di dati poco regolari, la soluzione fisica stia nello spazio C 2 (Ω) ∩ C 0 (Ω), e nemmeno in C 1 (Ω) ∩ C 0 (Ω).
2.2 Il problema di Poisson nel caso monodimensionale Al fine di introdurre la forma debole di un problema differenziale, iniziamo ad occuparci di un problema ai limiti in una dimensione.
2.2 Il problema di Poisson nel caso monodimensionale
13
2.2.1 Problema di Dirichlet omogeneo Consideriamo il problema di Dirichlet omogeneo nel caso monodimensionale:
−u (x) = f(x), u(0) = 0,
0 < x < 1, u(1) = 0.
(2.3)
In tal caso Ω è l’intervallo (0, 1). Questo problema governa, ad esempio, la configurazione di equilibrio di un filo elastico con tensione pari ad uno, fissato agli estremi, in regime di piccoli spostamenti e soggetto ad una forza trasversale di intensità f. La forza complessiva agente sul tratto (0, x) del filo è
x
F (x) =
f(t)dt. 0
La funzione u descrive lo spostamento verticale del filo rispetto alla posizione di riposo u = 0. La formulazione forte (2.3) non è in generale adeguata. Se si considera, ad esempio, il caso in cui il filo elastico sia sottoposto ad un carico concentrato in uno o più punti (in tal caso f è rappresentabile attraverso delle “delta” di Dirac), la soluzione fisica esiste ed è continua, ma non derivabile. Si vedano i grafici di Fig. 2.1, dove è
0.5
0
1
0 x
−1
0.5
0
0.4
1 x
−1
1
0
0.4
x
0.6
1 x
u(x)
u(x)
0.25
0.6
−0.4
Figura 2.1. A sinistra viene riportata la configurazione di equilibrio del filo corrispondente al carico unitario concentrato in x = 0.5, rappresentato nella parte superiore della figura. A destra quella relativa a due carichi unitari concentrati in x = 0.4 e x = 0.6, rappresentati sempre nella parte superiore
14
2 Equazioni di tipo ellittico
f(x) 0
0.4
0.6
1 x
0.4
0.6
1 x
−1
0 −0.01
u(x)
−0.02 −0.03 −0.04 −0.05 Figura 2.2. Spostamento relativo al carico discontinuo rappresentato nella parte superiore della figura
considerato il caso di un carico unitario concentrato nel solo punto x = 0.5 (a sinistra) e nei due punti x = 0.4 e x = 0.6 (a destra). Queste funzioni non possono essere soluzioni della (2.3), in quanto quest’ultima richiederebbe alla soluzione di essere dotata di derivata seconda continua. Analoghe considerazioni valgono nel caso in cui f sia una funzione costante a tratti. Ad esempio, nel caso rappresentato in Fig. 2.2 di un carico nullo fuorché nell’intervallo [0.4, 0.6] in cui esso vale −1, la soluzione esatta è solo di classe C 1 ([0, 1]), essendo data da ⎧ 1 ⎪ − x per x ∈ [0, 0.4], ⎪ ⎪ 10 ⎪ ⎪ ⎨ 2 1 2 1 u(x) = x − x+ per x ∈ [0.4, 0.6], ⎪ 2 2 25 ⎪ ⎪ ⎪ ⎪ ⎩ − 1 (1 − x) per x ∈ [0.6, 1]. 10 Serve dunque una formulazione del problema alternativa a quella forte che consenta di ridurre l’ordine di derivazione richiesto sulla soluzione incognita u. Passeremo da un problema differenziale del secondo ordine ad uno in forma integrale del primo ordine, che sarà chiamato la formulazione debole del problema differenziale. Operiamo a tale scopo alcuni passaggi formali nella (2.3), senza preoccuparci a questo stadio del fatto che tutte le operazioni che in essi compariranno siano lecite. Moltiplichiamo innanzitutto l’equazione (2.3) per una funzione test v (per ora arbitraria) ed integriamo sull’intervallo (0, 1),
−u v = fv
1 1 ⇒ − u v dx = fv dx. 0
0
2.2 Il problema di Poisson nel caso monodimensionale
15
Applichiamo la formula di integrazione per parti al primo integrale, con lo scopo di eliminare la derivata seconda, in modo da poter richiedere alla soluzione una minore regolarità. Si trova 1 1 − u v dx = u v dx − [u v]10 . 0
0
Essendo u nota al bordo possiamo considerare solo funzioni test che si annullano agli estremi dell’intervallo, annullando così il contributo dei termini di bordo. In tal modo l’equazione diviene 1 1 u v dx = fv dx. (2.4) 0
0
Lo spazio delle funzioni test V dovrà pertanto essere tale che se v ∈ V allora v(0) = v(1) = 0. Si osservi che la soluzione u, essendo nulla al bordo ed avendo gli stessi requisiti di regolarità delle funzioni test, verrà cercata anch’essa nello stesso spazio V . Restano ora da precisare i requisiti di regolarità cui deve soddisfare lo spazio V , in modo che tutte le operazioni introdotte abbiano senso. Evidentemente se u e v appartenessero a C 1 ([0, 1]), avremmo u , v ∈ C 0 ([0, 1]) e quindi l’integrale che compare a primo membro della (2.4) avrebbe senso. Gli esempi di Fig. 2.1 ci dicono però che le soluzioni fisiche potrebbero non essere derivabili con continuità: dobbiamo quindi richiedere una regolarità inferiore. Inoltre, anche quando f ∈ C 0 ([0, 1]), non vi è certezza che il problema ammetta soluzioni nello spazio V = {v ∈ C 1 ([0, 1]) : v(0) = v(1) = 0}.
(2.5)
Ciò è imputabile al fatto che tale spazio vettoriale, quando lo si munisce del prodotto scalare 1 (2.6) [u, v]1 = u v dx, 0
non è uno spazio completo, ovvero non tutte le successioni di Cauchy a valori in V convergono ad un elemento di V . (Si verifichi per esercizio che (2.6) è effettivamente un prodotto scalare.) Procediamo allora come segue. Ricordiamo la definizione degli spazi Lp delle funzioni a potenza p-esima integrabile secondo Lebesgue (si veda l’Appendice A). Per 1 ≤ p < ∞ L (0, 1) = {v : (0, 1) → R t.c. p
vLp (0,1) = 0
1
1/p |v(x)| dx p
< +∞}.
16
2 Equazioni di tipo ellittico
1 Dato che si vuole che l’integrale 0 u v dx sia ben definito, la richiesta minima su u e v è che il prodotto u v stia in L1 (0, 1). A questo proposito, vale la seguente proprietà: Proprietà 2.1 Date due funzioni ϕ, ψ : (0, 1) → R, se ϕ2 , ψ2 sono integrabili allora ϕψ è integrabile ossia ϕ, ψ ∈ L2 (0, 1) =⇒
ϕψ ∈ L1 (0, 1).
Questo risultato è conseguenza diretta della disuguaglianza di Cauchy-Schwarz: 1 ϕ(x)ψ(x) dx ≤ ϕL2(0,1)ψL2 (0,1), (2.7) 0
dove ϕL2(0,1) =
|ϕ(x)|2dx
(2.8)
Ω
è la norma di ϕ in L (0, 1) . Poiché ϕL2 (0,1), ψL2(0,1) < ∞ per ipotesi, ciò prova che esiste (finito) anche l’integrale di ϕψ. 2
Per dare un significato agli integrali che compaiono nella (2.4) bastano dunque funzioni a quadrato integrabile con derivate a quadrato integrabile. Definiamo pertanto lo spazio di Sobolev H1 (0, 1) = {v ∈ L2 (0, 1) : v ∈ L2 (0, 1)}. La derivata è da intendere nel senso delle distribuzioni (si veda l’Appendice A). Scegliamo dunque come spazio V il seguente sottospazio di H1 (0, 1), H10 (0, 1) = {v ∈ H1 (0, 1) : v(0) = v(1) = 0}, costituito dalle funzioni di H1 (0, 1) che sono nulle agli estremi dell’intervallo. Se supponiamo f ∈ L2 (0, 1) anche l’integrale a secondo membro della (2.4) ha senso. Il problema (2.3) viene dunque ricondotto al seguente problema integrale, 1 trovare u ∈ V :
1 fv dx ∀v ∈ V,
u v dx = 0
con V = H10 (0, 1).
0
(2.9)
2.2 Il problema di Poisson nel caso monodimensionale
17
Osservazione 2.1 Lo spazio H10 (0, 1) risulta essere la chiusura, rispetto al prodotto scalare (2.6), dello spazio definito nella (2.5). Le funzioni di H1 (0, 1) non sono necessariamente derivabili in senso classico, cioè H1 (0, 1) ⊂ C 1 ([0, 1]). Ad esempio, funzioni continue a tratti con raccordi a spigolo appartengono ad H1 (0, 1) ma non a C 1 ([0, 1]). Sono dunque contemplate anche le soluzioni continue, ma non derivabili, degli esempi precedenti. • Il problema debole (2.9) risulta equivalente ad un problema variazionale, in virtù del seguente risultato: Teorema 2.1 Il problema: ⎧ J(u) = minJ(v) con ⎪ ⎪ v∈V ⎪ ⎨ 1 1 trovare u ∈ V : 1 ⎪ 2 ⎪ ⎪ ⎩ J(v) = 2 (v ) dx − fv dx, 0
(2.10)
0
è equivalente al problema (2.9), nel senso che u è soluzione di (2.9) se e solo se u è soluzione di (2.10). Dimostrazione. Si supponga che u sia soluzione del problema variazionale (2.10). Allora, ponendo v = u + δw, con δ ∈ R, si ha che J(u) ≤ J(u + δw)
∀w ∈ V.
La funzione ψ(δ) = J(u + δw) è una funzione quadratica in δ con minimo raggiunto per δ = 0. Pertanto ∂J(u + δw) ψ (δ) = = 0. ∂δ δ=0 δ=0 Per definizione di derivata si ha ∂J(u + δw) J(u + δw) − J(u) = lim δ→0 ∂δ δ
∀w ∈ V.
Consideriamo il termine J(u + δw): J(u + δw)
=
1 2
1
1
2
[(u + δw) ] dx − 0
=
1 2
1
f(u + δw) dx 0
[u + δ 2 w + 2δu w ] dx − 2
2
0
= J(u) +
1 2
1 0
1 0
[δ 2 w + 2δu w ] dx − 2
1 fu dx −
1
fδw dx 0
fδw dx. 0
18
2 Equazioni di tipo ellittico
Di conseguenza, J(u + δw) − J(u) 1 = δ 2
1
2
1
[δw + 2u w ] dx − 0
fw dx. 0
Passando al limite per δ → 0 ed imponendo che esso si annulli, si ottiene 1
1
u w dx − 0
∀w ∈ V,
fw dx = 0 0
ovvero u soddisfa il problema debole (2.9). Viceversa, se u è soluzione di (2.9), ponendo v = δw, si ha in particolare che 1
1
u δw dx − 0
fδw dx = 0, 0
e quindi 1 J(u + δw) = 2
1
[(u + δw) ] dx − 0
1 = 2
1
2
1 u
2
0
= J(u) +
0
1 dx − 1 2
1
f(u + δw) dx 1
1
u δw dx −
fu dx + 0
0
1 fδw dx + 2
0
1
δ 2 w dx 2
0
δ 2 w dx. 2
0
Poiché 1 2
1
δ 2 w dx ≥ 0 ∀ w ∈ V, ∀δ ∈ R, 2
0
si deduce che J(u) ≤ J(v)
∀v ∈ V,
ovvero la u soddisfa anche il problema variazionale (2.10).
Osservazione 2.2 (Principio dei lavori virtuali) Consideriamo nuovamente il problema di studiare la configurazione assunta da un filo di tensione unitaria, vincolato agli estremi e soggetto ad un termine forzante f, descritta dalle equazioni (2.3). Indichiamo con v uno spostamento ammissibile del filo dalla posizione di equilibrio
2.2 Il problema di Poisson nel caso monodimensionale
19
u (cioè uno spostamento nullo agli estremi). L’equazione (2.9), esprimendo l’uguaglianza del lavoro fatto dalle forze interne e dalle forze esterne in corrispondenza allo spostamento v, traduce il principio dei lavori virtuali della Meccanica. Inoltre, poiché nel nostro caso esiste un potenziale (J(w) definito in (2.10) esprime infatti l’energia potenziale globale corrispondente alla configurazione w del sistema), il principio dei lavori virtuali stabilisce che qualsiasi spostamento ammissibile dalla configurazione di equilibrio causa un incremento dell’energia potenziale del sistema. In questo senso, il Teorema 2.1 afferma che la soluzione debole è anche quella che minimizza l’energia potenziale. • 2.2.2 Problema di Dirichlet non omogeneo Nel caso non omogeneo le condizioni al bordo in (2.3) sono sostituite da u(0) = g0 , u(1) = g1 , essendo g0 e g1 due valori assegnati. Ci si può ricondurre al caso omogeneo notando che se u è soluzione del problema ◦ non omogeneo allora la funzione u= u − [(1 − x)g0 + xg1 ] è soluzione del corrispondente problema omogeneo (2.3). La funzione Rg = (1 − x)g0 + xg1 è detta rilevamento del dato di bordo. 2.2.3 Problema di Neumann Consideriamo ora il seguente problema di Neumann −u + σu = f, 0 < x < 1, u (0) = h0 , u (1) = h1 , essendo σ una funzione positiva e h0 , h1 due numeri reali. Osserviamo che nel caso in cui σ = 0 l’eventuale soluzione di questo problema non sarebbe unica, essendo definita a meno di una costante additiva. Applicando lo stesso procedimento seguito nel caso del problema di Dirichlet, ovvero moltiplicando l’equazione per una funzione test v, integrando sull’intervallo (0, 1) ed applicando la formula di integrazione per parti si perviene all’equazione 1
1 σuv dx − [u
u v dx + 0
0
1 v]10
=
fv dx. 0
Supponiamo f ∈ L2 (0, 1) e σ ∈ L∞ (0, 1) ossia che σ sia una funzione limitata quasi ovunque (q.o.) su (0, 1) (si veda la (A.14)). Il termine di bordo è noto grazie alle condizioni di Neumann. D’altra parte l’incognita u in questo caso non è nota al bordo, pertanto non si deve richiedere che v si annulli al bordo. La formulazione debole del problema di Neumann è quindi: trovare u ∈ H1 (0, 1) tale che 1
1
u v dx + 0
1 fv dx + h1 v(1) − h0 v(0)
σuv dx = 0
0
∀v ∈ H1 (0, 1).
(2.11)
20
2 Equazioni di tipo ellittico
Nel caso omogeneo h0 = h1 = 0 il problema debole è caratterizzato dalla stessa equazione del caso di Dirichlet, ma lo spazio V delle funzioni test è ora H1 (0, 1) anziché H10 (0, 1). 2.2.4 Problema misto omogeneo Considerazioni analoghe valgono per il problema misto omogeneo, in cui cioè si abbia una condizione di Dirichlet omogenea in un estremo ed una condizione di Neumann omogenea nell’altro, −u + σu = f, 0 < x < 1, (2.12) u(0) = 0, u (1) = 0. In tal caso si deve chiedere che le funzioni test siano nulle in x = 0. Ponendo ΓD = {0} e definendo H1ΓD (0, 1) = {v ∈ H1 (0, 1) : v(0) = 0}, la formulazione debole del problema (2.12) è: trovare u ∈ H1ΓD (0, 1) tale che 1
1
u v dx + 0
1 fv dx ∀v ∈ H1ΓD (0, 1),
σuv dx = 0
0
con f ∈ L2 (0, 1) e σ ∈ L∞ (0, 1). La formulazione è nuovamente la stessa del problema di Dirichlet omogeneo, cambia però lo spazio in cui si cerca la soluzione. 2.2.5 Condizioni al bordo miste (o di Robin) Si consideri infine il seguente problema −u + σu = f, 0 < x < 1, u(0) = 0, u (1) + γu(1) = r, dove γ > 0 e r sono valori assegnati. Anche in questo caso si utilizzeranno funzioni test nulle in x = 0, essendo ivi noto il valore di u. Il termine di bordo per x = 1, derivante dall’integrazione per parti, non fornisce più, a differenza del caso di Neumann, una quantità nota, ma un termine proporzionale all’incognita u. Infatti si ha −[u v]10 = −rv(1) + γu(1)v(1). La formulazione debole è dunque: trovare u ∈ H1ΓD (0, 1) tale che 1
1
u v dx + 0
1 σuv dx + γu(1)v(1) =
0
fv dx + rv(1)
∀v ∈ H1ΓD (0, 1).
0
Una condizione al bordo che sia una combinazione lineare tra il valore di u e quello della sua derivata prima è detta condizione di Robin (o di Newton, o del terzo tipo).
2.3 Il problema di Poisson nel caso bidimensionale
21
2.3 Il problema di Poisson nel caso bidimensionale Consideriamo in questa sezione i problemi ai limiti associati all’equazione di Poisson nel caso bidimensionale. 2.3.1 Il problema di Dirichlet omogeneo Il problema consiste nel trovare u tale che −Δu = f in Ω, u=0 su ∂Ω,
(2.13)
dove Ω ⊂ R2 è un dominio limitato con frontiera ∂Ω. Si procede in maniera analoga al caso monodimensionale. Moltiplicando l’equazione differenziale della (2.13) per una funzione arbitraria v e integrando su Ω, troviamo − Δuv dΩ = fv dΩ. Ω
Ω
A questo punto occorre applicare un analogo multidimensionale della formula di integrazione per parti monodimensionale. Essa può essere ottenuta impiegando il teorema della divergenza secondo il quale div(a) dΩ = a · n dγ, (2.14) Ω
∂Ω
essendo a(x) = (a1 (x), a2 (x))T una funzione vettoriale sufficientemente regolare, n(x) = (n1 (x), n2 (x))T il versore normale uscente a Ω ed avendo denotato con x = (x1 , x2 )T il vettore delle coordinate spaziali. Se si applica la (2.14) prima alla funzione a = (ϕψ, 0)T e successivamente ad a = (0, ϕψ)T , si perviene alle relazioni ∂ϕ ∂ψ ψ dΩ = − ϕ dΩ + ϕψni dγ, i = 1, 2. (2.15) ∂xi ∂xi Ω
Ω
∂Ω
Sfruttiamo le (2.15) tenendo conto del fatto che Δu = div∇u =
!2 i=1
Supponendo che tutti gli integrali che compaiono abbiano senso, si trova 2 " ∂ ∂u v dΩ − Δuv dΩ = − ∂xi ∂xi i=1 Ω Ω 2 2 " " ∂u ∂v ∂u = dΩ − vni dγ ∂xi ∂xi ∂xi i=1Ω i=1∂Ω $ #" " 2 2 ∂u ∂v ∂u dΩ − ni v dγ. = ∂xi ∂xi ∂xi Ω i=1
∂Ω
i=1
∂ ∂u . ∂xi ∂xi
22
2 Equazioni di tipo ellittico
Si perviene alla relazione seguente, detta formula di Green per il laplaciano ∂u − Δuv dΩ = ∇u · ∇v dΩ − v dγ. ∂n Ω
Ω
(2.16)
∂Ω
Analogamente al caso monodimensionale, il problema di Dirichlet omogeneo ci porterà a scegliere funzioni test nulle al bordo e, conseguentemente, il termine al contorno che compare nella (2.16) sarà a sua volta nullo. Tenendo conto di questo fatto, giungiamo alla seguente formulazione debole per il problema (2.13): 1 trovare u ∈ H0 (Ω) : ∇u · ∇v dΩ = fv dΩ ∀v ∈ H10 (Ω), (2.17) Ω
Ω
essendo f ∈ L2 (Ω) ed avendo posto ∂v ∈ L2 (Ω), i = 1, 2}, ∂xi H10 (Ω) = {v ∈ H1 (Ω) : v = 0 su ∂Ω}.
H1 (Ω) = {v : Ω→R t.c. v ∈ L2 (Ω),
Le derivate vanno intese nel senso delle distribuzioni e la condizione v = 0 su ∂Ω nel senso delle tracce (si veda l’Appendice A). In particolare, osserviamo che se u, v ∈ H10 (Ω), allora ∇u, ∇v ∈ [L2 (Ω)]2 e quindi ∇u · ∇v ∈ L1 (Ω). Quest’ultima proprietà si ottiene applicando la seguente disuguaglianza |(∇u, ∇v)| ≤ ∇uL2(Ω) ∇vL2(Ω) conseguenza diretta della disuguaglianza di Cauchy-Schwarz (A.16). Dunque l’integrale che compare a sinistra della (2.17) ha perfettamente senso così come quello che compare a destra. Analogamente al caso monodimensionale, anche nel caso bidimensionale si dimostra che il problema (2.17) è equivalente al seguente problema variazionale: ⎧ J(u) = inf J(v), essendo ⎪ ⎪ ⎨ v∈V trovare u ∈ V : 1 2 ⎪ J(v) = |∇v| dΩ − fv dΩ, ⎪ ⎩ 2 Ω
Ω
avendo posto V = H10 (Ω). Possiamo riscrivere la formulazione debole (2.17) in un modo più compatto introducendo la seguente forma a : V × V → R, a(u, v) =
∇u · ∇v dΩ Ω
(2.18)
2.3 Il problema di Poisson nel caso bidimensionale
23
ed il seguente funzionale F : V → R, F (v) =
fv dΩ Ω
(funzionali e forme sono introdotti nell’Appendice A). Il problema (2.17) diventa allora: trovare u ∈ V : a(u, v) = F (v)
∀v ∈ V.
(2.19)
Notiamo che a(·, ·) è una forma bilineare (ovvero lineare rispetto ad entrambi i suoi argomenti), mentre F è un funzionale lineare. Allora |F (v)| ≤ fL2 (Ω) vL2 (Ω) ≤ fL2 (Ω) vH1 (Ω) . Di conseguenza, F è anche limitato. Grazie alla definizione (A.2) dell’Appendice A si può concludere che F V ≤ fL2 (Ω) . Essendo F lineare e limitato, F appartiene a V , lo spazio duale di V (si veda l’Appendice A.1). 2.3.2 Equivalenza, nel senso delle distribuzioni, tra la forma debole e la forma forte del problema di Dirichlet Vogliamo dimostrare che le equazioni del problema (2.13) vengono realmente soddisfatte dalla soluzione debole, anche se solo nel senso delle distribuzioni. A tal fine riprendiamo la formulazione debole (2.17). Sia ora D(Ω) lo spazio delle funzioni infinitamente derivabili ed a supporto compatto in Ω (si veda l’Appendice A). Ricordiamo che D(Ω) ⊂ H10 (Ω). Scegliendo allora v = ϕ ∈ D(Ω) nella (2.17), avremo ∇u · ∇ϕ dΩ = fϕ dΩ ∀ϕ ∈ D(Ω). (2.20) Ω
Ω
Applicando la formula di Green (2.16) al primo membro della (2.20), troviamo ∂u ϕ dγ = fϕ dΩ − Δuϕ dΩ + ∂n Ω
∂Ω
∀ϕ ∈ D(Ω),
Ω
dove gli integrali vanno intesi nel senso delle dualità, ovvero: − Δuϕ dΩ Ω ∂u ϕ dγ ∂n ∂Ω
=
D (Ω) −Δu, ϕD(Ω) ,
=
D (∂Ω)
∂u , ϕD(∂Ω). ∂n
24
2 Equazioni di tipo ellittico
Essendo ϕ ∈ D(Ω), l’integrale di bordo è nullo, di modo che D (Ω) −Δu
− f, ϕD(Ω) = 0
∀ϕ ∈ D(Ω),
il che corrisponde a dire che −Δu − f è la distribuzione nulla, ovvero −Δu = f
in D (Ω).
L’equazione differenziale (2.13) è dunque verificata, pur di intendere le derivate nel senso delle distribuzioni e di interpretare l’uguaglianza fra −Δu e f non in senso puntuale, ma nel senso delle distribuzioni (e quindi quasi ovunque in Ω). Infine, l’annullamento di u sul bordo (nel senso delle tracce) è conseguenza immediata dell’appartenenza di u a H10 (Ω). 2.3.3 Il problema con condizioni miste non omogenee Il problema che vogliamo risolvere è ora il seguente: ⎧ ⎪ ⎨ −Δu = f u=g ⎪ ⎩ ∂u = φ ∂n
in Ω, su ΓD ,
(2.21)
su ΓN , ◦
◦
dove ΓD e ΓN realizzano una partizione di ∂Ω, ovvero ΓD ∪ΓN = ∂Ω, Γ D ∩ Γ N = ∅ (si veda la Fig. 2.3). Nel caso del problema di Neumann, in cui ΓD = ∅, i dati f e φ dovranno verificare la seguente condizione di compatibilità −
φ dγ =
∂Ω
f dΩ
(2.22)
Ω
affinché il problema possa avere soluzione. La (2.22) si deduce integrando l’equazione differenziale in (2.21) ed applicando il teorema della divergenza (2.14) ∂u dγ. − Δu dΩ = − div(∇u) dΩ = − ∂n Ω
Ω
∂Ω
Osserviamo inoltre che, sempre nel caso del problema di Neumann, la soluzione sarà definita solo a meno di una costante additiva. Per avere unicità basterà, ad esempio, trovare una funzione che sia a media nulla in Ω. Supponiamo ora che ΓD = ∅ in modo da assicurare unicità della soluzione del problema forte senza condizioni di compatibilità sui dati. Supponiamo inoltre che f ∈ L2 (Ω), g ∈ H1/2 (ΓD ) e φ ∈ L2 (ΓN ), avendo indicato con H1/2 (ΓD ) lo spazio delle funzioni di L2 (ΓD ) che sono tracce di funzioni di H1 (Ω) (si veda la Sez. A.4.3).
2.3 Il problema di Poisson nel caso bidimensionale
25
ΓN
Ω
n ΓD Figura 2.3. Il dominio computazionale Ω
Grazie alla formula di Green (2.16), dalla (2.21) otteniamo ∂u ∇u · ∇v dΩ − v dγ = fv dΩ. ∂n Ω
∂Ω
(2.23)
Ω
Ricordando che ∂u/∂n = φ su ΓN e sfruttando l’additività degli integrali, la (2.23) diventa ∂u ∇u · ∇v dΩ − (2.24) v dγ − φ v dγ = fv dΩ. ∂n Ω
ΓD
ΓN
Ω
Imponendo che la funzione test v sia nulla su ΓD , il primo integrale al bordo che compare nella (2.24) si annulla. Il problema misto ammette perciò la seguente formulazione debole trovare u ∈ Vg : ∇u · ∇v dΩ = fv dΩ + φ v dγ ∀v ∈ V, (2.25) Ω
Ω
ΓN
avendo denotato con V lo spazio V = H1ΓD (Ω) = {v ∈ H1 (Ω) : v|ΓD = 0},
(2.26)
ed avendo posto Vg = {v ∈ H1 (Ω) : v|ΓD = g}. La formulazione (2.25) non è soddisfacente, non solo perché la scelta degli spazi non è “simmetrica” (v ∈ V , mentre u ∈ Vg ), ma soprattutto perché Vg è una varietà affine, ma non è un sottospazio di H1 (Ω) (infatti non è vero che combinazioni lineari di elementi di Vg siano ancora elementi di Vg ). Procediamo allora in modo analogo a quanto visto nella Sez. 2.2.2. Supponiamo di conoscere una funzione Rg , detta rilevamento del dato al bordo, tale che Rg ∈ H1 (Ω), Rg |ΓD = g.
26
2 Equazioni di tipo ellittico
Supponiamo inoltre che tale rilevamento sia continuo, ovvero che ∃C > 0 : Rg H1 (Ω) ≤ CgH1/2 (ΓD ) , ∀g ∈ H1/2 (ΓD ). ◦
◦
Poniamo u = u − Rg e iniziamo con l’osservare che u|ΓD = u|ΓD − Rg |ΓD =0, cioè ◦ ◦ u ∈ H1ΓD (Ω). Inoltre, essendo ∇u = ∇u + ∇Rg , il problema (2.25) diventa ◦
◦
trovare u ∈ H1ΓD (Ω) : a(u, v) = F (v)
∀v ∈ H1ΓD (Ω),
(2.27)
avendo definito la forma bilineare a(·, ·) come nella (2.18), mentre il funzionale lineare F assume ora la forma F (v) = fv dΩ + φ v dγ − ∇Rg · ∇v dΩ. Ω
ΓN
Ω
Il problema ora è simmetrico essendo lo spazio in cui si cerca la (nuova) soluzione incognita coincidente con lo spazio delle funzioni test. Le condizioni di Dirichlet sono dette essenziali in quanto vengono imposte in maniera esplicita nella determinazione dello spazio funzionale in cui il problema è posto. Le condizioni di Neumann, invece, sono dette naturali, in quanto vengono soddisfatte implicitamente dalla soluzione del problema (si veda a questo proposito la Sez. 2.3.4). Questa differenza di trattamento avrà importanti ripercussioni sui problemi approssimati. Osservazione 2.3 La riduzione del problema a forma “simmetrica” consentirà di ottenere in fase di risoluzione numerica (ad esempio con il metodo degli elementi finiti) un sistema lineare con matrice simmetrica. • Osservazione 2.4 Costruire un rilevamento Rg di una funzione al bordo di forma arbitraria può risultare assai problematico. Tale compito è più agevole nell’ambito dell’approssimazione numerica, dove in genere viene costruito un rilevamento di un’approssimazione della funzione g (si veda il Cap. 3). • 2.3.4 Equivalenza, nel senso delle distribuzioni, tra la forma debole e la forma forte per il problema di Neumann Consideriamo il problema di Neumann non omogeneo −Δu + σu = f in Ω, ∂u =φ su ∂Ω, ∂n
(2.28)
dove σ è una costante positiva o, più in generale, una funzione σ ∈ L∞ (Ω) tale che σ(x) ≥ α0 q.o. in Ω, per un’opportuna costante α0 > 0. Supponiamo inoltre
2.3 Il problema di Poisson nel caso bidimensionale
27
che f ∈ L2 (Ω) e che φ ∈ L2 (∂Ω). Procedendo come fatto nella Sez. 2.3.3, si può derivare la seguente formulazione debole: trovare u ∈ H1 (Ω) : ∇u·∇v dΩ + σuv dΩ = fv dΩ + φv dγ Ω
Ω
Ω
∀v ∈ H1 (Ω).
(2.29)
∂Ω
Prendendo v = ϕ ∈ D(Ω) e controintegrando per parti, si ottiene D (Ω) −Δu
+ σu − f, ϕD(Ω) = 0
∀ϕ ∈ D(Ω).
Pertanto in D (Ω)
−Δu + σu = f ovvero −Δu + σu − f = 0
q. o. in Ω.
(2.30)
Nel caso in cui u ∈ C 2 (Ω) l’applicazione della formula di Green (2.16) in (2.29) conduce a ∂u − φ)v = 0 ∀v ∈ H1 (Ω), (−Δu + σu − f)v dΩ + ( ∂n Ω
∂Ω
e quindi, grazie a (2.30), ∂u =φ ∂n
su ∂Ω.
Nel caso in cui la soluzione u di (2.29) sia solo in H1 (Ω) si può utilizzare la formula di Green generalizzata che afferma che esiste un unico funzionale lineare e continuo g ∈ (H1/2 (∂Ω)) (detto derivata normale generalizzata), operante sullo spazio H1/2 (∂Ω) che soddisfa ∇u·∇v dΩ = −Δu, v + g, v ∀v ∈ H1 (Ω). Ω
Abbiamo indicato con < · , · > la dualità fra H1 (Ω) e il suo duale, e con · , · quella fra H1/2 (∂Ω) e il suo duale. Chiaramente g coincide con la classica derivata normale di u se u ha sufficiente regolarità. Per semplicità useremo nel seguito la notazione ∂u/∂n nel senso di derivata normale generalizzata. Si ottiene dunque che per v ∈ H1 (Ω) −Δu + σu − f, v + ∂u/∂n − φ, v = 0; grazie a (2.30), si conclude allora che ∂u/∂n − φ, v = 0 e quindi che ∂u/∂n = φ q. o. su ∂Ω.
∀v ∈ H1 (Ω)
28
2 Equazioni di tipo ellittico
2.4 Problemi ellittici più generali Consideriamo ora il problema ⎧ ⎪ ⎨ −div(μ∇u) + σu = f u=g ⎪ ⎩ μ ∂u = φ ∂n ◦
in Ω, su ΓD ,
(2.31)
su ΓN ,
◦
dove ΓD ∪ΓN = ∂Ω con Γ D ∩ Γ N = ∅. Supporremo che f ∈ L2 (Ω), μ, σ ∈ L∞ (Ω). Supponiamo inoltre che ∃μ0 > 0 tale che μ(x) ≥ μ0 e σ(x) ≥ 0 q. o. in Ω. Nel solo caso in cui σ = 0 richiederemo che ΓD sia non vuoto onde evitare che la soluzione perda di unicità. Supporremo infine che g e φ siano funzioni sufficientemente regolari su ∂Ω, ad esempio g ∈ H1/2 (ΓD ) e φ ∈ L2 (ΓN ). Anche in questo caso procediamo moltiplicando l’equazione per una funzione test v ed integrando (ancora formalmente) sul dominio Ω: [−div(μ∇u) + σu] v dΩ = fv dΩ. Ω
Ω
Applicando la formula di Green si ottiene ∂u μ∇u · ∇v dΩ + σ u v dΩ − μ v dγ = fv dΩ, ∂n Ω
Ω
Ω
∂Ω
che possiamo anche riscrivere come ∂u ∂u μ∇u · ∇v dΩ + σ u v dΩ − μ v dγ = fv dΩ + μ v dγ. ∂n ∂n Ω
Ω
ΓD
Ω
ΓN
La funzione μ∂u/∂n è detta derivata conormale di u associata all’operatore −div (μ∇u). Su ΓD imponiamo che la funzione test v sia nulla, mentre su ΓN imponiamo che la derivata conormale valga φ. Otteniamo μ∇u · ∇v dΩ + σ u v dΩ = fv dΩ + φv dγ. Ω
Ω
Ω
ΓN
◦
Indicato con Rg un rilevamento di g, poniamo u = u − Rg . La formulazione debole del problema (2.31) è allora ◦
trovare u ∈ H1ΓD (Ω) : ◦ ◦ μ∇u · ∇v dΩ + σ uv dΩ = fv dΩ + Ω Ω − μ∇Rg · ∇v dΩ − σRg v dΩ + φv dγ
Ω
Ω
Ω
ΓN
∀v ∈ H1ΓD (Ω).
2.4 Problemi ellittici più generali
29
Definiamo la forma bilineare a : V × V → R, a(u, v) =
μ∇u · ∇v dΩ +
Ω
σ u v dΩ Ω
ed il funzionale lineare e limitato F : V → R, F (v) = − a(Rg , v) +
fv dΩ +
Ω
φv dγ.
(2.32)
ΓN
Il problema precedente si può allora riscrivere come: ◦
◦
trovare u ∈ H1ΓD (Ω) : a(u, v) = F (v)
∀v ∈ H1ΓD (Ω).
(2.33)
Un problema ancora più generale di (2.31) è il seguente: ⎧ Lu = f in Ω, ⎪ ⎨ u=g su ΓD , ⎪ ⎩ ∂u = φ su ΓN , ∂nL ◦
◦
essendo Ω ⊂ R2 , ΓD ∪ ΓN = ∂Ω con Γ D ∩ Γ N = ∅, ed avendo definito Lu = −
2 " ∂ ∂u aij + σu, ∂xi ∂xj
i,j=1
dove i coefficienti aij sono in generale delle funzioni definite in Ω. La derivata 2 " ∂u ∂u = aij ni ∂nL ∂xj
(2.34)
i,j=1
è detta derivata conormale di u associata all’operatore L (essa coincide con la derivata normale quando Lu = −Δu). Supponiamo che σ(x) ∈ L∞ (Ω) e che ∃α0 > 0 tale che σ(x) ≥ α0 q.o. in Ω. Inoltre, ¯ → R siano funzioni continue ∀i, j = 1, 2 e che supponiamo che i coefficienti aij : Ω esista una costante α positiva tale che ∀ξ = (ξ1 , ξ2 )T ∈ R2
2 "
aij (x)ξi ξj ≥ α
i,j=1
2 "
ξi2
q.o. in Ω.
(2.35)
i=1
In tal caso la formulazione debole è ancora la stessa di (2.33), il funzionale F è ancora quello introdotto in (2.32), mentre ⎞ ⎛ 2 " ∂u ∂v a(u, v) = ⎝ aij + σuv⎠ dΩ. (2.36) ∂x ∂x j i i,j=1 Ω
30
2 Equazioni di tipo ellittico
Si può dimostrare (si veda l’Esercizio 2) che sotto l’ipotesi (2.35), detta ipotesi di ellitticità dei coefficienti, questa nuova forma bilineare è continua e coerciva, nel senso delle definizioni (A.6) e (A.9). Queste proprietà saranno sfruttate nell’analisi di buona posizione del problema (2.33) (si veda la Sez. 2.4.1). Problemi ellittici per operatori del quarto ordine sono proposti negli Esercizi 4 e 6, mentre un problema ellittico derivante dalla teoria dell’elasticità lineare è affrontato nell’Esercizio 7. 2.4.1 Teorema di esistenza e unicità Vale il seguente risultato fondamentale (per le definizioni si rimanda all’Appendice A.1): Lemma 2.1 (di Lax-Milgram) Sia V uno spazio di Hilbert, a(·, ·) : V ×V → R una forma bilineare continua e coerciva, F (·) : V → R un funzionale lineare e limitato. Allora esiste unica la soluzione del problema: trovare u ∈ V : a(u, v) = F (v)
∀v ∈ V.
(2.37)
Dimostrazione. Si basa su due classici risultati di Analisi Funzionale: il teorema di rappresentazione di Riesz, ed il teorema dell’immagine chiusa di Banach. Il lettore interessato può consultare, ad esempio, [QV94, Cap. 5]. Il Lemma di Lax-Milgram assicura dunque che la formulazione debole di un problema ellittico è ben posta, pur di verificare le ipotesi sulla forma a(·, ·) e sul funzionale F (·). Da questo Lemma discendono varie conseguenze. Riportiamo una della più importanti nel seguente Corollario. Corollario 2.1 La soluzione di (2.37) è limitata in funzione dei dati, ovvero uV ≤
1 F V , α
dove α è la costante di coercività associata alla forma bilineare a(·, ·), mentre F V è la norma del funzionale F . Dimostrazione. È sufficiente scegliere v = u nella (2.37) ed usare quindi la coercività della forma bilineare a(·, ·). Infatti, si ha che αu2V ≤ a(u, u) = F (u). D’altra parte F (u) ≤ F V uV dal che segue la tesi.
2.5 Esercizi
31
Osservazione 2.5 Se la forma bilineare a(·, ·) è anche simmetrica, ovvero se a(u, v) = a(v, u) ∀u, v ∈ V, allora il problema (2.37) è equivalente al seguente problema variazionale (si veda l’Esercizio 1), ⎧ ⎨ trovare u ∈ V : J(u) = minJ(v), v∈V (2.38) ⎩ con J(v) = 1 a(v, v) − F (v). 2 •
2.5 Esercizi 1. Si dimostri che il problema debole (2.37) è equivalente al problema variazionale (2.38) se la forma bilineare è coerciva e simmetrica. [Soluzione: sia u ∈ V la soluzione del problema debole e sia w un generico elemento di V . Grazie alla bilinearità ed alla simmetria della forma, si trova 1 [a(u, u) + 2a(u, w) + a(w, w)] − [F (u) + F (w)] 2 1 1 = J(u) + [a(u, w) − F (w)] + a(w, w) = J(u) + a(w, w). 2 2
J(u + w)
=
Grazie alla coercività si ricava allora che J(u + w) ≥ J(u) + (α/2)w2V , ovvero che ∀v ∈ V con v = u, J(v) > J(u). Viceversa, se u è punto di minimo per J, allora scrivendo la condizione di estremalità limδ→0 (J(u + δv) − J(u)) /δ = 0 si trova la (2.37). ] 2. Si dimostri che la forma bilineare (2.36) sotto le ipotesi indicate nel testo sui coefficienti, è continua e coerciva. [Soluzione: la forma bilineare è ovviamente continua. Grazie all’ipotesi (2.35) ed al fatto che σ ∈ L∞ (Ω) è positiva q.o. in Ω, è anche coerciva in quanto a(v, v) ≥ α|v|2H1(Ω) + α0 v2L2(Ω) ≥ min(α, α0)v2V
∀v ∈ V.
Facciamo notare che se V = H1 (Ω) allora la condizione α0 > 0 è necessaria affinché la forma bilineare sia coerciva. Nel caso in cui V = H10 (Ω), è sufficiente 2 che α0 > −α/CΩ , essendo CΩ la costante che interviene nella disuguaglianza di Poincaré. In tal caso si può sfruttare infatti l’equivalenza fra · H1(Ω) e | · |H1(Ω) . Abbiamo indicato con |v|H1(Ω) = ∇vL2 (Ω) la seminorma di v in H1 (Ω) (si veda l’Esempio A.11 dell’Appendice A).] 3. Siano V = H10 (0, 1), a : V × V → R e F : V → R definiti nel modo seguente: 1
1 (−1 − 4x)v(x) dx, a(u, v) =
F (v) = 0
0
(1 + x)u (x)v (x) dx.
32
2 Equazioni di tipo ellittico
Si dimostri che il problema: trovare u ∈ V t.c. a(u, v) = F (v) ∀v ∈ V , ammette un’unica soluzione. Si verifichi inoltre che essa coincide con u(x) = x2 − x. [Soluzione: si dimostra facilmente che la forma bilineare è continua e coerciva in V . Allora, essendo F un funzionale lineare e limitato, grazie al Lemma di LaxMilgram, si può concludere che la soluzione esiste unica in V . Verifichiamo che è proprio u(x) = x2 − x. Quest’ultima funzione appartiene sicuramente a V (essendo continua e derivabile e tale che u(0) = u(1) = 0). Inoltre, dalla relazione 1
1 1 (1 + x)u (x)v (x) dx = − ((1 + x)u (x)) v(x) dx = (−1 − 4x)v(x) dx,
0
0
0
∀v ∈ V , si deduce che affinché u sia soluzione si deve avere ((1 + x)u (x)) = 1 + 4x quasi ovunque in (0, 1). Tale proprietà è vera per la u proposta.] 4. Si trovi la formulazione debole del problema ⎧ 2 Δ u = f in Ω, ⎪ ⎨ u=0 su ∂Ω, ⎪ ⎩ ∂u = 0 su ∂Ω, ∂n essendo Ω ⊂ R2 un aperto limitato di frontiera ∂Ω regolare, Δ2 · = ΔΔ· l’operatore bilaplaciano e f ∈ L2 (Ω) una funzione assegnata. [Soluzione: la formulazione debole, ottenuta applicando due volte la formula di Green all’operatore bilaplaciano, è 2 trovare u ∈ H0 (Ω) : ΔuΔv dΩ = fv dΩ ∀v ∈ H20 (Ω), (2.39) Ω
Ω
dove H20 (Ω) = {v ∈ H2 (Ω) : v = 0, ∂v/∂n = 0 su ∂Ω}.] 5. Per ogni funzione v dello spazio di Hilbert H20 (Ω), definito nell’Esercizio 4, si può dimostrare che la seminorma |·|H2(Ω) definita come |v|H2(Ω) = ( Ω |Δv|2 dΩ)1/2 , è di fatto equivalente alla norma · H2(Ω) . Utilizzando tale proprietà, si dimostri che il problema (2.39) ammette un’unica soluzione. [Soluzione: poniamo V = H20 (Ω). Allora, a(u, v) = ΔuΔv dΩ e F (v) = fv dΩ, Ω
Ω
sono rispettivamente una forma bilineare da V × V → R ed un funzionale lineare e limitato. Per dimostrare esistenza ed unicità basta invocare il Lemma di Lax-Milgram in quanto la forma bilineare è coerciva e continua. In effetti, grazie all’equivalenza tra norma e seminorma, esistono due costanti positive α e M tali che a(u, u) = |u|2V ≥ αu2V , |a(u, v)| ≤ M uV vV .]
2.5 Esercizi
33
6. Si scriva la formulazione debole del problema del quart’ordine ⎧ 2 Δ u − ∇ · (μ∇u) + σu = 0 in Ω, ⎪ ⎪ ⎪ ⎨ u=0 su ∂Ω, ⎪ ⎪ ⎪ ⎩ ∂u = 0 su ∂Ω, ∂n introducendo opportuni spazi funzionali, sapendo che Ω ⊂ R2 è un aperto limitato con bordo ∂Ω regolare e che μ(x) e σ(x) sono funzioni note definite su Ω. [Soluzione: si procede come nei due esercizi precedenti supponendo che i coefficienti μ e σ stiano in L∞ (Ω).] ◦
◦
7. Sia Ω ⊂ R2 con frontiera ∂Ω = ΓD ∪ΓN regolare e Γ D ∩ Γ N = ∅. Introducendo opportuni spazi funzionali, si trovi la formulazione debole del seguente problema dell’elasticità lineare ⎧ 2 " ⎪ ∂ ⎪ ⎪ − σij (u) = fi in Ω, i = 1, 2, ⎪ ⎪ ∂x ⎪ ⎨ j=1 j su ΓD , i = 1, 2, (2.40) ui = 0 ⎪ 2 ⎪ " ⎪ ⎪ ⎪ ⎪ σij (u)nj = gi su ΓN , i = 1, 2, ⎩ j=1
avendo indicato come di consueto con n = (n1 , n2 )T il vettore normale uscente a Ω, u = (u1 , u2 )T il vettore delle incognite, f = (f1 , f2 )T e g = (g1 , g2 )T due funzioni assegnate. Inoltre si è posto per i, j = 1, 2, 1 ∂ui ∂uj σij (u) = λdiv(u)δij + 2μij (u), ij (u) = , + 2 ∂xj ∂xi essendo λ e μ due costanti positive e δij il simbolo di Kronecker. Il sistema (2.40) consente di descrivere lo spostamento u di un corpo elastico, omogeneo ed isotropo, che nella sua posizione di equilibrio occupa la regione Ω, sotto l’azione di una forza esterna per unità di volume f e di un carico distribuito su ΓN di intensità g (si veda la Fig. 2.4). g ΓN
f
Ω
ΓD
Figura 2.4. Un corpo elastico parzialmente vincolato e soggetto all’azione di un carico esterno
34
2 Equazioni di tipo ellittico
[Soluzione: la formulazione debole di (2.40) si trova osservando che σij = σji e utilizzando la seguente formula di Green 2 "
σij (u)ij (v) dΩ
=
i,j=1 Ω
−
2 " i,j=1∂Ω 2 "
i,j=1 Ω
σij (u)nj vi dγ ∂σij (u) vi dΩ. ∂xj
(2.41)
Assumendo v ∈ V = (H1ΓD (Ω))2 (lo spazio delle funzioni vettoriali che hanno componenti vi ∈ H1ΓD (Ω) per i = 1, 2), si trova la seguente formulazione debole trovare u ∈ V tale che a(u, v) = F (v) ∀v ∈ V , con a(u, v) =
λdiv(u)div(v) dΩ + 2μ
Ω F (v) = f · v dΩ + g · v dγ. Ω
2 "
ij (u)ij (v) dΩ,
i,j=1Ω
ΓN
Sarà sufficiente supporre f ∈ (L2 (Ω))2 e g ∈ (L2 (ΓN ))2 .] 8. Si dimostri, attraverso l’applicazione del Lemma di Lax-Milgram, che la soluzione della formulazione debole (2.41) esiste ed è unica sotto opportune condizioni sulla regolarità dei dati e sapendo che vale la seguente disuguaglianza di Korn ∃C0 > 0 :
2 "
ij (v)ij (v) dΩ ≥ C0 v2V
∀v ∈ V.
i,j=1Ω
[Soluzione: si consideri la formulazione debole introdotta nella soluzione dell’esercizio precedente. La forma bilineare definita nella (2.41) è continua ed è anche coerciva grazie alla disuguaglianza di Korn. F è un funzionale lineare e limitato e quindi, per il Lemma di Lax-Milgram, la soluzione esiste ed è unica.]
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
Affrontiamo in questo capitolo la risoluzione numerica dei problemi ai limiti ellittici considerati nel Cap. 2 introducendo il metodo di Galerkin. Illustreremo poi, come caso particolare, il metodo degli elementi finiti. Esso verrà ulteriormente sviluppato nei capitoli seguenti.
3.1 Approssimazione con il metodo di Galerkin Come visto nel Cap. 2 la formulazione debole di un generico problema ellittico posto su un dominio Ω ⊂ Rd si può scrivere nel modo seguente trovare u ∈ V : a(u, v) = F (v)
∀v ∈ V,
(3.1)
essendo V un opportuno spazio di Hilbert, sottospazio di H1 (Ω), a(·, ·) una forma bilineare continua e coerciva da V × V in R, F (·) un funzionale lineare e limitato da V in R. Sotto tali ipotesi il Lemma di Lax-Milgram assicura esistenza ed unicità della soluzione. Sia Vh una famiglia di spazi dipendente da un parametro positivo h, tali che Vh ⊂ V,
dim Vh = Nh < ∞ ∀h > 0.
Il problema approssimato assume allora la forma trovare uh ∈ Vh : a(uh , vh ) = F (vh )
∀vh ∈ Vh ,
(3.2)
e viene detto problema di Galerkin. Indicando con {ϕj , j = 1, 2, . . . , Nh } una base di Vh , basta che la (3.2) sia verificata per ogni funzione della base, in quanto tutte le funzioni dello spazio Vh sono una combinazione lineare delle ϕj . Richiederemo allora che a(uh , ϕi ) = F (ϕi ), i = 1, 2, . . ., Nh .
A. Quarteroni: Modellistica numerica per problemi differenziali, 4a edizione c Springer-Verlag Italia, Milano 2008
(3.3)
36
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
Naturalmente, poiché uh ∈ Vh , uh (x) =
Nh "
uj ϕj (x),
j=1
dove gli uj , j = 1, . . . , Nh , sono dei coefficienti incogniti. Le equazioni (3.3) diventano allora Nh "
uj a(ϕj , ϕi ) = F (ϕi ),
i = 1, 2, . . . , Nh .
(3.4)
j=1
Denotiamo con A la matrice (detta di rigidezza o di stiffness) con elementi aij =a(ϕj , ϕi ) e con f il vettore di componenti fi =F (ϕi ). Se si indica con u il vettore che ha come componenti i coefficienti incogniti uj , le (3.4) sono equivalenti al sistema lineare Au = f .
(3.5)
Evidenziamo alcune caratteristiche della matrice di rigidezza che sono indipendenti dalla base scelta per Vh , ma che dipendono esclusivamente dalle caratteristiche del problema debole che si sta approssimando. Altre, come il numero di condizionamento o la struttura di sparsità , dipenderanno invece dalla base considerata e verranno pertanto riportate nelle sezioni dedicate ai singoli metodi numerici. Ad esempio, basi formate da funzioni con supporto piccolo saranno preferibili in quanto tutti gli elementi aij relativi a funzioni di base che hanno supporti con intersezione nulla risulteranno nulli. Da un punto di vista computazionale verranno privilegiate quelle scelte di Vh che richiedono uno sforzo computazionale modesto per il calcolo degli elementi della matrice, nonché del termine noto f. Teorema 3.1 La matrice A associata alla discretizzazione di un problema ellittico con il metodo di Galerkin è definita positiva.
Dimostrazione. Ricordiamo che una matrice B ∈ Rn×n si dice definita positiva se vT Bv ≥ 0 ∀v ∈ Rn
ed inoltre vT Bv = 0 ⇔
v = 0.
(3.6)
La corrispondenza v = (vi ) ∈ RNh ↔ vh (x) =
Nh " j=1
vj φj ∈ Vh
(3.7)
3.2 Analisi del metodo di Galerkin
37
definisce una biiettività fra gli spazi RNh e Vh . Per un generico vettore v = (vi ) di RNh , grazie alla bilinearità ed alla coercività della forma a(·, ·), otteniamo vT Av
=
=
Nh " Nh " j=1 i=1 Nh " Nh "
vi aij vj =
Nh " Nh "
vi a(ϕj , ϕi )vj ⎛ ⎞ Nh Nh " " a(vj ϕj , vi ϕi ) = a ⎝ vj ϕj , vi ϕi ⎠ j=1 i=1
j=1 i=1
=
j=1
i=1
a(vh , vh ) ≥ αvh 2V ≥ 0.
Inoltre, se vT Av = 0 allora, per quanto appena ricavato, anche vh 2V = 0 ovvero vh = 0 e quindi v = 0. Di conseguenza la tesi è dimostrata essendo soddisfatte le due condizioni (3.6). Si può inoltre dimostrare la seguente proprietà (si veda l’Esercizio 4): Proprietà 3.1 La matrice A è simmetrica se e solo se la forma bilineare a(·, ·) è simmetrica. Ad esempio, nel caso del problema di Poisson con condizioni al bordo di Dirichlet (2.17) o miste (2.27), la matrice A è simmetrica e definita positiva. La risoluzione numerica di un sistema di questo tipo potrà essere effettuata in modo efficiente sia usando metodi diretti, come la fattorizzazione di Cholesky, sia usando metodi iterativi come il metodo del gradiente coniugato (si veda l’Appendice B e, ad esempio, [QSS08, Cap. 4]).
3.2 Analisi del metodo di Galerkin Ci proponiamo in questa sezione di studiare le caratteristiche del metodo di Galerkin, in particolare di verificarne tre fondamentali proprietà: – esistenza ed unicità della soluzione discreta uh ; – stabilità della soluzione discreta uh ; – convergenza di uh alla soluzione esatta u del problema (3.1), per h → 0. 3.2.1 Esistenza e unicità Il Lemma di Lax-Milgram, enunciato nel Cap. 2, vale per ogni spazio di Hilbert e quindi, in particolare, per lo spazio Vh , essendo quest’ultimo un sottospazio chiuso dello spazio di Hilbert V . Inoltre la forma bilineare a(·, ·) e il funzionale F (·) sono i medesimi del problema variazionale (3.1). Sono dunque soddisfatte le ipotesi richieste dal Lemma. Discende allora il seguente risultato:
38
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
Corollario 3.1 La soluzione del problema di Galerkin (3.2) esiste ed è unica. È tuttavia istruttivo fornire di questo Corollario una dimostrazione costruttiva senza utilizzare il Lemma di Lax-Milgram. Come abbiamo visto, infatti, il problema di Galerkin (3.2) è equivalente al sistema lineare (3.5). Dimostrando l’esistenza e l’unicità per l’uno è automaticamente dimostrata anche l’esistenza e l’unicità per l’altro. Concentriamo dunque la nostra attenzione sul sistema lineare (3.5). La matrice A è invertibile in quanto l’unica soluzione del sistema Au = 0 è la soluzione identicamente nulla. Questo discende immediatamente dal fatto che A è definita positiva. Di conseguenza, il sistema lineare (3.5) ammette un’unica soluzione e quindi, anche il problema di Galerkin, ad esso equivalente, ammette un’unica soluzione.
3.2.2 Stabilità Il Corollario 2.1 ci permette di fornire il seguente risultato di stabilità. Corollario 3.2 Il metodo di Galerkin è stabile, uniformemente rispetto ad h, in quanto vale la seguente maggiorazione della soluzione uh V ≤
1 F V . α
La stabilità del metodo garantisce che la norma uh V della soluzione discreta rimane limitata al tendere di h a zero, uniformemente rispetto ad h. Equivalentemente, garantisce che uh − wh V ≤ α1 F − GV , essendo uh e wh soluzioni numeriche corrispondenti a due dati diversi F e G.
3.2.3 Convergenza Vogliamo ora dimostrare che la soluzione del problema di Galerkin converge alla soluzione del problema debole (3.1) quando h tende a zero. Di conseguenza, a patto di prendere h sufficientemente piccolo, si potrà approssimare bene quanto si vuole la soluzione esatta u con la soluzione di Galerkin uh . Dimostriamo innanzitutto la seguente proprietà di consistenza. Lemma 3.1 (di Céa) Il metodo di Galerkin è fortemente consistente, ovvero a(u − uh , vh ) = 0 ∀vh ∈ Vh .
(3.8)
3.2 Analisi del metodo di Galerkin
39
Dimostrazione. Essendo Vh ⊂ V , la soluzione esatta u soddisfa il problema debole (3.1) per ogni elemento v=vh ∈ Vh , e quindi si ha a(u, vh ) = F (vh )
∀vh ∈ Vh .
(3.9)
Sottraendo membro a membro la (3.2) dalla (3.9), si ottiene a(u, vh ) − a(uh , vh ) = 0 ∀vh ∈ Vh , dalla quale, grazie alla bilinearità della forma a(·, ·), segue la tesi.
Facciamo notare che la (3.9) coincide con la definizione di consistenza forte data nella (1.10). La proprietà (3.8), nota anche come ortogonalità di Galerkin, esprime il fatto che il metodo di Galerkin è un metodo di proiezione ortogonale. Infatti, se a(·, ·) fosse il prodotto scalare euclideo, u e uh dei vettori e Vh un sottospazio dello spazio euclideo V , la (3.8) esprimerebbe l’ortogonalità dell’errore u − uh rispetto al sottospazio Vh .
u
u − uh Vh uh
Figura 3.1. Interpretazione geometrica del Lemma di Céa
Se a(·, ·) è simmetrica, essa definisce un prodotto scalare in V . Allora la proprietà di consistenza si interpreta come l’ortogonalità, rispetto al prodotto scalare a(·, ·), tra l’errore di approssimazione, u−uh , e il sottospazio Vh . In questo senso, analogamente al caso euclideo, si può dire che la soluzione uh del metodo di Galerkin è la proiezione su Vh della soluzione esatta u e quindi è, tra tutti gli elementi di Vh , quella che minimizza la distanza dalla soluzione esatta u nella norma dell’energia, vale a dire nella seguente norma indotta dal prodotto scalare a(·, ·) u − uh a =
a(u − uh , u − uh ).
Osservazione 3.1 L’interpretazione geometrica del metodo di Galerkin ha senso nel solo caso in cui la forma a(·, ·) sia simmetrica. Tuttavia ciò non lede la generalità del metodo o la sua proprietà di consistenza nel caso in cui la forma bilineare sia non simmetrica. •
40
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
Consideriamo ora il valore che la forma bilineare assume quando entrambi i suoi argomenti sono pari a u − uh . Se vh è un arbitrario elemento di Vh si ottiene a(u − uh , u − uh ) = a(u − uh , u − vh ) + a(u − uh , vh − uh ). L’ultimo termine è nullo grazie alla (3.8), essendo vh − uh ∈ Vh . Inoltre |a(u − uh , u − vh )| ≤ M u − uh V u − vh V , avendo sfruttato la continuità della forma bilineare. D’altra parte, per la coercività di a(·, ·), deve essere a(u − uh , u − uh ) ≥ αu − uh 2V per cui si ha u − uh V ≤
M u − vh V α
∀vh ∈ Vh .
Tale disuguaglianza vale per tutte le funzioni vh ∈ Vh e dunque varrà anche prendendone l’estremo inferiore. Si trova perciò u − uh V ≤
M inf u − wh V . α wh ∈Vh
(3.10)
È allora evidente che affinché il metodo converga basterà richiedere che, al tendere a zero di h, lo spazio Vh tenda ad “occupare” l’intero spazio V . Precisamente, deve risultare lim inf v − vh V = 0 ∀v ∈ V.
h→0 vh ∈Vh
(3.11)
In tal caso, il metodo di Galerkin è convergente e si potrà scrivere lim u − uh V = 0.
h→0
Lo spazio Vh andrà quindi scelto opportunamente in modo da garantire la proprietà (3.11). Una volta che questo requisito sia soddisfatto, la convergenza sarà comunque verificata indipendentemente da come è fatta u; viceversa, dalla scelta di Vh e dalla regolarità di u, dipenderà, in generale, la velocità con cui la soluzione discreta converge alla soluzione esatta, ovvero l’ordine di infinitesimo dell’errore rispetto a h (si veda il Teorema 3.3). Osservazione 3.2 Naturalmente, inf u − vh V ≤ u − uh V . Di conseguenza, vh ∈Vh
è dell’ordine dell’unità, l’errore dovuto al metodo di Galerkin è per la (3.10), se M α identificabile con l’errore di migliore approssimazione per u in Vh . In ogni caso, i due errori hanno lo stesso ordine di infinitesimo rispetto ad h. •
3.3 Il metodo degli elementi finiti nel caso monodimensionale
41
Osservazione 3.3 Nel caso in cui a(·, ·) sia una forma bilineare simmetrica, oltre che continua e coerciva, allora la (3.10) si migliora come segue (si veda l’Esercizio 5) ) M u − uh V ≤ (3.12) inf u − wh V . α wh ∈Vh •
3.3 Il metodo degli elementi finiti nel caso monodimensionale Supponiamo che Ω sia un intervallo (a, b) della retta reale. L’obiettivo di questa sezione è costruire approssimazioni dello spazio H1 (a, b), dipendenti da un parametro h. A tale scopo introduciamo una partizione Th di (a, b) in N + 1 sottointervalli Kj =(xj−1, xj ) di ampiezza hj = xj − xj−1 con a = x0 < x1 < . . . < xN < xN+1 = b,
(3.13)
e poniamo h = maxj hj . Poiché le funzioni di H1 (a, b) sono funzioni continue su [a, b], possiamo costruire la seguente famiglia di spazi * + , Xhr = vh ∈ C 0 Ω : vh |Kj ∈ Pr , per ogni Kj ∈ Th , r = 1, 2, . . . (3.14) avendo denotato con Pr lo spazio dei polinomi di grado minore od uguale a r nella variabile x. Gli spazi Xhr sono tutti sottospazi di H1 (a, b) in quanto sono costituiti da funzioni derivabili tranne che al più in un numero finito di punti (i vertici xi della triangolazione Th ). Essi forniscono scelte possibili dello spazio Vh , pur di incorporare opportunamente le condizioni al bordo. Il fatto che le funzioni di Xhr siano localmente dei polinomi renderà gli elementi della matrice di rigidezza facili da calcolare. Dobbiamo a questo punto scegliere una base {ϕi } per lo spazio Xhr . Conviene, per quanto esposto nella Sez. 3.1, che il supporto della generica funzione di base ϕi abbia intersezione non vuota con quello di un numero esiguo di altre funzioni della base. In tal modo, molti elementi della matrice di rigidezza saranno nulli. Conviene inoltre che la base sia lagrangiana: in tal caso i coefficienti dello sviluppo di una generica funzione vh ∈ Xhr sulla base stessa saranno i valori assunti da vh in opportuni punti, che chiamiamo nodi e che, come vedremo, formano generalmente un sovrainsieme dei vertici di Th . Ciò non impedisce l’uso di basi non lagrangiane, in special modo nella loro versione gerarchica (come vedremo nel seguito). Forniamo ora alcuni esempi di basi per gli spazi Xh1 e Xh2 . Lo spazio Xh1 È costituito dalle funzioni continue e lineari a pezzi su una partizione Th di (a, b) della forma (3.13). Poiché per due punti distinti passa un’unica retta ed essendo le
42
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
funzioni di Xh1 continue, i gradi di libertà delle funzioni di questo spazio, ovvero i valori che bisogna assegnare per individuare univocamente le stesse funzioni, saranno pari al numero N + 2 di vertici della partizione stessa. In questo caso, dunque, nodi e vertici coincidono. Di conseguenza, una volta assegnate N + 2 funzioni di base ϕi , i = 0, . . . , N + 1, l’intero spazio Xh1 verrà completamente descritto. La base lagrangiana è caratterizzata dalla proprietà seguente: ϕi ∈ Xh1
tale che
ϕi (xj ) = δij , i, j = 0, 1, . . ., N + 1,
essendo δij il delta di Kronecker. La funzione ϕi è dunque lineare a tratti e vale uno in xi e zero in tutti gli altri nodi della partizione (si veda la Fig. 3.2). La sua espressione è data da ⎧ x − xi−1 ⎪ ⎪ per xi−1 ≤ x ≤ xi , ⎪ ⎪ x i − xi−1 ⎪ ⎪ ⎨ xi+1 − x ϕi (x) = (3.15) per xi ≤ x ≤ xi+1 , ⎪ ⎪ x − x ⎪ i+1 i ⎪ ⎪ ⎪ ⎩ 0 altrimenti.
1 ϕi
x0 = a
xi−1 xi
xi+1
xN+1 = b
Figura 3.2. La funzione di base di Xh1 relativa al nodo xi
Evidentemente ϕi ha come supporto l’unione dei soli intervalli [xi−1, xi ] e [xi , xi+1 ], se i = 0 o i = N + 1 (per i = 0 o i = N + 1 il supporto sarà limitato all’intervallo [x0, x1 ] o [xN , xN+1 ], rispettivamente). Di conseguenza, soltanto le funzioni di base ϕi−1 e ϕi+1 hanno supporto con intersezione non vuota con quello di ϕi e quindi la matrice di rigidezza è tridiagonale in quanto aij = 0 se j ∈ {i − 1, i, i + 1}. Come si vede dall’espressione (3.15) le due funzioni di base ϕi e ϕi+1 definite su ogni intervallo [xi , xi+1 ], si ripetono sostanzialmente immutate, a meno di un fattore di scalatura legato alla lunghezza dell’intervallo stesso. Nella pratica si possono ottenere le due funzioni di base ϕi e ϕi+1 trasformando due funzioni di base ϕ .0 e ϕ .1 costruite, una volta per tutte, su un intervallo di riferimento, tipicamente l’intervallo [0, 1]. A tal fine basta sfruttare il fatto che il generico intervallo (xi , xi+1 ) della decomposizione di (a, b) può essere ottenuto a partire dall’intervallo (0, 1) tramite la
3.3 Il metodo degli elementi finiti nel caso monodimensionale
43
trasformazione lineare φ : [0, 1] → [xi , xi+1 ] definita come x = φ(ξ)=xi + ξ(xi+1 − xi ).
(3.16)
Se definiamo le due funzioni di base ϕ .0 e ϕ .1 su [0, 1] come ϕ .0 (ξ) = 1 − ξ, ϕ .1 (ξ) = ξ, le funzioni di base ϕi e ϕi+1 su [xi , xi+1 ] saranno semplicemente date da ϕi (x) = ϕ .0 (ξ(x)), ϕi+1 (x) = ϕ .1 (ξ(x)) essendo ξ(x) = (x − xi )/(xi+1 − xi ) (si vedano le Figure 3.3 e 3.4).
1
1 φ
−→
ϕ .0
0
1
ϕi
ξ
xi
xi+1 x
Figura 3.3. La funzione di base ϕi in [xi , xi+1 ] e la corrispondente funzione di base ϕ 0 sull’elemento di riferimento
1
1 φ
−→
ϕ .1
0
1
ξ
ϕi+1
xi
xi+1 x
Figura 3.4. La funzione base ϕi+1 in [xi, xi+1 ] e la corrispondente funzione di base ϕ 1 sull’elemento di riferimento
Questo modo di procedere (definire la base su un elemento di riferimento e poi trasformarla su uno specifico elemento) risulterà di fondamentale importanza quando si considereranno problemi in più dimensioni. Lo spazio Xh2 Le funzioni di Xh2 sono polinomi compositi, di grado 2 su ciascun intervallo di Th e, di conseguenza, sono univocamente individuate quando siano assegnati i valori da esse assunti in tre punti distinti di ogni intervallo Kj . Per garantire la continuità delle funzioni di Xh2 due di questi punti saranno gli estremi del generico intervallo di Th , il
44
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
terzo sarà il punto medio dello stesso. I gradi di libertà dello spazio Xh2 sono perciò i valori di vh assunti agli estremi degli intervalli componenti la partizione Th e nei punti medi degli stessi. Ordiniamo i nodi a partire da x0 = a fino a x2N+2 = b; in tal modo i punti medi corrisponderanno ai nodi di indice dispari, gli estremi degli intervalli a quelli di indice pari (per altre numerazioni si veda l’Esercizio 6). Esattamente come nel caso precedente la base lagrangiana per Xh2 è quella formata dalle funzioni ϕi ∈ Xh2
tali che
ϕi (xj ) = δij , i, j = 0, 1, . . . , 2N + 2.
Sono quindi funzioni quadratiche a tratti che assumono valore 1 nel nodo a cui sono associate e sono nulle nei restanti nodi. Riportiamo l’espressione esplicita della generica funzione di base associata agli estremi degli intervalli della partizione ⎧ (x − xi−1 )(x − xi−2 ) ⎪ se xi−2 ≤ x ≤ xi , ⎪ ⎪ ⎪ (xi − xi−1 )(xi − xi−2 ) ⎪ ⎪ ⎨ (xi+1 − x)(xi+2 − x) (i pari) ϕi (x) = se xi ≤ x ≤ xi+2 , ⎪ ⎪ ⎪ (xi+1 − xi )(xi+2 − xi ) ⎪ ⎪ ⎪ ⎩ 0 altrimenti. Per i punti medi degli intervalli si ha invece ⎧ (xi+1 − x)(x − xi−1 ) ⎪ ⎨ (x i+1 − xi )(xi − xi−1 ) (i dispari) ϕi (x) = ⎪ ⎩ 0
se xi−1 ≤ x ≤ xi+1 , altrimenti.
Come nel caso degli elementi finiti lineari, per descrivere la base è sufficiente fornire l’espressione delle funzioni di base sull’intervallo di riferimento [0, 1] e poi trasformare queste ultime tramite la (3.16). Abbiamo ϕ .0 (ξ) = (1 − ξ)(1 − 2ξ), ϕ .1 (ξ) = 4(1 − ξ)ξ, ϕ .2 (ξ) = ξ(2ξ − 1). Di queste funzioni riportiamo una rappresentazione nella Fig. 3.5. Si noti come la generica funzione di base ϕ2i+1 relativa al nodo x2i+1 abbia un supporto che coincide con l’elemento cui il punto medio appartiene. Per la sua forma particolare è nota come funzione a bolla. Possiamo anche introdurre altre basi di tipo non lagrangiano. Una particolarmente interessante è quella costituita (localmente) dalle tre funzioni ψ.0 (ξ) = 1 − ξ, ψ.1 (ξ) = ξ, ψ.2 (ξ) = (1 − ξ)ξ. Una base di questo genere è detta gerarchica in quanto, per costruire la base per Xh2 , si sfruttano le funzioni di base dello spazio di dimensione immediatamente inferiore, Xh1 . Essa è conveniente da un punto di vista computazionale se si decide, durante l’approssimazione di un problema, di aumentare solo localmente, cioè solo in alcuni elementi, il grado di interpolazione (ovvero se si intendesse effettuare quella che chiameremo adattività in grado od adattività di tipo p).
3.3 Il metodo degli elementi finiti nel caso monodimensionale
ϕ .1
ϕ .0
0
0.5
45
ϕ .2
1
ξ
Figura 3.5. Le funzioni di base di Xh2 sull’intervallo di riferimento
I polinomi di Lagrange sono linearmente indipendenti per costruzione. In generale però tale proprietà andrà verificata per assicurarci che l’insieme dei polinomi scelti sia effettivamente una base. Nel caso delle funzioni ψ.0 , ψ.1 e ψ.2 dobbiamo verificare che se α0 ψ.0 (ξ) + α1 ψ.1 (ξ) + α2 ψ.2 (ξ) = 0 ∀ξ,
allora
α0 = α1 = α2 = 0.
In effetti α0 ψ.0 (ξ) + α1 ψ.1 (ξ) + α2 ψ.2 (ξ) = α0 + ξ(α1 − α0 + α2 ) − α2 ξ 2 = 0 implica α0 = 0, α2 = 0 e quindi α1 = 0. Osserviamo che la matrice di rigidezza nel caso di elementi finiti di grado 2 sarà pentadiagonale. Procedendo nello stesso modo si potranno generare basi per Xhr con r arbitrario: facciamo però notare che al crescere del grado polinomiale aumenta il numero di gradi di libertà e dunque il costo computazionale per risolvere il sistema lineare (3.5). Inoltre, come ben noto dalla teoria dell’interpolazione polinomiale, l’uso di gradi elevati combinato con distribuzioni equispaziate dei nodi, conduce ad approssimazioni sempre meno stabili, a discapito dell’aumento teorico di accuratezza. Un rimedio brillante è fornito dall’approssimazione agli elementi spettrali che, facendo uso di nodi opportuni (quelli delle formule di quadratura di Gauss), consente di generare approssimazioni di accuratezza arbitrariamente elevata. Si veda al proposito il Cap. 4. 3.3.1 Una definizione di elemento finito nel caso Lagrangiano Possiamo a questo punto formalizzare che cosa si intende per elemento finito. Dagli esempi visti si può dedurre che tre sono gli ingredienti che consentono di caratterizzare in modo univoco un elemento finito nel caso generale, ovvero indipendentemente dalla dimensione: • il dominio di definizione K dell’elemento. Nel caso monodimensionale è un intervallo, nel caso bidimensionale può essere un triangolo o un quadrilatero; nel caso tridimensionale può essere un tetraedro, un esaedro o un prisma; • lo spazio dei polinomi Pr definito su di esso ed una base {ϕj }rj=0 di Pr ;
46
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
• un insieme di funzionali su Pr , Σ = {γi : Pr → R}ri=0 che soddisfino γi (ϕj ) = δij , essendo δij il delta di Kronecker. Essi permettono di identificare univocamente i coefficienti {αj }rj=0 dello sviluppo di un polinomio p ∈ Pr rispet!r to alla base scelta, p(x) = j=0 αj ϕj (x). Infatti si ha αi = γi (p), i = 0, . . . , r. Tali coefficienti sono detti gradi di libertà dell’elemento finito. Nel caso di elementi finiti di Lagrange la base scelta è fornita dai polinomi di Lagrange e il grado di libertà αi è eguale al valore assunto dal polinomio p in un punto ai di K, detto nodo, cioè si ha αi = p(ai ), i = 0, . . . , r. Si può quindi porre, con un piccolo abuso di notazione, Σ = {aj }rj=0 , in quanto la conoscenza della posizione dei nodi ci permette di trovare i gradi di libertà (si noti tuttavia che questo non è vero in generale, si pensi solo al caso della base gerarchica precedentemente introdotta). Nel seguito faremo riferimento esclusivamente al caso di elementi finiti di Lagrange. Nella costruzione di un elemento finito di Lagrange la scelta dei nodi non è arbitraria. Infatti il problema dell’interpolazione su un certo insieme K può non essere ben posto. Per questo motivo risulta utile la seguente definizione: Definizione 3.1 Un insieme Σ = {aj }rj=0 di punti di K è detto unisolvente su Pr se, dati r + 1 scalari arbitrari αj , j = 0, . . . , r, esiste un’unica funzione p ∈ Pr tale che p(aj ) = αj ,
j = 0, . . . , r.
In tal caso, la terna (K, Σ, Pr ) viene chiamata elemento finito di Lagrange. Nel caso di elementi finiti lagrangiani si richiama solitamente l’elemento citando il solo spazio dei polinomi: così gli elementi finiti lineari introdotti in precedenza sono detti P1 , quelli quadratici P2 , e così via. Come abbiamo visto, per gli elementi finiti P1 e P2 è conveniente definire l’e. tipicamente si tratta dellemento finito a partire da un elemento di riferimento K; l’intervallo (0, 1) nel caso monodimensionale, e del triangolo rettangolo di vertici (0, 0), (1, 0) e (0, 1) in quello bidimensionale (a elementi triangolari). Indi, tramite una trasformazione φ, si passa all’elemento finito definito su K. La trasformazione riguarda perciò l’elemento finito nella sua interezza. Più precisamente, si osserva che . Σ, . P .r ) è un elemento finito di Lagrange e se φ : K . → Rd è una applicazione se (K, continua e iniettiva, allora (K, Σ, Pr ) si dice ancora elemento finito di Lagrange con . K = φ(K),
.r }, Σ = φ(Σ). . Pr = {p : K → R : p ◦ φ ∈ P
La definizione dello spazio dei polinomi Pr definiti sui triangoli sarà introdotta nella Sez. 3.4.
3.3 Il metodo degli elementi finiti nel caso monodimensionale
47
3.3.2 L’approssimazione con elementi finiti lineari Vediamo ora come approssimare il seguente problema −u + σu = f, a < x < b, u(a) = 0, u(b) = 0, la cui formulazione debole, come abbiamo visto nel capitolo precedente, è b trovare u ∈ H10 (a, b) :
u v dx +
a
b
b fv dx ∀v ∈ H10 (a, b).
σuv dx = a
a
Come fatto in (3.13), introduciamo una decomposizione Th di (0, 1) in N + 1 sottointervalli Kj e di utilizzare elementi finiti lineari. Introduciamo dunque lo spazio Vh = {vh ∈ Xh1 : vh (a) = vh (b) = 0}
(3.17)
ossia lo spazio delle funzioni lineari a tratti, nulle al bordo (in Fig. 3.6 è stata rappresentata una funzione di tale spazio). Esso è un sottospazio di H10 (a, b).
hi a = x0
xi−1xi
xN xN+1 = b
x
Figura 3.6. Esempio di una funzione di Vh
Il corrispondente problema ad elementi finiti è allora dato da b trovare uh ∈ Vh : a
uh vh
b dx +
b fvh dx ∀vh ∈ Vh .
σuh vh dx = a
(3.18)
a
Utilizziamo come base di Xh1 l’insieme delle funzioni a capanna definite in (3.15) con l’accorgimento di considerare i soli indici ! 1 ≤ i ≤ N . Esprimendo uh come N combinazione lineare di tali funzioni uh (x) = i=1 ui ϕi (x), ed imponendo che la (3.18) sia soddisfatta per ogni elemento della base di Vh , si ottiene un sistema di N equazioni nelle N incognite ui Au = f ,
(3.19)
48
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
dove: b A = [aij ], aij =
ϕj ϕi dx +
a
u = [ui ];
f = [fi ],
b fi =
b σϕj ϕi dx ; a
fϕi dx. a
Si osservi che ui = uh (xi ), 1 ≤ i ≤ N , ovvero le incognite non sono altro che i valori nodali della soluzione uh . Per trovare la soluzione numerica uh basta ora risolvere il sistema lineare (3.19). Nel caso di elementi finiti lineari, la matrice di rigidezza A non è solo sparsa, ma risulta essere anche tridiagonale. Per calcolarne gli elementi procediamo come segue. Come abbiamo visto non è necessario operare direttamente con le funzioni di base sui singoli intervalli, ma è sufficiente riferirsi a quelle definite sull’intervallo di riferimento: basterà poi trasformare opportunamente gli integrali che compaiono all’interno dei coefficienti di A. Un generico elemento non nullo della matrice di rigidezza è dato da b aij =
(ϕi ϕj
xi + σϕi ϕj )dx =
a
(ϕi ϕj
x i+1
(ϕi ϕj + σϕi ϕj )dx.
+ σϕi ϕj )dx +
xi−1
xi
Consideriamo il primo addendo supponendo j = i − 1. Evidentemente, tramite la trasformazione di coordinate (3.16), possiamo riscriverlo come xi
(ϕi ϕi−1 + σϕi ϕi−1 )dx =
xi−1 1
[ϕi (x(ξ))ϕi−1 (x(ξ)) + σ(x(ξ))ϕi (x(ξ))ϕi−1 (x(ξ))]hi dξ,
0
avendo osservato che dx = d(xi−1 + ξhi ) = hi dξ. D’altra parte ϕi (x(ξ)) = ϕ .1 (ξ) e ϕi−1 (x(ξ)) = ϕ .0 (ξ). Osserviamo inoltre che d dξ 1 . (ξ). ϕi (x(ξ)) = ϕ . (ξ) = ϕ dx dx 1 hi 1 .0 (ξ). Dunque, l’espressione dell’eAnalogamente si trova che ϕi−1 (x(ξ)) = (1/hi )ϕ lemento ai,i−1 diventa 1 ai,i−1 =
1 ϕ . (ξ)ϕ .0 (ξ) + σ ϕ .1 (ξ)ϕ .0 (ξ)hi hi 1
dξ.
0
Il vantaggio sta nel fatto che nel caso di coefficienti costanti tutti gli integrali che compaiono all’interno della matrice A possono essere calcolati una volta per tutte. Vedremo nel caso multidimensionale come questo modo di procedere mantenga la sua importanza anche nel caso di coefficienti variabili.
3.3 Il metodo degli elementi finiti nel caso monodimensionale
49
3.3.3 Interpolazione e stima dell’errore di interpolazione Poniamo I = (a, b). Per ogni v ∈ C 0 (I), definiamo interpolante di v nello spazio di Xh1 , determinato dalla partizione Th , la funzione Πh1 v tale che: Πh1 v(xi ) = v(xi )
∀xi , nodo della partizione, i = 0, . . . , N + 1.
Utilizzando la base lagrangiana {ϕi } dello spazio Xh1 , l’interpolante può essere espressa nel seguente modo Πh1 v(x) =
N+1 "
v(xi )ϕi (x).
i=0
Quindi, una volta nota v e una base di Xh1 , l’interpolante di v è facilmente calcolabile. L’operatore Πh1 : C 0 (I) → Xh1 che associa ad una funzione v la sua interpolante Πh1 v è detto operatore di interpolazione. Analogamente possiamo definire gli operatori Πhr : C 0 (I) → Xhr , per r ≥ 1. r Indicato con ΠK l’operatore di interpolazione locale che associa ad una funzione v il j r polinomio ΠKj v ∈ Pr (Kj ), interpolante v negli r + 1 nodi dell’elemento Kj ∈ Th , definiamo Πhr v come r (vKj ) ∀Kj ∈ Th . (3.20) Πhr v ∈ Xhr : Πhr vKj = ΠK
Teorema 3.2 Sia v ∈ Hr+1 (I), per r ≥ 1, e sia Πhr v ∈ Xhr la sua funzione interpolante definita nella (3.20). Vale allora la seguente stima dell’errore di interpolazione |v − Πhr v|Hk (I) ≤ Ck,r hr+1−k |v|Hr+1(I)
per k = 0, 1.
(3.21)
Le costanti Ck,r sono indipendenti da v ed h. Ricordiamo che H0 (I)=L2 (I) e che | · |H0(I) = · L2 (I) .
Dimostrazione. Dimostriamo (3.21) per il caso r = 1, rimandando a [QV94, Cap. 3] o a [Cia78] per il caso più generale. Incominciamo con l’osservare che se v ∈ H r+1 (I) allora v ∈ C r (I). In particolare, per r = 1, v ∈ C 1 (I). Poniamo e = v − Πh1 v. Dato che e(xj ) = 0 per ogni nodo xj , il teorema di Rolle permette di concludere che esistono degli ξj ∈ Kj = (xj−1 , xj ), con j = 1, . . . , N + 1, per i quali si ha e (ξj ) = 0. Essendo Πh1 v una funzione lineare in ciascun intervallo Kj , otteniamo che per x ∈ Kj x x e (x) = e (s)ds = v (s)ds, ξj
ξj
50
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
da cui deduciamo che |e (x)| ≤
xj
|v (s)|ds
per x ∈ Kj .
xj−1
Utilizzando ora la disuguaglianza di Cauchy-Schwarz otteniamo |e (x)| ≤
#
xj
$1/2 # 12 ds
xj−1
#
$1/2
xj
|v (s)|2 ds
≤ h1/2
xj−1
$1/2
xj
|v (s)|2 ds
.
xj−1
(3.22) Pertanto,
xj
|e (x)| dx ≤ h 2
xj
2
xj−1
|v (s)|2 ds.
(3.23)
xj−1
x
Per poter maggiorare e(x) basta notare che, per ogni x ∈ Kj , e(x) =
e (s)ds, e
xj−1
quindi, applicando la disuguaglianza (3.22), si ottiene |e(x)| ≤
xj
#
|e (s)|ds ≤ h
xj−1
Dunque,
xj
$1/2
xj
3/2
|v (s)| ds 2
.
xj−1
|e(x)|2 dx ≤ h4
xj−1
xj
|v (s)|2 ds.
(3.24)
xj−1
Sommando sugli indici j da 1 a N + 1 in (3.23) e (3.24) si ottengono, rispettivamente le disuguaglianze ⎛ b ⎞1/2 ⎛ b ⎞1/2 ⎝ |e (x)|2 dx⎠ ≤ h ⎝ |v (x)|2 dx⎠ , a
e
⎛ ⎝
b
a
⎞1/2 |e(x)|2 dx⎠
⎞1/2 ⎛ b ≤ h2 ⎝ |v (x)|2 dx⎠
a
a
che corrispondono alla stima desiderata (3.21) per r = 1, con Ck,1 = 1 e k = 0, 1. 3.3.4 Stima dell’errore nella norma H1 Grazie al risultato (3.21) possiamo ottenere una stima sull’errore di approssimazione del metodo degli elementi finiti.
3.3 Il metodo degli elementi finiti nel caso monodimensionale
51
Teorema 3.3 Sia u ∈ V la soluzione esatta del problema variazionale (3.1) (nel caso in esame Ω = I = (a, b)) ed uh la sua soluzione approssimata con il metodo ad elementi finiti di grado r, ovvero la soluzione del problema (3.2) in cui Vh = Xhr ∩ V . Sia inoltre u ∈ Hp+1 (I), per un opportuno p tale che r ≤ p. Allora vale la seguente disuguaglianza, detta anche stima a priori dell’errore: u − uh V ≤
M Chr |u|Hr+1(I) , α
(3.25)
essendo C una costante indipendente da u e da h. Dimostrazione. Dalla (3.10), ponendo wh = Πhr u, l’interpolante di grado r di u nello spazio Vh , si ottiene u − uh V ≤
M u − Πhr uV . α
Ora il membro di destra può essere maggiorato con la stima dell’errore di interpolazione (3.21) per k = 1, da cui segue la tesi. Da quest’ultimo teorema segue che, per aumentare l’accuratezza, si possono seguire due strategie differenti: diminuire h, ossia raffinare la griglia, oppure aumentare r, cioè utilizzare elementi finiti di grado più elevato. Quest’ultima strada ha senso però solo se la soluzione u è abbastanza regolare: infatti, dalla (3.25) si ricava immediatamente che, se u ∈ V ∩ Hp+1 (I), il massimo valore di r che ha senso prendere è r = p. Valori maggiori di r non assicurano un miglioramento dell’approssimazione: dunque se la soluzione non è molto regolare non conviene usare elementi finiti di grado elevato, in quanto il maggior costo computazionale non è ripagato da un miglioramento della convergenza. Un caso interessante è quello in cui la soluzione possiede solo la regolarità minima (p = 0). Dalle relazioni (3.10) e (3.11) si ricava che si ha comunque convergenza, ma la stima (3.25) non è più valida. Non si sa quindi dire come la norma V dell’errore tenda a zero al decrescere di h. Nella Tabella 3.1 vengono riassunte queste situazioni. Tabella 3.1. Ordine di convergenza rispetto a h per il metodo degli elementi finiti al variare della regolarità della soluzione e del grado r degli elementi finiti. Su ogni colonna abbiamo evidenziato il risultato corrispondente alla scelta “ottimale” del grado polinomiale r u ∈ H1 (I) u ∈ H2 (I) u ∈ H3 (I) u ∈ H4 (I) u ∈ H5 (I) 1 converge
h1
h1
h1
h1
2 converge
h1
h2
h2
h2
3 converge
h1
h2
h3
h3
1
2
3
h4
4 converge
h
h
h
52
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
In generale, possiamo affermare che: se u ∈ Hp+1 (I), per un p > 0, allora esiste una costante C indipendente da u e da h, tale che u − uh H1 (I) ≤ Chs |u|Hs+1(I) ,
s = min{r, p}.
(3.26)
3.4 Il metodo degli elementi finiti nel caso multidimensionale In questa sezione estendiamo al caso di problemi ai limiti in regioni bidimensionali il metodo degli elementi finiti introdotto precedentemente per problemi in una dimensione. Faremo inoltre specifico riferimento al caso di elementi finiti triangolari. Molti dei risultati presentati sono comunque immediatamente estendibili ad elementi finiti più generali (si veda, per esempio, [QV94]). Per semplicità di trattazione, considereremo solo domini Ω ⊂ R2 di forma poligonale e triangolazioni Th che ne rappresentino il ricoprimento con triangoli non sovrapposti. Si rimanda al Cap. 12 per una descrizione più dettagliata delle caratteristiche essenziali di una generica triangolazione Th . In questo modo il dominio discretizzato / Ωh = int K K∈Th
rappresentato dalla parte interna dell’unione dei triangoli di Th coincide esattamente con Ω. Ricordiamo che con int(A) indichiamo la parte interna dell’insieme A, ovvero la regione che si ottiene privando A della sua frontiera. Non tratteremo quindi la problematica relativa all’approssimazione di un dominio non poligonale con una triangolazione ad elementi finiti (vedi Fig. 3.7). Pertanto, utilizzeremo nel seguito il simbolo Ω per indicare indistintamente sia il dominio computazionale che la sua (eventuale) approssimazione. Anche nel caso multidimensionale, il parametro h è legato alla spaziatura della griglia. Posto hK = diam(K), per ogni K ∈ Th , dove diam(K) = maxx,y∈K |x − y| è il diametro dell’elemento K, definiamo h = maxK∈Th hK . Inoltre, imporremo che
Ω
Ωh
Figura 3.7. Esempio di triangolazione di un dominio non-poligonale. La triangolazione induce una approssimazione Ωh del dominio Ω tale che limh→0 mis(Ω − Ωh) = 0. Questa problematica non viene trattata in questo testo. Il lettore interessato può consultare, per esempio, [Cia78] o [SF73]
3.4 Il metodo degli elementi finiti nel caso multidimensionale
53
la griglia soddisfi la seguente condizione di regolarità. Sia ρK il diametro del cerchio inscritto al triangolo K (detto anche sfericità di K); una famiglia di triangolazioni {Th, h > 0} è detta regolare se, per un opportuno δ > 0, è verificata la condizione hK ≤δ ρK
∀K ∈ Th .
(3.27)
Osserviamo che la condizione (3.27) esclude automaticamente tutti i triangoli molto deformati (cioè allungati), ovvero la possibilità di utilizzare griglie computazionali anisotrope. Peraltro, griglie anisotrope sono spesso usate nell’ambito di problemi di fluidodinamica in presenza di strati limite. Si veda l’Osservazione 3.5, e, soprattutto, le referenze ([AFG+ 00, DV02, FMP04]). Maggiori dettagli sulla generazione di griglie su domini bidimensionali sono forniti nel Cap. 12. Indichiamo con Pr lo spazio dei polinomi di grado globale minore o uguale a r, per r = 1, 2, . . . P1
= {p(x1 , x2 ) = a + bx1 + cx2 , con a, b, c ∈ R},
P2
= {p(x1 , x2 ) = a + bx1 + cx2 + dx1 x2 + ex21 + f x22 , con a, b, c, d, e, f ∈ R}, .. .
Pr
= {p(x1 , x2 ) =
"
aij xi1 xj2 , con aij ∈ R}.
i, j ≥ 0 i+j ≤ r
Si verifica che gli spazi Pr hanno dimensione pari a (r + 1)(r + 2) . 2 Ad esempio, risulta dim P1 = 3, dim P2 = 6 e dim P3 = 10, quindi su ogni elemento della triangolazione Th la generica funzione vh è ben definita qualora se ne conosca il valore, rispettivamente, in 3, 6 e 10 nodi opportunamente scelti (si veda la Fig. 3.8). Introduciamo lo spazio degli elementi finiti * Xhr = vh ∈ C 0 (Ω) : vh |K ∈ Pr , ∀K ∈ Th , r = 1, 2, . . . (3.28) dim Pr =
ossia lo spazio delle funzioni globalmente continue che sono polinomiali di grado r sui singoli triangoli (elementi) della reticolazione Th .
Figura 3.8. Nodi per polinomi lineari (r = 1, a sinistra), quadratici (r = 2, al centro) e cubici (r = 3, a destra). Tali insiemi di nodi sono unisolventi
54
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
Definiamo inoltre ◦
r X hr = {vh ∈ Xh : vh |∂Ω = 0}.
(3.29)
◦
Gli spazi Xhr e X hr sono idonei ad approssimare rispettivamente H1 (Ω) e H10 (Ω), in virtù della seguente proprietà: Proprietà 3.2 Condizione sufficiente perché una funzione v appartenga a H1 (Ω) è che v ∈ C 0 (Ω) ed inoltre v appartenga a H1 (K), ∀K ∈ Th .
3.4.1 Risoluzione del problema di Poisson con elementi finiti ◦
Posto Vh =Xhr , si può introdurre il seguente problema a elementi finiti per l’approssimazione del problema di Poisson (2.1) con dato al bordo di Dirichlet (2.2), nel caso omogeneo (cioè con g = 0) trovare uh ∈ Vh :
∇uh ·∇vh dΩ =
Ω
fvh dΩ
∀ vh ∈ Vh .
(3.30)
Ω
Come nel caso monodimensionale, ogni funzione vh ∈ Vh è caratterizzata, in modo univoco, dai valori che essa assume nei nodi Ni , con i = 1, . . . , Nh , della triangolazione Th (escludendo i nodi di bordo dove vh = 0); ne consegue che una base dello spazio Vh può essere l’insieme delle ϕj ∈ Vh , j = 1, . . . , Nh , tali che ϕj (Ni ) = δij =
0 i = j, 1 i = j,
i, j = 1, . . . , Nh .
In particolare se r = 1, i nodi sono i vertici degli elementi, esclusi i vertici appartenenti al bordo di Ω, mentre la generica funzione ϕj è lineare su ogni triangolo ed assume il valore 1 nel nodo Nj e 0 in tutti gli altri nodi della reticolazione (si veda la Fig. 3.9).
ϕj
Nj Figura 3.9. La funzione di base ϕj dello spazio Xh1 ed il suo supporto
3.4 Il metodo degli elementi finiti nel caso multidimensionale
55
Una generica funzione vh ∈ Vh può essere espressa attraverso una combinazione lineare delle funzioni della base di Vh nel seguente modo vh (x) =
Nh "
vi ϕi (x)
∀ x ∈ Ω, con vi = vh (Ni ).
(3.31)
i=1
Esprimendo allora la soluzione discreta uh in termini della base {ϕj } tramite la (3.31), !Nh uh (x) = j=1 uj ϕj (x), con uj = uh (Nj ), ed imponendo che essa verifichi la (3.30) per ogni funzione della base stessa, si trova il seguente sistema lineare di Nh equazioni nelle Nh incognite uj , equivalente al problema (3.30), Nh "
j=1
∇ϕj · ∇ϕi dΩ =
uj Ω
fϕi dΩ,
i = 1, . . . , Nh .
(3.32)
Ω
La matrice di rigidezza ha dimensioni Nh × Nh ed è definita come A = [aij ]
con
∇ϕj · ∇ϕi dΩ.
aij =
(3.33)
Ω
Inoltre, introduciamo i vettori u = [uj ]
con
uj = uh (Nj ),
f = [fi ] con
fi =
fϕi dΩ.
(3.34)
Ω
Il sistema lineare (3.32) si può allora scrivere come Au = f .
(3.35)
Come per il caso monodimensionale, le incognite sono ancora rappresentate dai valori nodali della soluzione uh . È evidente che, essendo il supporto della generica funzione di base ϕi formato dai soli triangoli aventi in comune il nodo Ni , A è una matrice sparsa. In particolare il numero degli elementi di A non nulli è dell’ordine di Nh in quanto aij è diverso da zero solo se Nj e Ni sono nodi dello stesso triangolo. Non è invece detto che A abbia una struttura definita (a banda, per esempio), dipenderà da come i nodi sono stati numerati. Consideriamo ora il caso di un problema di Dirichlet non omogeneo rappresentato dalle equazioni (2.1)-(2.2). Abbiamo visto nel capitolo precedente che ci si può comunque ricondurre al caso omogeneo attraverso un rilevamento del dato di bordo. Nel corrispondente problema discreto si costruirà un rilevamento di una opportuna approssimazione del dato di bordo, procedendo nel seguente modo. Indichiamo con Nh i nodi interni della triangolazione Th e con Nht il numero totale, inclusi quindi i nodi di bordo, che, per comodità, supporremo numerati per ultimi. L’insieme dei nodi di bordo sarà dunque formato da {Ni , i = Nh + 1, . . . , Nht }. Una possibile approssimazione gh del dato al bordo g può essere ottenuta interpolando g
56
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
Figura 3.10. Esempio di rilevamento di un dato al bordo di Dirichlet non omogeneo u = g, con g variabile
sullo spazio formato dalle tracce su ∂Ω di funzioni di Xhr . Essa può essere scritta come combinazione lineare delle tracce delle funzioni di base di Xhr associate ai nodi di bordo !Nht (3.36) gh (x) = i=N +1 g(Ni )ϕi ∂Ω (x) ∀x ∈ ∂Ω. h
Il suo rilevamento Rgh ∈
Xhr
Rgh (x) =
è costruito come segue
!Nht
i=Nh +1
∀x ∈ Ω.
g(Ni )ϕi (x)
(3.37)
In Fig. 3.10 viene fornito un esempio di un possibile rilevamento del dato al bordo di Dirichlet non omogeneo (2.2), nel caso in cui g abbia valore non costante. La formulazione ad elementi finiti del problema di Poisson diventa quindi: ◦
trovare uh ∈ Vh t. c. ◦ ∇ uh ·∇vh dΩ = fvh dΩ − ∇Rgh ·∇vh dΩ Ω
Ω
∀ vh ∈ Vh .
(3.38)
Ω ◦
La soluzione approssimata sarà poi fornita da uh =uh +Rgh . Si noti che, grazie al particolare rilevamento adottato, si può dare il seguente significato algebrico alla (3.38) Au = f − Bg ◦
dove A e f sono definiti come in (3.33) e (3.34), essendo ora uj =uh (Nj ). Posto b Nhb = Nht − Nh (è il numero di nodi di bordo), il vettore g ∈ RNh e la matrice b B ∈ RNh ×Nh hanno componenti, rispettivamente gi = g(Ni+Nh ), i = 1, . . . , Nhb , bij = ∇ϕj+Nh · ∇ϕi dΩ, i = 1, . . . , Nh , j = 1, . . . , Nhb . Ω
Osservazione 3.4 Le matrici A e B sono entrambe sparse. Un efficace programma memorizzerà esclusivamente gli elementi non nulli. (Si veda, per esempio, [Saa96] per una descrizione di possibili formati di memorizzazione per matrici sparse, ed anche
3.4 Il metodo degli elementi finiti nel caso multidimensionale
57
il Cap. 11). In particolare, grazie allo speciale rilevamento adottato, la matrice B avrà nulle tutte le righe corrispondenti a nodi non adiacenti ad un nodo di bordo (si ricorda che due nodi di griglia si dicono adiacenti se esiste un elemento K ∈ Th a cui entrambi appartengono). • 3.4.2 Condizionamento della matrice di rigidezza Abbiamo visto che la matrice di rigidezza A = [a(ϕj , ϕi )] associata al problema di Galerkin e quindi, in particolare, al metodo degli elementi finiti, è definita positiva; inoltre A è simmetrica se la forma bilineare a(·, ·) è simmetrica. Per una matrice simmetrica e definita positiva, il numero di condizionamento rispetto alla norma 2 è dato da λmax (A) K2 (A) = , λmin (A) essendo λmax (A) e λmin (A) gli autovalori massimo e minimo, rispettivamente, di A. Si può dimostrare che, sia nel caso monodimensionale che in quello multidimensionale, per la matrice di rigidezza vale la seguente relazione K2 (A) = Ch−2 ,
(3.39)
dove C è una costante indipendente dal parametro h, ma dipendente dal grado degli elementi finiti utilizzati. Per dimostrare la (3.39), ricordiamo che gli autovalori della matrice A verificano la relazione Av = λh v, essendo v l’autovettore associato all’autovalore λh . Sia vh l’unico elemento dello spazio Vh i cui valori nodali sono le componenti vi di v, ovvero la formulazione data dalla (3.31). Supponiamo a(·, ·) simmetrica, dunque A è simmetrica e i suoi autovalori sono reali e positivi. Abbiamo allora λh =
(Av, v) a(vh , vh ) = |v|2 |v|2
(3.40)
essendo | · | la norma vettoriale euclidea. Supponiamo che la famiglia di triangolazioni {Th , h > 0} sia regolare (ovvero soddisfi la (3.27)). Supporremo inoltre che le triangolazioni siano quasi-uniformi, ovvero tali per cui esiste una costante τ > 0 t.c. min hK ≥ τ h
K∈Th
∀h > 0.
Osserviamo ora che, nelle ipotesi fatte su Th , vale la seguente disuguaglianza inversa (per la dimostrazione rimandiamo a [QV94]) ∃ CI > 0
:
∀vh ∈ Vh ,
∇vh L2(Ω) ≤ CI h−1 vh L2(Ω) ,
la costante CI essendo indipendente da h.
(3.41)
58
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
Possiamo ora dimostrare che esistono due costanti C1 , C2 > 0 tali che, per ogni vh ∈ Vh come in (3.7), si ha C1 hd |v|2 ≤ vh 2L2 (Ω) ≤ C2 hd |v|2
(3.42)
essendo d la dimensione spaziale, con d = 1, 2, 3. Per la dimostrazione nel caso di d generica rimandiamo a [QV94], Proposizione 6.3.1. Qui ci limitiamo a verificare la seconda disuguaglianza nel caso monodimensionale (d = 1) e per elementi finiti lineari. In effetti, su ogni elemento Ki = [xi−1, xi ], abbiamo: + ,2 2 vi−1 ϕi−1 (x) + vi ϕi (x) dx, vh (x) dx = Ki
Ki
con ϕi−1 e ϕi definite secondo la (3.15). Allora, un calcolo diretto mostra che + 2 , 2 + 2 , 2 2 2 vh (x) dx ≤ 2 vi−1 ϕi−1 (x) dx + vi ϕ2i (x) dx = hi vi−1 + vi2 3 Ki Ki Ki con hi = xi − xi−1 . La disuguaglianza vh 2L2 (Ω) ≤ C h |v|2 con C = 4/3, si trova semplicemente sommando sugli intervalli K ed osservando che ogni contributo nodale vi è contato due volte. D’altro canto, dalla (3.40), otteniamo, grazie alla continuità e alla coercività della forma bilineare a(·, ·), α
vh 2H1(Ω) |v|2
≤ λh ≤ M
vh 2H1(Ω) |v|2
,
essendo M ed α le costanti di continuità e di coercività, rispettivamente. Ora, vh 2H1(Ω) ≥ vh 2L2 (Ω) per definizione di norma in H1 (Ω), mentre vh H1(Ω) ≤ C3 h−1 vh L2(Ω) (per un’opportuna costante C3 > 0) grazie alla (3.41). Usando allora le disuguaglianze (3.42), otteniamo α C1 hd ≤ λh ≤ M C32 C2 h−2 hd . Abbiamo pertanto λmax (A) M C32 C2 −2 h ≤ λmin (A) α C1 ovvero la (3.39). La (3.39) mostra che al diminuire del passo h il numero di condizionamento della matrice di rigidezza aumenta e quindi il sistema ad essa associato diventa sempre più mal condizionato. In particolare, se il dato f del sistema lineare (3.35) subisce una perturbazione δf (ovvero è affetto da errore), questa si ripercuote sulla soluzione con una perturbazione δu per la quale vale la stima seguente |δu | |δf | ≤ K2 (A) . |u| |f |
3.4 Il metodo degli elementi finiti nel caso multidimensionale
59
È evidente che tanto più il numero di condizionamento è elevato tanto più la soluzione può risentire della perturbazione sui dati. (Del resto, si noti che si è sempre in presenza di perturbazioni sui dati a causa degli inevitabili errori di arrotondamento introdotti dal calcolatore.) Come ulteriore esempio si può studiare come il condizionamento si ripercuota sul metodo di risoluzione. Ad esempio, risolvendo il sistema lineare (3.35) con il metodo del gradiente coniugato (si veda l’Appendice B). Viene costruita, in modo iterativo, una successione di soluzioni approssimate u(k) che converge alla soluzione esatta u. In particolare si ha # u
(k)
− uA ≤ 2
avendo indicato con vA = v ∈ RNh . Se definiamo
K2 (A) − 1
$k
K2 (A) + 1
u(0) − uA ,
√ vT Av la cosiddetta “norma A” di un generico vettore K2 (A) − 1 , ρ= K2 (A) + 1
tale quantità dà un’idea della velocità di convergenza del metodo: tanto più ρ è vicino a 0 tanto più velocemente il metodo converge, tanto più ρ è vicino ad 1 tanto più lenta sarà la convergenza. Peraltro, per via della (3.39), tanto più si vuole essere accurati, diminuendo h, tanto più il sistema sarà mal condizionato, e quindi tanto più “problematica” ne risulterà la sua risoluzione. Nel caso si usi un metodo iterativo, il sistema andrà necessariamente precondizionato, ossia occorre trovare una matrice invertibile P, detta precondizionatore, tale che K2 (P−1 A) K2 (A), quindi applicare il metodo iterativo al sistema precondizionato con P (si veda l’Appendice B). 3.4.3 Stima dell’errore di approssimazione nella norma dell’energia Analogamente al caso monodimensionale, per ogni v ∈ C 0 (Ω) definiamo interpolante di v nello spazio di Xh1 determinato dalla triangolazione Th , la funzione Πh1 v tale che Πh1 v(Ni ) = v(Ni )
per ogni nodo Ni di Th , per i = 1, . . . , Nh .
È evidente che, se {ϕi } è la base lagrangiana dello spazio Xh1 , l’interpolante può essere espressa nel seguente modo Πh1 v(x) =
Nh " i=1
v(Ni )ϕi (x).
60
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
FK K
K
e il generico triangolo K Figura 3.11. Mappa FK tra il triangolo di riferimento K
Quindi, una volta nota v e la base di Xh1 , l’interpolante di v è facilmente calcolabile. L’operatore Πh1 : C 0 (Ω) → Xh1 che associa ad una funzione continua v la sua interpolante Πh1 v è detto operatore di interpolazione. Analogamente possiamo definire un operatore Πhr : C 0 (Ω) → Xhr , per ogni inr tero r ≥ 1. Indicato con ΠK l’operatore di interpolazione locale che associa ad una r funzione continua v il polinomio ΠK v ∈ Pr (K), interpolante v nei gradi di libertà dell’elemento K ∈ Th , definiamo r Πhr v ∈ Xhr : Πhr vK = ΠK (vK ) ∀K ∈ Th . (3.43) Si supporrà che Th appartenga ad una famiglia di triangolazioni regolari di Ω. Per ricavare una stima per l’errore di approssimazione u − uh V seguiamo una procedura analoga a quella utilizzata nel Teorema 3.3 per il caso monodimensionale. Il primo obiettivo è dunque quello di derivare una opportuna stima per l’errore di interpolazione. A tal fine ricaveremo informazioni utili a partire dai parametri geometrici di ciascun triangolo K, ovvero dal diametro hK e dalla sfericità ρK di K. Sfrutte. → K tra il triangolo di remo inoltre la trasformazione affine ed invertibile FK : K . e il generico triangolo K (si veda la Fig. 3.11). Tale mappa è definiriferimento K ˆ + bK , con BK ∈ R2×2 e bK ∈ R2 , e soddisfa la relazione ta da FK (ˆ x) = BK x . = K. Si ricorda che la scelta del triangolo di riferimento K . non è univoca. FK (K) Avremo bisogno di alcuni risultati preliminari. Lemma 3.2 (Trasformazione delle seminorme) Per ogni intero m ≥ 0 e ogni . → R la funzione definita da vˆ = v ◦ FK . Allora v ∈ Hm (K), sia vˆ : K . Inoltre, esiste una costante C = C(m) > 0 tale che: vˆ ∈ Hm (K). 1
m − |ˆ v|Hm (K) ≤ C BK | det BK | 2 |v|Hm (K) , 1 2
−1 m |v|Hm (K) ≤ C BK | det BK | |ˆ v|Hm (K) ,
(3.44) (3.45)
essendo · la norma matriciale associata alla norma vettoriale euclidea | · |, ovvero |BK ξ| BK = sup . (3.46) |ξ| ξ∈R2 ,ξ=0
3.4 Il metodo degli elementi finiti nel caso multidimensionale
61
Dimostrazione. Dal momento che C m (K) ⊂ Hm (K) con inclusione densa, per ogni m ≥ 0, possiamo limitarci a dimostrare le due disuguaglianze precedenti per le funzioni di C m (K), estendendo poi, per densità, il risultato alle funzioni di Hm (K). Le derivate nel seguito saranno dunque da intendersi in senso classico. Ricordiamo che " 1/2 |ˆ v |Hm(K) |Dα vˆ|2 dˆ x , = K
|α|=m
rimandando all’Appendice A.3 per la definizione della derivata Dα . Utilizzando la regola di derivazione per una funzione composita, otteniamo " m Dα vˆL2(K) (Dβ v) ◦ FK L2(K) ≤ CBK . |β|=m
Trasformando la norma · L2 (K) in · L2(K) otteniamo 1
m −2 Dα vL2 (K) . Dα vˆL2 (K) ≤ CBK | det BK |
La disuguaglianza (3.44) segue dopo aver sommato sul multi-indice α, per |α| = m. Il risultato (3.45) può essere dimostrato procedendo in modo del tutto analogo.
−1 Lemma 3.3 (Stime per le norme BK e BK ) Si hanno le seguenti maggiorazioni:
hK , ρˆ ˆ h −1 ≤ , BK ρK BK ≤
(3.47) (3.48)
. essendo ˆ h e ρˆ il diametro e la sfericità del triangolo di riferimento K. Dimostrazione. Grazie alla (3.46) abbiamo BK =
1 ρˆ
sup ξ∈R2 ,|ξ|=ˆ ρ
|BK ξ|.
. tali che x ˆey ˆ∈K ˆ −y ˆ = ξ. Per ogni ξ, con |ξ| = ρˆ, possiamo trovare due punti x Poiché BK ξ = FK (ˆ x) − FK (ˆ y), abbiamo che |BK ξ| ≤ hK , ovvero la (3.47). Procedura del tutto analoga porta al risultato (3.48). . della seminorma di Quello di cui abbiamo bisogno ora è una stima in Hm (K) r m (v − ΠK v) ◦ FK , per ogni funzione v di H (K). Denotiamo nel seguito l’interpolato r r . . . ΠK v ◦ FK con [ΠK v] . I nodi di K sono NK i = FK (Ni ), essendo Ni i nodi di K,
62
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
. sono identificate dalla relazione e, analogamente, le funzioni di base ϕ ˆi definite su K K ϕ ˆi = ϕK ◦ F , avendo indicato con ϕ le funzioni di base associate all’elemento K. K i i Pertanto r [ΠK v]
=
r ΠK v
◦ FK =
MK "
K v(NK i )ϕi
◦ FK =
i=1
MK "
. i ))ϕˆi = Π r vˆ, v(FK (N K
i=1
essendo MK il numero dei nodi su K individuati dalla scelta fatta per il grado r. Ne segue dunque che r r |(v − ΠK v) ◦ FK |Hm (K) v − ΠK ˆ|Hm (K) = |ˆ . v
(3.49)
Al fine di stimare il secondo membro dell’uguaglianza precedente, iniziamo a dimostrare il seguente risultato: . : Hr+1 (K) . → Hm (K), . con Lemma 3.4 (Lemma di Bramble-Hilbert) Sia L m ≥ 0 e r ≥ 0, una trasformazione lineare e continua tale che . p) = 0 L(ˆ
. ∀ˆ p ∈ Pr (K).
(3.50)
. si ha Allora, per ogni vˆ ∈ Hr+1 (K), . . v )| m ≤ L |L(ˆ m (K)) H (K) L(Hr+1(K),H
inf
p∈P ˆ r (K)
ˆ v + pˆHr+1 (K) ,
(3.51)
. Hm (K)) . indica lo spazio delle trasformazioni lineari e dove L(Hr+1 (K), r+1 . . la cui norma è continue l : H (K) → Hm (K) lL(Hr+1(K),H m (K)) =
sup v∈Hr+1 (K),v =0
l(v)Hm (K)) vHr+1 (K)
.
(3.52)
. Per ogni pˆ ∈ Pr (K), . grazie alla (3.50) e alla Dimostrazione. Sia vˆ ∈ Hr+1 (K). definizione di norma (3.52), si ottiene . v )| m = |L(ˆ . v + pˆ)| m ≤ L . |L(ˆ v + pˆHr+1 (K) m (K)) ˆ . H (K) H (K) L(Hr+1 (K),H Si deduce il risultato (3.51) grazie all’arbitrarietà di pˆ.
Il risultato seguente (per la cui dimostrazione rimandiamo a [QV94, Cap. 3]) fornisce l’ultimo strumento necessario per ottenere la stima per l’errore di interpolazione che stiamo cercando.
3.4 Il metodo degli elementi finiti nel caso multidimensionale
63
Lemma 3.5 (Lemma di Deny-Lions) Per ogni r ≥ 0, esiste una costante C = . tale che C(r, K) . ∀ˆ v ∈ Hr+1 (K).
inf ˆ v + pˆHr+1(K) v|Hr+1(K) ≤ C |ˆ
p∈P ˆ r
(3.53)
Come conseguenza dei due precedenti Lemmi, possiamo fornire il seguente . : Hr+1 (K) . → Hm (K), . con m ≥ 0 e r ≥ 0, una trasforCorollario 3.3 Sia L . Allora esiste . p) = 0 per ogni pˆ ∈ Pr (K). mazione lineare e continua tale che L(ˆ r+1 . . una costante C = C(r, K) tale che, per ogni vˆ ∈ H (K), si ha . . v)| m ≤ C L v|Hr+1(K) |L(ˆ m (K)) |ˆ . H (K) L(Hr+1(K),H
(3.54)
Siamo ora in grado di dimostrare la stima di interpolazione cercata. Teorema 3.4 (Stima locale dell’errore d’interpolazione) Sia r ≥ 1 e 0 ≤ . > 0 tale che m ≤ r + 1. Allora esiste una costante C = C(r, m, K) r |v − ΠK v|Hm (K) ≤ C
hr+1 K |v|Hr+1 (K) ρm K
∀v ∈ Hr+1 (K).
(3.55)
Dimostrazione. Dalla Proprietà A.3 ricaviamo innanzitutto che Hr+1 (K) ⊂ C 0 (K), r per r ≥ 1. L’operatore d’interpolazione ΠK risulta dunque ben definito in Hr+1 (K). Utilizzando, nell’ordine, i risultati (3.45), (3.49), (3.48) e (3.54), abbiamo 1
−1 m r r |v − ΠK v|Hm (K) ≤ C1 BK | det BK | 2 |ˆ v − ΠK ˆ|Hm(K) v
≤ C1
ˆm 1 h r | det BK | 2 | vˆ − ΠK ˆ |Hm(K) v ρm 0 12 3 K . v) L(ˆ
ˆm 1 h . | det BK | 2 L v|Hr+1(K) m (K)) |ˆ m L(Hr+1(K),H ρK 1 1 = C3 m | det BK | 2 |ˆ v|Hr+1(K) , ρK ≤ C2
. e C3 = C3 (r, m, K) . costanti opportune. essendo C1 = C1 (m), C2 = C2 (r, m, K) . con l’operatore Osserviamo che il risultato (3.54) è stato applicato identificando L r r . ˆ m e la I − ΠK , essendo (I − Π )ˆ p = 0, per ogni p ˆ ∈ P ( K). Inoltre la quantità h r K . sono state incluse nella costante C3 . norma dell’operatore L
64
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
Applicando a questo punto (3.44) e (3.47) otteniamo il risultato (3.55), ovvero r |v − ΠK v|Hm (K) ≤ C4
1 hr+1 r+1 K r+1 (K) ≤ C5 B |v| |v|Hr+1 (K), K H ρm ρm K K
(3.56)
. e C5 = C5 (r, m, K) . due opportune costanti. La quantità essendo C4 = C4 (r, m, K) ρˆr+1 generata dalla (3.47) e legata alla sfericità dell’elemento di riferimento è stata direttamente inglobata nella costante C5 . Possiamo infine dimostrare la stima globale per l’errore d’interpolazione: Teorema 3.5 (Stima globale per l’errore d’interpolazione) Sia {Th }h>0 una famiglia di triangolazioni regolari del dominio Ω e sia m = 0, 1 e r ≥ 1. Allora . > 0 tale che esiste una costante C = C(r, m, K) |v − Πhr v|Hm (Ω) ≤ C
"
2(r+1−m)
hK
|v|2Hr+1 (K)
1/2
∀v ∈ Hr+1 (Ω).
K∈Th
(3.57) In particolare otteniamo |v − Πhr v|Hm (Ω) ≤ C hr+1−m |v|Hr+1(Ω)
∀v ∈ Hr+1 (Ω).
(3.58)
Dimostrazione. Grazie alla (3.55) e alla condizione di regolarità (3.27), abbiamo " r |v − Πhr v|2Hm (Ω) = |v − ΠK v|2Hm (K) K∈Th
" hr+1 2 K ≤ C1 |v|2Hr+1(K) ρm K K∈Th " hK 2m 2(r+1−m) = C1 hK |v|2Hr+1 (K) ρK K∈Th " 2(r+1−m) ≤ C1 δ 2m hK |v|2Hr+1 (K) , K∈Th
. e C = C1 δ 2m . La (3.58) segue grazie al ovvero la (3.57), essendo C1 = C1 (r, m, K) fatto che hK ≤ h, per ogni K ∈ Th , e che |v|Hp(Ω) =
"
|v|2Hp(K)
1/2
,
K∈Th
per ogni intero p ≥ 0.
3.4 Il metodo degli elementi finiti nel caso multidimensionale
65
Nel caso m = 0 la regolarità della griglia non è necessaria per ottenere la stima (3.58). Ciò non è più vero per m = 1. Infatti, dato un triangolo K e una funzione v ∈ Hr+1 (K), con r ≥ 1, si può dimostrare che vale la seguente disuguaglianza [QV94], hr+1 |v − Πhr v|Hm (K) ≤ C˜ Km |v|Hr+1(K) , m = 0, 1, ρK con C˜ indipendente da v e da Th . Quindi, nel caso m = 1 per una famiglia di griglie ˜ essendo δ la costante che appare in regolari otteniamo la (3.58) ponendo C = δ C, (3.27). D’altra parte, la necessità della condizione di regolarità può essere dimostrata considerando un caso particolare per cui, per ogni C > 0, si può costruire una mesh (non regolare) per la quale la disuguaglianza (3.58) non è vera, come ci accingiamo a dimostrare nel seguente esempio, relativo al caso r = 1. Esempio 3.1 Si consideri il triangolo Kl illustrato in Fig. 3.12, di vertici (0, 0), (1, 0), (0.5, l), √ con l ≤ 23 , e la funzione v(x1 , x2 ) = x21 . Chiaramente v ∈ H2 (Kl) e la sua interpolante lineare su Kl è data da Πh1 v(x1 , x2 ) = x1 − (4l)−1 x2 . Essendo in questo caso hKl = 1, la disuguaglianza (3.58), applicata al singolo triangolo Kl , fornirebbe |v − Πh1 v|H1 (Kl ) ≤ C|v|H2 (Kl) .
(3.59)
Consideriamo ora il comportamento del rapporto ηl =
|v − Πh1 v|H1 (Kl ) |v|H2 (Kl)
quando l tende a zero, ovvero quando il triangolo si schiaccia. Osserviamo che consentire a l di tendere a zero equivale a violare la condizione di regolarità (3.27) in quanto, per l sufficientemente piccoli, hKl = 1, mentre, indicando con pKl il perimetro di Kl, ρK l =
4|Kl| 2l √ = pKl 1 + 1 + 4l2
tende a zero, dove con |Kl| si è indicata l’area dell’elemento Kl . Si ha ⎛ ⎞1 2 1 2 dx ∂x2 (v − Πh1 v) L2 (Kl) 1 Kl 4l ⎝ ⎠ ηl ≥ = = . |v|H2 (Kl) 2l 8l Quindi liml→0 ηl = +∞ (si veda la Fig. 3.12). Di conseguenza, non può esistere una costante C, indipendente da Th , per cui valga la (3.59).
Il teorema sulla stima dell’errore di interpolazione ci fornisce immediatamente una stima sull’errore di approssimazione del metodo di Galerkin. La dimostrazione è del tutto analoga a quella del Teorema 3.3 per il caso monodimensionale. In effetti, basta applicare la (3.10) ed il Teorema 3.5 (per m = 1) per ottenere la seguente stima dell’errore:
66
3 Il metodo di Galerkin-elementi finiti per problemi ellittici 100
90
x2
80
70
60
50
40
Kl
l
30
20
10
1
x1
0
0
0.1
0.2
0.3
0.4
0.5 l
0.6
0.7
0.8
0.9
1
Figura 3.12. Il triangolo Kl (a sinistra) e l’andamento, in funzione di l, del rapporto |v − Πh1 v|H1 (Kl) /|v|H2 (Kl ) (a destra)
Teorema 3.6 Sia u∈ V la soluzione esatta del problema variazionale (3.1) ed uh la sua soluzione approssimata con il metodo agli elementi finiti di grado r. Se u ∈ Hr+1 (Ω), allora valgono le seguenti stime a priori dell’errore: u − uh H1(Ω) ≤
1/2 M " 2r 2 hK |u|Hr+1(K) , C α
(3.60)
K∈Th
M Chr |u|Hr+1(Ω) , α essendo C una costante indipendente da h e da u. u − uh H1(Ω) ≤
(3.61)
Anche nel caso multidimensionale per aumentare l’accuratezza si possono seguire dunque due strategie differenti: 1. diminuire h, ossia raffinare la griglia; 2. aumentare r, cioè utilizzare elementi finiti di grado più elevato. Quest’ultima strada è percorribile però solo se la soluzione u è abbastanza regolare. In generale, possiamo affermare che, se u ∈ Hp+1 (Ω) per qualche p > 0, allora u − uh H1(Ω) ≤ Chs |u|Hs+1(Ω) ,
s = min{r, p},
(3.62)
come già visto nel caso monodimensionale (si veda la (3.26)). Osservazione 3.5 (Caso di griglie anisotrope) La stima dell’errore d’interpolazione (3.55) (e la conseguente stima dell’errore di discretizzazione) può essere generalizzata al caso di griglie anisotrope. In tal caso tuttavia il termine di destra della (3.55) assume un’espressione più complicata: queste stime, infatti, a causa della loro natura direzionale, devono tener conto delle informazioni provenienti da direzioni caratteristiche associate ai singoli triangoli che rimpiazzano l’informazione “globale” concen-
3.4 Il metodo degli elementi finiti nel caso multidimensionale
67
trata nella seminorma |v|Hr+1 (K) . Il lettore interessato può consultare [Ape99, FP01]. Rimandiamo inoltre alle Figure 3.15 e 5.15 per alcuni esempi di griglie anisotrope. • 3.4.4 Stima dell’errore di approssimazione in norma L2 La (3.61) fornisce una stima dell’errore di approssimazione nella norma dell’energia. Analogamente può essere ricavata una stima dell’errore nella norma L2 . Essendo quest’ultima norma meno forte della precedente, ci si deve aspettare una più elevata velocità di convergenza rispetto ad h. Lemma 3.6 (Regolarità ellittica) Si consideri il problema di Dirichlet omogeneo −Δw = g in Ω, w=0 su ∂Ω, con g ∈ L2 (Ω). Se ∂Ω è sufficientemente regolare (ad esempio, è sufficiente che ∂Ω sia una curva di classe C 2 , oppure che Ω sia un poligono convesso), allora w ∈ H2 (Ω) e inoltre esiste una costante C > 0 tale che wH2(Ω) ≤ CgL2(Ω) .
(3.63)
Per la dimostrazione si veda, ad esempio, [Bre86, Gri76]. Teorema 3.7 Sia u ∈ V la soluzione esatta del problema variazionale (3.1) ed uh la sua soluzione approssimata ottenuta con il metodo agli elementi finiti di grado r. Sia inoltre u ∈ Hp+1 (Ω) per un opportuno p > 0. Allora vale la seguente stima a priori dell’errore nella norma L2 (Ω) u − uh L2(Ω) ≤ Chs+1 |u|Hs+1 (Ω) ,
s = min{r, p},
(3.64)
essendo C una costante indipendente da h e da u. Dimostrazione. Ci limiteremo a dimostrare questo risultato per il problema di Poisson (2.13), la cui formulazione debole è data in (2.17). Sia eh = u − uh l’errore di approssimazione e si consideri il seguente problema di Poisson ausiliario (detto problema aggiunto) con termine noto pari all’errore eh : −Δφ = eh in Ω, (3.65) φ=0 su ∂Ω, la cui formulazione debole è trovare φ ∈ V :
a(φ, v) =
eh v dΩ Ω
∀ v ∈ V,
(3.66)
68
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
con V = H10 (Ω). Prendendo v = eh ( ∈ V ), si ha eh 2L2(Ω) = a(φ, eh ). Essendo la forma bilineare simmetrica, per l’ortogonalità di Galerkin (3.8) si ha a(eh , φh ) = a(φh , eh ) = 0
∀ φh ∈ Vh .
Ne segue che eh 2L2 (Ω) = a(φ, eh ) = a(φ − φh , eh ).
(3.67)
Prendendo ora φh = Πh1 φ, applicando la disuguaglianza di Cauchy-Schwarz alla forma bilineare a(·, ·) e la stima dell’errore di interpolazione (3.58) si ottiene eh 2L2(Ω) ≤ |eh |H1(Ω) |φ − φh |H1 (Ω) ≤ |eh |H1(Ω) Ch|φ|H2(Ω) .
(3.68)
Si noti che si può applicare l’operatore di interpolazione Πh1 a φ poiché, grazie al Lemma 3.6, φ ∈ H2 (Ω) e quindi, in particolare, φ ∈ C 0 (Ω), grazie alla proprietà A.3 dell’Appendice A. Applicando il Lemma 3.6 al problema aggiunto (3.65) si ottiene la disuguaglianza |φ|H2(Ω) ≤ Ceh L2(Ω) ,
(3.69)
che, applicata alla (3.68), fornisce infine eh L2(Ω) ≤ Ch|eh|H1 (Ω) , dove C ingloba tutte le costanti apparse fino ad ora. Sfruttando ora la stima dell’errore nella norma dell’energia (3.61) si ottiene la (3.64). Generalizziamo il risultato appena dimostrato per il problema di Poisson al caso di un generico problema ai limiti ellittico approssimato con elementi finiti e per il quale valga una stima dell’errore di approssimazione nella norma dell’energia come la (3.61) ed una proprietà di regolarità ellittica analoga a quella enunciata nel Lemma 3.6. In particolare, consideriamo il caso in cui la forma bilineare a(·, ·) non sia necessariamente simmetrica. Sia u la soluzione esatta del problema trovare u ∈ V : a(u, v) = (f, v)
∀v ∈ V,
(3.70)
e uh la soluzione del problema di Galerkin trovare uh ∈ Vh : a(uh , vh ) = (f, vh ) ∀vh ∈ Vh . Si supponga infine che valga la stima dell’errore (3.61) e consideriamo il seguente problema, che chiameremo problema aggiunto (o duale) di (3.70): per ogni g ∈ L2 (Ω), trovare φ = φ(g) ∈ V : a∗ (φ, v) = (g, v)
∀v ∈ V,
(3.71)
3.4 Il metodo degli elementi finiti nel caso multidimensionale
69
avendo definito la forma bilineare a∗ : V × V → R ,
a∗ (w, v) = a(v, w) ∀w, v ∈ V.
(3.72)
Si noti che l’incognita è ora il secondo argomento di a(·, ·), mentre nel problema primale (3.70) l’incognita è il primo argomento di a(·, ·). Naturalmente se a(·, ·) è simmetrica, allora le due forme bilineari coincidono, come peraltro si è visto nel caso del precedente problema (3.66). Supponiamo che per la soluzione u del problema primale (3.70) valga un risultato di regolarità ellittica; si può verificare che allora lo stesso risultato è valido per il problema duale (o aggiunto) (3.71), ovvero che ∃C >0 :
φ(g)H2 (Ω) ≤ C gL2(Ω)
∀g ∈ L2 (Ω).
In particolare, ciò è vero per un generico problema ellittico con dati di Dirichlet o di Neumann (ma non misti) su di un dominio Ω poligonale e convesso [Gri76]. Scegliamo ora g = eh ed indichiamo, per semplicità, φ = φ(eh ). Scelto inoltre v = eh , si ha dunque eh 2L2(Ω) = a(eh , φ). Essendo, per la regolarità ellittica del problema aggiunto, φ ∈ H2 (Ω) e φH2(Ω) ≤ Ceh L2(Ω) grazie alla ortogonalità di Galerkin, si ha che: eh 2L2 (Ω)
=
a(eh , φ) = a(eh , φ − Πh1 φ)
≤
C1 eh H1(Ω) φ − Πh1 φH1 (Ω)
≤
C2 eh H1(Ω) h φH2(Ω)
≤
C3 eh H1(Ω) h eh L2(Ω) ,
dove abbiamo sfruttato la continuità della forma a(·, ·) e la stima (3.61). Quindi eh L2(Ω) ≤ C3 heh H1 (Ω) , da cui segue la (3.64), utilizzando la stima (3.62) dell’errore in H1 (Ω). Osservazione 3.6 La tecnica sopra illustrata, basata sull’uso del problema aggiunto per la stima della norma L2 dell’errore di discretizzazione, è nota in letteratura come trucco di Aubin-Nitsche [Aub67, Nit68]. Diversi esempi di come costruire l’aggiunto di un problema dato verranno presentati nella Sez. 3.6. • Esempio 3.2 Consideriamo il problema modello −Δu + u = f in Ω = (0, 1)2 con u = g su ∂Ω. Si supponga di scegliere il termine noto f e la funzione g in modo tale che la soluzione esatta del problema sia u(x, y) = sin(2πx) cos(2πy). Risolviamo tale problema con il metodo
70
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
di Galerkin-elementi finiti di grado 1 e 2 su una griglia uniforme di passo h. Nel grafico di Fig. 3.13 viene mostrato l’andamento dell’errore al decrescere del passo h sia nella norma di L2 (Ω), sia in quella di H1 (Ω). Come si può osservare dalla pendenza delle rette in figura, l’errore si riduce, rispetto alla norma L2 (linee con le crocette), in modo quadratico se si utilizzano elementi finiti lineari (linea continua) e in modo cubico quando vengano utilizzati elementi finiti quadratici (linea tratteggiata). Rispetto alla norma H1 (linee senza le crocette) invece si ha una riduzione dell’errore lineare rispetto agli elementi finiti lineari (linea continua), quadratica qualora vengano utilizzati elementi finiti quadratici (linea tratteggiata). Nella Fig. 3.14 vengono mostrate le soluzioni sulla griglia di passo 1/8 ottenute con elementi finiti lineari (a sinistra) e quadratici (a destra).
10 1
1
1
0.1 1
Errore
2
0.01 1 2
0.001 1 3
1e-04
1e-05 0.01
0.1 h
1
Figura 3.13. Andamento rispetto ad h dell’errore in norma H1 (Ω) (linee senza crocette) ed in norma L2 (Ω) (linee con le crocette) per elementi finiti lineari (linee continue) e quadratici (linee tratteggiate) per la risoluzione del problema riportato nell’Esempio 3.2
2
2
1
1
0
0
−1
1 −1
−2 0
0.5 0.2
0.4
0.6
0.8
1
0
−2 0
1 0.5 0.2
0.4
0.6
0.8
1
0
Figura 3.14. Soluzioni calcolate con elementi finiti lineari (a sinistra) e quadratici (a destra) su una griglia uniforme di passo 1/8
3.5 Il problema dell’adattività della griglia
71
3.5 Il problema dell’adattività della griglia Nella sezione precedente abbiamo derivato, grazie ai Teoremi 3.6 e 3.7, delle stime a priori dell’errore di approssimazione per il metodo degli elementi finiti. Essendo il parametro h la lunghezza massima dei lati della triangolazione, se facessimo riferimento alla (3.61) saremmo indotti a raffinare la reticolazione ovunque nella speranza di ridurre l’errore u − uh H1(Ω) . Conviene piuttosto fare riferimento alla (3.60) in cui la maggiorazione dell’errore tiene conto del comportamento locale della soluzione, attraverso la seminorma |u|Hr+1(K) su ogni elemento e il parametro geometrico locale hK della triangolazione. In effetti, al fine di avere una griglia efficiente, che ottimizzi il numero di elementi necessari per ottenere una accuratezza desiderata, si può cercare di equidistribuire l’errore su ogni elemento K ∈ Th . In particolare, vorremmo ottenere hrK |u|Hr+1(K) η
∀K ∈ Th ,
dove η è un’opportuna costante che dipende solo dall’accuratezza richiesta all’approssimazione uh e dal numero di elementi della griglia. È evidente che un maggior contributo di |u|Hr+1(K) (dovuto ad una più pronunciata variabilità di u|K ) dovrà essere controbilanciato o da un passo reticolare locale hK più piccolo o da un grado polinomiale r più elevato. Nel primo caso si parla di hadattività della griglia, nel secondo caso di p-adattività (dove p sta per “polinomiale”). Nel seguito ci occuperemo solo della prima tecnica. Tuttavia facciamo riferimento al Cap. 4 per l’analisi di stime dell’errore che risultano più convenienti da utilizzarsi in vista di un’adattività di tipo polinomiale. Le osservazioni fatte fino ad ora, seppur corrette, risultano in realtà poco utili dato che la soluzione u non è nota. Si può allora operare seguendo diverse strategie. Un primo modo è quello di utilizzare la stima a priori dell’errore (3.60) sostituendo la soluzione esatta u con una sua approssimazione opportuna, facilmente calcolabile su ogni singolo elemento. Si parla in tal caso di adattività a priori. Un secondo approccio è invece basato sull’uso di una stima a posteriori dell’errore in grado di legare l’errore di approssimazione all’andamento della soluzione approssimata uh , nota dopo aver risolto numericamente il problema. In tal caso la griglia ottimale di calcolo verrà costruita tramite un processo iterativo in cui risoluzione, stima dell’errore e modifica della griglia di calcolo vengono ripetute fino al raggiungimento dell’accuratezza richiesta. Si parla in tal caso di adattività a posteriori. Le strategie di adattività a priori e a posteriori non sono mutuamente esclusive, ma possono coesistere. Ad esempio, generata una griglia opportuna di partenza tramite un’adattività a priori, questa può essere ulteriormente raffinata tramite l’analisi a posteriori. 3.5.1 Adattività a priori basata sulla ricostruzione delle derivate Una tecnica di adattività a priori si basa sulla stima (3.60) in cui si approssimano opportunamente le derivate di u su ogni elemento, al fine di stimare le seminorme locali
72
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
di u. Per far ciò si utilizza la soluzione approssimata uh∗ calcolata su una griglia di tentativo di passo h∗ , con h∗ abbastanza grande in modo che il calcolo sia computazionalmente economico, ma non eccessivamente grande da generare un errore troppo elevato nell’approssimazione delle derivate, cosa che potrebbe compromettere l’efficacia dell’intera procedura. Esemplifichiamo l’algoritmo per elementi finiti lineari, nel qual caso la (3.60) assume la forma $ 12 # " u − uh H1 (Ω) ≤ C h2K |u|2H2(K) (3.73) K∈Th
(C tiene ora conto anche delle costanti di continuità e di coercività della forma bilineare). Puntiamo a generare una triangolazione Th tale da garantirci che il termine di destra della (3.73) sia inferiore ad una tolleranza > 0 prestabilita. Supponiamo dunque di aver calcolato uh∗ su una griglia triangolare Th∗ con N ∗ triangoli. Utilizziamo uh∗ per approssimare le derivate seconde di u che intervengono nella definizione della seminorma |u|2H2(K) . Poiché uh∗ non possiede derivate seconde continue in Ω, occorre procedere con un’adeguata tecnica di ricostruzione. Una possibile tecnica è basata sull’applicazione di una proiezione locale di tipo H1 . Per ogni nodo Ni della griglia si considera l’insieme (patch) KNi degli elementi che hanno Ni come nodo (ovvero degli elementi che formano il supporto di ϕi , si veda la Fig. 3.9). Si trovano quindi i piani πij (x) = aji · x + bji che minimizzano ∂uh∗ j (x)2 dx, j = 1, 2, (3.74) πi (x) − ∂xj K Ni risolvendo un sistema a due equazioni per i coefficienti aji e bji . Questa è la fase di proiezione locale. Si costruisce così un’approssimazione lineare a tratti gh∗ ∈ (Xh1∗ )2 del gradiente ∇uh∗ definita come " j πi (xi )ϕi (x), j = 1, 2, (3.75) [gh∗ (x)]j = i
dove la somma si estende su tutti i nodi Ni della griglia. Una volta ricostruito il gradiente si può procedere in due modi differenti, a seconda del tipo di ricostruzione che si vuole ottenere per le derivate seconde. Ricordiamo innanzitutto che la matrice Hessiana associata ad u è definita da D2 (u) = ∇(∇u), ovvero
D2 (u) i,j =
∂2u , ∂xi ∂xj
i, j = 1, 2 .
Una sua approssimazione, costante a tratti, si ottiene ponendo, per ogni K ∗ ∈ Th∗ , , 1+ ∇gh∗ + (∇gh∗ )T K ∗ . D2h K ∗ = 2
(3.76)
Si noti l’uso della forma simmetrica del gradiente, necessaria per avere la simmetria dell’Hessiano.
3.5 Il problema dell’adattività della griglia
73
Come alternativa computazionalmente più onerosa, nel caso in cui si sia interessati ad una ricostruzione lineare a tratti dell’Hessiano, si può applicare la stessa tecnica di proiezione locale individuata dalle (3.74) e (3.75) direttamente al ricostruito gh∗ , simmetrizzando poi la matrice così ottenuta tramite la (3.76). In ogni caso, siamo ora in grado di calcolare una approssimazione di |u|H2(K) su un generico triangolo K ∗ di Th∗ , approssimazione che sarà ovviamente legata al ricostruito D2h . Dalla (3.73) si deduce che, per ottenere la soluzione approssimata uh con un errore inferiore o eguale ad una tolleranza prefissata , si deve costruire una nuova griglia Thnew tale per cui "
"
h2K |u|2H2(K)
K∈Thnew
h2K
K∈Thnew
2 "
[D2h ]ij 2L2 (K) ≤
i,j=1
2 . C
Idealmente, si desidera inoltre che l’errore sia equidistribuito, cioè che ogni elemento della sommatoria sia all’incirca lo stesso su ciascun elemento K della nuova griglia. Una possibile procedura di adattazione consiste allora nel generare la nuova griglia suddividendo opportunamente tutti gli N ∗ triangoli K ∗ di Th∗ per i quali si abbia 2 ηK ∗
=
h2K ∗
2 "
[D2h]ij 2L2(K ∗ ) >
i,j=1
1 2 . N∗ C
(3.77)
Questo metodo è detto di raffinamento poiché prevede solo di creare una griglia più fine rispetto a quella di partenza, ma chiaramente non permette di soddisfare pienamente la condizione di equidistribuzione. Algoritmi più sofisticati permettono anche di deraffinare la griglia in corrispondenza dei triangoli per cui la disuguaglianza (3.77) è verificata con segno al posto di >. Le procedure di deraffinamento però sono di più difficile implementazione di quelle di raffinamento. Dunque, spesso si preferisce costruire la nuova griglia “da zero” (procedura detta di remeshing). A tale scopo si introduce, sulla base della stima dell’errore, la seguente funzione di spaziatura H, costante in ogni elemento H K ∗ =
√ C N∗
2 "
[D2h]ij 2L2 (K) i,j=1
1/2
∀K ∗ ∈ Th∗
(3.78)
|uh∗ |H2(K ∗ )
e la si utilizza per costruire la griglia adattata applicando uno degli algoritmi di generazione illustrati nel Cap. 12. Spesso l’algoritmo di adattazione richiede che la funzione H sia continua e lineare su ciascun triangolo. In tal caso possiamo di nuovo ricorrere ad una proiezione locale, usando la procedura già vista. L’adattazione può essere quindi ripetuta per la soluzione calcolata sulla nuova griglia, sino a che tutti gli elementi soddisfino la disuguaglianza inversa alla (3.77). Osservazione 3.7 Per quanto concerne la costante C che compare nella disuguaglianza (3.73) la si può stimare applicando la stessa disuguaglianza a funzioni note (e di
74
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
1
0.8
15 0.6
10
0.4
0.2
5
0
0 −0.2
−5 −0.4
1
−10
−0.6
0.5 0 −15 1
−0.8
−0.5 0.8
0.6
0.4
0.2
0
−0.2
−0.4
−0.6
−0.8
−1
−1
−1 −1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Figura 3.15. Funzione u (a sinistra) e terza griglia adattata (a destra) per l’Esempio 3.3
cui quindi è possibile calcolare l’errore esatto). Un’alternativa che non richiede la conoscenza esplicita di C consiste nel realizzare la griglia che equi-distribuisce l’errore per un numero N ∗ di elementi fissato a priori. In questo caso il valore di H calcolato ponendo e C pari a uno in (3.78) viene riscalato, moltiplicandolo per una costante, in modo che la nuova griglia abbia il numero di elementi prefissato. •
Esempio 3.3 Consideriamo la funzione u(x, y) = 10x3 + y3 + tan−1 (10−4 /(sin(5y) − 2x)) sul dominio Ω = (−1, 1)2 . Tale funzione è caratterizzata da una brusca variazione di valori in corrispondenza della curva x = 0.5 sin(5y), come si può osservare dalla Fig. 3.15 di sinistra. Partendo da una griglia iniziale strutturata costituita da 50 triangoli ed utilizzando una procedura adattiva guidata dall’Hessiana di u, si ottiene, dopo 3 iterazioni, la griglia in Fig. 3.15 (a destra), costituita da 3843 elementi. Come si può osservare la maggior parte dei triangoli si concentra in corrispondenza del salto della funzione: se infatti pochi triangoli di area medio-grande sono sufficienti per descrivere u in modo soddisfacente nelle regioni a monte e a valle del salto, la brusca variazione di u in corrispondenza della discontinuità richiede l’uso di piccoli triangoli, ovvero di un ridotto passo di discretizzazione. Osserviamo inoltre la natura anisotropa della griglia in Fig. 3.15, testimoniata dalla presenza di elementi la cui forma è molto allungata rispetto a quella di un triangolo equilatero (tipico di una griglia isotropa). Tale griglia è stata infatti generata utilizzando la generalizzazione dello stimatore (3.77) al caso anisotropo. L’idea è essenzialmente quella di sfruttare separatamente le informazioni fornite dalle componenti [D2h ]ij anziché “mescolarle” attraverso la norma L2 (K ∗). Utilizzando la stessa procedura adattiva nel caso isotropo (ovvero lo stimatore in (3.77)) si sarebbe ottenuta dopo 3 iterazioni una griglia adattata costituita da 10535 elementi.
3.5.2 Adattività a posteriori Le procedure descritte nella sezione precedente possono risultare tuttavia insoddisfacenti in quanto la ricostruzione delle derivate di u a partire da uh∗ è spesso soggetta ad errori non facilmente quantificabili.
3.5 Il problema dell’adattività della griglia
75
Un’alternativa radicale consiste nell’adottare stime a posteriori dell’errore. Queste ultime non utilizzano la stima a priori (3.60) (e conseguentemente approssimazioni delle derivate della soluzione incognita u), ma sono ottenute in funzione di quantità calcolabili, normalmente basate sul cosiddetto residuo della soluzione approssimata. Quest’ultimo fornisce una misura di quanto la soluzione discreta soddisfi il problema differenziale su ogni elemento della triangolazione data. Consideriamo, a titolo di esempio, il problema di Poisson (2.13). La sua formulazione debole è data dalla (2.17), mentre la sua approssimazione agli elementi finiti è descritta dalla (3.30), dove ◦
r
Vh è lo spazio X h definito in (3.29). Per ogni v ∈ H10 (Ω) e per ogni vh ∈ Vh , si ha, grazie alla proprietà di ortogonalità di Galerkin (3.8) e sfruttando la (2.17),
∇(u − uh ) · ∇v dΩ =
Ω
=
∇(u − uh ) · ∇(v − vh ) dΩ
Ω f(v − vh ) dΩ − ∇uh · ∇(v − vh ) dΩ
(3.79) " ∂uh = f(v − vh ) dΩ + Δuh (v − vh ) dΩ − (v − vh ) dγ ∂n K∈Th K K∈Th ∂K Ω " " ∂uh (v − vh ) dγ. = (f + Δuh)(v − vh ) dΩ − ∂n Ω
"
Ω
K∈Th K
K∈Th ∂K
Osserviamo che gli integrali su Ω sono stati spezzati sui singoli triangoli al fine di garantire la buona definizione degli integrali stessi. Indicato con e un lato del generico triangolo K, definiamo salto della derivata normale di uh attraverso il lato e la quantità , + ∂uh = ∇uh K · n1 + ∇uh K · n2 = ∇uh K − ∇uh K · n1 , (3.80) 1 2 1 2 ∂n e dove K1 e K2 sono i due triangoli che condividono il lato e, i cui versori normali uscenti sono dati da n1 e n2 rispettivamente, con n1 = −n2 (si veda la Fig. 3.16). La definizione (3.80) implicitamente sottointende che e non sia un lato di bordo. Al fine di estendere tale definizione anche ai lati di bordo, introduciamo il cosiddetto salto
e K1
K2 n1 n2
Figura 3.16. Triangoli coinvolti nella definizione del salto della derivata normale di uh attraverso il lato e
76
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
generalizzato, dato da
∂uh ∂n
⎧ ∂uh ⎪ ⎨ ∂n e = ⎪ ⎩ 0
per e ∈ Eh ,
(3.81)
per e ∈ ∂Ω,
dove Eh indica l’insieme dei lati interni della griglia. Notiamo che, nel caso di elementi finiti lineari, la (3.81) identifica una funzione costante a pezzi definita su tutti i lati della griglia Th . Inoltre la definizione (3.81) può essere opportunamente modificata nel caso in cui il problema (2.13) sia completato con condizioni al bordo non necessariamente di Dirichlet. Grazie alla (3.81) possiamo dunque scrivere che " ∂uh " " ∂uh (v − vh ) dγ = − (v − vh ) dγ ∂n ∂n K∈Th ∂K K∈Th e∈∂K e " " 1 ∂uh ∂uh 1 " (v − vh ) dγ = − (v − vh ) dγ, =− 2 ∂n 2 ∂n −
K∈Th e∈∂K
K∈Th ∂K
e
(3.82) dove il fattore 1/2 tiene conto del fatto che ogni lato interno e della triangolazione è condiviso da due elementi. Inoltre, dal momento che v − vh = 0 sul bordo, in (3.81) si potrebbe assegnare un qualsiasi valore diverso da zero in corrispondenza di e ∈ ∂Ω in quanto i termini della (3.82) associati ai lati di bordo sarebbero comunque nulli. Inserendo ora la (3.82) nella (3.79) ed applicando la disuguaglianza di CauchySchwarz, otteniamo " ∇(u − uh ) · ∇v dΩ ≤ f + Δuh L2(K) v − vh L2(K) K∈T h Ω 5 4 4 4 ∂u 14 h 4 4 + v − vh L2 (∂K) . (3.83) 2 4 ∂n 4L2 (∂K) Occorre ora trovare un particolare vh ∈ Vh che permetta di esprimere le norme di v − vh in funzione di una norma opportuna di v. Si desidera inoltre che questa norma 6 contenente K che sia la meno estesa sia “locale”, cioè calcolata su una regione K possibile. Se v fosse continua si potrebbe prendere come vh l’interpolante Lagrangiana di v e utilizzare le già citate stime dell’errore di interpolazione su K. Purtroppo, nel nostro caso v ∈ H1 (Ω) e quindi non è necessariamente continua. Tuttavia, se Th è una griglia regolare, si può introdurre un opportuno operatore di interpolazione Rh : H1 (Ω) → Vh , detto di Clément, definito, nel caso di elementi finiti lineari, come Rh v(x) =
" Nj
(Pj v)(Nj )ϕj (x)
∀v ∈ H1 (Ω),
(3.84)
3.5 Il problema dell’adattività della griglia
77
dove Pj v denota il piano definito sul patch KNj degli elementi della griglia che condividono il nodo Nj (si veda la Fig. 3.17), individuato dalle relazioni (Pj v − v)ψ dx = 0 per ψ = 1, x, y K Nj
e dove le ϕj sono le funzioni base di Lagrange dello spazio ad elementi finiti considerato. Si può dimostrare che, per ogni v ∈ H1 (Ω) e per ogni K ∈ Th , valgono le seguenti disuguaglianze: v − Rh vL2 (K) ≤ C1 hK |v|H1(K) , 1
2 vH1 (K) v − Rh vL2 (∂K) ≤ C2 hK ,
dove C1 e C2 sono due costanti positive che dipendono dal minimo angolo degli ele6 = {Kj ∈ Th : Kj ∩ K = ∅} rappresenta menti della triangolazione, mentre K l’unione di K con tutti i triangoli che con esso condividono o un lato o un vertice (si veda la Fig. 3.17). Il lettore interessato a maggiori dettagli può, per esempio, consultare [BG98, BS94, Clé75]. K
KNj
K
Nj
di elementi che hanno in comune con K almeno un nodo di griglia Figura 3.17. L’insieme K (a sinistra) e l’insieme KNj degli elementi che condividono il nodo Nj (a destra)
Scegliendo dunque in (3.83) vh = Rh v, ponendo C = max(C1 , C2 ) ed utilizzando la disuguaglianza di Cauchy-Schwarz discreta, si ottiene " ∇(u − uh ) · ∇v dΩ ≤ C ρK (uh )vH1 (K) K∈Th Ω $ 12 # $ 12 # " " 2 2 ≤C [ρK (uh )] vH1 (K) . K∈Th
Abbiamo indicato con ρK (uh ) = hK
K∈Th
4 4 ∂uh 4 1 21 4 4 4 f + Δuh L2 (K) + hK 4 2 ∂n 4L2 (∂K)
(3.85)
78
3 Il metodo di Galerkin-elementi finiti per problemi ellittici
il cosiddetto residuo locale, costituito dal residuo interno f + Δuh L2 (K) e dal 4 4 h 4 residuo di bordo 4 ∂u . ∂n L2 (∂K) 6 è necessaOsserviamo ora che, essendo Th regolare, il numero di elementi in K riamente limitato da un intero positivo indipendente da h, che indichiamo con n. Pertanto # $ 12 " √ v2H1 (K) ≤ nvH1 (Ω) . K∈Th
Scelto infine v = u − uh e applicando la disuguaglianza di Poincaré, troviamo u − uh H1 (Ω)
√ ≤C n
#
"
$ 12 [ρK (uh )]2
,
(3.86)
K∈Th
dove ora la costante C include anche il contributo della costante di Poincaré. Si noti che ρK (uh ) è una quantità effettivamente calcolabile essendo funzione del dato f, del parametro geometrico hK e della soluzione calcolata uh . Il punto più delicato di questa analisi è la stima, non sempre immediata, delle costanti C ed n. La stima a posteriori (3.86) può essere, ad esempio, usata al fine di garantire che u − uh H1 (Ω) 1 3 ≤ , ≤ 2 uh H1 (Ω) 2
(3.87)
essendo > 0 una tolleranza prestabilita. A tale scopo, mediante un’opportuna procedura iterativa schematizzata in Fig. 3.18, si può raffinare e deraffinare localmente la griglia Th in modo tale che, per ogni K, siano soddisfatte le disuguaglianze locali seguenti 1 2 9 2 uh 2H1(Ω) ≤ [ρK (uh )]2 ≤ uh 2H1 (Ω) , 4N 4N
(3.88)
avendo indicato con N il numero di elementi della griglia Th . Ciò assicura che siano√soddisfatte le disuguaglianze globali (3.87), a meno del contributo della costante C n. Alternativamente, si può costruire una funzione di spaziatura di griglia H appropriata, analogamente a quanto detto nel paragrafo 3.5.1. Naturalmente il diagramma di flusso riportato in Fig. 3.18 si può usare anche per problemi ai limiti diversi da (3.30). 3.5.3 Esempi numerici di adattività Illustriamo il concetto di adattazione della griglia computazionale su due semplici problemi differenziali. A tal fine adottiamo la procedura iterativa schematizzata in Fig. 3.18, limitandoci però alla sola fase di raffinamento. Il procedimento di deraffinamento risulta infatti di più difficile implementazione, tanto è vero che molti dei software di uso comune prevedono il solo raffinamento della griglia iniziale, che converrà dunque scegliere opportunamente lasca.
3.5 Il problema dell’adattività della griglia
79
lettura della griglia iniziale
? -
discretizzazione e risoluzione del problema numerico
?
si pone R = D = ∅
? ciclo sugli elementi K
se ρK >
3ε √ 2 N
uh H 1
se ρK
0, indipendente da N , tale che s 1 f (s) L2(−1,1), f − fN L2(−1,1) ≤ Cs N ossia si ha convergenza di ordine s, per s ≥ 1, rispetto a 1/N . Possiamo a questo punto dimostrare che fN è la proiezione ortogonale di f su QN rispetto al prodotto scalare di L2 (−1, 1), ovvero che (f − fN , p) = 0
∀ p ∈ QN .
(4.8)
104
4 I metodi spettrali
Infatti (f − fN , Lm ) =
" ∞
f.k Lk , Lm
k=N+1
∞ "
=
f.k (Lk , Lm ).
k=N+1
I polinomi Lk , con 0 ≤ k ≤ N , formano una base per lo spazio QN . Inoltre, per m ≤ N , (Lk , Lm ) = 0 ∀k ≥ N + 1 per via dell’ortogonalità, da cui segue la (4.8). In particolare dalla (4.8) discende anche che fN è la funzione che rende minima la distanza di f da QN , ovvero f − fN L2 (−1,1) ≤ f − pL2(−1,1)
∀ p ∈ QN .
(4.9)
A tal fine cominciamo con l’osservare che f − fN 2L2(−1,1) = (f − fN , f − fN ) = (f − fN , f − p) + (f − fN , p − fN ), per ogni p ∈ QN e che (f − fN , p − fN ) = 0 per la proprietà di ortogonalità (4.8). Di conseguenza f − fN 2L2(−1,1) = (f − fN , f − p) ∀ p ∈ QN , da cui, applicando la disuguaglianza di Cauchy-Schwarz, si ottiene f − fN 2L2(−1,1) ≤ f − fN L2 (−1,1) f − pL2(−1,1)
∀ p ∈ QN ,
ossia la (4.9). 4.2.2 Integrazione gaussiana Le formule di quadratura gaussiane sono quelle che, fissato il numero dei nodi di quadratura, consentono di ottenere grado di precisione massimo (si veda [QSS08]). Inizieremo con l’introdurre tali formule sull’intervallo (−1, 1) per poi estenderle al caso di un intervallo generico. Indichiamo con N il numero dei nodi. Chiamiamo nodi di quadratura di GaussLegendre gli zeri {¯ x1 , . . . , x ¯N } del polinomio di Legendre LN . In corrispondenza di tale insieme di nodi considereremo la seguente formula di quadratura (detta interpolatoria, di Gauss-Legendre) 1 GL IN−1 f=
GL ΠN−1 f(x) dx,
(4.10)
−1 GL f il polinomio di grado N − 1 interpolante f nei nodi x ¯1, . . . , x ¯N . essendo ΠN−1 Indichiamo con ψk ∈ QN−1 , k = 1, ..., N , i polinomi caratteristici di Lagrange associati ai nodi di Gauss-Legendre, ovvero tali che
ψk (¯ xj ) = δkj ,
j = 1, .., N.
4.2 Polinomi ortogonali e integrazione numerica gaussiana
105
La formula di quadratura (4.10) assume allora la seguente espressione 1 f(x) dx
GL IN−1 f
=
N "
1 α ¯ k f(¯ xk ),
con α ¯k =
k=1
−1
ψk (x)dx, −1
e viene detta formula di quadratura di Gauss-Legendre (GL). Per trovare i nodi ¯ tk ed i pesi δ¯k caratterizzanti tale formula su un generico intervallo [a, b], basterà ricorrere per i primi alla relazione b−a a+b ¯ tk = x ¯k + , 2 2 mentre, per i secondi, si verifica facilmente che b−a α ¯k. δ¯k = 2 Il grado di esattezza di queste formule è pari a 2N − 1 (ed è il massimo possibile per formule a N − 1 nodi). Ciò significa che b f(x)dx = a
N "
δ¯k f(t¯k )
∀f ∈ Q2N−1 .
k=1
4.2.3 Le formule di Gauss-Legendre-Lobatto Una caratteristica delle formule di integrazione di Gauss-Legendre è di avere tutti i nodi di quadratura interni all’intervallo di integrazione. Nel caso di problemi differenziali ciò rende problematica l’imposizione delle condizioni al bordo nei punti estremi dell’intervallo. Per superare tale difficoltà vengono introdotte le cosiddette formule di Gauss-Lobatto, in particolare le formule di Gauss-Legendre-Lobatto (GLL) i cui nodi, relativamente all’intervallo (−1, 1), sono rappresentati dagli estremi stessi dell’intervallo, e dai punti di massimo e di minimo del polinomio di Legendre di grado N , ossia dagli zeri della derivata prima del polinomio LN . Denotiamo tali nodi con {x0 = −1, x1 , . . . , xN−1 , xN = 1}. Si ha pertanto LN (xi ) = 0, per i = 1, . . . , N − 1.
(4.11)
Siano ψi i corrispondenti polinomi caratteristici, ovvero ψi ∈ QN : ψi (xj ) = δij , 0 ≤ i, j ≤ N ,
(4.12)
la cui espressione analitica è data da ψi (x) =
(1 − x2 )LN (x) −1 , N (N + 1) (x − xi )LN (xi )
i = 0, . . . , N
(4.13)
106
4 I metodi spettrali
1
0.5
0
-0.5 i=0 i=1 i=2 i=3 i=4
-1 -1
-0.5
0
0.5
1
Figura 4.5. I polinomi caratteristici ψi , i = 0, . . . , 4 di grado 4 relativi ai nodi di GaussLegendre-Lobatto
(si veda la Fig. 4.5 in cui vengono riportati i grafici dei polinomi caratteristici ψi , per i = 0, . . . , 4 nel caso in cui N = 4). Osserviamo che le funzioni ψi (x) sono la controparte delle funzioni di base lagrangiane {ϕi } degli elementi finiti introdotte nella Sez. 3.3. Per ogni funzione f ∈ C 0 ([−1, 1]), il suo polinomio d’interpolazione GLL ΠN f ∈ QN nei nodi GLL è identificato dalla relazione GLL ΠN f(xi ) = f(xi ),
0≤i≤N .
(4.14)
Esso ha la seguente espressione GLL ΠN f(x) =
N "
f(xi )ψi (x).
(4.15)
i=0 GLL Si può dimostrare che, grazie alla distribuzione non uniforme dei nodi {xi }, ΠN f converge verso f quando N → ∞. Inoltre è soddisfatta la seguente stima dell’errore: se f ∈ Hs (−1, 1), per qualche s ≥ 1,
GLL fL2 (−1,1) ≤ Cs f − ΠN
1 N
s f (s) L2(−1,1),
(4.16)
dove Cs è una costante dipendente da s ma non da N . Più in generale (si veda [CHQZ06]), GLL f − ΠN fHk (−1,1) ≤ Cs
1 N
s−k f (s) L2 (−1,1), s ≥ 1, k = 0, 1.
(4.17) In Fig. 4.6 (a sinistra) riportiamo le curve di convergenza dell’errore d’interpolazione per due diverse funzioni.
4.2 Polinomi ortogonali e integrazione numerica gaussiana 5
10
0
10
10
errore quadratura
errore interpolazione
10
−5
10
−10
10
10
−15
10
0
10
10
20
30
40
50
60
70
10
107
0
−4
−8
−12
−16
0
10
20
30
40
50
N
N
Figura 4.6. Comportamento dell’errore di interpolazione (a sinistra) e di integrazione (a destra) nei nodi GLL in funzione del grado N per le due funzioni f1 (x) = cos(4πx) (•) e f2 (x) = 4 cos(4x) exp(sin(4x)) () sull’intervallo (−1, 1)
In alternativa alla (4.10) possiamo introdurre la seguente formula di quadratura di Gauss-Legendre-Lobatto, GLL, 1 GLL IN f
GLL ΠN f(x)dx =
=
N "
αk f(xk )
(4.18)
k=0
−1
1 i cui pesi sono αi =
ψi (x) dx ed assumono la seguente espressione −1
αi =
1 2 . N (N + 1) L2N (xi )
(4.19)
La formula di quadratura GLL ha grado di esattezza pari a 2N − 1, ovvero integra esattamente tutti i polinomi di grado ≤ 2N − 1, 1 GLL f(x)dx = IN f
∀f ∈ Q2N−1 .
(4.20)
−1
Questo è il massimo grado ottenibile quando si usano N + 1 nodi, di cui 2 assegnati a priori. Si dimostra inoltre, usando la stima di interpolazione (4.16), la seguente stima per l’errore di integrazione se f ∈ Hs (−1, 1), con s ≥ 1, 1 s 1 GLL f(x) dx − IN f ≤ Cs f (s) L2(−1,1), N −1
dove Cs è indipendente da N ma può dipendere, in generale, da s. Ciò significa che tanto più la funzione f è regolare, tanto più elevato è l’ordine di convergenza della
108
4 I metodi spettrali
formula di quadratura. In Fig. 4.6 (a destra) riportiamo l’errore d’integrazione per due diverse funzioni (le stesse considerate nel grafico di sinistra). Se ora si considera, invece di (−1, 1), un generico intervallo (a, b), nodi e pesi in (a, b) assumono la seguente espressione tk =
b−a a+b xk + , 2 2
δk =
b−a αk . 2
La formula (4.19) si generalizza come segue b f(x)dx
N "
δk f(tk ).
(4.21)
k=0
a
Le sue proprietà di precisione restano invariate.
4.3 Metodi G-NI in una dimensione Consideriamo il seguente problema ellittico monodimensionale, con dati di Dirichlet omogenei Lu= − (μu ) + σu = f, −1 < x < 1, (4.22) u(−1) = 0, u(1) = 0, con μ(x) ≥ μ0 > 0 e σ(x) ≥ 0, al fine di avere una forma bilineare associata che sia coerciva in H10 (−1, 1). Il metodo di Galerkin spettrale si scrive 1 trovare uN ∈ VN :
μuN vN dx +
−1
1
1 fvN dx ∀ vN ∈ VN ,
σuN vN dx =
−1
−1
(4.23) con VN = {vN ∈ QN : vN (−1) = vN (1) = 0}.
(4.24)
Il metodo G-NI (Galerkin with Numerical Integration) si ottiene approssimando gli integrali in (4.23) con le formule di integrazione GLL. Ciò equivale a sostituire al prodotto scalare (f, g) in L2 (−1, 1) il prodotto scalare discreto di GLL (per funzioni continue) N " (f, g)N = αi f(xi )g(xi ), (4.25) i=0
dove gli xi e gli αi sono definiti secondo la (4.11) e la (4.19). Dunque il metodo G-NI si scrive
trovare u∗N ∈ VN : (μu∗N , vN )N + (σu∗N , vN )N = (f, vN )N
∀ vN ∈ VN . (4.26)
A causa dell’integrazione numerica, in generale sarà u∗N = uN , cioè le soluzioni del metodo spettrale e di quello G-NI non coincidono.
4.3 Metodi G-NI in una dimensione
109
Tuttavia, osserviamo che, grazie alla proprietà di esattezza (4.20), si avrà (f, g)N = (f, g)
purché
fg ∈ Q2N−1 .
(4.27)
Se consideriamo il caso particolare in cui in (4.22) μ è costante e σ = 0, il problema G-NI diviene )N = (f, vN )N . (4.28) μ(u∗ N , vN In alcuni casi molto particolari si può riscontrare coincidenza tra il metodo spettrale e quello G-NI. È questo ad esempio il caso della (4.28) in cui f sia un polinomio di grado al massimo uguale a N − 1. È semplice verificare che i due metodi coincidono grazie alla relazione di esattezza (4.27). Generalizzando al caso di formulazioni differenziali più complesse e di condizioni al bordo differenti (di Neumann, o miste), il problema G-NI si scrive trovare u∗N ∈ VN :
aN (u∗N , vN ) = FN (vN )
∀ vN ∈ VN ,
(4.29)
dove aN (·, ·) e FN (·) si ottengono a partire dalla forma bilineare a(·, ·) e dal termine noto F (·) del problema di Galerkin spettrale, sostituendo gli integrali esatti con le formule di quadratura GLL, essendo VN lo spazio dei polinomi di grado N che si annullano su quei tratti di bordo (ammesso che ve ne siano) su cui siano assegnate condizioni di Dirichlet. Si osservi che, a causa del fatto che la forma bilineare aN (·, ·) e il funzionale FN (·) non sono più quelli associati al problema di partenza, quello che si ottiene non è più un metodo di approssimazione di Galerkin e pertanto non sono più applicabili i risultati teorici ad esso relativi (in particolare, il Lemma di Céa). In generale, un metodo derivato da un metodo di Galerkin, di tipo spettrale o agli elementi finiti, previa sostituzione degli integrali esatti con quelli numerici verrà detto metodo di Galerkin generalizzato (GG). Per la corrispondente analisi si farà ricorso al Lemma di Strang (si veda la Sez. 4.4.1 e anche ([Cia78, QV94]) . 4.3.1 Interpretazione algebrica del metodo G-NI Le funzioni ψi , con i = 1, 2, . . . , N − 1, introdotte nella Sez. 4.2.3 costituiscono una base per lo spazio VN , in quanto sono tutte nulle in corrispondenza di x0 = −1 e di xN = 1. Possiamo dunque fornire per la soluzione u∗N del problema G-NI (4.29) la rappresentazione nodale u∗N (x)
=
N−1 "
u∗N (xi )ψi (x),
i=1
ovvero, in analogia con il metodo degli elementi finiti, identificare le incognite del nostro problema con i valori assunti da u∗N in corrispondenza dei nodi xi (ora coincidenti con quelli di Gauss-Legendre-Lobatto). Inoltre, affinché il problema (4.29) risulti verificato per ogni vN ∈ VN , basterà che lo sia per ogni funzione di base ψi . Avremo
110
4 I metodi spettrali
perciò N−1 "
u∗N (xj ) aN (ψj , ψi ) = FN (ψi ),
i = 1, 2, . . . , N − 1,
j=1
che possiamo riscrivere N−1 "
aij u∗N (xj ) = fi ,
i = 1, 2, . . . , N − 1,
j=1
ovvero, in forma matriciale
Au∗N = f
(4.30)
dove A = (aij )
aij = aN (ψj , ψi ),
con
f = (fi )
con fi = FN (ψi ),
e dove u∗N denota il vettore dei coefficienti incogniti u∗N (xj ), per j = 1, . . . , N − 1. Nel caso particolare del problema (4.26), si otterrebbe aij = (μψj , ψi )N + αi σ(xi )δij ,
fi = (f, ψi )N = αi f(xi ),
per ogni i, j = 1, . . . , N − 1. La matrice in 1D è piena a causa della presenza del termine diffusivo. Il termine reattivo dà invece un contributo solo alla diagonale. In più dimensioni la matrice A ha una struttura a blocchi, e i blocchi diagonali sono pieni. Si veda la Fig. 4.7 in cui è riportato il pattern di sparsità relativo alla matrice A in 2D e 3D. Osserviamo infine che il numero di condizionamento della matrice a cui si perverrebbe in assenza di integrazione numerica risulta, in generale, ancora più grande, essendo O(N 4 ). La matrice A risulta inoltre mal condizionata, con un numero di condizionamento che risulta dell’ordine di O(N 3 ). Per la risoluzione del sistema (4.30) è dunque conveniente ricorrere, specialmente in 2D e 3D, ad un metodo iterativo opportunamente precondizionato. Scegliendo come precondizionatore la 0
0
5 100
10 200
15
20
300
25 400
30 500
35
40
600
45 700
50
0
5
10
15
20
25 nz = 637
30
35
40
45
50
0
100
200
300 400 nz = 18225
500
600
700
Figura 4.7. Pattern di sparsità della matrice A del metodo G-NI per il caso 2D (a sinistra) e 3D (a destra): nz indica il numero degli elementi non nulli della matrice
4.3 Metodi G-NI in una dimensione 6
4
10
4
10
10 non precondizionato prec. diagonale prec. Cholesky prec. EF int. num. prec. EF int. esatta
3
10 iterazioni
condizionamento
5
10
111
3
10
non precondizionato prec. diagonale prec. Cholesky prec. EF int. num. prec. EF int. esatta
2
10
2
10
1
10 1
10
0
10
0
0
10
20
30
40
50
60
70
10
0
10
20
N
30
40
50
60
70
N
Figura 4.8. Numero di condizionamento (a sinistra) e numero di iterazioni (a destra), per diversi tipi di precondizionamento
matrice degli elementi finiti lineari associati alla stessa forma bilineare a(·, ·) e ai nodi GLL, si ottiene una matrice precondizionata il cui condizionamento è indipendente da N ([CHQZ06]). Nella Fig. 4.8, in alto, riportiamo il numero di condizionamento (in funzione di N ) della matrice A e della matrice ottenuta precondizionando A con diverse matrici di precondizionamento: la matrice diagonale di A, quella ottenuta da A attraverso la fattorizzazione incompleta di Cholesky, quella con elementi finiti lineari approssimando gli integrali con la formula dei trapezi composita, e infine quella esatta degli elementi finiti. Nella stessa figura, in basso, riportiamo invece il numero di iterazioni che servono nei vari casi a far convergere il metodo del gradiente coniugato. 4.3.2 Condizionamento della matrice di rigidezza del metodo G-NI Cerchiamo delle stime per gli autovalori λN della matrice di rigidezza A del metodo G-NI Au = λN u nel caso del semplice operatore di derivata seconda. Ricordiamo che A = (aij ), con aij = (ψj , ψi )N = (ψj , ψi ), ψj essendo la j-esima funzione caratteristica di Lagrange associata al nodo xj . Allora λN =
2 uN uT Au x L2(−1,1) = , uT u uT u
(4.31)
essendo uN ∈ VN l’unico polinomio dello spazio VN definito in (4.24) soddisfacente xj N u (xj ) = uj , per j = 1, . . . , N − 1, dove u = (uj ). Per ogni j, uj = uN x (s) ds, −1
dunque, grazie alla disuguaglianza di Cauchy-Schwarz, xj 1/2 xj 1/2 √ N 2 |uj | ≤ |ux (s)| ds ds ≤ 2 uN x L2(−1,1) . −1
−1
112
4 I metodi spettrali
Pertanto
N−1 "
2 u2j ≤ 2 (N − 1) uN x L2 (−1,1) ,
uT u =
j=1
il che, grazie alla (4.31), fornisce la minorazione λN ≥
1 . 2(N − 1)
(4.32)
Una maggiorazione per λN si ottiene ricorrendo alla disuguaglianza inversa per i polinomi algebrici, secondo la quale (si veda [CHQZ06], Sez. 5.4.1) ∃ C > 0 : ∀ p ∈ VN ,
pxL2 (−1,1) ≤
√
1 2N −1
p2 (x) dx 1 − x2
1/2 .
(4.33)
Allora 1 2 uN x L2 (−1,1)
≤ 2N
2 −1
N−1 " [uN (xj )]2 [uN (x)]2 2 dx = 2 N αj , 1 − x2 1 − x2j j=1
(4.34)
dove si è usata l’esattezza della formula di quadratura GLL (si veda la (4.20)), essendo [uN ]2 /(1 − x2 ) ∈ P2N−2 . Poiché per il coefficiente αj vale la stima asintotica: αj /(1 − x2j ) ≤ C, per un’opportuna costante C indipendente da N , possiamo concludere, grazie alla (4.31) e alla (4.34), che λN ≤ 2 C N 2 .
(4.35)
Si può infine dimostrare che entrambe le stime (4.32) e (4.35) sono ottimali per quanto attiene al comportamente asintotico rispetto a N . 4.3.3 Equivalenza tra il metodo G-NI e un metodo di collocazione Vogliamo mostrare che esiste una relazione precisa fra il metodo G-NI e i metodi di collocazione, quei metodi cioè che impongono il soddisfacimento dell’equazione differenziale solo in punti selezionati dell’intervallo di definizione. Consideriamo ancora il problema di Dirichlet omogeneo (4.22), il cui problema G-NI associato si scrive nella forma (4.26). Vorremmo controintegrare per parti l’equazione (4.26), ma, per poterlo fare, dobbiaGLL mo prima riscrivere i prodotti scalari discreti sotto forma di integrali. Sia ΠN : 0 C ([−1, 1]) → QN l’operatore di interpolazione introdotto nella Sez. 4.2.3 che associa ad una funzione continua il corrispondente polinomio interpolante tale funzione nei nodi di Gauss-Legendre-Lobatto. Poiché la formula di quadratura GLL usa i valori della funzione nei soli nodi di quadratura e poiché ivi la funzione e il suo interpolato G-NI coincidono, si ha N " i=0
αi f(xi ) =
N " i=0
1 GLL αi ΠN f(xi ) =
GLL ΠN f(x)dx, −1
4.3 Metodi G-NI in una dimensione
113
GLL dove l’ultima uguaglianza discende dalla (4.20) in quanto ΠN f viene integrato esattamente, essendo un polinomio di grado N . Il prodotto scalare discreto può essere così ricondotto ad un prodotto scalare in L2 (−1, 1), nel caso in cui una delle due funzioni sia un polinomio di grado strettamente minore di N , ovvero GLL GLL (f, g)N = (ΠN f, g)N = (ΠN f, g)
∀ g ∈ QN−1 .
(4.36)
GLL f)g ∈ Q2N−1 e quindi l’integrale viene calcolato esattaIn tal caso, infatti, (ΠN mente. Integrando per parti gli integrali esatti, si ottiene1 (μuN , vN )N
GLL GLL = (ΠN (μuN ), vN )N = (ΠN (μuN ), vN ) GLL GLL (μuN )] , vN )+ [ΠN (μuN ) vN ]1−1 = −([ΠN GLL = −([ΠN (μuN )] , vN )N ,
dove l’ultimo passaggio si giustifica poiché vN si annulla al bordo ed i termini nel prodotto scalare danno luogo ad un polinomio il cui grado totale è pari a 2N − 1. A questo punto possiamo riscrivere il problema G-NI come segue trovare uN ∈ VN : (LN uN , vN )N = (f, vN )N dove si è definito
∀ vN ∈ VN ,
GLL LN uN = −[ΠN (μuN )] + σuN .
(4.37) (4.38)
Imponendo ora che la (4.37) valga per ogni funzione di base ψi , si ottiene (LN uN , ψi )N = (f, ψi )N ,
i = 1, 2, . . . , N − 1.
Esaminiamo ora come è fatta la i-esima equazione. Il primo termine, a meno del segno, vale GLL ([ΠN (μuN )] , ψi )N =
N "
GLL GLL αj [ΠN (μuN )] (xj )ψi (xj ) = αi [ΠN (μuN )] (xi ),
j=0
grazie al fatto che ψi (xj ) = δij . Analogamente, per il secondo termine, si ha (σuN , ψi )N =
N "
αj σ(xj )uN (xj )ψi (xj ) = αi σ(xi )uN (xi ).
j=0
Infine, il secondo membro diviene (f, ψi )N =
N "
αj f(xj )ψi (xj ) = αi f(xi ).
j=0 1
D’ora in poi, per semplicità di notazione, indicheremo la soluzione G-NI con uN (anziché u∗N ), non essendoci più rischio di confusione con la soluzione spettrale.
114
4 I metodi spettrali
Dividendo per αi l’equazione così trovata, si ottiene, in definitiva, il seguente problema equivalente al problema G-NI LN uN (xi ) = f(xi ), i = 1, 2, . . ., N − 1, (4.39) uN (xN ) = 0. uN (x0 ) = 0, Questo problema si dice di collocazione perché equivale a collocare nei nodi interni xi l’equazione differenziale assegnata (previa approssimazione dell’operatore differenziale L con l’operatore LN ), nonché a soddisfare le condizioni al contorno nei nodi di bordo. Introduciamo ora il concetto di derivata di interpolazione, DN (Φ), di una funGLL zione continua Φ, identificandola con la derivata del polinomio interpolatore ΠN Φ definito secondo la (4.14), ovvero GLL DN (Φ)=D[ΠN Φ],
(4.40)
essendo D il simbolo di derivazione esatta. Se ora consideriamo l’operatore differenziale L e sostituiamo a tutte le derivate le corrispondenti derivate di interpolazione, otteniamo un nuovo operatore, detto operatore pseudo-spettrale LN , che coincide esattamente con quello definito nella (4.38). Ne consegue che il metodo G-NI, qui introdotto come metodo di Galerkin generalizzato, può essere interpretato anche come un metodo di collocazione che opera direttamente sulla forma forte del problema, in analogia a quanto avviene, ad esempio, nel caso delle differenze finite. In questo senso le differenze finite possono essere considerate come una versione meno accurata del metodo G-NI in quanto le derivate sono approssimate con formule che fanno uso di un numero ridotto di valori nodali. Se l’operatore di partenza fosse stato Lu = (−μu ) + (bu) + σu il corrispondente operatore pseudo-spettrale sarebbe stato LN uN = −DN (μuN ) + DN (buN ) + σuN .
(4.41)
Nel caso le condizioni al contorno per il problema (4.22) fossero di tipo Neumann, + , + , μu (−1) = g− , μu (1) = g+ , il metodo di Galerkin spettrale si formulerebbe come segue 1 trovare uN ∈ QN
: −1
1 fvN dx + −1
μuN vN
1 dx +
σuN vN dx =
−1
μ(1) g+ vN (1) − μ(−1) g− vN (−1)
∀ vN ∈ QN ,
4.3 Metodi G-NI in una dimensione
115
mentre il metodo G-NI diventerebbe trovare uN ∈ QN
:
(f, vN )N
+
(μuN , vN )N + (σuN , vN )N =
μ(1) g+ vN (1) − μ(−1) g− vN (−1)
∀ vN ∈ QN .
La sua interpretazione come metodo di collocazione diventa: trovare uN ∈ QN t.c. i = 1, . . . , N − 1
LN uN (xi ) = f(xi ), +
, , 1 ++ , LN uN (x0 ) − f(x0 ) − μ uN (−1) − g− = 0, α0 + , , 1 ++ , LN uN (xN ) − f(xN ) + μ uN (1) − g+ = 0, αN dove LN è definito in (4.38). Si noti che nei nodi di bordo viene soddisfatta la condizione di Neumann a meno del residuo LN uN − f moltiplicato per il coefficiente della formula GLL che è un infinitesimo di ordine 2 rispetto a 1/N .
10
10
10
10
10
5
10
0
10
−5
10 r=N r=1 r=2 r=3
−10
10
−15
0
50
100
150
200
250
300
350
10
5
r=N r=1 r=2 r=3
0
−5
−10
−15
0
50
100
N
150
200
250
300
350
N
Figura 4.9. Errore in H1 (−1, 1) (a sinistra) ed errore sul dato di Neumann (a destra) al variare di N
In Fig. 4.9 riportiamo nella norma H1 (−1, 1) (a sinistra) ed il valore assoluto + l’errore , della differenza μ uN (±1)−g± (a destra) per diversi valori di N . Entrambi gli errori decadono esponenzialmente al crescere di N . Riportiamo inoltre gli errori ottenuti usando le approssimazioni di Galerkin ad elementi finiti di grado r = 1, 2, 3. Infine, è utile osservare che la derivata di interpolazione (4.40) si può rappresentare attraverso una matrice D ∈ R(N+1)×(N+1) , detta matrice della derivata di interpolazione, la quale associa ad un qualunque vettore v ∈ RN+1 di valori nodali vi = Φ(xi ), i = 0, . . . , N , il vettore w = Dv le cui componenti sono i valori nodali del polinomio DN (Φ), ovvero wi = (D N (Φ))(xi ), i = 0, . . . , N . La matrice D ha per elementi i valori Dij = ψj (xi ),
i, j = 0, . . . , N.
116
4 I metodi spettrali
Tali valori sono dati da (si veda [CHQZ06]) ⎧ LN (xi ) 1 ⎪ ⎪ , ⎪ ⎪ L (x ) x − xj ⎪ N j i ⎪ ⎪ ⎪ ⎪ ⎨ − (N + 1)N , 4 Dij = ⎪ ⎪ (N + 1)N ⎪ ⎪ ⎪ , ⎪ ⎪ 4 ⎪ ⎪ ⎩ 0
i = j, i = j = 0, i = j = N, altrimenti,
dove d0 = dN = 2 e dj = 1 per j = 1, . . . , N − 1.
4.4 Generalizzazione al caso bidimensionale Consideriamo come dominio il quadrato unitario Ω = (−1, 1)2 . Essendo Ω il prodotto tensoriale dell’intervallo monodimensionale (−1, 1), è naturale scegliere come nodi i punti xij le cui coordinate coincidono entrambe con i nodi GLL monodimensionali xi , xij = (xi , xj ), i, j = 0, . . . , N, mentre come pesi prendiamo il prodotto dei corrispondenti pesi monodimensionali αij = αi αj , i, j = 0, . . . , N. La formula di quadratura di Gauss-Legendre-Lobatto (GLL) in due dimensioni è dunque definita da f(x) dΩ Ω
N "
αij f(xij ),
i,j=0
mentre il prodotto scalare discreto è dato da (f, g)N =
N "
αij f(xij )g(xij ).
(4.42)
i,j=0
Analogamente al caso monodimesionale si dimostra che la formula di quadratura (4.42) è esatta ogniqualvolta la funzione integranda sia un polinomio di grado al più 2N − 1. In particolare, ciò implica che (f, g)N = (f, g)
∀ f, g t.c. fg ∈ Q2N−1 .
In questa sezione, per ogni N , QN indica lo spazio dei polinomi di grado minore o uguale ad N rispetto ad ognuna delle variabili, introdotto in (4.2).
4.4 Generalizzazione al caso bidimensionale
117
Consideriamo ora a titolo di esempio il problema
Lu= − div(μ∇u) + σu = f
in Ω = (−1, 1)2 ,
u=0
su ∂Ω.
Nell’ipotesi che μ(x) ≥ μ0 > 0 e σ(x) ≥ 0, la forma bilineare associata è coerciva in H10 (Ω). La sua approssimazione G-NI è data da trovare uN ∈ VN : dove
∀ vN ∈ VN ,
aN (uN , vN ) = FN (vN )
VN = {v ∈ QN : v|∂Ω = 0}, aN (u, v) = (μ∇u, ∇v)N + (σu, v)N
e FN (vN ) = (f, vN )N . Come mostrato nel caso monodimensionale, anche in più dimensioni si può verificare che la formulazione G-NI equivale ad un metodo di collocazione in cui l’operatore L sia sostituito da LN , l’operatore pseudo-spettrale che si ottiene approssimando ogni derivata con una derivata di interpolazione (4.40). Nel caso di metodi ad elementi spettrali avremo bisogno di generalizzare la formula di integrazione numerica GLL su ogni elemento Ωk . Questo si può fare grazie alla . → Ωk (si veda la Fig. 4.2). In effetti, possiamo innanzitutto trasformazione ϕk : Ω generare i nodi GLL sul generico elemento Ωk , ponendo (k)
xij = ϕk (xij ),
i, j = 0, . . . , N,
quindi definendo i corrispondenti pesi (k)
αij = αij | det Jk | = αij
|Ωk | , 4
i, j = 0, . . . , N,
avendo indicato con Jk lo Jacobiano della trasformazione ϕk e con |Ωk | la misura di Ωk . La formula GLL su Ωk diventa dunque GLL f(x) dx IN,k (f) = Ωk
N "
(k)
(k)
αij f(xij ).
(4.43)
i,j=0
La formulazione agli elementi spettrali con integrazione numerica gaussiana, che indicheremo con l’acronimo MES-NI, diventa allora trovare uN ∈ VNC :
aC,N (uN , vN ) = FC,N (vN )
∀ vN ∈ VNC .
(4.44)
118
4 I metodi spettrali
Abbiamo posto aC,N (uN , vN ) =
"
aΩk ,N (uN , vN )
k
dove aΩk ,N (uN , vN ) è l’approssimazione di aΩk (uN , vN ) ottenuta approssimando ogni integrale su Ωk che compare nella forma bilineare attraverso la formula di integrazione numerica GLL in Ω! k (4.43). Il termine FC,N si definisce in modo simile, precisamente FC,N (vN ) = k FΩk ,N (vN ), dove FΩk ,N è ottenuto, a sua volta, GLL (fvN ) per ogni k. sostituendo fvN dx con la formula IN,k Ωk
Osservazione 4.3 La Fig. 4.10 riassume in modo assai schematico la genesi dei diversi schemi di approssimazione sino ad ora evocati. Nel caso delle differenze finite si è indicato con LΔ la discretizzazione dell’operatore attraverso schemi alle differenze finite applicati alle derivate che appaiono nella definizione di L. •
4.4.1 Convergenza del metodo G-NI Come osservato nel caso monodimensionale, il metodo G-NI si può considerare come un metodo di Galerkin generalizzato. Per quest’ultimo, l’analisi di convergenza si basa sul seguente risultato generale: Lemma 4.1 (di Strang) Si consideri il problema trovare u ∈ V :
a(u, v) = F (v)
∀ v ∈ V,
(4.45)
in cui V sia uno spazio di Hilbert con norma ·V , F ∈ V un funzionale lineare e limitato su V ed a(·, ·) : V × V →R una forma bilineare, continua e coerciva su V (valgano, cioè, le ipotesi del Lemma di Lax-Milgram). Sia data, inoltre, un’approssimazione di (4.45) formulabile attraverso il seguente problema di Galerkin generalizzato trovare uh ∈ Vh :
ah (uh , vh ) = Fh (vh ) ∀vh ∈ Vh ,
(4.46)
essendo {Vh , h > 0} una famiglia di sottospazi di dimensione finita di V . Supponiamo che la forma bilineare discreta ah (·, ·) sia continua su Vh × Vh , e sia uniformemente coerciva su Vh , cioè ∃α∗ > 0 indipendente da h t.c. ah (vh , vh ) ≥ α∗ vh 2V
∀ vh ∈ Vh .
Supponiamo inoltre che Fh sia un funzionale lineare e continuo su Vh . Allora:
4.4 Generalizzazione al caso bidimensionale
119
1. esiste una ed una sola soluzione uh del problema (4.46); 2. tale soluzione dipende con continuità dai dati, ovvero si ha uh V ≤
Fh (vh ) 1 sup ; ∗ α vh ∈Vh \{0} vh V
3. vale infine la seguente stima a priori dell’errore M u − uh V ≤ 1 + ∗ u − wh V inf wh ∈Vh α +
|a(wh , vh ) − ah (wh , vh )| 1 sup ∗ α vh∈Vh \{0} vh V
+
|F (vh ) − Fh (vh )| 1 sup , ∗ α vh∈Vh \{0} vh V
5 (4.47)
essendo M la costante di continuità della forma bilineare a(·, ·).
Dimostrazione. Essendo soddisfatte le ipotesi del Lemma di Lax-Milgram per il problema (4.46), la soluzione di tale problema esiste ed è unica. Inoltre uh V ≤
essendo Fh Vh =
1 Fh Vh , α∗
Fh (vh ) la norma nello spazio duale Vh di Vh . vh ∈Vh \{0} vh V sup
Accingiamoci ora a dimostrare la (4.47). Sia uh ∈ Vh la soluzione del problema (4.46) e sia wh una qualunque funzione del sottospazio Vh . Ponendo σh = uh − wh ∈ Vh , abbiamo α∗ σh 2V
≤
ah (σh , σh )
=
ah (uh , σh) − ah (wh , σh )
=
Fh (σh ) − ah (wh , σh ) [grazie a (4.46)]
=
Fh (σh ) − F (σh ) + F (σh ) − ah (wh , σh )
=
[Fh(σh ) − F (σh)] + a(u, σh) − ah (wh , σh ) [ grazie a (4.45)]
=
[Fh(σh ) − F (σh)] + a(u − wh , σh)
[per la coercività di ah ]
+[a(wh , σh) − ah (wh , σh )].
120
4 I metodi spettrali
-
F ORMA FORTE Lu = f
F ORMA DEBOLE u ∈ V : a(u, v) = F (v) ∀v ∈ V
Galerkin
? F ORMA I NTEGRALE Lu := div(F(u)) = f
?
-
Galerkin-Elementi Finiti uh ∈ Vh : a(uh , vh ) = F (vh ) ∀vh ∈ Vh
-
Galerkin-spettrale uN ∈ VN : a(uN , vN ) = F (vN ) ∀vN ∈ VN
-
MES uN ∈ VNC : aC (uN , vN ) = FC (vN ) ∀vN ∈ VNC
Volumi Finiti Fh (uh ) · n =
∂ΩV
f ΩV
∀ΩV volume di controllo
Galerkin generalizzato
-
Galerkin discontinuo (DG)
Collocazione nei nodi interni Differenze finite L Δ u Δ = fΔ Collocazione spettrale L N u N = fN
-
Elementi Finiti con integrazione numerica uh ∈ Vh : ah (uh , vh ) = Fh (vh ) ∀vh ∈ Vh
-
G-NI uN ∈ VN : aN (uN , vN ) = FN (vN ) ∀vN ∈ VN
-
MES-NI uN ∈ VNC : aC,N (uN , vN ) = FC,N (vN ) ∀vN ∈ VNC
Figura 4.10. Quadro di riferimento per i principali metodi numerici considerati in questo libro
Se σh = 0 si può dividere la disequazione precedente per α∗ σh V , ottenendo 1 |a(u − wh , σh )| |a(wh , σh) − ah (wh , σh )| σh V ≤ + α∗ σh V σh V 8 |Fh(σh ) − F (σh )| + σh V |a(wh , vh ) − ah (wh , vh )| 1 ≤ M u − wh V + sup α∗ vh V vh ∈Vh \{0}
4.4 Generalizzazione al caso bidimensionale
+
sup vh ∈Vh \{0}
|Fh(vh ) − F (vh )| vh V
121
5 [per la continuità di a].
Osserviamo che se σh = 0 tale disuguaglianza è ancora valida (in quanto afferma che 0 è minore di una somma di termini positivi), pur non essendo più valido il procedimento con cui essa è stata ricavata. Possiamo ora stimare l’errore fra la soluzione u di (4.45) e la soluzione uh di (4.46). Essendo u − uh = (u − wh ) − σh , otteniamo u − uh V
+
≤
u − wh V + σh V ≤ u − wh V
+
1 α∗
+
M u − wh V +
|Fh (vh ) − F (vh )| sup vh V vh ∈Vh \{0}
=
1+
M α∗
u − wh V +
|a(wh , vh ) − ah (wh , vh )| vh V vh ∈Vh \{0} sup
5
|a(wh , vh ) − ah (wh , vh )| 1 sup ∗ α vh ∈Vh \{0} vh V
|Fh (vh ) − F (vh )| 1 sup . α∗ vh ∈Vh \{0} vh V
Se la disuguaglianza precedente vale ∀wh ∈ Vh , essa vale anche per l’estremo inferiore al variare di wh in Vh . Pertanto si ottiene la (4.47). Osservando il termine di destra della disuguaglianza (4.47), possiamo riconoscere tre diversi contributi all’errore d’approssimazione u −uh : l’errore di miglior approssimazione inf u − wh V , l’errore |a(wh , vh ) − ah (wh , vh )| derivante dall’approssiwh ∈Vh
mazione della forma bilineare a(·, ·) con la forma bilineare discreta ah (·, ·), e l’errore |F (vh) − Fh (vh )| derivante dall’approssimazione del funzionale lineare F (·) con il funzionale lineare discreto Fh (·). Osservazione 4.4 Si noti che se si sceglie in (4.4.1) wh = u∗h , essendo u∗h la soluzione del problema di Galerkin u∗h ∈ Vh : a(u∗h , vh ) = F (vh )
∀ vh ∈ Vh ,
122
4 I metodi spettrali
allora il termine a(u − wh , σh ) nella (4.4.1) è nullo grazie alla (4.45). Si può pertanto ottenere la seguente stima, alternativa alla (4.47): u − uh V
≤ u − u∗h V +
|a(u∗h , vh ) − ah (u∗h , vh )| 1 sup α∗ vh ∈Vh \{0} vh V
+
|F (vh ) − Fh (vh )| 1 sup . ∗ α vh ∈Vh \{0} vh V
Essa ben mette in evidenza che l’errore dovuto al metodo di Galerkin generalizzato è maggiorabile con quello del metodo di Galerkin più gli errori indotti dall’uso dell’integrazione numerica per il calcolo di a(·, ·) e di F (·). • Vogliamo ora applicare il Lemma di Strang al metodo G-NI, per verificarne la convergenza, limitandoci, per semplicità, al caso monodimensionale. Naturalmente Vh sarà sostituito da VN , uh da uN , vh da vN e wh da wN . Cominciamo, innanzitutto, col calcolare l’errore di quadratura GLL E(g, vN ) = (g, vN ) − (g, vN )N , essendo g e vN , rispettivamente, una generica funzione continua ed un generico poGLL linomio di QN . Introducendo il polinomio d’interpolazione ΠN g definito secondo la (4.14), otteniamo E(g, vN ) =
GLL (g, vN ) − (ΠN g, vN )N
∈QN−1
=
∈QN 2 30 1 2301 GLL GLL GLL (g, vN ) − (ΠN−1 g, vN ) + (ΠN−1 g, vN ) −(ΠN g, vN )N 12 3 0
=
GLL (g, vN ) − (ΠN−1 g, vN )
∈Q2N−1
GLL GLL g, vN )N − (ΠN g, vN )N [ per la (4.27)] +(ΠN−1
=
GLL GLL GLL g, vN ) + (ΠN−1 g − ΠN g, vN )N . (g − ΠN−1
(4.48) Il primo addendo del termine di destra si può maggiorare usando la disuguaglianza di Cauchy-Schwarz GLL GLL |(g − ΠN−1 g, vN )| ≤ g − ΠN−1 gL2 (−1,1)vN L2 (−1,1).
(4.49)
Per maggiorare il secondo addendo dobbiamo innanzitutto introdurre i due seguenti lemmi, per la cui dimostrazione rinviamo a [CHQZ06]:
4.4 Generalizzazione al caso bidimensionale
123
Lemma 4.2 Il prodotto scalare discreto (·, ·)N definito in (4.25) è un prodotto scalare su QN e, come tale, soddisfa la disuguaglianza di Cauchy-Schwarz |(ϕ, ψ)N | ≤ ϕN ψN , dove la norma discreta · N è data da ϕN = (ϕ, ϕ)N
∀ ϕ ∈ QN .
(4.50)
(4.51)
Lemma 4.3 La norma “continua” di L2 (−1, 1) e la norma “discreta” · N definita in (4.51) verificano le disuguaglianze √ vN L2(−1,1) ≤ vN N ≤ 3vN L2(−1,1) ∀ vN ∈ QN , (4.52) pertanto esse sono uniformemente equivalenti su QN . GLL In base a tali lemmi, possiamo procedere alla maggiorazione del termine (ΠN−1 g− GLL ΠN g, vN )N , come segue GLL GLL |(ΠN−1 g − ΠN g, vN )N | GLL GLL g − ΠN gN vN N ≤ ΠN−1
[ grazie al Lemma 4.2]
GLL GLL g − gL2 (−1,1) + ΠN g − gL2(−1,1) vN L2(−1,1) ≤ 3 ΠN−1 [grazie al Lemma 4.3]. Usando tale disuguaglianza e la (4.49), dalla (4.48) si può ottenere la seguente maggiorazione GLL GLL |E(g, vN )| ≤ 4ΠN−1 g − gL2 (−1,1) + 3ΠN g − gL2 (−1,1) vN L2(−1,1). Usando la stima d’interpolazione (4.17), se g ∈ Hs (−1, 1), per qualche s ≥ 1, abbiamo s s 1 1 |E(g, vN )| ≤ C gHs(−1,1) vN L2 (−1,1). + N −1 N In definitiva, essendo, per ogni N ≥ 2, 1/(N − 1) ≤ 2/N , l’errore di quadratura di Gauss-Legendre-Lobatto risulta maggiorabile come s 1 gHs (−1,1)vN L2(−1,1), (4.53) |E(g, vN )| ≤ C N per ogni g ∈ Hs (−1, 1) e per ogni polinomio vN ∈ QN .
124
4 I metodi spettrali
A questo punto siamo pronti a valutare i vari contributi che intervengono nella (4.47). Anticipiamo che quest’analisi verrà fatta nel caso in cui siano introdotte opportune ipotesi semplificatrici sul problema differenziale in esame. Iniziamo dal termine più semplice, ovvero quello associato al funzionale F , supponendo di considerare un problema con condizioni al bordo di Dirichlet omogenee, in modo che risulti F (vN ) = (f, vN ) e FN (vN ) = (f, vN )N . Si ha allora, purché f ∈ Hs (−1, 1), per un opportuno s ≥ 1, |F (vN ) − FN (vN )| |(f, vN ) − (f, vN )N | = sup vN V vN V vN ∈VN \{0} vN ∈VN \{0} s 1 C fHs (−1,1)vN L2 (−1,1) |E(f, vN )| N = sup ≤ sup vN V vN ∈VN \{0} vN V vN ∈VN \{0} s 1 ≤C fHs (−1,1), N sup
(4.54)
essendosi sfruttata la relazione (4.53) ed avendo maggiorato la norma in L2 (−1, 1) con quella in Hs (−1, 1). Per quanto riguarda il contributo |a(wN , vN ) − aN (wN , vN )| vN V vN ∈VN \{0} sup
dovuto alla forma bilineare, non possiamo valutarlo esplicitamente senza riferirci ad un particolare problema differenziale. Scegliamo quindi, a titolo d’esempio, il problema di diffusione-reazione monodimensionale (4.22), supponendo inoltre μ e σ costanti. Per inciso tale problema soddisfa condizioni al bordo di Dirichlet omogenee, in accordo con quanto richiesto per la derivazione della stima (4.54). In tal caso la forma bilineare associata è a(u, v) = (μu , v ) + (σu, v), mentre la sua approssimazione G-NI è data da aN (u, v) = (μu , v )N + (σu, v)N . Dobbiamo quindi valutare a(wN , vN )−aN (wN , vN ) = (μwN , vN )−(μwN , vN )N +(σwN , vN )−(σwN , vN )N . Trattandosi di polinomi algebrici monodimensionali, wN , vN ∈ QN , quindi wN vN ∈ Q2N−2 . Se supponiamo che μ sia costante, il prodotto wN vN viene integrato esatta mente dalla formula di quadratura GLL. In particolare si deduce che (μwN , vN )− (μwN , vN )N = 0. Resta quindi da valutare il contributo
(σwN , vN ) − (σwN , vN )N .
4.4 Generalizzazione al caso bidimensionale
125
Osserviamo che (σwN , vN ) − (σwN , vN )N =E(σwN , vN ) = E(σ(wN − u), vN ) + E(σu, vN ), e quindi, usando la (4.53), si ottiene 1 σ(wN − u)H1(−1,1)vN L2(−1,1), |E(σ(wN − u), vN )| ≤ C N |E(σu, vN )| ≤ C
1 N
s σuHs(−1,1)vN L2 (−1,1).
GLL D’altra parte, essendo anche σ costante, posto wN = ΠN u ed utilizzando la (4.17), si ottiene s−1 1 GLL σ(wN − u)H1(−1,1) ≤ Cu − ΠN uH1(−1,1) ≤ C uHs(−1,1). N
Pertanto |a(wN , vN ) − aN (wN , vN )| ≤ C∗ vN V vN ∈VN \{0} sup
1 N
s uHs(−1,1).
(4.55)
GLL Resta ancora da stimare il primo addendo della (4.47). Avendo scelto wN = ΠN u e sfruttando ancora la (4.17), otteniamo che s 1 GLL u − wN V =u − ΠN uH1(−1,1) ≤ C uHs+1(−1,1) (4.56) N
purché u ∈ Hs+1 (−1, 1), per un opportuno s ≥ 1. In conclusione, grazie alle (4.54), (4.55) e (4.56), dalla (4.47) applicata all’approssimazione G-NI del problema (4.22), sotto le ipotesi precedentemente fatte, troviamo la seguente stima dell’errore s + , 1 u − uN H1 (−1,1) ≤ C fHs (−1,1) + uHs+1(−1,1) . N L’analisi di convergenza appena fatta per il problema modello (4.22) può essere generalizzata (con qualche piccola difficoltà tecnica) al caso di problemi differenziali più complessi e di condizioni al bordo differenti. Esempio 4.2 (Problema con regolarità dipendente da un parametro) Consideriamo il seguente problema (banale ma istruttivo) ⎧ x ∈ (0, 1], ⎨ −u = 0, −u = −α(α − 1)(x − 1)α−2 , x ∈ (1, 2), ⎩ u(0) = 0, u(2) = 1, con α ∈ N. La soluzione esatta è nulla su (0, 1) e vale (x − 1)α per x ∈ (1, 2). Essa appartiene a Hα (0, 2), ma non a Hα+1 (0, 2). Riportiamo in Tabella 4.1 l’andamento dell’errore in norma
126
4 I metodi spettrali 1
1
0.9
0.9
0.8 0.7
0.8 0.7
0.6
0.6
0.5
0.5
0.4
0.4
0.3
0.3
0.2 0.1 0 −0.7071
0.2 0.1 0 −0.7071
0
1
0
1
Figura 4.11. La griglia (a sinistra) e le isolinee della soluzione ottenuta (a destra) con il metodo degli elementi spettrali per il problema dell’Esempio 4.3 H1 (0, 2) rispetto a N utilizzando un metodo G-NI per tre diversi valori di α. Come si vede, all’aumentare della regolarità, cresce anche l’ordine di convergenza del metodo spettrale rispetto a N , come previsto dalla teoria. Nella stessa Tabella si riportano i risultati ottenuti usando elementi finiti lineari (questa volta N indica il numero di elementi). L’ordine di convergenza del metodo degli elementi finiti si mantiene lineare in ogni caso. Esempio 4.3 Riprendiamo il secondo esempio della Sez. 3.5.3 utilizzando, questa volta, il metodo degli elementi spettrali. Consideriamo una partizione del dominio in 4 elementi spettrali di grado 8 come mostrato in Fig. 4.11, a sinistra. La soluzione ottenuta (Fig. 4.11, a destra) non presenta alcuna inaccuratezza in prossimità dell’origine, contrariamente alla soluzione ottenuta con gli elementi finiti in assenza di adattività di griglia (si confronti con la Fig. 3.21, a sinistra).
4.5 Metodo G-NI e MES-NI per un problema modello monodimensionale Consideriamo il problema di diffusione-reazione monodimensionale −[(1 + x2 ) u (x)] + cos(x2 ) u(x) = f(x),
x ∈ (−1, 1),
(4.57)
completato con condizioni al bordo di tipo misto u(−1) = 0,
u (1) = 1.
Tabella 4.1. Andamento dell’errore del metodo spettrale G-NI al variare del grado polinomiale N e dell’indice di regolarità della soluzione (a sinistra). Andamento dell’errore del metodo degli elementi finiti lineari al variare del numero di intervalli N e dell’indice di regolarità della soluzione (a destra) N 4 8 16 32
α=2 0.5931 0.3064 0.1566 0.0792
α=3 α=4 0.2502 0.2041 0.0609 0.0090 0.0154 7.5529 ·10−4 0.0039 6.7934 ·10−5
N 4 8 16 32
α=2 0.4673 0.2456 0.1312 0.0745
α=3 0.5768 0.3023 0.1467 0.0801
4.5 Metodo G-NI e MES-NI per un problema modello monodimensionale
127
Obiettivo di questa sezione è di discutere in dettaglio come formulare le approssimazioni G-NI e MES-NI. Per la prima forniremo anche la corrispondente formulazione matriciale ed un’analisi di stabilità. 4.5.1 Il metodo G-NI La formulazione debole del problema (4.57) è trovare
u ∈ V : a(u, v) = F (v)
∀v ∈ V
essendo V = {v ∈ H1 (−1, 1) : v(−1) = 0}, a : V × V −→ R e F : V −→ R la forma bilineare e il funzionale lineare definiti, rispettivamente, da 1 2
a(u, v) =
1
(1 + x ) u (x) v (x) dx + −1
−1
1 F (v) =
cos(x2 ) u(x) v(x) dx,
f(x) v(x) dx + 2 v(1). −1
La formulazione Galerkin-spettrale (MS) assume la seguente forma trovare uN ∈ VN
t.c.
∀vN ∈ VN ,
a(uN , vN ) = F (vN )
(4.58)
essendo VN = {vN ∈ QN : vN (−1) = 0} ⊂ V.
(4.59)
Per ottenere la corrispondente formulazione G-NI è sufficiente approssimare in (4.58) tutti i prodotti scalari su L2 (−1, 1) con il prodotto scalare discreto GLL definito in (4.25). Abbiamo dunque trovare u∗N ∈ VN : aN (u∗N , vN ) = FN (vN )
∀vN ∈ VN ,
(4.60)
avendo posto aN (u, v)
= =
+
(1 + x2 ) u , v
N "
, N
+ , + cos(x2 ) u, v N
(1 + x2i ) u (xi ) v (xi ) αi +
i=0
N "
cos(x2i ) u(xi ) v(xi ) αi
i=1
(4.61) e FN (v) = (f, v)N + 2 v(1) =
N "
f(xi ) v(xi ) αi + 2 v(1).
(4.62)
i=1
Osserviamo che l’indice dell’ultima sommatoria in (4.61) e della sommatoria in (4.62) parte da 1, anziché da 0, essendo v(x0 ) = v(−1) = 0. Inoltre, le formulazioni MS (4.58) e G-NI (4.60) non coincidono mai. Si consideri, ad
128
4 I metodi spettrali
esempio, il termine diffusivo (1 + x2 ) (u∗N ) vN : esso è un polinomio di grado 2N . Poiché la formula di quadratura GLL ha grado di esattezza 2N − 1, il prodotto scalare discreto + (4.25) non restituirà , il valore esatto del corrispondente prodotto scalare con tinuo (1 + x2 ) (u∗N ) , vN . Per ottenere la formulazione matriciale dell’approssimazione G-NI, indichiamo con ψi , per i = 1, . . . , N , i polinomi caratteristici associati a tutti i nodi GLL tranne a quello, x0 = −1, in cui è assegnata una condizione al bordo di Dirichlet. Tali polinomi costituiscono una base per lo spazio VN introdotto in (4.59). Questo ci permette, in primo luogo, di scrivere la soluzione u∗N della formulazione G-NI come
u∗N (x) =
N "
u∗N (xj ) ψj (x).
j=1
In secondo luogo possiamo scegliere nella (4.60) vN = ψi , i = 1, . . . , N , ottenendo aN (u∗N , ψi ) = FN (ψi ), ovvero
N "
i = 1, . . . , N,
u∗N (xj ) aN (ψj , ψi ) = FN (ψi ),
i = 1, . . . , N.
j=1
In forma matriciale,
A u∗N = f ,
essendo u∗N = (u∗N (xi )), A = (aij ), con aij = aN (ψj , ψi )
=
N "
(1 + x2k ) ψj (xk ) ψi (xk ) αk
k=0
+
N "
cos(x2k ) ψj (xk ) ψi (xk ) αk
k=1
=
N "
(1 + x2k ) ψj (xk ) ψi (xk ) αk + cos(x2i ) αi δij ,
k=0
e f = (fi ), con fi
= FN (ψi ) = (f, ψi )N + 2 ψi (1)
=
N "
f(xk ) ψi (xk ) αk + 2 ψi (1)
k=1
⎧ ⎨ αi f(xi )
=
⎩
per i = 1, . . . , N − 1,
αN f(1) + 2 per i = N.
4.5 Metodo G-NI e MES-NI per un problema modello monodimensionale
129
Ricordiamo che la matrice A è, oltre che mal condizionata, piena per via della presenza del termine diffusivo. Possiamo da ultimo verificare che il metodo G-NI (4.60) può essere riformulato come un opportuno metodo di collocazione. A tal fine, si vorrebbe riscrivere la formulazione discreta (4.60) in forma continua in modo da poter controintegrare per parti, ovvero ricondursi all’operatore differenziale di partenza. Per poter far ciò ricorreremo all’oGLL peratore d’interpolazione ΠN definito in (4.15), ricordando inoltre che il prodotto scalare discreto (4.25) coincide con quello continuo su L2 (−1, 1) se il prodotto delle due funzioni integrande è un polinomio di grado ≤ 2N − 1 (si veda la (4.36)). Riscriviamo dunque opportunamente il primo addendo di aN (u∗N , vN ), tralasciando, per semplificare le notazioni, l’apice ∗. Grazie alla (4.36) ed integrando per parti, abbiamo + , (1 + x2 ) uN , vN N +
=
+ , , , , + GLL + GLL (1 + x2 ) uN , vN (1 + x2 ) uN , vN ΠN = ΠN N
=
, , + , + GLL + GLL (1 + x2 ) uN ] , vN + ΠN (1 + x2 ) uN (1) vN (1) − ΠN
=
, , + , + GLL + GLL (1 + x2 ) uN ] , vN N + ΠN (1 + x2 ) uN (1) vN (1). − ΠN
Possiamo così riformulare la (4.60) come , + LN uN , vN N = (f, vN )N trovare uN ∈ VN : +
+ + , , GLL 2 − ΠN (1 + x2 ) uN (1) vN (1)
∀vN ∈ VN , (4.63)
con
, + , GLL + LN uN = − ΠN (1+x2 ) uN +cos(x2 ) uN = −DN (1+x2 ) uN +cos(x2 ) uN , essendo DN la derivata d’interpolazione introdotta in (4.40). Scegliamo ora in (4.63) vN = ψi . Per i = 1, . . . , N − 1, abbiamo + + GLL+ + , , , , LN uN , ψi N = − ΠN (1 + x2 ) uN , ψi N + cos(x2 ) uN , ψi N N−1 "
=−
N−1 " GLL+ , αj ΠN αj cos(x2j ) uN (xj ) ψi (xj ) (1 + x2 ) uN (xj ) ψi (xj ) +
j=1
j=1
GLL + , (1 + x2 ) uN (xi ) + αi cos(x2i ) uN (xi ) = (f, ψi )N = −αi ΠN =
N−1 "
αj f(xj ) ψi (xj ) = αi f(xi ),
j=1
ovvero, sfruttando la definizione dell’operatore LN e dividendo tutto per αi , LN uN (xi ) = f(xi ),
i = 1, . . . , N − 1.
(4.64)
130
4 I metodi spettrali
Posto vN = ψN in (4.63), otteniamo invece , GLL+ , + (1 + x2 ) uN (xN ) + αN cos(x2N ) uN (xN ) LN uN , ψN N = −αN ΠN + , GLL (1 + x2 ) uN (1) = (f, ψN )N + 2 − ΠN + , GLL (1 + x2 ) uN (1), = αN f(xN ) + 2 − ΠN ovvero, dividendo tutto per αN , + , , 1 + GLL 2 − ΠN (1 + x2 ) uN (1) . αN
LN uN (xN ) = f(xN ) +
(4.65)
Le equazioni (4.64) e (4.65) forniscono dunque la collocazione in tutti i nodi (tranne quelli eventuali di bordo in cui siano assegnate condizioni di Dirichlet) del problema differenziale assegnato, previa l’approssimazione dell’operatore differenziale L con l’operatore LN . Studiamo, da ultimo, la stabilità della formulazione (4.60). Trattandosi di un approccio di tipo Galerkin generalizzato, dovremo ricorrere al Lemma 4.1 di Strang il quale ci garantisce che, per la soluzione u∗N di (4.60), vale la stima 1 α∗
u∗N V ≤
|FN (vN )| , vN ∈VN \{0} vN V sup
(4.66)
essendo α∗ la costante di coercività (uniforme) associata alla forma bilineare discreta aN (·, ·). Particolarizziamo tale risultato al problema (4.57), calcolando innanzitutto α∗ . Sfruttando la definizione (4.51) della norma discreta · N e la relazione di equivalenza (4.52), si ha + + , , aN (uN , uN ) = (1 + x2 ) uN , uN N + cos(x2 ) uN , uN N ≥
+
uN , uN
, N
, + + cos(1) uN , uN N = uN 2N + cos(1) uN 2N
≥ uN 2L2 (−1,1) + cos(1) uN 2L2 (−1,1) ≥ cos(1) uN 2V , avendo inoltre sfruttato le relazioni min(1 + x2j )
≥
min cos(x2j )
≥
j
j
min (1 + x2 ) = 1, x∈[−1,1]
min cos(x2 ) = cos(1). x∈[−1,1]
Questo ci permette di identificare α∗ con il valore cos(1). Possiamo a questo punto valutare il quoziente |FN (vN )|/vN V in (4.66). Abbiamo infatti , + |FN (vN )| = | f, vN N + 2 vN (1)| ≤ fN vN N + 2 |vN (1)| ≤
√
1 √ √ 3 fN vN V + 2 vN (x) dx ≤ 3 fN vN V + 2 2 vN V , −1
4.5 Metodo G-NI e MES-NI per un problema modello monodimensionale
131
avendo ancora utilizzato la proprietà di equivalenza (4.52) unitamente alla disuguaglianza di Cauchy-Schwarz nella sua versione discreta (4.50) e continua (2.7). Possiamo così concludere che √ √ |FN (vN )| √ ≤ 3 fN + 2 2 ≤ 3 fL2 (−1,1) + 2 2, vN V ovvero, ritornando alla stima di stabilità (4.66), u∗N V ≤
√ 1 3 fL2 (−1,1) + 2 2 . cos(1)
4.5.2 Il metodo MES-NI Partendo dal problema (4.57) vogliamo ora considerarne la formulazione MES-NI, ovvero una formulazione agli elementi spettrali con l’uso delle formule di integrazione di tipo GLL in ogni elemento. Ci proponiamo inoltre di fornire una base per lo spazio in cui verrà ambientata tale formulazione. Introduciamo, innanzitutto, una partizione dell’intervallo (−1, 1) in M (≥ 2) sottointervalli disgiunti Ωm = (xm−1 , xm ), con m = 1, . . . , M , indicando con hm = xm − xm−1 l’ampiezza dell’m-esimo intervallo, e ponendo h = maxm hm . La formulazione MES del problema (4.57) assume la forma trovare uN ∈ VNC : a(uN , vN ) = F (vN )
∀vN ∈ VNC ,
(4.67)
essendo VNC = {vN ∈ C 0 ([−1, 1]) : vN Ωm ∈ QN , ∀m = 1, . . . , M, vN (−1) = 0}. Notiamo che lo spazio funzionale VNC dell’approccio MES perde la natura “globale” propria invece di una formulazione MS. Analogamente a quanto avviene nel caso di approssimazioni agli elementi finiti, si hanno ora nuovamente delle funzioni di tipo polinomiale a tratti. Sfruttando la partizione {Ωm } possiamo riscrivere la formulazione (4.67) nel seguente modo trovare uN ∈ VNC :
M "
aΩm (uN , vN ) =
m=1
dove
M "
FΩm (vN )
∀vN ∈ VNC ,
(4.68)
m=1
aΩm (uN , vN ) = a(uN , vN )Ωm
xm
=
(1 + x2 ) uN (x) vN (x) dx +
xm−1
mentre FΩm (vN ) = F (vN )Ωm =
xm
cos(x2 ) uN (x) vN (x) dx,
xm−1
xm
f(x)vN (x) dx + 2vN (1)δmM . xm−1
132
4 I metodi spettrali
La formulazione MES-NI a questo punto si ottiene rimpiazzando nella (4.68) i prodotti scalari continui con il prodotto scalare discreto GLL (4.25) u∗N
trovare
∈
VNC
:
M "
aN,Ωm (u∗N , vN )
=
m=1
dove
M "
FN,Ωm (vN ) ∀vN ∈ VNC ,
m=1
+ + , , aN,Ωm (u, v) = (1 + x2 ) u , v N,Ω + cos(x2 ) u, v N,Ω , m m + , FN,Ωm (v) = f, v N,Ω + 2v(1)δmM , m
+
u, v
, N,Ωm
=
N "
(m)
u(xi
(m)
) v(xi
(m)
) αi
,
i=0 (m)
(m)
essendo xi l’i-esimo nodo GLL del sotto-intervallo Ωm e αi il corrispondente peso di quadratura. . = (−1, 1), (che, nel caso in esame, Partendo dall’elemento di riferimento Ω coincide con il dominio Ω del problema (4.57)) e indicata con ϕm (ξ) =
xm + xm−1 hm ξ+ , 2 2
ξ ∈ [−1, 1],
. in Ωm , per m = 1, . . . , M , avremo la trasformazione affine che mappa Ω (m)
xi (m)
ovvero xi
(m)
= ϕm (xi ) = αi
=
hm αi , i = 0, ...N 2
(4.69)
. è l’immagine, attraverso la mappa ϕm , dell’i-esimo nodo GLL di Ω. (m) N }i=0
Introduciamo, su ogni Ωm , l’insieme {ψi (m)
ψi
delle funzioni di base, tali che
(x) = ψi (ϕ−1 m (x))
∀x ∈ Ωm ,
essendo ψi il polinomio caratteristico introdotto in (4.12) e (4.13) associato al nodo . Avendo ora una base per ogni sotto-intervallo Ωm , possiamo scrivere xi di GLL in Ω. la soluzione uN del MES su ogni Ωm come uN (x) =
N "
(m)
ui
(m)
ψi
(x)
∀x ∈ Ωm ,
(4.70)
i=0 (m)
(m)
essendo ui = uN (xi ). Volendo definire una base globale per lo spazio VNC , iniziamo a definire le funzioni di base associate ai nodi interni di Ωm , per m = 1, . . . , M . Per questo sarà sufficiente (m) estendere a zero, fuori da Ωm , ogni funzione di base ψi : ⎧ (m) ⎨ ψi (x), x ∈ Ωm (m) ψ6i (x) = ⎩ 0, altrimenti.
4.5 Metodo G-NI e MES-NI per un problema modello monodimensionale
133
1
~ (m) ψ i
x0
xm−1 Figura 4.12. Funzione di base ψi
(m)
xi(m)
xm
xM (m)
associata al nodo interno xi
Queste funzioni sono in totale (N − 1)M e assumono andamento analogo a quello in Fig. 4.12. Per ogni nodo estremo xm dei sottodomini Ωm , con m = 1, . . . , M − 1, definiamo invece la funzione di base ⎧ (m) ψ (x), ⎪ x ∈ Ωm ⎪ ⎪ N ⎪ ⎨ ∗ (m+1) ψm (x) = ψ0 (x), x ∈ Ωm+1 ⎪ ⎪ ⎪ ⎪ ⎩ 0, altrimenti, (m)
(m+1)
ottenuta “incollando” le funzioni ψN e ψ0 (si veda la Fig. 4.13). In particolare, osserviamo che la funzione ψ0∗ non è definita essendo assegnata in x0 = −1 una ∗ condizione di Dirichlet omogenea. Esiste invece la funzione ψM che coincide con (M ) ψN . Per la scelta fatta delle condizioni al bordo, esistono dunque M funzioni di base associate ai nodi estremi dei sotto-intervalli Ωm . (Se fossero state assegnate condizioni di Dirichlet in corrispondenza di entrambi gli estremi di Ω avremmo avuto le (M − 1) ∗ funzioni ψm , m = 1, ..., M − 1.) In tutto dunque abbiamo n = (N − 1)M + M funzioni di base per lo spazio VNC . Ogni funzione uN ∈ VNC può dunque essere espressa nel seguente modo uN (x) =
M "
M N−1 " "
∗ uΓm ψm (x) +
m=1
(m)
ui
(m) ψ6i (x),
m=1 i=1
(m)
essendo uΓm = uN (xm ) e ui definito come nella (4.70). La condizione al bordo di Dirichlet è in tal modo rispettata. 1 ψ*
m
x0
xm−1
xm
xm+1
∗ Figura 4.13. Funzione di base ψm associata al nodo estremo xm
xM
134
4 I metodi spettrali x2
T
Q
1
-1
1
x1
ξ2 1
-1
-1
1
ξ1
-1
I Figura 4.14. Trasformazione del triangolo di riferimento T sul quadrato di riferimento Q. segmenti obliqui sono trasformati in segmenti verticali
4.6 Metodi spettrali su triangoli e tetraedri Come abbiamo visto, l’uso di metodi spettrali su quadrilateri in due dimensioni (o parallelepipedi in tre dimensioni) è reso possibile attraverso prodotti tensoriali di funzioni di base monodimensionali (sull’intervallo di riferimento [−1, 1]) e delle formule di integrazione numerica Gaussiane monodimensionali. Da alcuni anni, tuttavia, si assiste ad una crescita di interesse verso l’uso di metodi di tipo spettrale anche su geometrie che non abbiano struttura di prodotto tensoriale, come, ad esempio, triangoli in 2D e tetraedri, prismi o piramidi in 3D. Descriviamo brevemente l’idea (pionieristica) di Dubiner [Dub91] di introdurre basi polinomiali di grado elevato su triangoli, estesa in seguito in [KS05] al caso tridimensionale. Consideriamo il triangolo di riferimento T. = {(x1 , x2 ) ∈ R2 : −1 < x1 , x2 ; x1 + x2 < 0} ed il quadrato di riferimento . = {(ξ1 , ξ2 ) ∈ R2 : −1 < ξ1 , ξ2 < 1}. Q La trasformazione (x1 , x2 ) → (ξ1 , ξ2 ),
ξ1 = 2
1 + x1 − 1, 1 − x2
ξ2 = x2
(4.71)
. La sua inversa è data da è una biezione tra T. e Q. (ξ1 , ξ2 ) → (x1 , x2 ),
x1 =
1 (1 + ξ1 )(1 − ξ2 ) − 1, 2
x2 = ξ2 .
Come evidenziato in Fig. 4.14, la mappa (x1 , x2 ) → (ξ1 , ξ2 ) invia il raggio in T. uscente dal vertice (−1, 1) e passante per il punto (x1 , −1) nel segmento verticale di
4.6 Metodi spettrali su triangoli e tetraedri
135
. di equazione ξ1 = x1 . Essa diventa pertanto singolare in (−1, 1). Per tale ragioQ ne chiamiamo (ξ1 , ξ2 ) le coordinate cartesiane collassate del punto del triangolo di coordinate (x1 , x2). (α,β) Indichiamo con {Jk (ξ), k ≥ 0} la famiglia dei polinomi di Jacobi ortogonali rispetto al peso w(ξ) = (1 − ξ)α (1 + ξ)β , per α, β ≥ 0. Pertanto, 1 ∀k ≥ 0,
(α,β) Jk
∈ Pk
(α,β)
Jk
e
(α,β) (ξ) Jm (ξ) w(ξ) dξ = 0
∀ m = k. (4.72)
−1 (0,0)
Osserviamo che per α = β = 0, Jk coincide con il k-esimo polinomio di Legendre Lk . Per ogni coppia di interi k = (k1 , k2 ) definiamo la cosiddetta base prodotto . tensoriale warped su Q Φk (ξ1 , ξ2 ) = Ψk1 (ξ1 ) Ψk1 ,k2 (ξ2 ), (0,0)
(4.73)
(2k +1,0)
essendo Ψk1 (ξ1 ) = Jk1 (ξ1 ) e Ψk1 ,k2 (ξ2 ) = (1 − ξ2 )k1 Jk2 1 (ξ2 ). Si osservi che Φk è un polinomio di grado k1 in ξ1 e k1 + k2 in ξ2 . Applicando ora la mappa (4.71) troviamo la seguente funzione definita su T. (0,0)
ϕk (x1 , x2 ) = Φk (ξ1 , ξ2 ) = Jk1
1+x 1 (2k +1,0) 2 − 1 (1 − x2 )k1 Jk2 1 (x2 ). (4.74) 1 − x2
Essa è un polinomio di grado totale k1 + k2 nelle variabili x1 , x2 , ovvero ϕk ∈ Pk1 +k2 (T.). Si può inoltre dimostrare che grazie all’ortogonalità dei polinomi di Jacobi (4.72), per ogni m = k, T
1 ϕk (x1 , x2 )ϕm (x1 , x2) dx1 dx2 = 2 1
1 (0,0)
Jk1
(0,0) · (ξ1 ) Jm (ξ ) dξ 1 1 1
−1
(2k +1,0) (2m1 +1,0) Jk2 1 (ξ2 ) Jm (ξ2 ) (1 2
(4.75)
− ξ2 )k1 +m1 +1 dξ2 = 0.
−1
Pertanto, {ϕk : 0 ≤ k1 , k2 , k1 + k2 ≤ N } costituisce una base (modale) ortogonale dello spazio di polinomi PN (T.), di dimensione 12 (N + 1)(N + 2). La proprietà di ortogonalità indubbiamente è conveniente in quanto consente di diagonalizzare la matrice di massa, si veda il Cap. 6. Tuttavia, con la base modale sopra descritta non risulta agevole l’imposizione delle condizioni al bordo (nel caso si consideri il dominio computazionale triangolare T.) né il soddisfacimento delle condizioni di continuità agli interelementi nel caso si usino metodi agli elementi spettrali con elementi triangolari. Un possibile rimedio consiste nell’adattare questa base, generandone una nuova, che indicheremo con {ϕba k }; ba sta per boundary adapted. Per (α,0) ottenerla iniziamo con il sostituire la base uni-dimensionale di Jacobi Jk (ξ) (con α = 0 o 2k + 1) con la base adattata costituita da:
136
4 I metodi spettrali
1−ξ – due funzioni di bordo : 1+ξ 2 + e 2,+; , (α,β) 1−ξ Jk−2 (ξ), k = 2, . . . , N , per opportuni – (N − 1) funzioni bolla : 1+ξ 2 2 α, β ≥ 1, fissati.
Queste basi mono-dimensionali vengono poi usate come fatto in (4.73) al posto dei polinomi di Jacobi non adattati. In questo modo si trovano funzioni di tipo-vertice, di tipo-lato, e di tipo bolla. Precisamente: • funzioni tipo-vertice: ΦV1 (ξ1 , ξ2 ) = ΦV2 (ξ1 , ξ2 ) = ΦV3 (ξ1 , ξ2 ) =
1 − ξ 1 − ξ 1 2 2 2 1 + ξ 1 − ξ 1
2 1 + ξ2 2
2
2
(vertice V1 = (−1, −1)), (vertice V2 = (1, −1)), (vertice V3 = (−1, 1));
• funzioni tipo-lato: 1 − ξ 1 + ξ 1 − ξ k 1 1 1 2 (β,β) Jk1 −2 (ξ1 ) , 2 2 2 1 − ξ 1 − ξ 1 + ξ 1 2 2 (β,β) Jk2 −2 (ξ2 ), ΦVK12V3 (ξ1 , ξ2 ) = 2 2 2 1 + ξ 1 − ξ 1 + ξ 1 2 2 (β,β) Jk2 −2 (ξ2 ), ΦVK22V3 (ξ1 , ξ2 ) = 2 2 2 ΦVK11V2 (ξ1 , ξ2 ) =
2 ≤ k1 ≤ N, 2 ≤ k2 ≤ N, 2 ≤ k2 ≤ N ;
• funzioni tipo-bolla: 1 − ξ 1 + ξ 1 1 (β,β) Jk1−2 (ξ1 )· 2 2 1 − ξ k1 1 + ξ 2 2 (2k1 −1+δ,β) Jk2 −2 (ξ2 ), 2 2
Φβk1,k2 (ξ1 , ξ2 ) =
2 ≤ k1 , k2 , k1 + k2 ≤ N . Nonostante la scelta β = δ = 2 assicuri l’ortogonalità delle funzioni-bolla, in genere si preferisce la scelta β = 1, δ = 0 in quanto garantisce una buona sparsità delle matrici di massa e di rigidezza e un numero di condizionamento accettabile per la matrice di rigidezza per operatori differenziali del secondo ordine. In Fig. 4.15 riportiamo alcuni esempi di basi su triangoli corrispondenti a diverse scelte di β e δ e per diversi valori del grado N . Con queste basi modali si può ora impostare un’approssimazione di Galerkin spettrale per un problema ai limiti posto sul triangolo T., oppure un metodo di tipo MES su un dominio Ω partizionato in elementi triangolari. Rinviamo il lettore interessato a [CHQZ06], [CHQZ07], [KS05].
4.6 Metodi spettrali su triangoli e tetraedri
137
Figura 4.15. Funzioni di base di grado N = 5: basi boundary-adapted sul quadrato (prima dall’alto) e sul triangolo (seconda dall’alto) associate ai valori β = 1 e δ = 0; base di Jacobi (α,β) Jk sul quadrato (seconda dal basso) corrispondente ai valori α = β = 0 (caso di Legendre); funzioni di base di Dubiner {Φk } sul triangolo (prima dal basso)
138
4 I metodi spettrali
4.7 Esercizi 1. Si dimostri la disuguaglianza (4.50). 2. Si dimostri la proprietà (4.52). 3. Si scriva la formulazione debole del problema − ((1 + x)u (x)) + u(x) = f(x), u(0) = α,
0 < x < 1,
u(1) = β,
ed il sistema lineare risultante dalla sua discretizzazione con il metodo G-NI. 4. Si approssimi il problema −u (x) + u (x) = x2 , −1 < x < 1, u(−1) = 1,
u (1) = 0,
con il metodo G-NI e se ne studi la stabilità e la convergenza. 5. Si scriva l’approssimazione G-NI del problema Lu(x) = −(μ(x)u (x)) + (b(x)u(x)) + σ(x)u(x) = f(x),
−1 < x < 1,
μ(±1)u (±1) = 0. Si dimostri sotto quali condizioni sui dati l’approssimazione pseudo-spettrale è stabile. Si verifichi inoltre che valgono le seguenti relazioni: LN uN (xj ) = f(xj ),
j = 1, . . . , N − 1,
μ(1) uN (1) = αN (f − LN uN )(1), μ(−1) uN (−1) = −α0 (f − LN uN )(−1), essendo LN l’operatore pseudo-spettrale definito nella (4.41). 6. Si consideri il problema ⎧ −μΔu + b · ∇u − σu = f in Ω = (−1, 1)2 , ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ u(x) = u0 per x1 = −1, ⎪ u(x) = u1 ⎪ ⎪ ⎪ ⎪ ⎩ ∇u(x) · n(x) = 0
per x1 = 1, per x2 = −1 e x2 = 1,
dove x = (x1 , x2 )T , n è la normale uscente ad Ω, μ = μ(x), b = b(x), σ = σ(x), f = f(x) sono funzioni assegnate, e u0 ed u1 sono delle costanti assegnate. Si forniscano condizioni sui dati sufficienti a garantire l’esistenza e l’unicità della soluzione debole, e si dia una stima a priori. Si approssimi poi il problema debole con il metodo G-NI, fornendone un’analisi di stabilità e convergenza.
5 Equazioni di diffusione-trasporto-reazione
In questo capitolo consideriamo problemi della forma seguente −div(μ∇u) + b · ∇u + σu = f in Ω, u=0 su ∂Ω,
(5.1)
dove μ, σ, f e b sono funzioni (o costanti) assegnate. Nel caso più generale supporremo che μ ∈ L∞ (Ω), con μ(x) ≥ μ0 > 0, σ ∈ L2 (Ω) con σ(x) ≥ 0 q.o. in Ω, 2 b ∈ [L∞ (Ω)] , con div(b) ∈ L2 (Ω), e f ∈ L2 (Ω). Problemi come (5.1) modellano i processi fisici di diffusione, trasporto e reazione. Per una derivazione di questi modelli, e per cogliere l’analogia con processi di camminata aleatoria (random walk), si veda [Sal08], Cap. 2. In molte applicazioni pratiche il termine di diffusione −div(μ∇u) è dominato dal termine convettivo b · ∇u (detto anche di trasporto) o da quello reattivo σu (detto anche di assorbimento quando si faccia l’ipotesi di non negatività di σ). In questi casi, come vedremo, la soluzione può dar luogo a strati limite, ovvero a regioni, generalmente in prossimità della frontiera di Ω, in cui la soluzione è caratterizzata da forti gradienti. In questo capitolo ci proponiamo di analizzare le condizioni che assicurano l’esistenza e l’unicità della soluzione del problema (5.1). Considereremo poi il metodo di Galerkin, ne illustreremo le difficoltà a fornire soluzioni stabili in presenza di strati limite, quindi proporremo metodi di discretizzazione alternativi per l’approssimazione di (5.1).
5.1 Formulazione debole del problema Sia V =H10 (Ω). Introducendo la forma bilineare a : V × V → R, ∀u, v ∈ V , a(u, v) = μ∇u · ∇v dΩ + vb · ∇u dΩ + σuv dΩ Ω
Ω
(5.2)
Ω
la formulazione debole del problema (5.1) diviene trovare u ∈ V :
a(u, v) = (f, v)
∀v ∈ V.
A. Quarteroni: Modellistica numerica per problemi differenziali, 4a edizione c Springer-Verlag Italia, Milano 2008
(5.3)
140
5 Equazioni di diffusione-trasporto-reazione
Al fine di dimostrare l’esistenza e l’unicità della soluzione di (5.3) vogliamo porci nelle condizioni di applicare il Lemma di Lax-Milgram. Per verificare la coercività della forma bilineare a(·, ·), operiamo separatamente sui singoli termini che compongono la (5.2). Per il primo termine abbiamo μ∇v · ∇v dΩ ≥ μ0 ∇v2L2(Ω) .
(5.4)
Ω
Poiché v ∈ H10 (Ω), vale la disuguaglianza di Poincaré (si veda l’Appendice A.4) vL2 (Ω) ≤ CΩ ∇vL2(Ω) .
(5.5)
Pertanto 2 v2H1 (Ω) = v2L2(Ω) + ∇v2L2 (Ω) ≤ (1 + CΩ )∇v2L2 (Ω)
e, quindi, dalla (5.4), segue μ∇v · ∇v dΩ ≥ Ω
μ0 2 2 vH1 (Ω) . 1 + CΩ
Passiamo ora a considerare il termine convettivo 1 1 1 vb · ∇v dΩ = b · ∇(v2 ) dΩ = − v2 div(b) dΩ + b · nv2 dγ 2 2 2 Ω
Ω
=
−
1 2
Ω
∂Ω
v2 div(b) dΩ, Ω
essendo v = 0 su ∂Ω. Se ora sommiamo a questo termine quello relativo al termine di ordine zero, otteniamo
vb · ∇v dΩ +
Ω
σv2 dΩ =
Ω
1 v2 (− div(b) + σ) dΩ, 2
Ω
e tale integrale è sicuramente positivo se si suppone che 1 − div(b) + σ ≥ 0 q.o. in Ω. 2
(5.6)
In definitiva, se vale la (5.6), la forma bilineare a(·, ·) risulta coerciva essendo a(v, v) ≥ αv2H1 (Ω)
∀v ∈ V, con
α=
μ0 2 . 1 + CΩ
(5.7)
5.1 Formulazione debole del problema
141
Affinché la forma bilineare a(·, ·) sia continua deve, invece, esistere una costante positiva M tale che |a(u, v)| ≤ M uH1(Ω) vH1(Ω)
∀u, v ∈ V.
(5.8)
Il primo termine al secondo membro della (5.2) può essere maggiorato come segue μ∇u · ∇v dΩ ≤ μL∞(Ω) ∇uL2(Ω) ∇vL2(Ω) (5.9) Ω
≤
μL∞(Ω) uH1(Ω) vH1 (Ω) ,
dove sono state usate le disuguaglianze di Hölder (si veda l’Appendice A.5) e di Cauchy-Schwarz e si è tenuto conto del fatto che ∇wL2(Ω) ≤ wH1(Ω) per ogni w ∈ H 1 (Ω). Per il secondo termine, procedendo in modo analogo si trova vb · ∇u dΩ ≤ bL∞(Ω) vL2 (Ω) ∇uL2(Ω) (5.10) Ω
≤
bL∞(Ω) vH1 (Ω) uH1(Ω) .
Infine, per il terzo termine abbiamo, grazie alla disuguaglianza di Cauchy-Schwarz, σuv dΩ ≤ σL2(Ω) uvL2 (Ω) . Ω
Peraltro, uvL2(Ω) ≤ uL4(Ω) vL4(Ω) ≤ uH1(Ω) vH1 (Ω) , avendo applicato la disuguaglianza (A.17) e sfruttato le immersioni (A.18). Dunque σuv dΩ ≤ σL2(Ω) uH1(Ω) vH1 (Ω) . (5.11) Ω
Sommando membro a membro la (5.9), la (5.10) e la (5.11), si dimostra così la continuità della forma bilineare a(·, ·), ovvero la (5.8), pur di prendere M = μL∞ (Ω) + bL∞(Ω) + σL2 (Ω) .
(5.12)
Peraltro il termine di destra della (5.3) definisce un funzionale lineare e limitato grazie alla disuguaglianza di Cauchy-Schwarz e alla (5.5). Essendo verificate le ipotesi del Lemma di Lax-Milgram segue che la soluzione del problema debole (5.3) esiste ed è unica. Valgono inoltre le seguenti stime a priori: uH1(Ω) ≤
1 CΩ fL2 (Ω) , fL2 (Ω) , ∇uL2(Ω) ≤ α μ0
conseguenze di (5.4), (5.7) e (5.5) La prima è una conseguenza immediata del Lemma di Lax-Milgram, la seconda si può facilmente dimostrare partendo dall’equazione
142
5 Equazioni di diffusione-trasporto-reazione
a(u, u) = (f, u) ed utilizzando le disuguaglianze di Cauchy-Schwarz, di Poincaré e le disuguaglianze (5.4) e (5.6). L’approssimazione di Galerkin del problema (5.3) è trovare uh ∈ Vh :
a(uh , vh ) = (f, vh )
∀vh ∈ Vh ,
dove {Vh , h > 0} è una famiglia opportuna di sottospazi di dimensione finita di H10 (Ω). Replicando la dimostrazione a cui si è accennato poco sopra nel caso del problema continuo, si possono dimostrare le seguenti stime: uh H1 (Ω) ≤
1 fL2 (Ω) , α
∇uh L2(Ω) ≤
CΩ fL2 (Ω) . μ0
Esse mostrano, in particolare, che il gradiente della soluzione discreta (così come quello della soluzione debole u) potrebbe essere tanto più grande quanto più μ0 è piccola. Inoltre, grazie al Lemma di Céa, si ottiene la seguente stima dell’errore u − uh V ≤
M inf u − vh V . α vh ∈Vh
(5.13)
In virtù delle definizioni di α e M (si vedano (5.7) e (5.12)), la costante di maggiorazione M/α diventa tanto più grande (ovvero la stima (5.13) tanto meno significativa) quanto più cresce il rapporto bL∞(Ω) /μL∞(Ω) (ovvero il rapporto σL∞(Ω) /μL∞(Ω) ), ossia quando il termine convettivo (ovvero reattivo) domina su quello diffusivo. In tali casi il metodo di Galerkin può dar luogo a soluzioni poco accurate, a meno di non usare, come vedremo, un passo di discretizzazione h estremamente piccolo. Al fine di valutare più precisamente il comportamento della soluzione numerica fornita dal metodo di Galerkin analizziamo un problema monodimensionale.
5.2 Analisi di un problema di diffusione-trasporto monodimensionale Consideriamo il seguente problema di diffusione-trasporto unidimensionale −μu + bu = 0, 0 < x < 1, u(0) = 0, u(1) = 1,
(5.14)
con μ e b costanti positive. La sua formulazione debole è trovare u ∈ H1 (0, 1) :
a(u, v) = 0 ∀v ∈ H10 (0, 1),
(5.15)
5.2 Analisi di un problema di diffusione-trasporto monodimensionale
1
con u(0) = 0 e u(1) = 1, essendo a(u, v) =
143
(μu v + bu v)dx. Seguendo quan-
0
to indicato nella Sez. 2.2.2, possiamo riformulare (5.15) introducendo un opportuno rilevamento dei dati al bordo. In questo caso particolare, possiamo scegliere Rg = x. ◦ Posto allora u= u − Rg = u − x, possiamo riformulare (5.15) nel modo seguente ◦
◦
(5.16) trovare u∈ H10 (0, 1) : a(u, v) = F (v) ∀v ∈ H10 (0, 1), 1 essendo F (v) = −a(x, v) = − 0 bv dx il contributo dovuto al rilevamento dei dati. Definiamo numero di Péclet globale il rapporto Peg =
|b|L , 2μ
essendo L la dimensione lineare del dominio (1 nel nostro caso). Esso fornisce una misura di quanto il termine convettivo domini quello diffusivo, ed ha pertanto lo stesso ruolo del numero di Reynolds nelle equazioni di Navier-Stokes che vedremo nel Cap. 10. Calcoliamo, innanzitutto, la soluzione esatta di tale problema. L’equazione caratteristica ad esso associata è −μλ2 + bλ = 0 ed ha, come radici, i valori λ1 = 0 e λ2 = b/μ. La soluzione generale è quindi b
u(x) = C1 eλ1 x + C2 eλ2 x = C1 + C2 e μ x. Imponendo le condizioni al bordo si trovano le costanti C1 e C2 , e, di conseguenza, la soluzione exp( μb x) − 1
u(x) =
exp( μb ) − 1
.
Se b/μ 1, possiamo sviluppare in serie gli esponenziali ed arrestarci al secondo termine ottenendo così u(x) =
1 + μb x + · · · − 1 1+
b μ
+···−1
b μx b μ
= x.
Pertanto la soluzione è prossima alla retta interpolante i dati al bordo (che è la soluzione corrispondente al caso b = 0). Se, viceversa, b/μ 1, gli esponenziali sono molto grandi, per cui u(x)
b = exp − (1 − x) . μ exp( μb )
exp( μb x)
Pertanto la soluzione è prossima a zero in quasi tutto l’intervallo, tranne che in un intorno del punto x = 1, dove si raccorda ad 1 con un andamento esponenziale. Tale
144
5 Equazioni di diffusione-trasporto-reazione 1 0.9
b/μ=−100 b/μ=−10
0.8 0.7
b/μ=0
0.6 0.5 0.4 0.3
b/μ=10
0.2 0.1
b/μ=100 0 0
0.1
0.2
0.3
0.4
0.5 x
0.6
0.7
0.8
0.9
1
Figura 5.1. Andamento della soluzione del problema (5.14) al variare del rapporto b/μ. Per completezza sono evidenziate anche le soluzioni relative al caso in cui b sia negativo
intorno ha un’ampiezza dell’ordine di μ/b ed è quindi molto piccolo: la soluzione presenta uno strato limite di bordo (boundary layer in inglese) di ampiezza O( μb ) in corrispondenza di x = 1 (si veda la Fig. 5.1), in cui la derivata si comporta come b/μ, ed è pertanto illimitata se μ → 0. Supponiamo ora di usare il metodo di Galerkin con elementi finiti lineari per approssimare (5.15) ◦1 1 ∀vh ∈X h , a(uh , vh ) = 0 trovare uh ∈ Xh : (5.17) uh (0) = 0, uh (1) = 1, dove, indicando con xi , per i = 0, . . . M , i vertici della partizione introdotta su (0, 1), abbiamo posto, coerentemente con (3.14), Xhr = {vh ∈ C 0 ([0, 1]) : vh ∈ Pr , i = 1, . . . , M}, [xi−1 ,xi ]
◦
r X hr = {vh ∈ Xh : vh (0) = vh (1) = 0},
per r ≥ 1. Scelto, per ogni i = 1, . . . , M − 1, vh = ϕi (l’i-esima funzione di base di Xh1 ), si ha 1 1 μuh ϕi dx + buh ϕi dx = 0, 0
0
M −1 " uj ϕj (x), ovvero, essendo supp (ϕi ) = [xi−1 , xi+1 ] e potendo scrivere uh = j=1 ⎡ ⎤ x x xi i+1 i+1 2 μ ⎣ui−1 ϕi−1 ϕi dx + ui (ϕi ) dx + ui+1 ϕi+1 ϕi dx⎦
⎡
xi−1
+b ⎣ui−1
xi
xi−1
xi−1
ϕi−1 ϕi dx + ui
xi
x i+1
xi−1
ϕi ϕi dx + ui+1
x i+1
⎤
ϕi+1 ϕi dx⎦ = 0,
xi
5.2 Analisi di un problema di diffusione-trasporto monodimensionale
145
∀i = 1, . . . , M − 1. Se la partizione è uniforme, ovvero se xi = xi−1 + h, con i = 1 1 1, . . . , M , osservando che ϕi (x) = se xi−1 < x < xi , ϕi (x) = − se xi < x < h h xi+1 , per i = 1, . . . , M − 1, si ottiene 1 2 1 1h 1h + b −ui−1 + ui+1 = 0, μ −ui−1 + ui − ui+1 h h h h2 h2 cioè μ 1 (−ui−1 + 2ui − ui+1 ) + b(ui+1 − ui−1 ) = 0, h 2 Riordinando i termini troviamo b μ 2μ b μ ui+1 + ui−1 = 0, − ui − + 2 h h 2 h
i = 1, . . . , M − 1.
(5.18)
i = 1, . . . , M − 1.
Dividendo per μ/h e definendo il numero di Péclet locale (o “di griglia”) Pe =
|b|h , 2μ
(5.19)
si ha infine (Pe − 1)ui+1 + 2ui − (Pe + 1)ui−1 = 0,
i = 1, . . . , M − 1.
(5.20)
Questa è un’equazione alle differenze di tipo lineare che ammette soluzioni di tipo esponenziale, ovvero della forma ui = ρi (si veda [QSS08]). Sostituendo tale espressione nella (5.20), otteniamo (Pe − 1)ρ2 + 2ρ − (Pe + 1) = 0,
i = 1, . . . , M − 1,
dalla quale ricaviamo le due radici ρ1,2 =
−1 ±
√ (1 + Pe)/(1 − Pe), 1 + Pe2 − 1 = Pe − 1 1.
Grazie alla linearità della (5.20), la soluzione generale di tale equazione assume la forma ui = A1 ρi1 + A2 ρi2 , essendo A1 e A2 costanti arbitrarie. Imponendo le condizioni al bordo u0 = 0 e uM = 1 si trova A2 = −A1 e A1 =
M −1 1 + Pe 1− . 1 − Pe
146
5 Equazioni di diffusione-trasporto-reazione
In conclusione, la soluzione del problema (5.17) ha i seguenti valori nodali i 1 + Pe 1− 1 − Pe ui = M , 1 + Pe 1− 1 − Pe
per i = 0, . . . , M.
Osserviamo che, se Pe > 1, al numeratore compare una potenza con base negativa e quindi la soluzione approssimata diviene oscillante, al contrario della soluzione esatta che è monotona! Questo fenomeno è esemplificato in Fig. 5.2 dove la soluzione della (5.20) per valori differenti del numero di Péclet locale è confrontata con la soluzione esatta per un caso in cui il numero di Péclet globale è pari a 50. Come si può osservare, più il numero di Péclet locale aumenta, più l’andamento della soluzione approssimata si discosta da quello della soluzione esatta, presentando oscillazioni che diventano sempre più marcate in corrispondenza dello strato limite.
1
esatta Pe locale= 2.63 Pe locale= 1.28 Pe locale= 0.63
0.5
0
−0.5 0.75
0.8
0.85
0.9
0.95
1
Figura 5.2. Soluzione agli elementi finiti del problema di diffusione trasporto (5.14) con Peg = 50 per diversi valori del numero di Péclet locale
Il rimedio più ovvio è quello di scegliere il passo h della mesh sufficientemente piccolo, in modo da garantire Pe < 1. Tuttavia questa soluzione non è sempre conveniente: ad esempio, se b = 1 e μ = 1/5000, bisognerebbe prendere h < 10−4 , ossia introdurre sull’intervallo (0, 1) almeno 10000 intervalli! In particolare, tale strategia può rivelarsi assolutamente impraticabile per problemi ai limiti in più dimensioni. Una ragionevole soluzione alternativa è rappresentata da una strategia di raffinamento adattativo che infittisca la griglia solo in corrispondenza dello strato limite. Diverse strategie si possono seguire a questo scopo. Fra le più note citiamo le cosiddette griglie di tipo B (da Bakhvâlov) o di tipo S (da Shishkin). Si veda ad esempio [GRS07].
5.3 Analisi di un problema di diffusione-reazione monodimensionale
147
5.3 Analisi di un problema di diffusione-reazione monodimensionale Consideriamo ora un problema monodimensionale di diffusione-reazione −μu + σu = 0, 0 < x < 1, u(0) = 0, u(1) = 1,
(5.21)
con μ e σ costanti positive, la cui soluzione è u(x) =
sinh(αx) eαx − e−αx = α , con α = σ/μ. −α sinh(α) e −e
Anche in questo caso, se σ/μ 1, vi è uno strato limite per x → 1 con uno spessore dell’ordine di μ/σ in cui la derivata prima diventa illimitata per μ → 0 (si osservi, ad esempio, la soluzione esatta per il caso riportato in Fig. 5.3). È interessante definire anche in questo caso un numero di Péclet globale, che prende la forma Peg =
σL2 , 6μ
essendo ancora L la dimensione lineare del dominio (1 nel nostro caso). Applichiamo ora il metodo di Galerkin con elementi finiti lineari su di una mesh uniforme. L’equazione relativa alla generica funzione di base ϕi , i = 1, . . . , M − 1, è 1
μuh ϕi
1 dx +
0
σuh ϕi dx = 0. 0
Sviluppando i calcoli in maniera analoga a quanto fatto nel paragrafo precedente, ed osservando che xi xi+1 xi+1 h 2 h ϕi−1 ϕi dx = , ϕ2i dx = h, ϕi ϕi+1 dx = , 6 3 6 xi−1 xi−1 xi 1
Esatta Pe locale= 5.56 Pe locale = 1.18 Pe locale= 0.27
0.5
0
−0.5 0.5
0.55
0.6
0.65
0.7
0.75
0.8
0.85
0.9
0.95
1
Figura 5.3. Confronto tra soluzione numerica e soluzione esatta del problema di diffusionereazione (5.21) con Peg = 200. La soluzione numerica è stata ottenuta utilizzando il metodo di Galerkin-elementi finiti lineari su griglie uniformi
148
5 Equazioni di diffusione-trasporto-reazione
si ottiene 1 2 1 h 2 h + σ ui−1 + ui h + ui+1 = 0, μ −ui−1 + ui − ui+1 h h h 6 3 6 ossia
h μ σ− 6 h
ui+1 +
2 2μ h+σ 3 h
ui +
h μ σ− 6 h
(5.22)
ui−1 = 0.
Dividendo per μ/h e definendo il seguente numero di Péclet locale Pe =
σh2 , 6μ
(5.23)
si ha infine (Pe − 1)ui+1 + 2(1 + 2Pe)ui + (Pe − 1)ui−1 = 0,
i = 1, . . . , M − 1.
Tale equazione alle differenze ammette come soluzione, per ogni i = 0, . . . , M i i 1 + 2Pe + 3Pe(Pe + 2) 1 + 2Pe − 3Pe(Pe + 2) − 1 − Pe 1 − Pe ui = M M , 1 + 2Pe + 3Pe(Pe + 2) 1 + 2Pe − 3Pe(Pe + 2) − 1 − Pe 1 − Pe che, ancora una volta, risulta oscillante quando Pe > 1. Il problema è dunque critico quando σμ 1, ovvero quando il coefficiente di diffusione è molto piccolo rispetto a quello di reazione e lo diventa sempre più all’aumentare del rapporto σμ (si veda l’esempio riportato in Fig. 5.3).
5.4 Relazioni tra elementi finiti e differenze finite Vogliamo analizzare il comportamento del metodo delle Differenze Finite (DF, per brevità) applicato alla risoluzione di problemi di diffusione-trasporto e di diffusionereazione, ed evidenziarne analogie e differenze con il metodo agli Elementi Finiti (EF, per brevità). Ci limiteremo al caso monodimensionale e considereremo una mesh uniforme. Consideriamo ancora il problema (5.14) e approssimiamolo mediante differenze finite. Allo scopo di avere un errore di discretizzazione locale dello stesso ordine di grandezza per entrambi i termini, si approssimeranno le derivate utilizzando i rapporti incrementali centrati seguenti: u (xi ) =
u(xi+1 ) − u(xi−1 ) + O(h2 ), 2h
i = 1, . . . , M − 1,
(5.24)
5.4 Relazioni tra elementi finiti e differenze finite
u (xi ) =
u(xi+1 ) − 2u(xi ) + u(xi−1 ) + O(h2 ), h2
149
i = 1, . . . , M − 1. (5.25)
In entrambi i casi, come evidenziato, il resto è un infinitesimo rispetto al passo reticolare h, come si può facilmente provare invocando gli sviluppi troncati di Taylor (si veda, ad esempio, [QSS08]). Sostituendo in (5.14) le derivate esatte con i rapporti incrementali (trascurando dunque l’errore infinitesimo), troviamo lo schema seguente ⎧ ⎨ −μ ui+1 − 2ui + ui−1 + b ui+1 − ui−1 = 0, i = 1, . . . , M − 1, h2 2h ⎩ u0 = 0, uM = 1.
(5.26)
Per ogni i, l’incognita ui fornisce un’approssimazione per il valore nodale u(xi ). Moltiplicando per h otteniamo la stessa equazione (5.18) ottenuta usando elementi finiti lineari sulla stessa griglia uniforme. Consideriamo ora il problema di diffusione e reazione (5.21). Procedendo in modo analogo, la sua approssimazione con le differenze finite fornisce ⎧ ⎨ −μ ui+1 − 2ui + ui−1 + σui = 0, h2 ⎩ uM = 1. u0 = 0,
i = 1, . . . , M − 1,
(5.27)
Tale equazione risulta diversa dalla (5.22), che si è ottenuta con elementi finiti lineari, in quanto il termine di reazione, che in (5.27) compare con il contributo diagonale σui , nella (5.22) dà luogo alla somma di tre contributi differenti h 2 h . σ ui−1 + ui h + ui+1 6 3 6 Dunque i due metodi EF e DF non sono in questo caso equivalenti. Osserviamo che la soluzione ottenuta con lo schema alle DF (5.27) non presenta oscillazioni, qualunque sia il valore scelto per il passo h di discretizzazione. Infatti la soluzione di (5.27) è M −1 i ui = (ρM (ρ1 − ρi2 ), 1 − ρ2 )
con ρ1,2
γ = ± 2
γ2 −1 4
12 e γ =2+
σh2 . μ
Le potenze i-esime ora hanno una base positiva, garantendo un andamento monotono della successione {ui }. Ciò differisce da quanto visto in Sez 5.3 per gli EF, per i quali occorre garantire che il numero di Péclet locale (5.23) sia minore di 1, ovvero 9 scegliere h ≤ 6μ σ . Si veda l’esempio riportato in Fig. 5.4 per avere un confronto tra un’approssimazione ad elementi finiti ed una alle differenze finite.
150
5 Equazioni di diffusione-trasporto-reazione 1.2
Esatta Pe=10.20 (FEM) Pe=10.20 (FD) Pe= 0.57 (FEM) Pe= 0.57 (FD)
1
0.8
0.6
0.4
0.2
0
−0.2 0.8
0.82
0.84
0.86
0.88
0.9
0.92
0.94
0.96
0.98
1
Figura 5.4. Confronto tra soluzioni numeriche dell’equazione di diffusione-reazione monodimensionale (5.21) con Peg = 2000 ottenute utilizzando il metodo di Galerkin-elementi finiti lineari (FEM) ed il metodo alle differenze finite (FD), per diversi valori del numero di Péclet locale
5.5 La tecnica del mass-lumping Nel caso del problema di reazione-diffusione, si può ottenere usando elementi finiti lineari lo stesso risultato delle differenze finite, pur di far ricorso alla cosiddetta tecnica del mass-lumping grazie alla quale la matrice di massa 1 M = (mij ),
mij =
ϕj ϕi dx, 0
che è tridiagonale, viene approssimata con una matrice diagonale ML , detta matrice condensata, o lumped. A tale scopo si utilizza la seguente formula di quadratura dei trapezi su ciascun intervallo (xi , xi+1 ), per ogni i = 0, . . . , M − 1 x i+1
f(x) dx
h (f(xi ) + f(xi+1 )). 2
xi
Grazie alle proprietà delle funzioni di base degli elementi finiti lineari, si trova allora: xi ϕi−1 ϕi dx h2 [ϕi−1 (xi−1 )ϕi (xi−1 ) + ϕi−1 (xi )ϕi (xi )] = 0, xi−1 xi+1 xi ϕ2i dx = 2 xi−1 ϕ2i dx 2 h2 ϕ2 i (xi−1 ) + ϕ2 i (xi ) = h, xxi−1 i+1 ϕi ϕi+1 dx h2 [ϕi (xi )ϕi+1 (xi ) + ϕi (xi+1 )ϕi+1 (xi+1 )] = 0. xi
Usando le formule precedenti per calcolare in modo approssimato gli elementi della matrice di massa, si perviene alla seguente matrice diagonale ML avente per elementi
5.5 La tecnica del mass-lumping
151
le somme degli elementi di ogni riga della matrice M , ovvero 6 ii ), con m 6 ii = ML = diag(m
i+1 "
mij .
(5.28)
j=i−1
Si noti che, grazie alla seguente proprietà di partizione dell’unità delle funzioni di base M " ϕj (x) = 1 ∀x ∈[0, 1], (5.29) j=0
gli elementi della matrice ML assumono la seguente espressione sull’intervallo [0, 1] 1 m 6 ii =
ϕi dx,
i = 0, . . . , M.
0
I loro valori sono riportati nell’Esercizio 3 per elementi finiti di grado 1, 2, 3. Il problema agli elementi finiti in cui si sostituiscano i termini di ordine zero nel seguente modo
1
σ uh ϕi dx = σ 0
M −1 " j=1
uj
1
ϕj ϕi dx = σ 0
M −1 "
mij uj σ m 6 ii ui ,
j=1
produce soluzioni coincidenti con quelle delle differenze finite, dunque monotone per ogni valore di h. Inoltre, la sostituzione di M con ML non riduce l’ordine di accuratezza del metodo. Il procedimento di mass-lumping (5.28) è generalizzabile al caso bidimensionale nel caso si usino elementi lineari. Per elementi finiti quadratici, invece, la procedura di somma per righe precedentemente descritta genererebbe una matrice di massa ML singolare (si veda l’Esempio 5.1). Una strategia di diagonalizzazione alternativa alla . = diag(m precedente consiste nell’utilizzare la matrice M . ii ) con elementi dati da mii m . ii = ! . j mjj . e ML Nel caso monodimensionale, per elementi finiti lineari e quadratici, le matrici M coincidono, mentre differiscono per elementi cubici (si veda l’Esercizio 3). La matrice . è non singolare anche per elementi finiti lagrangiani di ordine elevato, mentre può M risultare singolare se si utilizzano elementi finiti non lagrangiani, per esempio se si usano basi gerarchiche. In quest’ultimo caso, si ricorre a procedure di mass-lumping più sofisticate. Recentemente sono state infatti elaborate diverse nuove tecniche di diagonalizzazione anche per elementi finiti di grado elevato, e in grado di generare matrici non-singolari. Si veda ad esempio [CJRT01].
152
5 Equazioni di diffusione-trasporto-reazione
Esempio 5.1 La matrice di massa per i P2 , sull’elemento di riferimento di vertici (0, 0), (1, 0) e (0, 1), è data da ⎡ ⎤ 6 −1 −1 0 −4 0 ⎢ −1 6 −1 0 0 −4 ⎥ ⎢ ⎥ 1 ⎢ −1 −1 6 −4 0 0 ⎥ ⎢ ⎥, M= 0 −4 32 16 16 ⎥ 180 ⎢ ⎢ 0 ⎥ ⎣ −4 0 0 16 32 16 ⎦ 0 −4 0 16 16 32 mentre le matrici di massa condensate sono date da 1 diag(0 0 0 60 60 60), 180 = 1 diag(6 6 6 32 32 32). M 114 ML =
Come si vede la matrice ML è singolare.
La tecnica del mass-lumping verrà utilizzata anche in altri contesti, ad esempio nella risoluzione di problemi parabolici (si veda il Cap. 6) quando si utilizzano discretizzazioni spaziali agli elementi finiti e discretizzazioni temporali esplicite alle differenze finite (come il metodo di Eulero in avanti). In tal caso, ricorrendo al lumping della matrice di massa derivante dalla discretizzazione della derivata temporale, ci si riconduce alla soluzione di un sistema diagonale con conseguente riduzione del corrispondente costo computazionale.
5.6 Schemi decentrati e diffusione artificiale Il confronto con le differenze finite ci ha permesso di trovare una strada per risolvere i problemi degli schemi ad elementi finiti nel caso di un problema di diffusionereazione. Vogliamo ora trovare un rimedio anche per il caso del problema di diffusionetrasporto (5.14). Mettiamoci nell’ambito delle differenze finite. Le oscillazioni nella soluzione numerica nascono dal fatto che si è utilizzato uno schema alle differenze finite centrate (DFC) per la discretizzazione del termine di trasporto. Un’idea che deriva dal significato fisico del termine di trasporto suggerisce di discretizzare la derivata prima in un punto xi con un rapporto incrementale decentrato nel quale intervenga il valore in xi−1 se il campo è positivo, e in xi+1 in caso contrario. Questa tecnica è detta di upwinding e lo schema risultante, denominato schema upwind (in breve DFUP) si scrive, nel caso b > 0, come −μ
ui+1 − 2ui + ui−1 ui − ui−1 = 0, +b h2 h
i = 1, . . . , M − 1 .
(5.30)
(Si veda la Fig. 5.5 per un esempio di applicazione dello schema upwind). Il prezzo da pagare è una riduzione dell’ordine di convergenza in quanto il rapporto incrementale decentrato introduce un errore di discretizzazione locale che è O(h) (si veda (5.25)) e non O(h2 ) come nel caso delle DFC.
5.6 Schemi decentrati e diffusione artificiale
153
1.2
1
0.8
Esatta FDC Pe= 2.94 FDUP Pe= 2.94 FDC Pe= 0.70 FDUP Pe= 0.70
0.6
0.4
0.2
0
−0.2
−0.4 0.7
0.75
0.8
0.85
0.9
0.95
1
Figura 5.5. Soluzione ottenuta utilizzando lo schema delle differenze finite centrate (FDC) ed upwind (FDUP) per l’equazione di diffusione-trasporto monodimensionale (5.14) con Peg = 50. Anche ad alti numeri di Péclet locale si può notare l’effetto stabilizzante della diffusione artificiale introdotta dallo schema upwind, accompagnata, inevitabilmente, da una perdita di accuratezza
Osserviamo ora che ui − ui−1 ui+1 − ui−1 h ui+1 − 2ui + ui−1 = − , h 2h 2 h2 ovvero il rapporto incrementale decentrato si può scrivere come la somma di un rapporto incrementale centrato per approssimare la derivata prima e di un termine proporzionale alla discretizzazione della derivata seconda ancora con un rapporto incrementale centrato. Pertanto, lo schema upwind si può reinterpretare come uno schema alle differenze finite centrate in cui è stato aggiunto un termine di diffusione artificiale proporzionale ad h. In effetti, la (5.30) è equivalente a −μh
ui+1 − 2ui + ui−1 ui+1 − ui−1 +b = 0, h2 2h
i = 1, . . . , M − 1,
(5.31)
dove μh = μ(1 + Pe), essendo Pe il numero di Péclet locale introdotto in (5.19). Lo schema (5.31) corrisponde alla discretizzazione con uno schema DFC del problema perturbato −μh u + bu = 0. (5.32) bh La “correzione” della viscosità μh − μ = μPe = è detta viscosità numerica o 2 anche viscosità artificiale. Il nuovo numero di Péclet locale, associato allo schema (5.31), è Pe∗ =
bh Pe , = 2μh (1 + Pe)
e pertanto esso verifica Pe∗ < 1 per ogni valore possibile di h > 0. Come vedremo nella prossima sezione, questa interpretazione consente di estendere la tecnica upwind
154
5 Equazioni di diffusione-trasporto-reazione
agli elementi finiti ed anche al caso bidimensionale, dove il concetto di decentramento della derivata non è peraltro così ovvio. Più in generale, possiamo utilizzare in uno schema DFC della forma (5.31) il seguente coefficiente di viscosità numerica μh = μ(1 + φ(Pe)),
(5.33)
dove φ è una funzione opportuna del numero di Péclet locale che deve soddisfare la proprietà lim φ(t) = 0. È facile osservare che se φ = 0 si ottiene il metodo DFC t→0+
(5.26), mentre se φ(t) = t, si ottiene il metodo DFUP (o upwind) (5.30) (o (5.31)). Altre scelte di φ danno luogo a schemi diversi. Ad esempio, ponendo φ(t) = t − 1 + B(2t), dove B è la cosiddetta funzione di Bernoulli definita come B(t) =
t et − 1
se t > 0,
B(0) = 1,
e
si ottiene lo schema comunemente chiamato di Scharfetter e Gummel, detto anche di Iljin o del fitting esponenziale (in realtà tale schema è stato originariamente introdotto da Allen e Southwell [AS55]). Indicati con φU e φSG rispettivamente le due funzioni individuate dalle scelte φ(t) = t e φ(t) = t − 1 − B(2t), si osserva che φSG φU se Pe → +∞, mentre φSG = O(Pe2 ) e φU = O(Pe) se Pe → 0+ (si veda la Fig. 5.6).
10 1
9
0.9 0.8 0.7
8
0.6 0.5
7
0.4 0.3 0.2
6
0.1 0 0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
5 4 3 2 1 0 0
1
2
3
4
5
6
7
8
9
10
Figura 5.6. Le funzioni φU (in linea continua) e φSG (in linea tratteggiata) al variare del numero di Péclet
5.7 Autovalori del problema di diffusione-trasporto
155
1.2
Esatta FDUP Pe= 2.94 FDSG Pe= 2.94 FDUP Pe= 0.70 FDSG Pe= 0.70
1
0.8
0.6
0.4
0.2
0
−0.2
−0.4
0.8
0.82
0.84
0.86
0.88
0.9
0.92
0.94
0.96
0.98
1
Figura 5.7. Confronto fra la soluzione con viscosità numerica upwind (FDUP) e quella di Scharfetter e Gummel (FDSG) nel caso in cui Peg = 50
Si può verificare che per ogni μ e b fissati, lo schema di Scharfetter e Gummel è del secondo ordine (rispetto ad h) e, per tale ragione, è anche detto schema upwind con viscosità ottimale. In realtà, si può verificare anche che, nel caso in cui f sia costante (o, più in generale, è sufficiente che sia costante in ogni intervallo [xi , xi+1 ]), la soluzione numerica prodotta da questo schema coincide esattamente con la soluzione u nei nodi di discretizzazione xi interni all’intervallo (0, 1), ovvero si ha che ui = u(xi ) per i = 1, . . . , M − 1, indipendentemente dalla scelta fatta per h (si veda la Fig. 5.7). Osserviamo che il numero di Péclet locale corrispondente al coefficiente della forma (5.33) è Pe∗ =
bh Pe , = 2μh (1 + φ(Pe))
pertanto esso è sempre minore di 1, per ogni valore di h. Osservazione 5.1 La matrice associata agli schemi upwind e del fitting esponenziale è una M-matrice indipendentemente dal valore di h; pertanto la soluzione numerica ha un andamento monotono (si veda [QSS08, Cap. 1]). •
5.7 Autovalori del problema di diffusione-trasporto Consideriamo l’operatore Lu = −μu +bu associato al problema (5.14) in un generico intervallo (α, β), e studiamo il comportamento degli autovalori λ ad esso associati.
156
5 Equazioni di diffusione-trasporto-reazione
Essi verificano il problema Lu = λu, α < x < β, u(α) = u(β) = 0, u essendo un’autofunzione. Tali autovalori saranno, in generale, complessi per via della presenza del termine bu di ordine 1. Supponendo μ > 0 costante (e b a priori variabile), abbiamo β β β 1 2 Lu u dx b |u|2 dx μ |u | dx − 2 α Re(λ) = α β = α . (5.34) β |u|2 dx |u|2 dx α
α
Si evince che se μ è piccolo e b è strettamente positivo la parte reale di λ non è necessariamente positiva. Grazie alla disuguaglianza di Poincaré β
β
2
|u | dx ≥ Cα,β α
|u|2 dx,
(5.35)
α
essendo Cα,β una costante positiva che dipende da β − α, deduciamo da (5.34) che Re(λ) ≥ Cα,β μ −
1 b 2 max
essendo bmax = max b (s). Pertanto solo un numero finito di autovalori possono α≤s≤β
avere parte reale negativa. In particolare, osserviamo che Re(λ) > 0 se b è costante o b (x) ≤ 0 ∀x ∈ [α, β]. Lo stesso tipo di limitazione inferiore si ottiene per gli autovalori associati all’approssimazione di Galerkin-elementi finiti. Questi ultimi sono la soluzione del problema β trovare λh ∈ C, uh ∈ Vh :
μuh vh
α
β dx +
buh vh
α
β uh vh dx ∀vh ∈ Vh ,
dx = λh α
(5.36) dove Vh = {vh ∈ Xhr : vh (α) = vh (β) = 0}. Per dimostrarlo basta prendere ancora vh = uh in (5.36) ed operare come in precedenza. Possiamo invece ottenere una limitazione dall’alto scegliendo ancora vh = uh in (5.36) e prendendo il modulo in entrambi i membri: |λh | ≤
μuh 2L2(α,β) + bL∞(α,β) uh L2(α,β) uh L2(α,β) uh 2L2(α,β)
.
Usando ora la disuguaglianza inversa (3.41) nel caso monodimensionale ∃ CI = CI (r) > 0 : ∀vh ∈ Xhr ,
vh L2 (α,β) ≤ CI h−1 vh L2 (α,β) ,
(5.37)
5.8 Metodi di stabilizzazione
157
troviamo facilmente che |λh | ≤ μ CI2 h−2 + bL∞(α,β) CI h−1 . Nel caso di un’approssimazione spettrale di Legendre G-NI sul consueto intervallo di riferimento (−1, 1), il problema agli autovalori assumerebbe la forma seguente trovare λN ∈ C, uN ∈ P0N : +
μuN , vN
, N
+ , + , + buN , vN N = λN uN , vN N ∀vN ∈ P0N ,
(5.38)
P0N
lo spazio dei polinomi algebrici di grado N che si annullano in x = essendo ora ±1 e (·, ·)N il prodotto scalare discreto di GLL definito in (4.25). Supporremo, per semplicità, che anche b sia costante. Prendendo vN = uN , otteniamo Re(λN ) =
μuN 2L2(−1,1) uN 2N
,
pertanto Re(λN ) > 0. Grazie alla disuguaglianza di Poincaré (5.35) (che nell’intervallo (−1, 1) vale con costante Cα,β = π 2 /4), otteniamo la stima dal basso Re(λN ) > μ
2 π 2 uN L2(−1,1) . 4 uN 2N
Essendo uN un polinomio di grado al più N , grazie alla (4.52) otteniamo Re(λN ) > μ
π2 . 12
Usando invece la seguente disuguaglianza inversa per i polinomi algebrici ∃ C > 0 : ∀vN ∈ PN ,
vN L2 (−1,1) ≤ C N 2 vN L2 (−1,1)
(5.39)
(si veda [CHQZ06]) e ancora una volta la (4.52), si trova Re(λN ) < C μ N 4 . In realtà, se N > 1/μ, si può provare che i moduli degli autovalori del problema di diffusione-trasporto (5.38) si comportano come quelli del problema di pura diffusione, ovvero C1 N −1 ≤ |λN | ≤ C2 N −2 . Per le dimostrazioni e per maggiori dettagli si veda [CHQZ06, Sezione 4.3.3].
5.8 Metodi di stabilizzazione Il metodo di Galerkin introdotto nelle sezioni precedenti fornisce un’approssimazione centrata del termine di trasporto. Un modo possibile per decentrare o dissimmetrizzare
158
5 Equazioni di diffusione-trasporto-reazione
tale approssimazione, consiste nello scegliere le funzioni test vh in uno spazio diverso da quello a cui appartiene uh : si ottiene così un metodo detto di Petrov-Galerkin, per il quale non vale più l’analisi basata sul Lemma di Céa. Analizzeremo più nel dettaglio questo approccio nella Sez. 5.8.2. In questa sezione ci occuperemo invece di un altro metodo, detto degli elementi finiti stabilizzati. Peraltro, come vedremo, gli schemi così prodotti si possono reinterpretare come particolari metodi di Petrov-Galerkin. L’approssimazione del problema (5.16) con il metodo di Galerkin è trovare uh ∈ Vh : a(uh , vh ) = F (vh ) ∀vh ∈ Vh , ◦
(5.40)
r
essendo Vh = X h , r ≥ 1. Consideriamo invece il metodo di Galerkin generalizzato trovare uh ∈ Vh : ah (uh , vh ) = Fh (vh ) ∀vh ∈ Vh ,
(5.41)
in cui ah (uh , vh ) = a(uh , vh ) + bh (uh , vh ) e Fh (vh ) = F (vh ) + Gh (vh ). I termini aggiuntivi bh (uh , vh ) e Gh (vh ) hanno lo scopo di eliminare (o quanto meno di ridurre) le oscillazioni numeriche prodotte dal metodo di Galerkin e sono pertanto denominati termini di stabilizzazione. Essi dipendono parametricamente da h. Osservazione 5.2 Si vuole far notare che il termine “stabilizzazione” è in realtà improprio. Il metodo di Galerkin è infatti già stabile, nel senso della continuità della soluzione rispetto ai dati del problema (si veda quanto dimostrato, ad esempio, nella Sez. 5.1 per il problema (5.1)). Stabilizzazione va intesa, in questo caso, nel senso di ridurre (idealmente di eliminare) le oscillazioni presenti nella soluzione numerica quando Pe > 1. • Vediamo ora vari modi con cui scegliere i termini di stabilizzazione. 5.8.1 Diffusione artificiale e schemi decentrati agli elementi finiti Basandoci su quanto visto per le differenze finite e riferendoci, per semplicità, al caso monodimensionale, applichiamo il metodo di Galerkin al problema (5.14) sostituendo al coefficiente di viscosità μ un coefficiente μh = μ(1+φ(Pe)). In tal modo si aggiunge di fatto al termine originale di viscosità μ una viscosità artificiale pari a μφ(Pe), dipendente dal passo di discretizzazione h attraverso il numero di Péclet locale Pe. Si ottiene dunque la seguente approssimazione di (5.16) ◦
trovare uh ∈ Vh : essendo
◦
◦
ah (uh , vh ) = F (vh ) ◦
∀vh ∈ Vh ,
◦
ah (uh , vh ) = a(uh , vh ) + bh (uh , vh ).
(5.42) (5.43)
Il termine aggiuntivo di stabilizzazione è dato da 1 ◦ bh (uh , vh ) = μφ(Pe) uh vh dx. ◦
0
(5.44)
5.8 Metodi di stabilizzazione
159
Essendo ◦
◦
◦
ah (uh , uh ) ≥ μh | uh |2H1 (Ω) e μh ≥ μ, possiamo affermare che il problema (5.43) è “più coercivo” (ovvero ha una costante di coercività più grande) del problema discreto ottenuto con il metodo di Galerkin standard, che ritroviamo prendendo ah = a in (5.42). Il seguente risultato fornisce una stima a priori dell’errore commesso approssi◦ mando la soluzione del problema (5.16) con uh . Teorema 5.1 Nell’ipotesi che u ∈ Hr+1 (Ω), l’errore fra la soluzione del problema (5.16) e quella del problema approssimato (5.42) si può maggiorare come segue ◦
◦
u − uh H1 (Ω) ≤ C
◦ ◦ φ(Pe) hr u Hr+1(Ω) + u H1(Ω) , μ(1 + φ(Pe)) 1 + φ(Pe)
(5.45)
essendo C un’opportuna costante positiva indipendente da h e da μ.
Dimostrazione. Ci possiamo avvalere del Lemma di Strang, già illustrato nella Sez. 4.4.1, grazie al quale otteniamo M ◦ ◦ ◦ u − uh H1 (Ω) ≤ 1+ u −wh H1(Ω) inf wh ∈Vh μh 5 (5.46) |a(wh , vh ) − ah (wh , vh )| 1 . + sup μh vh ∈Vh ,vh =0 vh H1 (Ω) ◦
◦
Scegliamo wh = Phr u; quest’ultima è la proiezione ortogonale di u su Vh rispetto al 1 prodotto scalare u v dx di H10 (Ω), ovvero 0 ◦ Phr u∈
1 Vh :
◦
◦
(Phr u − u) vh dx = 0
∀vh ∈ Vh .
0
Si può dimostrare che (si veda [QV94, Cap. 3]) ◦
◦
(Phr u) L2(Ω) ≤ (u) L2(Ω)
e
◦
◦
◦
Phr u − u H1 (Ω) ≤ Chr u Hr+1 (Ω) ,
essendo C una costante indipendente da h. Possiamo così maggiorare il primo adden◦ do del termine di destra nella (5.46) con la quantità (C/μh )hr u Hr+1 (Ω) .
160
5 Equazioni di diffusione-trasporto-reazione
Ora, grazie alla (5.43), otteniamo 1 |a(wh , vh ) − ah (wh , vh )| μh vh H1 (Ω)
1 μ 1 φ(Pe) wh vh dx. 1 μh vh H (Ω)
≤
0
Usando la disuguaglianza di Cauchy-Schwarz, ed osservando che vh L2(Ω) ≤ vh H1 (Ω) otteniamo 1 sup μh vh ∈Vh ,vh =0
e che
◦
◦
◦
(Phr u) L2(Ω) ≤ Phr u H1(Ω) ≤ u H1 (Ω) ,
◦ ◦ a(Phr u, vh ) − ah (Phr u, vh ) vh H1 (Ω)
≤
φ(Pe) ◦ u H1(Ω) . 1 + φ(Pe)
La disuguaglianza (5.45) è pertanto dimostrata.
Corollario 5.1 Per μ fissato e h tendente a 0, si ha ◦ ◦ ◦ ◦ u − uh H1(Ω) ≤ C1 hr u Hr+1 (Ω) + φ(Pe) u H1 (Ω) ,
(5.47)
dove C1 è una costante positiva, indipendente da h, mentre, per h fissato e μ che tende a 0, si ha ◦ ◦ ◦ ◦ u − uh H1(Ω) ≤ C2 hr−1 u Hr+1(Ω) + u H1(Ω) , (5.48) dove C2 è una costante positiva indipendente da h e da μ. Dimostrazione. La (5.47) si ottiene dalla (5.45) ricordando che φ(Pe) → 0 per μ fissato e h → 0. Per ottenere la (5.48) basta ora osservare che, nel caso dell’upwind, φU (Pe) = Pe, pertanto b μ(1 + φ(Pe)) = μ + h 2
e
φ(Pe) h = 1 + φ(Pe) h + 2μ/b
e che, nel caso dello schema di Scharfetter-Gummel, φSG (Pe) φU (Pe) per h fissato e μ tendente a 0. In particolare, per μ fissato, il metodo stabilizzato genera un errore lineare rispetto ad h (indipendentemente dal grado r) se si usa la viscosità upwind, mentre con viscosità artificiale di tipo Scharfetter e Gummel la convergenza diviene quadratica se r ≥ 2. Questo risultato segue dalla stima (5.47) ricordando che φU (Pe) = O(h) mentre φSG (Pe) = O(h2 ) per μ fissato e h → 0.
5.8 Metodi di stabilizzazione
161
1
ψi
Bi 0.5
ϕi 0
x0 . . .
xi−1 xi
xi+1 . . . xN
x0 . . .
xi−1 xi
xi+1 . . . xN
-0.5
-1 -3
-2
-1
0
1
2
3
Figura 5.8. Esempio di funzione bolla Bi e di una funzione di base ψi dello spazio Wh
5.8.2 Il metodo di Petrov-Galerkin Un modo equivalente di scrivere il problema di Galerkin generalizzato (5.42) con viscosità numerica è di riformularlo come metodo di Petrov-Galerkin, ovvero un metodo in cui lo spazio delle funzioni test è diverso da quello in cui si cerca la soluzione. Precisamente, l’approssimazione assume la forma seguente ◦
trovare uh ∈ Vh :
◦
a(uh , vh ) = F (vh )
∀vh ∈ Wh ,
(5.49)
dove Wh = Vh , mentre la forma bilineare a(·, ·) è la stessa del problema di partenza. Si può verificare che, nel caso di elementi finiti lineari, ovvero per r = 1, il problema (5.42)-(5.44) si può riscrivere nella forma (5.49) in cui Wh è lo spazio generato dalle funzioni ψi (x) = ϕi (x) + Bi α (si veda la Fig. 5.8, a destra), dove le Biα = α Bi (x) sono le cosiddette funzioni a bolla, con ⎧ x−xi−1 ⎪ g 1 − , ⎪ h ⎪ ⎨ + x−xi , Bi (x) = −g h , ⎪ ⎪ ⎪ ⎩ 0
xi−1 ≤ x ≤ xi , xi ≤ x ≤ xi+1 , altrimenti,
e g(ξ) = 3ξ(1 − ξ), con 0 ≤ ξ ≤ 1 (si veda la Fig. 5.8, a sinistra) [ZT00]. Nel caso delle differenze finite upwind si ha α = 1, mentre nel caso dello schema di Scharfetter e Gummel si ha α = coth(Pe) − 1/Pe. Si noti che le funzioni test si dissimmetrizzano (rispetto alle usuali funzioni di base lineari a tratti) sotto l’azione del campo convettivo.
5.8.3 Il metodo della diffusione artificiale e della streamline-diffusion nel caso bidimensionale Il metodo della viscosità artificiale upwind si può generalizzare al caso in cui si consideri un problema bidimensionale del tipo (5.1). In tal caso basterà aggiungere alla
162
5 Equazioni di diffusione-trasporto-reazione
forma bilineare (5.3) un termine di tipo Qh ∇uh · ∇vh dΩ
per un opportuno Q > 0,
(5.50)
Ω
corrispondente ad aggiungere il termine di diffusione artificiale −QhΔu al problema di partenza (5.1). Il metodo corrispondente si chiama metodo della diffusione artificiale upwind. In tal modo si introduce una diffusione addizionale, non solo nella direzione del campo b, come è giusto che sia se l’obiettivo è quello di stabilizzare le oscillazioni generate dal metodo di Galerkin, ma anche in quella ad esso ortogonale il che, invece, non è affatto necessario. Se, ad esempio, considerassimo il problema −μΔu +
∂u =f ∂x
in Ω, u = 0
su ∂Ω,
in cui il campo di trasporto è dato dal vettore b = [1, 0]T , il termine di diffusione artificiale che vorremmo aggiungere sarebbe 2 ∂2u ∂ u ∂2u −Qh 2 e non − QhΔu = −Qh + 2 . ∂x ∂x2 ∂y Più in generale, si può aggiungere il seguente termine di stabilizzazione ∂u −Qhdiv [(b · ∇u) b] = −Qhdiv b , con Q = |b|−1. ∂b Nel problema di Galerkin esso dà luogo al seguente termine ∂uh ∂vh , . bh (uh , vh ) = Qh(b · ∇uh , b · ∇vh ) = Qh ∂b ∂b
(5.51)
Il problema discreto che si ottiene, detto streamline-diffusion, diventa trovare uh ∈ Vh : ah (uh , vh ) = (f, vh ) ∀vh ∈ Vh , dove ah (uh , vh ) = a(uh , vh ) + bh (uh , vh ). In sostanza, stiamo aggiungendo un termine proporzionale alla derivata seconda nella direzione del campo b (in inglese streamline). Si noti che, in questo caso, il coefficiente di viscosità artificiale è un tensore. Infatti il termine di stabilizzazione bh (·, ·) può essere pensato come la forma bilineare associata all’operatore −div(μa ∇u) con [μa ]ij = Qhbi bj , essendo bi la i-esima componente di b. Nonostante il termine (5.51) sia meno diffusivo di (5.50), anche per il metodo della streamline-diffusion si riscontra che l’accuratezza è solamente O(h). Metodi di stabilizzazione più accurati sono descritti nelle sezioni (5.8.6),(5.8.7) e (5.8.8). Per introdurli abbiamo bisogno di alcune definizioni che anticiperemo nelle sezioni (5.8.4) e (5.8.5).
5.8 Metodi di stabilizzazione
163
5.8.4 Consistenza ed errore di troncamento per i metodi di Galerkin e di Galerkin generalizzato Per il problema di Galerkin generalizzato (5.41) si consideri la differenza tra il primo ed il secondo membro quando si sostituisca la soluzione esatta u a quella approssimata uh , ovvero τh (u; vh ) = ah (u, vh ) − Fh (vh ). (5.52) Esso è un funzionale della variabile vh . La sua norma τh (u) =
|τh (u; vh )| vh ∈Vh ,vh =0 vh V sup
(5.53)
definisce l’errore di troncamento associato al metodo (5.41). Coerentemente con le definizioni date nella Sez. 1.2, diremo che il metodo di Galerkin generalizzato in esame è consistente se lim τh (u) = 0. h→0
Diremo inoltre che è fortemente (o completamente) consistente se l’errore di troncamento (5.53) risulta nullo per ogni valore di h. Il metodo standard di Galerkin, ad esempio, è fortemente consistente, come visto nel Cap. 3, in quanto, ∀vh ∈ Vh , si ha τh (u; vh ) = a(u, vh ) − F (vh ) = 0. Il metodo di Galerkin generalizzato, invece, è in generale solo consistente, come discende dal Lemma di Strang, purché ah − a e Fh − F “tendano a zero” quando h tende a zero. Per quanto riguarda i metodi di diffusione artificiale di tipo upwind e streamlinediffusion si ha τh (u; vh )
= ah (u, vh ) − F (vh )
= ah (u, vh ) − a(u, vh ) =
Qh(∇u, ∇vh)
(Upwind),
∂u ∂vh Qh( ∂b , ∂b )
(Streamline-Diff.).
Pertanto sono metodi consistenti, ma non fortemente consistenti. 5.8.5 Parte simmetrica e antisimmetrica di un operatore Sia V uno spazio di Hilbert e V il suo duale. Diremo che un operatore L : V → V è simmetrico (o autoaggiunto) se (si veda (3.106)) V Lu, vV
=
V
u, LvV
∀u, v ∈ V,
ovvero se L coincide con il suo operatore aggiunto/duale L∗ . Avremo invece che L è antisimmetrico quando V Lu, vV
= − V u, LvV
∀u, v ∈ V.
164
5 Equazioni di diffusione-trasporto-reazione
Un operatore può sempre essere scomposto nella somma di una parte simmetrica LS e di una parte antisimmetrica LSS , ovvero Lu = LS u + LSS u. Consideriamo, ad esempio, il seguente operatore di diffusione-trasporto-reazione Lu = −μΔu + div(bu) + σu,
x ∈ Ω ⊂ Rd , d ≥ 2,
(5.54)
operante sullo spazio V = H01 (Ω). Poiché div(bu) =
1 2 div(bu)
+ 12 div(bu)
=
1 2 div(bu)
+ 12 udiv(b) + 12 b · ∇u,
possiamo scomporlo nel modo seguente 1 1 Lu = −μΔu + σ + div(b) u + [div(bu) + b · ∇u] . 2 2 12 3 0 12 3 0 LSS u
LS u
Si noti che il coefficiente di reazione è diventato σ ∗ = σ + 12 div(b). Verifichiamo che le due parti in cui è stato diviso l’operatore sono rispettivamente simmetrica e antisimmetrica. In effetti, integrando due volte per parti, ∀u, v ∈ V , si ottiene V LS u, vV
= μ(∇u, ∇v) + (σ ∗ u, v) = −μ =
V LSS u, vV
= = = =
V
V u, ΔvV
+ (u, σ ∗ v)
u, LS vV ,
1 1 (div(bu), v) + (b · ∇u, v) 2 2 1 1 − (bu, ∇v) + (∇u, bv) 2 2 1 1 − (u, b · ∇v) − (u, div(bv)) 2 2 − V u, LSS vV .
Osservazione 5.3 Ricordiamo che ogni matrice A si può scomporre nella somma A = AS + ASS , dove
1 (A + AT ) 2 è una matrice simmetrica, detta parte simmetrica di A e 1 ASS = (A − AT ) 2 è una matrice antisimmetrica, detta parte antisimmetrica di A. AS =
•
5.8 Metodi di stabilizzazione
165
5.8.6 Metodi fortemente consistenti (GLS, SUPG) Consideriamo un problema di diffusione-trasporto-reazione che scriviamo nella forma astratta Lu = f in Ω, con u = 0 su ∂Ω. Consideriamo la corrispondente formulazione debole data da trovare u ∈ V = H10 (Ω) :
a(u, v) = (f, v)
∀v ∈ V ,
essendo a(·, ·) la forma bilineare associata ad L. Un metodo stabilizzato e fortemente consistente si può ottenere aggiungendo alla sua approssimazione di Galerkin (5.40) un ulteriore termine, ovvero considerando il problema trovare uh ∈ Vh :
a(uh , vh ) + Lh (uh , f; vh ) = (f, vh ) ∀vh ∈ Vh ,
(5.55)
per un’opportuna forma Lh soddisfacente Lh (u, f; vh ) = 0 ∀vh ∈ Vh .
(5.56)
Osserviamo che la forma Lh dipende sia dalla soluzione approssimata uh che dal termine forzante f. Una scelta possibile che verifichi la (5.56) è la seguente (ρ)
Lh (uh , f; vh ) =Lh (uh , f; vh ) =
"
(ρ)
δ(Luh − f , SK (vh ))L2 (K) ,
K∈Th
dove si è usata la notazione (u, v)L2(K) =
uv dK, ρ e δ sono parametri da K
assegnare e si è posto (ρ)
SK (vh ) =
hK [LSS vh + ρLS vh ], |b|
essendo b il campo di moto, LS e LSS rispettivamente la parte simmetrica e antisimmetrica dell’operatore L considerato e hK il diametro del generico elemento K. Per verificare la consistenza di (5.55) poniamo (ρ)
ah (uh , vh ) = a(uh , vv ) + Lh (uh , f; vh ). Grazie alla definizione (5.52) otteniamo (ρ)
τh (u; vh ) = ah (u, vh ) − (f, vh ) = a(u, vh ) + Lh (u, f; vh ) − (f, vh ) (ρ)
= Lh (u, f; vh ) = 0. L’ultima uguaglianza discende dal fatto che Lu −f = 0. Pertanto τh (u) = 0 e dunque la proprietà (5.56) assicura che il metodo (5.55) è fortemente consistente. Vediamo ora alcuni casi particolari associati a diverse possibili scelte del parametro ρ:
166
5 Equazioni di diffusione-trasporto-reazione
– se ρ = 1 si ottiene il metodo detto Galerkin Least-Squares (GLS) nel quale (1)
SK (vh ) =
hK Lvh . |b|
Se prendiamo vh= uh si vede che, su ogni triangolo, è stato aggiunto un termine (Luh )2 dK;
proporzionale a K
– se ρ = 0 si ottiene il metodo denominato Streamline Upwind Petrov-Galerkin (SUPG) in cui hK (0) SK (vh ) = LSS vh ; |b| – se ρ = −1 si ottiene il metodo detto di Douglas-Wang (DW) nel quale: (−1)
SK
(vh ) =
hK (LSS − LS )vh . |b|
Notiamo, tra l’altro, che nel caso in cui σ ∗ = 0 e si usino elementi finiti P1 , i tre metodi precedenti sono tutti coincidenti, in quanto −Δuh |K = 0 ∀K ∈ Th . Limitiamoci ora ai due casi più classici, GLS (ρ = 1) e SUPG (ρ = 0). Definiamo la “norma ρ” " 1 √ (ρ) v(ρ) = {μ∇v2L2(Ω) + γv2L2(Ω) + δ (LSS + ρLS )v, SK (v) L2 (K) } 2 , K∈Th
dove γ è una costante positiva tale che − 12 divb + σ ≥ γ > 0. Vale la seguente disuguaglianza (di stabilità): ∃α∗, dipendente da γ e dalla costante α di coercività di a(·, ·), tale che C fL2 (Ω) , (5.57) α∗ essendo C una opportuna costante (per un esempio si veda la (5.69)). Vale inoltre la seguente stima dell’errore uh (ρ) ≤
u − uh (ρ) ≤ Chr+1/2 |u|Hr+1(Ω) ,
(5.58)
pertanto l’ordine di accuratezza del metodo cresce all’aumentare del grado r dei polinomi usati, come succede nel metodo standard di Galerkin. Le dimostrazioni di (5.57) e (5.58) verranno fornite nella Sez. 5.8.7. Di fondamentale importanza pratica è poi la scelta del parametro di stabilizzazione δ, che misura quanta viscosità artificiale si sta introducendo. A questo proposito si riportano in Tabella 5.1 gli intervalli dei valori ammissibili per tale parametro in funzione dello schema stabilizzato scelto. In tale tabella C0 è la costante della seguente disuguaglianza inversa " 2 hK |Δvh|2 dK ≤ C0 ∇vh 2L2(Ω) ∀vh ∈ Xhr . (5.59) K∈Th
K
Per un’analisi più approfondita di questi metodi e per le dimostrazioni dei casi qui menzionati rinviamo a [QV94], Cap. 8, ed a [RST96]. Segnaliamo anche [Fun97] relativamente al caso di un’approssimazione con elementi spettrali.
5.8 Metodi di stabilizzazione
167
Tabella 5.1. Valori ammissibili per il parametro di stabilizzazione δ 0 < δ < 1/C0 0 0 e σ ≥ 0 costanti, essendo assegnate condizioni al bordo di Dirichlet omogenee. La forma bilineare a(·, ·) : V × V → R associata all’operatore L è dunque a(u, v) = μ ∇u · ∇v dΩ + div(bu) v dΩ + σu v dΩ, Ω
Ω
Ω
essendo V = H10 (Ω). Per semplicità supponiamo nel seguito che esistano due costanti γ0 e γ1 tali che 0 < γ0 ≤ γ(x) =
1 div(b(x)) + σ ≤ γ1 2
∀ x ∈ Ω.
(5.60)
Seguendo quanto fatto nella Sez. 5.8.5, possiamo scrivere la parte simmetrica e antisimmetrica associate a L, rispettivamente, come 1 LS u = −μΔu + γu, LSS u = div(bu) + b · ∇u . 2 Riscriviamo inoltre la formulazione stabilizzata (5.55) scomponendo Lh (uh , f; vh ) in due termini, uno contenente uh , l’altro f trovare uh ∈ Vh :
(1)
(1)
essendo (1)
ah (uh , vh ) = a(uh , vh ) +
" K∈Th
e (1)
∀vh ∈ Vh ,
(5.61)
hK δ Luh , Lvh |b| K
(5.62)
ah (uh , vh ) = fh (vh )
fh (vh ) = (f, vh ) +
" K∈Th
hK Lvh δ f, . |b| K
(5.63)
Osserviamo che, utilizzando queste nuove notazioni, la proprietà di consistenza forte (5.56) si esprime attraverso l’uguaglianza (1)
(1)
ah (u, vh ) = fh (vh ) ∀vh ∈ Vh . Possiamo a questo punto dimostrare il seguente risultato preliminare.
(5.64)
168
5 Equazioni di diffusione-trasporto-reazione (1)
Lemma 5.1 Per ogni δ > 0, la forma bilineare ah (·, ·) definita in (5.62) soddisfa la seguente relazione (1)
ah (vh , vh )
√ = μ||∇vh||2L2(Ω) + || γ vh ||2L2(Ω) " hK + δ ∀ vh ∈ Vh . Lvh , Lvh |b| K
(5.65)
K∈Th
Il risultato precedente segue dalla definizione (5.62) (scelto vh = uh ) e dall’ipotesi (5.60). Nel caso in esame la norma · (1) , che qui indicheremo per convenienza con il simbolo · GLS , diventa " hK √ 2 2 2 vh GLS = μ||∇vh||L2(Ω) + || γ vh ||L2(Ω) + δ . (5.66) Lvh , Lvh |b| K K∈Th
Possiamo dimostrare il seguente risultato di stabilità. Lemma 5.2 Sia uh la soluzione fornita dallo schema GLS. Allora esiste una costante C > 0, indipendente da h, tale che uh GLS ≤ C fL2 (Ω) .
Dimostrazione. Scegliamo vh = uh in (5.61). Sfruttando il Lemma 5.1 e la definizione (5.66), possiamo innanzitutto scrivere che " hK (1) (1) 2 uh GLS = ah (uh , uh) = fh (uh ) = (f, uh ) + δ f, . (5.67) Luh |b| K K∈Th
Nel seguito useremo spesso la seguente disuguaglianza di Young 1 2 b 4ε la quale discende dalla disuguaglianza elementare 2 √ 1 ε a − √ b ≥ 0. 2 ε ∀a, b ∈ R,
ab ≤ εa2 +
∀ε > 0,
(5.68)
Maggioriamo separatamente i due termini di destra della (5.67), utilizzando opportunamente le disuguaglianze di Cauchy-Schwarz e di Young. Otteniamo così 4 4 √ 1 √ 4 1 4 (f, uh ) = √ f, γ uh ≤ 4 √ f 4 γ uh L2 (Ω) 2 γ γ L (Ω) 4 1 42 1 √ 4 4 2 ≤ γ uh L2 (Ω) + 4 √ f 4 2 , 4 γ L (Ω)
5.8 Metodi di stabilizzazione
" K∈Th
hK Luh δ f, |b| K
7
#7
"
hK Luh |b| K∈Th K 7 7 4 4 4 4 "4 hK 4 hK 4 4 f4 Luh 4 ≤ δ 4 δ 4 |b| L2 (K) |b| L2(K) K∈Th " hK 1 " hK f, f Luh , Luh ≤ δ + δ . |b| 4 |b| K K =
δ
hK f, |b|
169
$
δ
K∈Th
K∈Th
Sommando le due precedenti maggiorazioni e sfruttando ancora la definizione (5.66), abbiamo 4 1 42 " hK 1 4 4 2 + δ + uh 2GLS , uh GLS ≤ 4 √ f 4 f, f 2 γ |b| 4 L (Ω) K K∈Th
ovvero, ricordando che hK ≤ h, uh 2GLS
4 " hK 4 4 4 1 42 2 ≤ C 2 fL2 (Ω) , ≤ + δ f, f 4 √ f4 2 3 γ L (Ω) |b| K K∈Th
avendo posto C=
4 3
max x∈Ω
1 γ
+δ
h 1/2 . |b|
(5.69)
Osserviamo che il risultato precedente è valido con la sola restrizione che il parametro di stabilizzazione δ sia positivo. Peraltro tale parametro potrebbe anche variare su ogni elemento K. In tal caso avremmo δK invece di δ nelle (5.62) e (5.63), mentre la costante δ in (5.69) avrebbe il significato di max δK . K∈Th
Procediamo ora all’analisi di convergenza del metodo GLS. Teorema 5.2 Supponiamo innanzitutto che lo spazio Vh soddisfi la seguente proprietà d’approssimazione locale: per ogni v ∈ V ∩H r+1 (Ω), esiste una funzione vˆh ∈ Vh tale che v − vˆh L2(K) + hK |v − vˆh |H1 (K) + h2K |v − vˆh |H2(K) ≤ Chr+1 K |v|Hr+1 (K) (5.70) per ogni K ∈ Th . Supponiamo inoltre che per il numero di Péclet locale su K valga la seguente disuguaglianza PeK (x) =
|b(x)| hK > 1 ∀x ∈ K. 2μ
(5.71)
170
5 Equazioni di diffusione-trasporto-reazione
Infine supponiamo che valga la disuguaglianza inversa (5.59) e che il parametro di stabilizzazione soddisfi la relazione 0 < δ ≤ 2C0−1 . Allora per l’errore associato allo schema GLS vale la seguente stima uh − uGLS ≤ Chr+1/2 |u|Hr+1(Ω) ,
(5.72)
a patto che u ∈ H r+1 (Ω). Dimostrazione. Innanzitutto riscriviamo l’errore eh = uh − u = σh − η,
(5.73)
ˆh , dove uˆh ∈ Vh è una funzione che dipende da u e che con σh = uh − uˆh , η = u − u soddisfa la proprietà (5.70). Se, ad esempio, Vh = Xhr ∩ H01 (Ω), possiamo scegliere u ˆh = Πhr u, ovvero l’interpolata ad elementi finiti di u. Incominciamo a stimare la norma σh GLS . Sfruttando la consistenza forte dello schema GLS data dalla (5.64), grazie alla (5.61) otteniamo (1)
(1)
(1)
||σh||2GLS = ah (σh , σh ) = ah (uh − u + η, σh ) = ah (η, σh ). Ora dalla definizione (5.62) segue che (1) ah (η, σh )
= μ ∇η · ∇σh dΩ − η b · ∇σh dΩ + σ η σh dΩ Ω
Ω
Ω
" " hK Lσh δ Lη, = μ(∇η, ∇σh) − (η, Lσh )K + 2(γ η, σh ) + 0 0 12 3 12 3 |b| K K∈Th K∈Th (I) (III) 0 12 3 (II) " " hK + (η, −μΔσh )K + δ Lη, . Lσh |b| K K∈Th K∈Th 0 12 3 0 12 3 (IV)
(V)
Maggioriamo ora separatamente i termini (I)-(V). Utilizzando opportunamente le disuguaglianze di Cauchy-Schwarz e di Young, otteniamo μ ||∇σh||2L2(Ω) + μ∇η2L2(Ω) , 4 7 7 " " |b| δ hK (η, Lσh )K = − η, − Lσh δ hK |b| K K∈Th K∈Th " |b| 1 " hK Lσh , Lσh δ + η, η , 4 |b| K δ hK K
(I) = μ(∇η, ∇σh) ≤
(II)
= ≤
K∈Th
K∈Th
1 √ √ √ √ (III) = 2(γ η, σh ) = 2( γ η, γ σh ) ≤ γ σh 2L2 (Ω) + 2 γ η2L2 (Ω) . 2
5.8 Metodi di stabilizzazione
171
Per il termine (IV), grazie ancora alle disuguaglianze di Cauchy-Schwarz e di Young e in virtù dell’ipotesi (5.71) e della disuguaglianza inversa (5.59), otteniamo (IV)
=
"
(η, −μΔσh )K
K∈Th
≤ ≤ ≤
h " |b| 1 " K Δσh, Δσh δ μ2 + η, η 4 |b| K δ hK K K∈Th K∈Th " |b| " 1 h2K (Δσh , Δσh)K + η, η δμ 8 δ hK K K∈Th K∈Th " |b| δ C0 μ η, η . ∇σh2L2 (Ω) + 8 δ hK K K∈Th
Il termine (V) può infine essere maggiorato ancora grazie alle due disuguaglianze di Cauchy-Schwarz e Young come segue (V)
= ≤
" hK δ Lη, Lσh |b| K K∈Th " hK 1 " hK δ + δ Lσh , Lσh Lη, Lη . 4 |b| |b| K K K∈Th
K∈Th
Grazie a queste maggiorazioni e sfruttando ancora la definizione (5.66) di norma GLS, otteniamo la seguente stima 1 σh 2GLS 4 δC μ " hK 1 √ 0 γ σh 2L2 (Ω) + + + δ Lσh , Lσh ∇σh 2L2(Ω) 4 |b| 8 K K∈Th " |b| " hK √ Lη, Lη + μ ∇η2L2(Ω) + 2 η, η + 2 γ η2L2(Ω) + δ δ hK K |b| K K∈Th K∈Th 0 12 3 (1)
σh 2GLS = ah (η, σh) ≤
1 ≤ σh 2GLS + E(η), 2
E(η)
avendo sfruttato, nell’ultimo passaggio, l’ipotesi che δ ≤ 2C0−1 . Possiamo quindi, per il momento, affermare che σh 2GLS ≤ 2 E(η). Stimiamo ora il termine E(η), maggiorando separatamente ciascuno dei suoi addendi. A tal fine utilizzeremo essenzialmente la proprietà d’approssimazione locale (5.70) e la richiesta fatta in (5.71) sul numero di Péclet locale PeK . Osserviamo inoltre che le costanti C, introdotte nel seguito, non dipendono né da h né da PeK , ma possono
172
5 Equazioni di diffusione-trasporto-reazione
dipendere da altre quantità, come la costante γ1 in (5.60), la costante di reazione σ, la norma ||b||L∞(Ω) , il parametro di stabilizzazione δ. Abbiamo quindi μ ∇η2L2(Ω)
≤
C μ h2r |u|2Hr+1(Ω)
||b||L∞(Ω) h 2r 2 h |u|Hr+1(Ω) ≤ C h2r+1 |u|2Hr+1(Ω) , 2 (5.74) " |b| ||b||L∞(Ω) " 1 2(r+1) 2 2 η, η ≤ C h |u|Hr+1(K) δ hK K δ hK K ≤
C
K∈Th
K∈Th
≤
Ch
2r+1
|u|2Hr+1(Ω) ,
√ 2 γ η2L2(Ω) ≤ 2 γ1 η2L2 (Ω) ≤ C h2(r+1) |u|2Hr+1(Ω) ,
(5.75)
avendo sfruttato, per il controllo del terzo addendo, l’ipotesi (5.60). La maggiorazione del quarto addendo di E(η) risulta un po’ più laboriosa: esplicitando intanto il termine Lη, abbiamo 7 42 " hK " 4 4 hK 4 δ = δ4 Lη, Lη Lη 4 |b| |b| K L2 (K) K∈Th K∈Th 7 7 7 " 4 hK hK hK 4 42 4 Δη + div(bη) + σ η4 = δ4−μ |b| |b| |b| L2 (K) K∈Th 7 7 7 42 42 4 h 4 " 4 hK hK 4 4 4 42 4 4 4 K Δη 4 div(bη)4 η4 . ≤C δ 4μ +4 + 4σ |b| |b| |b| L2 (K) L2 (K) L2 (K) K∈Th (5.76) Ora, con conti analoghi a quelli seguiti per ottenere le stime (5.74) e (5.75), è facile dimostrare che il secondo e il terzo addendo del termine di destra della (5.76) sono maggiorabili con un termine della forma C h2r+1 |u|2Hr+1(Ω) , per un’opportuna scelta della costante C. Per il primo addendo invece si ha 7 42 " 4 " h2 μ hK 4 4 Δη 4 δ 4μ ≤ δ K Δη2L2(K) |b| 2 L2 (K) K∈Th K∈Th " ≤ C δ ||b||L∞(Ω) h3K Δη2L2(K) ≤ C h2r+1 |u|2Hr+1(Ω) , K∈Th
avendo ancora sfruttato le condizioni (5.70) e (5.71). Quest’ultima maggiorazione ci permette di concludere che E(η) ≤ C h2r+1 |u|2Hr+1(Ω) , ovvero che σh GLS ≤ C hr+1/2 |u|Hr+1(Ω) .
(5.77)
5.8 Metodi di stabilizzazione
173
Ritornando alla (5.73), per ottenere la stima desiderata per la norma uh −uGLS , dovremmo ancora stimare ηGLS . Questo porta nuovamente alla stima di tre contributi come in (5.74), (5.75) e (5.76), rispettivamente, ovvero alla stima ηGLS ≤ C hr+1/2 |u|Hr+1(Ω) . Combinando questo risultato con la (5.77), ne segue la stima desiderata (5.72).
5.8.8 Stabilizzazione tramite funzioni a bolla Al fine di ottenere una soluzione numerica stabile in alternativa all’arricchimento della forma bilineare a(·, ·) proposto dal metodo di Galerkin generalizzato e illustrato nelle precedenti sezioni, si può anche utilizzare un sottospazio più ricco dello spazio Vh standard. L’idea poi è quella di scegliere sia la soluzione approssimata che la funzione test nello spazio arricchito, ovvero di rimanere nell’ambito di un metodo classico alla Galerkin. Facendo riferimento al consueto problema di diffusione-trasporto-reazione della forma 5.1, introduciamo lo spazio finito dimensionale Vhb = Vh ⊕ B, dove Vh = Xhr ∩ H01 (Ω) è il solito spazio e B è uno spazio finito dimensionale di funzioni a bolla, ovvero B = {vB ∈ H01 (Ω) : vB |K = cK bK , bK |∂K = 0, e cK ∈ R}. Su ogni elemento K viene quindi aggiunto il termine correttivo bK per il quale sono possibili scelte differenti. Volendo lavorare solamente sulla griglia Th di partenza associata allo spazio Vh , una scelta standard porta a definire bK = λ1 λ2 λ3 dove le λi , per i = 1, . . . , 3, sono le coordinate baricentriche, ovvero polinomi lineari, definiti su K, ciascuno dei quali si annulla su uno dei lati del triangolo e assume il valore 1 in corrispondenza del vertice opposto a tale lato. La funzione bK coincide in questo caso con la cosiddetta bolla cubica che vale 0 sul bordo di K e assume valori positivi al suo interno (si veda la Fig. 5.10 (a sinistra)). La costante c risulta essere così il solo grado di libertà associato al triangolo K (coinciderà, ad esempio, con il massimo valore assunto da bK su K o con il valore da essa assunto nel baricentro). Esse si possono ottenere per trasformazione delle coordinate baricentriche definite sul triangolo . λi = FK (λ .i ) (si veda la Fig. 5.9). di riferimento K, Osservazione 5.4 Allo scopo di introdurre sul dominio Ω una sottogriglia di calcolo (ottenuta come raffinamento opportuno della mesh Th ), si possono adottare definizioni più complesse per la funzione bolla bK . Ad esempio, bK potrebbe essere una funzione lineare a pezzi definita sempre sull’elemento K e che assume ancora valore 0 sul bordo del triangolo (come la funzione di base degli elementi finiti lineari, associata ad un qualche punto interno a K) (si veda la Fig. 5.10 (a destra)) [EG04]. •
174
5 Equazioni di diffusione-trasporto-reazione y
2
1
ˆ1 = x, λ ˆ2 = 1 − (x + y), λ ˆ3 = y λ
ˆ K x 3 Figura 5.9. Coordinate baricentriche sul triangolo di riferimento
Possiamo a questo punto introdurre l’approssimazione di Galerkin sullo spazio Vhb del problema in esame, che assumerà la forma trovare ubh ∈ Vhb :
a(uh + ub , vhb ) = (f, vhb )
∀vhb ∈ Vhb ,
(5.78)
essendo a(·, ·) la forma bilineare associata all’operatore differenziale L. Ci proponiamo di riscrivere la (5.78) come uno schema di Galerkin stabilizzato in Vh , eliminando la funzione ub . Per il momento possiamo solo dire che, in ogni elemento K, ub K = cb,K bK , per una opportuna costante (incognita) cb,K , essendo ub ∈ B. Scomponiamo sia ubh sia vhb come somma di una funzione di Vh e di una di B, ovvero ubh = uh + ub ,
vhb = vh + vb .
Scegliamo dapprima come funzione test vhb in (5.78) quella identificata da vh = 0 e vb ∈ B tale che in K, bK vb = 0 altrove. Abbiamo quindi a(uh + ub , vb ) = aK (uh + cb,K bK , bK ),
Figura 5.10. Un esempio di bolla cubica (a sinistra) e lineare (a destra)
5.8 Metodi di stabilizzazione
175
avendo indicato con aK (·, ·) la restrizione della forma bilineare a(·, ·) all’elemento K. La (5.78) può dunque essere riscritta come aK (uh , bK ) + cb,K aK (bK , bK ) = (f, bK )K .
(5.79)
Sfruttando il fatto che bK si annulla sul bordo di K, possiamo integrare per parti il primo termine della (5.79), ottenendo aK (uh , bK ) = (Luh , bK )K , ovvero ricavare il valore incognito della costante cb,K , cb,K =
(f − Luh , bK )K . aK (bK , bK )
Scegliamo ora come funzione test vhb in (5.78) quella identificata da una arbitraria funzione vh ∈ Vh e da vb = 0, ottenendo così " a(uh , vh ) + cb,K aK (bK , vh ) = (f, vh ). (5.80) K∈Th
Riscriviamo opportunamente il termine aK (bK , vh ). Integrando per parti e sfruttando le definizioni di parte simmetrica e antisimmetrica dell’operatore differenziale L (si veda la Sez. 5.8.5), abbiamo aK (bK , vh ) = μ∇bK · ∇vh dK + b · ∇bK vh dK + σ bK vh dK =
K K − μ bK Δvh dK + μ bK ∇vh · n dγ − bK ∇vh · b dK
+
∂K K K b · n vh bK dγ + σ bK vh dK = (bK , (LS − LSS )vh )K .
K
∂K
K
Abbiamo sfruttato la proprietà che la funzione a bolla bK si annulla sul bordo dell’elemento K ed inoltre che div(b) = 0. In maniera del tutto analoga possiamo riscrivere il denominatore della costante cb,K nel modo seguente aK (bK , bK ) = (LS bK , bK )K . Tornando alla (5.80), abbiamo dunque a(uh , vh ) + aB (uh , f; vh ) = (f, vh ) ∀ vh ∈ Vh , dove aB (uh , f; vh ) =
" (Luh − f, bK )K (LSS vh − LS vh , bK )K . (LS bK , bK )K
K∈Th
Abbiamo pertanto trovato uno schema di Galerkin stabilizzato, che si può porre nella forma fortemente consistente (5.55). Nel caso in cui b sia costante, possiamo identificarlo con una sorta di metodo di Douglas-Wang generalizzato. Scegliendo opportunamente la bolla bK e seguendo una procedura analoga a quella sopra descritta è possibile definire anche dei metodi SUPG e GLS generalizzati (si veda [BFHR97]).
176
5 Equazioni di diffusione-trasporto-reazione
5.9 Alcuni test numerici Mostriamo ora delle soluzioni numeriche ottenute con il metodo degli elementi finiti per il seguente problema di diffusione-trasporto bidimensionale −μΔu + b · ∇u = 1 in Ω = (0, 1) × (0, 1), (5.81) u = 0 su ∂Ω, dove b = (1, 1)T . Osserviamo che la soluzione è caratterizzata da uno strato limite in corrispondenza dei lati x = 1 e y = 1. Sono stati considerati due diversi valori per la viscosità: μ = 10−3 e μ = 10−5 . Confrontiamo le soluzioni ottenute rispettivamente con il metodo standard di Galerkin e con il metodo GLS per entrambi i problemi, facendo due scelte differenti per il passo uniforme di discretizzazione h: 1/20 e 1/80, rispettivamente. Le combinazioni incrociate dei 2 valori di μ ed h danno luogo a 4 valori distinti per il numero di Péclet locale Pe. Come si può osservare percorrendo le Fig. 5.11–5.14 (si faccia attenzione alle diverse scale verticali), per numeri di Péclet crescenti la soluzione fornita dal metodo di Galerkin standard manifesta oscillazioni sempre più marcate che arrivano a dominare completamente la soluzione numerica (si veda la Fig. 5.14). Il metodo GLS è invece in grado di fornire una soluzione numerica accettabile anche per valori estremamente elevati di Pe (pur in presenza di un overshoot in corrispondenza del punto (1, 1)).
5.10 Un esempio di adattività goal-oriented Come anticipato nell’Osservazione 3.9, l’analisi a posteriori della Sez. 3.5.5 per il controllo di un opportuno funzionale dell’errore può essere estesa a problemi differenziali di varia natura previa un’opportuna ridefinizione del residuo locale (3.85) e del salto
Figura 5.11. Approssimazione del problema (5.81) per μ = 10−3 , h = 1/80, con il metodo di Galerkin standard (a sinistra) e GLS (a destra). Il numero di Péclet locale corrispondente è Pe = 8.84
5.10 Un esempio di adattività goal-oriented
177
Figura 5.12. Approssimazione del problema (5.81) per μ = 10−3 , h = 1/20, con il metodo di Galerkin standard (a sinistra) e GLS (a destra). Il numero di Péclet locale corrispondente è Pe = 35.35
Figura 5.13. Approssimazione del problema (5.81) per μ = 10−5 , h = 1/80, con il metodo di Galerkin standard (a sinistra) e GLS (a destra). Il numero di Péclet locale corrispondente è Pe = 883.88
generalizzato (3.81). L’adattazione di griglia risulta infatti particolarmente utile in presenza di problemi di diffusione-trasporto a trasporto dominante, quando un’accurata disposizione dei triangoli della mesh in corrispondenza, ad esempio, degli eventuali strati limite (interni o di bordo) può ridurre sensibilmente il costo computazionale. Consideriamo il problema (5.1) con μ = 10−3 , b = (y, −x)T , σ ed f identicamente nulli, e Ω coincidente con il dominio a forma di L dato da (0, 4)2 \(0, 2)2 (riportato in Fig. 5.15). Supponiamo di assegnare una condizione di Neumann omogenea sui lati {x = 4} e {y = 0}, una condizione di Dirichlet non omogenea (u = 1) su {x = 0} e una condizione di Dirichlet omogenea sulle restanti parti del bordo. La soluzione u di (5.1) risulta così caratterizzata da due strati limite interni di forma circolare. Al fine di validare la sensibilità della griglia adattata rispetto alla scelta fatta per il funzionale J,
178
5 Equazioni di diffusione-trasporto-reazione
Figura 5.14. Approssimazione del problema (5.81) per μ = 10−5 , h = 1/20, con il metodo di Galerkin standard (a sinistra) e GLS (a destra). Il numero di Péclet locale corrispondente è Pe = 3535.5
consideriamo le due seguenti scelte: b · n v ds,
J(v) = J1 (v) =
con
Γ1 = {x = 4} ∪ {y = 0},
Γ1
per il controllo del flusso normale uscente attraverso i lati {x = 4} e {y = 0}, e b · n v ds,
J(v) = J2 (v) =
con
Γ2 = {x = 4},
Γ2
nel caso in cui si sia interessati a controllare ancora il flusso ma attraverso il solo lato {x = 4}. Partendo da una comune griglia iniziale quasi uniforme di 1024 elementi, mostriamo in Fig. 5.15 le griglie (anisotrope) ottenute per la scelta J = J1 (a sinistra) e J = J2 (a destra), rispettivamente alla quarta e alla seconda iterazione del procedimento adattivo. Come si può osservare, mentre entrambi gli strati limite sono responsabili del flusso attraverso Γ1 , con conseguente infittimento della griglia in corrispondenza dei due strati limite, il solo strato limite superiore è “riconosciuto” come portatore di informazioni al flusso lungo Γ2 . Si noti infine la natura fortemente anisotropa delle mesh in figura, ovvero non solo l’infittimento bensì anche la corretta orientazione dei triangoli della griglia in modo da seguire le caratteristiche direzionali (gli strati limite) della soluzione (per ulteriori dettagli si rimanda a [FMP04]).
5.11 Esercizi
179
Figura 5.15. Quarta griglia adattata per il funzionale J1 (a sinistra); seconda griglia adattata per il funzionale J2 (a destra)
5.11 Esercizi 1. Si scomponga nelle sue parti simmetrica e non simmetrica l’operatore di diffusionetrasporto-reazione monodimensionale Lu = −μu + bu + σu. 2. Si scomponga nelle sue parti simmetrica e antisimmetrica l’operatore di diffusionetrasporto scritto in forma non di divergenza Lu = −μΔu + b · ∇u. 3. Si dimostri che gli elementi finiti lineari, quadratici e cubici monodimensionali conducono, sull’intervallo di riferimento [0, 1], alle seguenti matrici condensate, ottenute tramite la tecnica del mass-lumping: . = 1 diag(1 1), r = 1 ML = M 2 . = 1 diag(1 4 1), r = 2 ML = M 6 ⎧ 1 ⎪ ⎨ ML = diag(1 3 3 1), 8 r=3 ⎪ ⎩ M . = 1 diag(128 648 648 128)= diag 8 , 81 , 81 , 8 . 1552 97 194 194 97 4. Si consideri il problema −u (x) + bu (x) = 1, 0 < x < 1, u(0) = α, u(1) = β,
180
5 Equazioni di diffusione-trasporto-reazione
dove > 0 e α, β, b ∈ R sono dati. Si trovi la sua formulazione ad elementi finiti con viscosità artificiale upwind. Si discutano le proprietà di stabilità e di convergenza e le si confrontino con quella della formulazione Galerkin-elementi finiti lineari. 5. Si consideri il problema −u (x) + u (x) = 1, 0 < x < 1, u(0) = 0, u (1) = 1, con > 0 dato. Se ne scriva la formulazione debole e la sua approssimazione di tipo Galerkin con elementi finiti. Si verifichi che lo schema è stabile e si giustifichi tale risultato. 6. Si consideri il problema ⎧ −div(μ∇u) + div(βu) + σu = f in Ω, ⎪ ⎪ ⎪ ⎨ −γ · n + μ∇u · n = 0 su ΓN , ⎪ ⎪ ⎪ ⎩ u=0 su ΓD , dove Ω è un aperto di R2 di frontiera Γ = ΓD ∪ ΓN , ΓD ∩ ΓN = ∅, n è la normale uscente a Γ , μ = μ(x) > μ0 > 0, σ = σ(x) > 0, f = f(x) sono funzioni date, β = β(x), γ = γ(x) sono funzioni vettoriali assegnate. Lo si approssimi con il metodo di Galerkin-elementi finiti lineari. Si dica sotto quali ipotesi sui coefficienti μ, σ e β il metodo risulta inaccurato e si propongano nei vari casi gli opportuni rimedi. 7. Si consideri il problema di diffusione-trasporto monodimensionale −(μu − ψ u) = 1, 0 < x < 1, (5.82) u(0) = u(1) = 0, dove μ è una costante positiva e ψ una funzione assegnata. a) Si studino esistenza ed unicità della soluzione debole del problema (5.82) introducendo opportune ipotesi sulla funzione ψ e se ne proponga un’approssimazione numerica stabile agli elementi finiti. b) Si consideri il cambio di variabile u = ρeψ/μ , essendo ρ una funzione incognita ausiliaria. Si studino esistenza ed unicità della soluzione debole del problema (5.82) nella nuova incognita ρ e se ne fornisca l’approssimazione numerica con il metodo degli elementi finiti. c) Si confrontino i due approcci seguiti in (a) e (b), sia dal punto di vista astratto che da quello numerico. 8. Si consideri il problema di diffusione-trasporto-reazione ⎧ −Δu + div(bu) + u = 0 in Ω ⊂ R2 , ⎪ ⎪ ⎪ ⎪ ⎨ u=ϕ su ΓD , ⎪ ⎪ ⎪ ⎪ ⎩ ∂u = 0 su ΓN , ∂n
5.11 Esercizi
181
dove Ω è un aperto limitato, ∂Ω = ΓD ∪ ΓN , ΓD = ∅. Si provino esistenza ed unicità della soluzione facendo opportune ipotesi di regolarità sui dati b = (b1 (x), b2 (x))T (x ∈ Ω) e ϕ = ϕ(x) (x ∈ ΓD ). Nel caso in cui |b| 1, si approssimi lo stesso problema con il metodo di diffusione artificiale-elementi finiti e con il metodo SUPG-elementi finiti, discutendone vantaggi e svantaggi rispetto al metodo di Galerkin-elementi finiti. 9. Si consideri il problema ⎧ 2 " ⎪ ∂2u ∂2u ∂2u ∂2u ∂u ⎪ ⎪ − +β 2 +γ +δ 2 +η = f in Ω, ⎨ ∂xi ∂xj ∂x1 ∂x1 ∂x2 ∂x2 ∂x1 i,j=1 ⎪ ⎪ ⎪ ⎩ u=0 su ∂Ω, dove β, γ, δ, η sono coefficienti assegnati e f è una funzione assegnata di x = (x1 , x2) ∈ Ω. a) Si trovino le condizioni sui dati che assicurano l’esistenza e l’unicità di una soluzione debole. b) Si indichi un’approssimazione con il metodo di Galerkin-elementi finiti e se ne analizzi la convergenza. c) Sotto quali condizioni sui dati il problema di Galerkin è simmetrico? In questo caso, si indichino metodi opportuni per la risoluzione del problema algebrico associato.
6 Equazioni paraboliche
In questo capitolo consideriamo equazioni della forma ∂u + Lu = f, ∂t
x ∈ Ω, t > 0,
(6.1)
dove Ω è un dominio di Rd , d = 1, 2, 3, f = f(x, t) è una funzione assegnata, L = L(x) è un generico operatore ellittico agente sull’incognita u = u(x, t); sotto queste ipotesi la (6.1) è un’equazione parabolica. In molti casi si è interessati a risolverla solo per un intervallo temporale finito, diciamo per 0 < t < T . In tal caso la regione QT = Ω × (0, T ) è detta cilindro nello spazio Rd × R+ (si veda la Fig. 6.1). Nel caso in cui T = +∞, Q = {(x, t) : x ∈ Ω, t > 0} sarà un cilindro infinito. L’equazione (6.1) va completata assegnando una condizione iniziale u(x, 0) = u0 (x),
x ∈ Ω,
(6.2)
t
x1
x2
T Ω
∂Ω
Figura 6.1. Il cilindro QT = Ω × (0, T ), Ω ⊂ R2 A. Quarteroni: Modellistica numerica per problemi differenziali, 4a edizione c Springer-Verlag Italia, Milano 2008
184
6 Equazioni paraboliche
unitamente a condizioni al contorno, che possono assumere la forma seguente x ∈ ΓD e t > 0,
u(x, t) = ϕ(x, t), ∂u(x, t) = ψ(x, t), ∂n
(6.3)
x ∈ ΓN e t > 0, ◦
◦
dove u0 , ϕ e ψ sono funzioni assegnate e ΓD ∪ ΓN = ∂Ω, Γ D ∩ Γ N = ∅. Con ovvio significato ΓD è detta frontiera di Dirichlet e ΓN frontiera di Neumann. Nel caso monodimensionale, il problema: ∂u ∂2u − ν 2 = f, ∂t ∂x u(x, 0) = u0 (x),
0 < x < d,
t > 0, (6.4)
0 < x < d,
u(0, t) = u(d, t) = 0,
t > 0,
descrive ad esempio l’evoluzione della temperatura u(x, t) nel punto x ed al tempo t di una barra metallica di lunghezza d che occupa l’intervallo [0, d], la cui conducibilità termica è ν e i cui estremi sono tenuti ad una temperatura costante di zero gradi. La funzione u0 descrive la temperatura iniziale, mentre f rappresenta la produzione calorica (per unità di lunghezza) fornita alla barra. Per tale ragione la (6.4) è chiamata equazione del calore. Per un caso particolare, si veda l’Esempio 1.5 del Cap. 1.
6.1 Formulazione debole e sua approssimazione Per risolvere numericamente il problema (6.1)-(6.3) ripartiremo da quanto fatto per la trattazione dei problemi ellittici. Procediamo in modo formale, moltiplicando l’equazione differenziale per ogni t > 0 per una funzione test v = v(x) ed integrando su Ω. Poniamo V = H1ΓD (Ω) e per ogni t > 0 cerchiamo u(t) ∈ V t.c.
∂u(t) v dΩ + a(u(t), v) = F (v) ∂t
∀v ∈ V,
(6.5)
Ω
con u(0) = u0 , dove a(·, ·) e F (·) sono la forma bilineare e il funzionale associati rispettivamente all’operatore ellittico L e al termine noto f, e dove si è supposto per semplicità ϕ = 0 e ψ = 0. La modifica di (6.5) nel caso in cui ϕ = 0 e ψ = 0 è lasciata al lettore. Una condizione sufficiente per l’esistenza e unicità della soluzione per il problema (6.5) è che valgano le seguenti ipotesi: la forma bilineare a(·, ·) è continua e debolmente coerciva, ovvero ∃λ≥0, ∃α > 0 :
a(v, v) + λv2L2 (Ω) ≥ αv2V ∀v ∈ V ,
6.1 Formulazione debole e sua approssimazione
185
ritrovando per λ = 0 la definizione standard di coercività; inoltre, chiediamo u0 ∈ L2 (Ω) e f ∈ L2 (Q). Allora il problema (6.5) ammette un’unica soluzione u ∈ L2 (R+ ; V ) ∩ C 0 (R+ ; L2 (Ω)), e ∂u/∂t ∈ L2 (R+ ; V ), essendo V il duale di V (ricordiamo che V = H−1 (Ω) se V = H10 (Ω)). Per ogni spazio di Hilbert W con norma · W abbiamo definito +∞ v(t)2W < +∞}, L (R ; W ) = {v : R → W : t → v(t) è misurabile e 2
+
+
0
mentre C 0 (R+ ; W ) = {v : R+ → W : t → v(t) è continua e ∀t ≥ 0 v(t)W < +∞}. Valgono inoltre delle stime a priori della soluzione u, che verranno fornite nella prossima sezione. Consideriamo ora l’approssimazione di Galerkin del problema (6.5): per ogni t > 0, trovare uh (t) ∈ Vh t.c. ∂uh (t) vh dΩ + a(uh (t), vh ) = F (vh ) ∀vh ∈ Vh ∂t
(6.6)
Ω
con uh (0) = u0h , dove Vh ⊂ V è un opportuno spazio a dimensione finita e u0h è una conveniente approssimazione di u0 nello spazio Vh . Tale problema è detto semidiscretizzazione di (6.5), in quanto rappresenta una discretizzazione nelle sole variabili spaziali. Per fornire un’interpretazione algebrica di (6.6) introduciamo una base {ϕj } per Vh (come fatto nei capitoli precedenti), e osserviamo che basta che la (6.6) sia verificata per le funzioni della base affinché risulti soddisfatta da tutte le funzioni del sottospazio. Inoltre, poiché per ogni t > 0 anche la soluzione del problema di Galerkin appartiene al sottospazio, avremo uh (x, t) =
Nh "
uj (t)ϕj (x),
j=1
.
dove i coefficienti {uj (t)} rappresentano le incognite del problema (6.6). Indicando con u j (t) la derivata della funzione uj (t) rispetto al tempo, la (6.6) diviene ⎛ ⎞ " Nh Nh " u j(t)ϕj ϕi dΩ + a ⎝ uj (t)ϕj , ϕi ⎠ = F (ϕi ), i = 1, 2, . . . , Nh ,
.
Ω j=1
ossia Nh "
j=1
.u (t) ϕ ϕ dΩ +"u (t) a(ϕ , ϕ ) = F (ϕ ), Nh
j
j=1
j
Ω
0
i
12 mij
j
3
j=1
0
j
12
aij
i
3
i
0 12 3 fi (t)
i = 1, 2, . . . , Nh .
(6.7)
186
6 Equazioni paraboliche
Definendo il vettore delle incognite u = (u1 (t), u2 (t), . . . , uNh (t))T , la matrice di massa M = [mij ], la matrice di rigidezza A = [aij ] ed il vettore dei termini noti f = (f1 (t), f2 (t), . . . , fNh (t))T , il sistema (6.7) può essere riscritto in forma matriciale
.
Mu(t) + Au(t) = f (t). Per risolverlo si può usare, ad esempio, il θ-metodo, che discretizza la derivata temporale con un semplice rapporto incrementale e sostituisce gli altri termini con una combinazione lineare, dipendente dal parametro reale θ (0 ≤ θ ≤ 1), del valore al tempo tk e di quello al tempo tk+1 M
uk+1 − uk + A[θuk+1 + (1 − θ)uk ] = θf k+1 + (1 − θ)f k . Δt
(6.8)
Come d’abitudine, il parametro reale positivo Δt = tk+1 − tk , k = 0, 1, ..., indica il passo di discretizzazione temporale (qui supposto costante), mentre il sopraindice k sta a significare che la quantità in questione è riferita al tempo tk . Vediamo alcuni casi particolari della (6.8): - per θ = 0 si ottiene il metodo di Eulero in avanti (o Eulero esplicito): M
uk+1 − uk + Auk = f k Δt
che è accurato al primo ordine rispetto a Δt; - per θ = 1 si ha il metodo di Eulero all’indietro (o Eulero implicito) M
uk+1 − uk + Auk+1 = f k+1 Δt
che è anch’esso del prim’ordine rispetto a Δt; - per θ = 1/2 si ha il metodo di Crank-Nicolson (o dei trapezi) M
, 1 + k+1 , uk+1 − uk 1 + f + fk + A uk+1 + uk = Δt 2 2
che è accurato al second’ordine rispetto a Δt. (Più precisamente, θ = 1/2 è l’unico valore per cui si ottiene un metodo del second’ordine). Consideriamo i due casi estremi θ = 0 e θ = 1. Per entrambi si ottiene un sistema M di equazioni lineari: se θ = 0 il sistema da risolvere ha matrice Δt , nel secondo caso M ha matrice Δt +A. Osserviamo che la matrice M è invertibile, essendo definita positiva (si veda l’Esercizio 1). Nel caso θ = 0 se si rende diagonale la matrice M in realtà si disaccoppiano le equazioni del sistema. Questa operazione viene fatta eseguendo il cosiddetto lumping della matrice di massa (si veda la Sez. 5.5). Per contro lo schema esplicito non è incondizionatamente stabile (si veda la Sez. 6.4) e, nel caso in cui Vh sia un sottospazio di elementi finiti, si ha una condizione di stabilità del tipo ∃c > 0 : Δt ≤ ch2
∀h > 0,
6.2 Stime a priori
187
1 0.8 0.6 0.4
1
0.2 0
0.5
−0.2 −0.4 −0.6
1
0
−0.8 −1 −1.5
0.5
0.5 −1
−0.5
0
0.5
1
1.5
0
0
−0.5 −0.5
−1
Figura 6.2. Soluzione dell’equazione del calore per il problema dell’Esempio 6.1
la quale non permette una scelta arbitraria di Δt rispetto ad h. Nel caso θ > 0, il sistema avrà la forma Kuk+1 = g, dove g è il termine noto M e K = Δt + θA. Tale matrice è però invariante nel tempo (essendo l’operatore L, e quindi la matrice A, indipendente dal tempo); se la reticolazione spaziale non cambia, può essere quindi fattorizzata una volta per tutte all’inizio del processo. Dato che M è simmetrica, se A è simmetrica anche la matrice K associata al sistema sarà simmetrica. Può essere quindi usata, ad esempio, la fattorizzazione di Cholesky, K=H HT con H triangolare inferiore. Ad ogni passo temporale andranno quindi risolti due sistemi triangolari sparsi in Nh incognite: Hy = g, HT uk+1 = y, che richiedono circa Nh2 operazioni (si veda l’Appendice B ed anche [QSS08, Cap. 3]). Esempio 6.1 Supponiamo di risolvere l’equazione del calore ∂u ∂t − 0.1Δu = 0 sul dominio Ω ⊂ R2 di Fig. 6.2, a sinistra (che è l’unione di due cerchi di raggio 0.5 e centro (−0.5, 0) e (0.5, 0), rispettivamente). Assegnamo condizioni di Dirichlet su tutto il contorno prendendo u(x, t) = 1 per i punti in ∂Ω per cui x1 ≥ 0 e u(x, t) = 0 se x1 < 0. La condizione iniziale è u(x, 0) = 1 per x1 ≥ 0 e nulla altrove. In Fig. 6.2 viene riportata la soluzione ottenuta al tempo t = 1. Sono stati usati elementi finiti lineari in spazio ed il metodo di Eulero implicito in tempo con Δt = 0.01. Come si vede la discontinuità iniziale è stata regolarizzata, compatibilmente con le condizioni al contorno.
6.2 Stime a priori Consideriamo il problema (6.5); dato che le equazioni corrispondenti devono valere per ogni v ∈ V , sarà lecito porre v = u(t) (per t fissato), soluzione del problema
188
6 Equazioni paraboliche
stesso:
∂u(t) u(t) dΩ + a(u(t), u(t)) = F (u(t)) ∂t
∀t > 0.
(6.9)
Ω
Considerando i singoli termini, si ha ∂u(t) 1 ∂ |u(t)|2 dΩ; u(t) dΩ = ∂t 2 ∂t Ω Ω
per la coercività della forma bilineare otteniamo a(u(t), u(t)) ≥ αu(t)2V , mentre grazie alle disuguaglianze di Cauchy-Schwarz e di Young si trova 1 1 f(t)2L2 (Ω) + u(t)2L2 (Ω) . 2 2 Supponiamo per ora f=0. Utilizzando allora le prime due relazioni e il fatto che F (v)=0, si ottiene
F (u(t)) = (f(t), u(t)) ≤ f(t)L2(Ω) u(t)L2(Ω) ≤
∂ ∀t > 0. u(t)2L2(Ω) + 2αu(t)2V ≤ 0 ∂t Dato che quest’ultima equazione vale per ogni t > 0 possiamo integrarla rispetto al tempo sull’intervallo (0, t), ottenendo t u(t)2L2 (Ω)
+ 2α u(s)2V ds ≤ u0 2L2(Ω)
∀t > 0;
0
in particolare si ha u(t)2L2(Ω) < u0 2L2 (Ω)
∀t > 0.
Quest’ultima relazione assicura che l’energia cinetica del sistema si riduce nel tempo. Questo è logico e plausibile per un’equazione parabolica del tipo (6.1) la quale rappresenta un sistema dissipativo, essendo l’operatore L ellittico. Nel caso si abbia un termine di sorgente f quanto detto non sarà più vero. Ci si aspetta tuttavia una disuguaglianza analoga che tenga conto del termine di sorgente. In effetti, dalle tre relazioni sui singoli addendi e dalla (6.9) si ottiene 1 ∂ 1 1 |u(t)|2 dΩ + αu(t)2V ≤ f(t)2L2 (Ω) + u(t)2L2 (Ω) ∀t > 0, 2 ∂t Ω 2 2 da cui, integrando in tempo fra 0 e t si ottiene t u(t)2L2(Ω)
+ 2α u(s)2V ds 0
t
≤ u0 2L2 (Ω) +
f(s)2L2 (Ω) ds + 0
(6.10)
t u(s)2L2 (Ω) ds. 0
6.2 Stime a priori
189
t
Per avere ragione del termine 0 u(s)2L2 (Ω) ds a secondo membro (termine che dipende dalla storia passata del sistema evolutivo) utilizziamo il seguente risultato: Lemma 6.1 (di Gronwall) Sia A ∈ L1 (t0 , T ) una funzione non negativa, g e ϕ delle funzioni continue su [t0 , T ]. Se ϕ è tale che
t
ϕ(t) ≤ g(t) +
A(τ )ϕ(τ )dτ
∀t ∈ [to , T ],
(6.11)
∀t ∈ [to , T ].
(6.12)
t0
allora, se g è non-decrescente, ⎛ ϕ(t) ≤ g(t)exp ⎝
t
⎞ A(τ )dτ ⎠
t0
La funzione
g(t) = u0 2L2(Ω) +
t
0
f(s)2L2 (Ω) ds
è ovviamente non decrescente. Applicando allora il Lemma di Gronwall a (6.10), con A(τ ) = 1 e g(t) definita come sopra, si trova la seguente stima a priori t u(t)2L2(Ω)
+
2α u(s)2V ds ⎡0
≤
et ⎣u0 2L2(Ω) +
t
⎤ f(s)2L2 (Ω) ds⎦
∀t > 0.
0
Questo in particolare assicura che u appartiene allo spazio L2 (R+ ; V ) ∩ C0 (R+ ; L2 (Ω)).
(6.13)
Abbiamo visto che possiamo formulare il problema di Galerkin (6.6) per il problema (6.5) e che esso, sotto opportune ipotesi, ammette soluzione unica. Analogamente a quanto fatto per il problema (6.5) possiamo dimostrare la seguente stima a priori (di stabilità) per la soluzione del problema (6.6) t uh (t)2L2 (Ω)
+
2α uh (s)2V ds ⎡0
≤
et ⎣u0h 2L2 (Ω) +
t 0
⎤ f(s)2L2 (Ω) ds⎦
(6.14) ∀t > 0.
190
6 Equazioni paraboliche
6.3 Analisi di convergenza del problema semi-discreto Consideriamo il problema (6.5) e la sua approssimazione (6.6). Vogliamo dimostrare la convergenza di uh a u in norme opportune. Per l’ipotesi di coercività possiamo scrivere αu − uh 2H1(Ω)
≤ =
a(u − uh , u − uh ) a(u − uh , u − vh ) + a(u − uh , vh − uh ) ∀vh ∈ Vh .
Sottraendo l’equazione (6.6) dall’equazione (6.5) e ponendo wh = vh − uh si ha ∂(u − uh ) , wh + a(u − uh , wh) = 0 ∂t e quindi αu
− uh 2H1 (Ω)
≤ a(u − uh , u − vh ) −
∂(u − uh ) , wh . ∂t
(6.15)
Analizziamo separatamente i due termini a secondo membro: - usando la continuità della forma a(·, ·) e la disuguaglianza di Young si ottiene a(u − uh , u − vh ) ≤ M u − uh H1(Ω) u − vh H1(Ω) ≤
α M2 u − uh 2H1(Ω) + u − vh 2H1 (Ω) ; 2 2α
- scrivendo wh nella forma wh = (vh − u) + (u − uh ) si ottiene ∂(u − uh ) 1 d ∂(u − uh ) , wh = , u − vh − u − uh 2L2 (Ω) . (6.16) − ∂t ∂t 2 dt Sostituendo questi due risultati nella (6.15) otteniamo 1 d α u − uh 2L2(Ω) + u − uh 2H1 (Ω) 2 dt 2 2 M ∂(u − uh ) ≤ u − vh 2H1 (Ω) + ( , u − vh ). 2α ∂t Moltiplicando per 2 ambo i membri ed integrando in tempo tra 0 e t troviamo t (u
+
− uh )(t)2L2(Ω) M α
2
0
t
+ α (u − uh )(s)2H1(Ω) ds ≤ (u − uh )(0)2L2 (Ω) 0
t
u(s) − vh 2H1 (Ω) ds + 2 0
∂ (u − uh )(s), u(s) − vh ∂t
(6.17)
ds.
6.3 Analisi di convergenza del problema semi-discreto
191
Integriamo per parti l’ultimo termine rispetto alla variabile temporale. Utilizzando la disuguaglianza di Young si ottiene t 0
∂ (u − uh )(s), u(s) − vh ∂t
t ∂ ds = − (u − uh )(s), (u(s) − vh ) ds ∂t 0
+((u − uh )(t), (u − vh )(t)) − ((u − uh )(0), (u − vh )(0))
1 ≤ 4
t
t (u −
uh )(s)2L2(Ω)
ds +
0
∂(u(s) − vh ) 2 1 L2 (Ω) ds + (u − uh )(t)2L2(Ω) ∂t 4
0
+(u − vh )(t)2L2 (Ω) + (u − uh )(0)L2 (Ω) (u − vh )(0)L2(Ω) .
Dalla (6.17) otteniamo pertanto t 1 2 (u − uh )(t)L2(Ω) + α (u − uh )(s)2H1(Ω) ds 2 M ≤ α
2
0
t
u(s) −
vh 2H1 (Ω)
t ds + 2
0
∂(u(s) − vh ) 2 L2(Ω) ds ∂t
0
(6.18)
+2(u − vh )(t)2L2(Ω) + (u − uh )(0)2L2(Ω) 1 +2(u − uh )(0)L2 (Ω) (u − vh )(0)L2(Ω) + 2
t (u − uh )(s)2L2(Ω) ds. 0
Supponiamo ora che Vh sia lo spazio degli elementi finiti di grado r, più precisamente Vh = {vh ∈ Xhr : vh |ΓD = 0}, e scegliamo, ad ogni t, vh = Πhr u(t), l’interpolante di u(t) in Vh (si veda la (3.20)). Grazie alla (3.58) abbiamo, nell’ipotesi che u sia sufficientemente regolare, hu − Πhr uH1(Ω) + u − Πhr uL2 (Ω) ≤ C2 hr+1 |u|Hr+1(Ω) . Pertanto i vari addendi del termine di destra della disuguaglianza (6.18) si maggiorano come segue: E1
M2 = α
t
t u(s) −
vh 2H1 (Ω)
0
E2
ds ≤ C1 h
|u(s)|2Hr+1 (Ω) ds,
2r 0
t 4 t 4 4 ∂(u − vh ) 42 ∂u 2 2r (s)4 (s) =2 4 ds ≤ C2 h ds, L2 (Ω) Hr (Ω) ∂t ∂t 0
0
E3
= 2(u − vh )(t)2L2(Ω) ≤ C3 h2r |u|2Hr (Ω) ,
E4
= (u − uh )(0)2L2 (Ω) + 2(u − uh )(0)L2 (Ω) (u − vh )(0)L2(Ω) ≤ C4 h2r |u(0)|2Hr (Ω) .
192
6 Equazioni paraboliche
Di conseguenza E1 + E2 + E3 + E4 ≤ Ch2r N (u), ∂u dove N (u) è una funzione opportuna dipendente da u e da . In questo modo si ∂t ottiene la disuguaglianza t 1 2 (u − uh )(t)L2(Ω) + α (u − uh )(s)2H1(Ω) ds 2 1 ≤ Ch2r N (u) + 2
0
t
(u − uh )(s)2L2(Ω) 0
e, infine, applicando il Lemma di Gronwall, otteniamo la stima a priori dell’errore t ∀t > 0, (u − uh )(t)2L2 (Ω) + 2α u − uh 2H1(Ω) ≤ Ch2r N (u) et . 0
Abbiamo dunque dimostrato che uh converge a u con ordine r rispetto ad h nella norma dello spazio (6.13).
6.4 Analisi di stabilità del θ-metodo Analizziamo ora la stabilità del problema totalmente discretizzato. Applicando il θ-metodo al problema di Galerkin (6.6) si ottiene # $ + , uk+1 − ukh h + (1 − θ)ukh , vh , vh + a θuk+1 h Δt = θF
k+1
(vh ) + (1 − θ)F (vh ) k
(6.19)
∀vh ∈ Vh ,
per ogni k ≥ 0, con u0h = u0 h ; F k indica che il funzionale è valutato al tempo tk . Ci limiteremo al caso in cui F = 0 ed inizieremo a considerare il caso del metodo di Eulero implicito in cui θ = 1, ovvero # $ k + , uk+1 − u h h ∀vh ∈ Vh . , vh + a uk+1 h , vh = 0 Δt Scelto vh = uk+1 h , si ottiene + k+1 k+1, k+1 = (ukh , uk+1 (uk+1 h , uh ) + Δt a uh , uh h ). Sfruttando ora le seguenti disuguaglianze k+1 k+1 2 a(uk+1 h , uh ) ≥ αuh V ,
(ukh , uk+1 h )≤
1 k 2 1 2L2(Ω) , uh L2 (Ω) + uk+1 2 2 h
6.4 Analisi di stabilità del θ-metodo
193
derivanti la prima dalla coercività della forma bilineare a(·, ·) e la seconda dalle disuguaglianze di Cauchy-Schwarz e di Young, otteniamo k+1 2 2 k 2 uk+1 h L2(Ω) + 2αΔtuh V ≤ uh L2(Ω) .
(6.20)
Sommando sull’indice k da 0 a n − 1 deduciamo che unh 2L2 (Ω) + 2αΔt
n−1 "
2 2 uk+1 h V ≤ u0h L2 (Ω) .
k=0
Nel caso in cui f = 0, utilizzando una versione discreta del Lemma di Gronwall [QV94] si può dimostrare in maniera analoga che $ # n n " " n 2 k 2 n 2 k 2 uh L2 (Ω) +2αΔt uh V ≤ C(t ) u0h L2(Ω) + Δtf L2(Ω) . (6.21) k=1
k=1
t Questa relazione è molto simile alla (6.14), pur di sostituire gli integrali 0 · ds con una formula di integrazione numerica composita con passo Δt. k+1 Infine, osservando che uk+1 h V ≥ uh L2 (Ω) , si deduce dalla (6.20) che, per ogni Δt > 0 fissato, lim ukh L2 (Ω) = 0,
k→∞
ovvero il metodo di Eulero all’indietro è assolutamente stabile senza che si debba fare alcuna ipotesi limitativa sul passo Δt. Prima di analizzare il caso generale in cui θ è un parametro arbitrario compreso tra 0 e 1, introduciamo la seguente definizione. Diremo che il numero λ è un autovalore della forma bilineare a(·, ·) : V × V → R e che w ∈ V ne è l’autofunzione associata se risulta a(w, v) = λ(w, v)
∀v ∈ V.
Se la forma bilineare a(·, ·) è simmetrica e coerciva essa ha infiniti autovalori reali positivi i quali formano una successione non limitata; inoltre le sue autofunzioni formano una base dello spazio V . Nel discreto gli autovalori e le autofunzioni di a(·, ·) possono essere approssimate cercando le coppie λh ∈ R e wh ∈ Vh legate dalla relazione a(wh , vh ) = λh (wh , vh )
∀vh ∈ Vh .
(6.22)
Dal punto di vista algebrico il problema (6.22) si formula nel modo seguente Aw = λh Mw, in cui A è la matrice di rigidezza e M la matrice di massa. Trattasi pertanto di un problema generalizzato agli autovalori.
194
6 Equazioni paraboliche
Tali autovalori sono tutti positivi ed in numero pari ad Nh (essendo, al solito, Nh h la dimensione del sottospazio Vh ); il piu grande, λN h , verifica h λN h →∞
per Nh → ∞.
Inoltre le corrispondenti autofunzioni formano una base per il sottospazio Vh e possono essere scelte in modo da essere ortonormali rispetto al prodotto scalare di L2 (Ω). Ciò significa che, indicando con whi l’autofunzione corrispondente all’autovalore λih , si ha (whi , whj ) = δij ∀i, j = 1, . . . , Nh . Pertanto ogni funzione vh ∈ Vh può essere rappresentata nel modo seguente vh (x) =
Nh "
vj whj (x)
j=1
e, grazie all’ortonormalità delle autofunzioni, vh 2L2 (Ω) =
Nh "
vj2 .
(6.23)
j=1
Consideriamo ora θ ∈ [0, 1] arbitrario e limitiamoci al caso in cui la forma bilineare a(·, ·) sia simmetrica (in realtà il risultato finale di stabilità vale in generale, ma la dimostrazione che segue non sarebbe applicabile, in quanto le autofunzioni non formerebbero necessariamente una base). Siano {whi } le autofunzioni (ortonormali) di a(·, ·). Poiché ukh ∈ Vh , possiamo scrivere ukh (x) =
Nh "
ukj whj (x).
j=1
Osserviamo che in questo sviluppo di tipo modale gli ukj non rappresentano più i valori nodali di ukh . Se ora nella (6.19) poniamo F = 0 e prendiamo vh = whi , troviamo " 1 " k+1 [uj − ukj ] whj , whi + [θuk+1 + (1 − θ)ukj ]a(whj , whi ) = 0, j Δt Nh
Nh
j=1
j=1
per ogni i = 1, . . . , Nh . Per ogni coppia i, j = 1, . . . , Nh si ha a(whj , whi ) = λjh (whj , whi ) = λjh δij = λih , e quindi, per ogni i = 1, . . . , Nh , − uki uk+1 i + (1 − θ)uki ]λih = 0. + [θuk+1 i Δt Risolvendo ora rispetto a uk+1 si trova i = uki uk+1 i
1 − (1 − θ)λih Δt . 1 + θλih Δt
6.4 Analisi di stabilità del θ-metodo
195
Ricordando la (6.23) possiamo concludere che affinché il metodo sia assolutamente stabile deve essere soddisfatta la disuguaglianza 1 − (1 − θ)λih Δt 1 + θλi Δt < 1, h ovvero −1 − θλih Δt < 1 − (1 − θ)λih Δt < 1 + θλih Δt. Pertanto, −
2 − θ < θ − 1 < θ. λih Δt
La seconda disuguaglianza è sempre verificata, mentre la prima si può riscrivere come 2θ − 1 > −
2 . λih Δt
Se θ ≥ 1/2, il primo membro è non negativo, mentre il secondo membro è negativo, per cui la disuguaglianza risulta verificata per ogni Δt. Se invece θ < 1/2, la disuguaglianza è soddisfatta e dunque il metodo è stabile solo se Δt
0 che appare nell’ultimo passaggio deriva dalla seguente disuguaglianza inversa: ∃C > 0 : ∇vh L2 (Ω) ≤ Ch−1 vh L2 (Ω) per la cui dimostrazione si rinvia a [QV94, Cap. 3].
∀vh ∈ Vh ,
196
6 Equazioni paraboliche
Pertanto, per h sufficientemente piccolo, λhNh ≤ Ch−2 . In realtà si può mostrare che −2 h , ovvero λN h è effettivamente dell’ordine di h i −2 h λN . h = maxi λh ch
Tenendo conto di questo fatto si ottiene che per θ < 1/2 il metodo è assolutamente stabile solo se Δt ≤ C(θ)h2 , (6.24) dove C(θ) indica una costante positiva dipendente da θ. Quest’ultima relazione implica che, per θ < 1/2, Δt non può essere scelto arbitrariamente ma è limitato dalla scelta di h.
6.5 Analisi di convergenza del θ-metodo Per confronto fra la soluzione del problema totalmente discretizzato (6.19) e quella del problema semidiscreto, utilizzando opportunamente il risultato di stabilità (6.21), nonché l’errore di troncamento della discretizzazione in tempo, si può dimostrare il seguente teorema. Teorema 6.1 Nell’ipotesi che u0 , f e la soluzione esatta siano sufficientemente regolari, vale la seguente stima a priori dell’errore: ∀n ≥ 1, u(tn ) − unh 2L2(Ω) + 2αΔt
n " u(tk ) − ukh 2V ≤ C(u0 , f, u)(Δtp(θ) + h2r ), k=1
dove p(θ) = 2 se θ = 1/2, p(1/2) = 4 e C è una costante che dipende opportunamente dai suoi argomenti. Dimostrazione. Per semplicità, ci limiteremo a considerare il metodo di Eulero all’indietro (corrispondente a θ = 1) 1 k+1 k+1 (u − ukh , vh ) + a(uk+1 , vh ) h , vh ) = (f Δt h
∀vh ∈ Vh .
(6.25)
Rimandiamo il lettore a [QV94], Sez. 11.3.1, per la dimostrazione nel caso generale. Supponiamo inoltre, per semplicità, che a(·, ·) sia simmetrica, e definiamo l’operatore di proiezione ortogonale r r Π1,h : V → Vh : ∀w ∈ V, a(Π1,h w − w, vh ) = 0
∀vh ∈ Vh .
(6.26)
Utilizzando i risultati visti nel Cap. 3, si può facilmente dimostrare che esiste una costante C > 0 t.c., ∀w ∈ V ∩ H r+1 (Ω), r r w − wH1 (Ω) + h−1 Π1,h w − wL2(Ω) ≤ Chr |w|Hr+1(Ω) . Π1,h
(6.27)
6.5 Analisi di convergenza del θ-metodo
197
Osserviamo che r r u(tk )L2 (Ω) + Π1,h u(tk ) − ukh L2(Ω) . (6.28) u(tk ) − ukh L2(Ω) ≤ u(tk ) − Π1,h
Il primo termine può essere stimato ricorrendo alla (6.27). Per analizzare il secondo r termine, posto εkh = ukh − Π1,h u(tk ), otteniamo 1 k+1 k+1 (ε − εkh , vh ) + a(εk+1 , vh ) h , vh ) = (δ Δt h
∀vh ∈ Vh ,
(6.29)
avendo posto, ∀vh ∈ Vh , (δ k+1 , vh ) = (f k+1 , vh ) −
1 (Π r (u(tk+1 ) − u(tk )), vh ) − a(u(tk+1 ), vh ) (6.30) Δt 1,h
r . La ed avendo sfruttato sull’ultimo addendo l’ortogonalità (6.26) dell’operatore Π1,h k successione {εh , k = 0, 1 . . .} soddisfa il problema (6.29) che è del tutto simile a (6.25) (pur di prendere δ k+1 al posto di f k+1 ). Adattando la stima di stabilità (6.21), si ottiene, per ogni n ≥ 1, $ # n n " " εnh 2L2(Ω) + 2αΔt εkh 2V ≤ C(tn ) ε0h 2L2(Ω) + Δtδ k 2L2 (Ω) . (6.31) k=1
k=1
La norma associata all’istante iniziale può essere facilmente stimata; se, ad esempio, u0h = Πhr u0 è l’interpolato ad elementi finiti di u0 , utilizzando opportunamente le stime (3.58) e (6.27) otteniamo ε0h L2(Ω)
=
r u0h − Π1,h u0 L2(Ω)
≤
r Πhr u0 − u0 L2 (Ω) + u0 − Π1,h u0 L2 (Ω) ≤ C hr |u0 |Hr(Ω) . (6.32) Concentriamoci ora sulla stima della norma δ k L2 (Ω) . Osserviamo che, grazie alla (6.5), ∂u(tk+1 ) k+1 k+1 (f , vh ) − a(u(t ), vh ) = , vh . ∂t
Questo ci permette di riscrivere la (6.30) come 1 ∂u(tk+1 ) , vh − (Π r (u(tk+1 ) − u(tk )), vh ) (δ k+1 , vh ) = ∂t Δt 1,h u(tk+1 ) − u(tk ) ∂u(tk+1 ) u(tk+1 ) − u(tk ) r − , vh + , vh . = I − Π1,h ∂t Δt Δt (6.33) Usando la formula di Taylor con resto in forma integrale, otteniamo ∂u(tk+1 ) u(tk+1 ) − u(tk ) 1 − = ∂t Δt Δt
tk+1
(s − tk ) tk
∂2u (s) ds, ∂t2
(6.34)
198
6 Equazioni paraboliche
fatte le opportune richieste di regolarità sulla funzione u rispetto alla variabile temporale. Usando ora il teorema fondamentale del calcolo integrale e sfruttando la r commutatività tra l’operatore di proiezione Π1,h e la derivata temporale, otteniamo
r I − Π1,h
+
, u(tk+1 ) − u(tk ) =
tk+1
r I − Π1,h
∂u ∂t
(s) ds.
(6.35)
tk
Scelto ora vh = δ k+1 in (6.33), grazie alle relazioni (6.34) e (6.35), possiamo dedurre la seguente maggiorazione δ k+1 L2(Ω) 4 4 1 t 4 4 1 t ∂u 2 4 4 4 4 k ∂ u r (s) ds4 I − Π1,h ≤4 (s − t ) 2 (s) ds4 +4 Δt ∂t L2(Ω) Δt ∂t L2 (Ω) k+1
k+1
tk
tk
tk+1
tk+1
tk
tk
4 ∂2u 4 1 4 4 ds + 4 2 (s)4 2 ∂t L (Ω) Δt
≤
4 ∂u 4 4 4 r (s)4 ds. 4 I − Π1,h ∂t L2 (Ω)
(6.36) Ritornando alla stima di stabilità (6.31) e sfruttando la (6.32) e la stima (6.36) con gli indici opportunamente scalati, si ha εnh 2L2 (Ω)
≤
tk 4 2 2 n 4 " 4∂ u 4 n 2r 2 C(t ) h |u0 |Hr (Ω) + Δt ds 4 2 (s)4 2 ∂t L (Ω)
+
tk 4 2 ∂u 4 1 4 4 r (s)4 , ds 4 I − Π1,h Δt2 ∂t L2 (Ω)
k=1
tk−1
tk−1
ovvero, utilizzando la disuguaglianza di Cauchy-Schwarz e la stima (6.27) per l’oper ratore di proiezione Π1,h , εnh 2L2 (Ω)
≤
tk 4 2 n 4 " 4 ∂ u 42 C(tn ) h2r |u0 |2Hr (Ω) + Δt Δt ds 4 2 (s)4 2 L (Ω) ∂t k=1
+
1 Δt2
tk
∂u hr (s) r ∂t H (Ω)
tk−1
2 ds
tk−1
≤
k n t 4 2 4 " 4 ∂ u 42 C(tn ) h2r |u0 |2Hr (Ω) + Δt2 ds 4 2 (s)4 2 ∂t L (Ω)
k=1
+
1 2r h Δt
n " k=1
tk−1
t ∂u 2 (s) Δt ds . r ∂t H (Ω) k
tk−1
6.6 Il caso dell’approssimazione spettrale G-NI
199
Questo permette di maggiorare il secondo termine in (6.28) nel seguente modo 4 ∂2u 4 4 4 n ∗ n εh L2(Ω) ≤ C (t ) hr |u0 |Hr(Ω) + Δt 4 2 4 2 n 2 ∂t L (0,t ;L (Ω)) 4 4 r 4 ∂u 4 . + h 4 4 2 ∂t L (0,tn;Hr (Ω)) Combinando tale risultato con la stima (6.27) per la maggiorazione del primo termine in (6.28), otteniamo, per ogni n ≥ 0, 4 ∂u 4 4 6 n ) hr |u0 |Hr (Ω) + 4 u(tn ) − unh L2(Ω) ≤ C(t 4 4 2 ∂t L (0,tn;Hr (Ω)) 4 ∂2u 4 4 4 . + |u(tn )|Hr (Ω) + Δt 4 2 4 ∂t L2(0,tn ;L2 (Ω))
6.6 Il caso dell’approssimazione spettrale G-NI Consideriamo ora un’approssimazione spaziale basata sul metodo spettrale G-NI discusso nelle Sez. 4.3 e 4.4. Il θ-metodo applicato alla discretizzazione spaziale G-NI del problema di Dirichlet omogeneo (6.4), definito sull’intervallo spaziale −1 < x < 1, si formula come segue: per ogni k ≥ 0, trovare ukN ∈ VN = {vN ∈ QN : vN (−1) = vN (1) = 0} t.c. k+1 uN − ukN , vN + aN (θuk+1 + (1 − θ)ukN , vN ) N Δt N = θ (f k+1 , vN )N + (1 − θ) (f k , vN )N
∀vN ∈ VN ,
essendo u0N = u0,N ∈ VN una conveniente approssimazione di u0 (ad esempio GLL l’interpolante ΠN u0 introdotto in (4.14)). Ricordiamo che (·, ·)N denota il prodotto scalare discreto ottenuto usando la formula di integrazione numerica di GaussLegendre-Lobatto (GLL), mentre aN (·, ·) è l’approssimazione della forma bilineare a(·, ·) ottenuta sostituendo gli integrali esatti con la suddetta formula di integrazione numerica. Si può dimostrare che il θ−metodo è anche in questo caso incondizionatamente assolutamente stabile se θ ≥ 12 , mentre per θ < 12 si ha la assoluta stabilità se Δt ≤ C(θ)N −4 .
(6.37)
In effetti, la dimostrazione si può fare ripetendo le stesse tappe percorse in precedenza nel caso dell’approssimazione agli elementi finiti. In particolare, definiamo j le coppie autovalore-autofunzione (λj , wN ) della forma bilineare aN (·, ·), per ogni j = 1, . . . , N − 1, attraverso la relazione j j j wN ∈ VN : aN (wN , vN ) = λj (wN , vN )
∀vN ∈ VN .
200
6 Equazioni paraboliche
Pertanto λj =
j j aN (wN , wN ) j 2 wN N
.
Usando la continuità della forma bilineare aN (·, ·), troviamo λj ≤
j 2 H1(−1,1) M wN j 2 wN N
.
Ricordiamo ora la seguente disuguaglianza inversa per polinomi algebrici ([CHQZ06]) 2 L2 (−1,1) ≤ CI vN 2L2(−1,1) ∃ CI > 0 : vN
∀vN ∈ QN .
Allora λj ≤
j 2 L2 (−1,1) CI2 M N 4 wN j 2 wN N
.
Ricordando la proprietà di equivalenza (4.52), concludiamo che λj ≤ 3CI2 M N 4
∀j = 1, . . . , N − 1.
Si ha inoltre la seguente stima di convergenza t ∂u n −r 6 |u0|Hr (Ω) + (s) ≤ C(t ) N ds ∂t Hr (Ω) n
u(tn ) − unN L2(Ω)
+ |u(tn )|Hr (Ω)
0
t 4 2 4 4∂ u 4 + Δt 4 2 (s)4 ds . ∂t L2(Ω) n
0
Per la dimostrazione si veda [CHQZ06], Cap. 7.
6.7 Esercizi 1. Si verifichi che la matrice di massa M introdotta nella (6.7) è definita positiva. 2. Si dimostri la condizione di stabilità (6.37) nel caso dell’approssimazione pseudospettrale dell’equazione (6.4) (sostituendo l’intervallo (0, 1) con (−1, 1)). [Soluzione: si proceda in modo analogo a quanto fatto nella Sez. 6.4 per la soluzione ad elementi finiti e si invochino le proprietà riportate nei Lemmi 4.2 e 4.3.]
6.7 Esercizi
201
3. Si consideri il problema: ⎧ ∂u ∂u ∂ ⎪ ⎪ α − βu = 0 in QT = (0, 1) × (0, ∞), − ⎪ ⎪ ∂t ∂x ∂x ⎪ ⎪ ⎪ ⎪ per x ∈ (0, 1), t = 0, ⎨ u = u0 ⎪ u=η ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ α ∂u + γu = 0 ∂x
per x = 0, t > 0, per x = 1, t > 0,
dove α = α(x), u0 = u0 (x) sono funzioni assegnate e β, γ, η ∈ R (con β positivo). a) Si provino esistenza ed unicità della soluzione debole al variare di γ, fornendo opportune limitazioni sui coefficienti ed opportune ipotesi di regolarità sulle funzioni α e u0 . b) Si introduca la semidiscretizzazione spaziale del problema con il metodo di Galerkin-elementi finiti, e se ne faccia l’analisi di stabilità e di convergenza. c) Nel caso in cui γ = 0, si approssimi lo stesso problema con il metodo di Eulero esplicito in tempo e se ne faccia l’analisi di stabilità. 4. Si consideri il problema seguente: trovare u(x, t), 0 ≤ x ≤ 1, t ≥ 0, tale che ⎧ ∂u ∂v ⎪ ⎪ + = 0, 0 < x < 1, t > 0, ⎪ ⎪ ∂t ∂x ⎪ ⎪ ⎪ ⎪ ∂u ⎨ − γ(x)u = 0, 0 < x < 1, t > 0, v + α(x) ∂x ⎪ ⎪ ⎪ ⎪ v(1, t) = β(t), u(0, t) = 0, t > 0, ⎪ ⎪ ⎪ ⎪ ⎩ 0 < x < 1, u(x, 0) = u0 (x), dove α, γ, β, u0 sono funzioni assegnate. a) Se ne faccia una approssimazione basata su elementi finiti di grado due nella x ed il metodo di Eulero implicito nel tempo e se ne provi la stabilità. b) Come si comporterà l’errore in funzione dei parametri h e Δt? c) Si indichi un modo per fornire una approssimazione per v a partire da quella di u e se ne indichi l’errore di approssimazione. 5. Si consideri il seguente problema (di diffusione-trasporto-reazione) ai valori iniziali e al contorno: trovare u : (0, 1) × (0, T ) → R tale che ⎧ ∂u ∂ ∂u ∂ ⎪ ⎪ − α + (βu) + γu = 0, 0 < x < 1, 0 < t < T, ⎪ ⎪ ⎪ ∂t ∂x ∂x ∂x ⎪ ⎪ ⎪ ⎨ u=0 per x = 0, 0 < t < T, ⎪ ∂u ⎪ ⎪ ⎪ α + δu = 0 ⎪ ⎪ ∂x ⎪ ⎪ ⎩ u(x, 0) = u0 (x),
per x = 1, 0 < t < T, 0 < x < 1, t = 0,
202
6 Equazioni paraboliche
ove α = α(x), β = β(x), γ = γ(x), δ = δ(x), u0 = u0 (x), x ∈ [0, 1] sono funzioni assegnate. a) Se ne scriva la formulazione debole. b) Nelle ipotesi in cui a. ∃β0 , α0 , α1 > 0 : ∀x ∈ (0, 1) α1 ≥ α(x) ≥ α0 ; β(x) ≤ β0 ; b.
1 2 β (x)
+ γ(x) ≥ 0
∀x ∈ (0, 1),
si forniscano eventuali ulteriori ipotesi sui dati affinché il problema sia ben posto. Si dia inoltre una stima a priori della soluzione. Si tratti lo stesso problema con u = g per x = 0 e 0 < t < T . c) Si consideri una semidiscretizzazione basata sul metodo degli elementi finiti lineari e se ne provi la stabilità. d) Infine, si fornisca una discretizzazione globale in cui la derivata temporale è approssimata con lo schema di Eulero implicito e se ne provi la stabilità. 6. Considerata l’equazione parabolica del calore ⎧ ∂u ∂ 2 u ⎪ ⎪ − 2 = 0, −1 < x < 1, t > 0, ⎨ ∂t ∂x ⎪ −1 < x < 1, u(x, 0) = u0 (x), ⎪ ⎩ u(−1, t) = u(1, t) = 0, t > 0, la si approssimi con il metodo G-NI in spazio e con il metodo di Eulero implicito in tempo e se ne faccia l’analisi di stabilità. 7. Si consideri il seguente problema ai valori iniziali e al contorno del quart’ordine: trovare u : Ω × (0, T ) → R tale che ⎧ ∂u ⎪ ⎪ − div(μ∇u) + Δ2 u + σu = 0 in Ω × (0, T ), ⎪ ⎪ ∂t ⎪ ⎨ in Ω, u(x, 0) = u0 ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ ∂u = u = 0 su ΣT = ∂Ω × (0, T ), ∂n dove Ω ⊂ R2 è un aperto limitato con bordo ∂Ω regolare, Δ2 = ΔΔ è l’operatore biarmonico, μ(x), σ(x) e u0 (x) sono funzioni note definite in Ω. È noto che |Δu|2dΩ uH2(Ω) ∀ u ∈ H20 (Ω) , Ω
ovvero le due norme sono equivalenti, ove H20 (Ω) = {u ∈ H2 (Ω) : u = ∂u/∂n = 0 su ∂Ω}.
(6.38)
a) Se ne scriva la formulazione debole e si verifichi che la soluzione esiste ed è unica, facendo opportune ipotesi di regolarità sui dati.
6.7 Esercizi
203
b) Si consideri una semidiscretizzazione basata sul metodo degli elementi finiti triangolari e si indichi il minimo grado che tali elementi devono avere per risolvere adeguatamente il problema dato. (Osserviamo che, se Th è una triangolazione di Ω e vh|K è un polinomio per ogni K ∈ Th , allora vh ∈ H2 (Ω) se e solo se vh ∈ C 1 (Ω), ovvero vh e le sue derivate prime sono continue attraverso le interfacce degli elementi di Th .)
7 Differenze finite per equazioni iperboliche
In questo capitolo ci occuperemo di problemi evolutivi di tipo iperbolico. Per la loro derivazione e per un’analisi approfondita si veda, ad esempio, [Sal08], Cap. 4. Noi ci limiteremo a considerarne l’approssimazione numerica con il metodo delle differenze finite, storicamente il primo ad essere utilizzato per questo tipo di equazioni. Per introdurre in modo semplice i concetti di base della teoria, buona parte della nostra presentazione riguarderà problemi dipendenti da una sola variabile spaziale.
7.1 Un problema di trasporto scalare Consideriamo il seguente problema iperbolico scalare ⎧ ⎨ ∂u + a ∂u = 0, x ∈ R, t > 0, ∂t ∂x ⎩ u(x, 0) = u0 (x), x ∈ R,
(7.1)
dove a ∈ R \ {0}. La soluzione di tale problema è un’onda viaggiante con velocità a data da u(x, t) = u0 (x − at), t ≥ 0. Consideriamo le curve x(t) nel piano (x, t), soluzioni delle seguenti equazioni differenziali ordinarie ⎧ ⎨ dx = a, t > 0, dt ⎩ x(0) = x0 , al variare di x0 ∈ R. Tali curve sono dette linee caratteristiche (o spesso semplicemente caratteristiche) e lungo di esse la soluzione rimane costante in quanto du ∂u ∂u dx = + = 0. dt ∂t ∂x dt A. Quarteroni: Modellistica numerica per problemi differenziali, 4a edizione c Springer-Verlag Italia, Milano 2008
206
7 Differenze finite per equazioni iperboliche
Nel caso del problema più generale ⎧ ⎨ ∂u + a ∂u + a u = f, x ∈ R, t > 0, 0 ∂t ∂x ⎩ x ∈ R, u(x, 0) = u0 (x),
(7.2)
dove a, a0 , f sono funzioni assegnate delle variabili (x, t), le linee caratteristiche x(t) sono le soluzioni del problema di Cauchy ⎧ ⎨ dx = a(x, t), t > 0, dt ⎩ x(0) = x0 . In tal caso, le soluzioni di (7.2) soddisfano la seguente relazione d u(x(t), t) = f(x(t), t) − a0 (x(t), t)u(x(t), t). dt È quindi possibile ricavare la soluzione u risolvendo un’equazione differenziale ordinaria su ogni curva caratteristica (questo approccio porta al cosiddetto metodo delle caratteristiche). t Q
P
t P0 0
1
x
Figura 7.1. Esempi di linee caratteristiche (delle rette in questo caso) uscenti dai punti P e Q.
Consideriamo ora il problema (7.1) in un intervallo limitato. Ad esempio supponiamo x ∈ [0, 1] e a > 0. Poiché u è costante sulle caratteristiche, dalla Fig. 7.1 si deduce che il valore della soluzione nel punto P coincide con il valore di u0 nel piede P0 della caratteristica uscente da P. La caratteristica uscente dal punto Q, invece, interseca la retta x = 0 per t > 0. Il punto x = 0 è, quindi, di inflow ed in esso è necessario assegnare il valore di u. Si noti che se fosse a < 0, il punto di inflow sarebbe x = 1. Facendo riferimento al problema (7.1) è opportuno osservare che se u0 fosse una funzione discontinua nel punto x0 , allora tale discontinuità si propagherebbe lungo la caratteristica uscente da x0 (questo processo può essere formalizzato rigorosamente dal punto di vista matematico, introducendo il concetto di soluzione debole per i problemi iperbolici).
7.1 Un problema di trasporto scalare
207
Per regolarizzare le discontinuità si potrebbe approssimare il dato iniziale u0 con una successione di funzioni regolari uε0 (x), ε > 0. Questo procedimento è efficace, però, solo se il problema iperbolico è lineare. Le soluzioni di problemi iperbolici non lineari, possono infatti sviluppare discontinuità anche per dati iniziali regolari (come si vedrà nel Cap. 9). In questo caso, la strategia (cui si ispirano anche i metodi numerici) è quella di regolarizzare l’equazione differenziale stessa piuttosto che il dato iniziale. In tale prospettiva, si può considerare la seguente equazione parabolica di diffusione e trasporto ∂uε ∂uε ∂ 2 uε +a = ε 2 , x ∈ R, t > 0, ∂t ∂x ∂x per piccoli valori di ε > 0. Essa è la regolarizzata parabolica dell’equazione (7.1). Se si pone uε (x, 0) = u0 (x), si può dimostrare che lim uε (x, t) = u0 (x − at), t > 0, x ∈ R.
ε→0+
7.1.1 Una stima a priori Ritorniamo ora a considerare il problema di trasporto-reazione (7.2) su un intervallo limitato ⎧ ∂u ∂u ⎪ +a + a0 u = f, x ∈ (α, β), t > 0, ⎪ ⎪ ⎨ ∂t ∂x (7.3) x ∈ [α, β], u(x, 0) = u0 (x), ⎪ ⎪ ⎪ ⎩ u(α, t) = ϕ(t), t > 0, dove a(x), f(x, t) e ϕ(t) sono funzioni assegnate; si è fatta l’ipotesi che a(x) > 0, così che x = α è il punto di inflow (ove imporre la condizione al contorno), mentre x = β è quello di outflow. Moltiplicando la prima equazione di (7.3) per u, integrando rispetto a x e usando la formula di integrazione per parti, per ogni t > 0 si ottiene 1 d 2 dt
β
β 2
u dx + α
1 1 1 (a0 − ax )u2 dx + (au2 )(β) − (au2 )(α) = 2 2 2
α
β fu dx. α
Supponendo che esista μ0 ≥ 0 t.c. a0 − 12 ax ≥ μ0
∀x ∈ [α, β],
si trova 1 d 1 u(t)2L2(α,β) + μ0 u(t)2L2 (α,β) + (au2 )(β) ≤ 2 dt 2
β α
1 fu dx + a(α)ϕ2 (t). 2
208
7 Differenze finite per equazioni iperboliche
Se f e ϕ sono identicamente nulle, allora u(t)L2(α,β) ≤ u0 L2 (α,β)
∀t > 0.
Nel caso del problema più generale (7.2), se supponiamo μ0 > 0, grazie alle disuguaglianze di Cauchy-Schwarz e di Young si ha β fu dx ≤ fL2 (α,β) uL2(α,β) ≤ α
μ0 1 f2L2 (α,β) . u2L2(α,β) + 2 2μ0
Integrando rispetto al tempo, si perviene alla seguente stima a priori t u(t)2L2 (α,β)
+
μ0
t u(s)2L2 (α,β) ds + a(β) u2 (β, s) ds
0
0
t t 1 2 2 f2L2 (α,β) ds. u0 L2(α,β) + a(α) ϕ (s) ds + μ0
≤
0
0
Una stima alternativa che non richiede la differenziabilità di a(x) ma usa l’ipotesi che a0 ≤ a(x) ≤ a1 per due opportune costanti positive a0 e a1 può essere ottenuta moltiplicando l’equazione per a−1 , a−1
∂u ∂u + = a−1 f. ∂t ∂x
Moltiplicando ora per u e integrando tra α e β si ottiene, dopo semplici passaggi, 1 d 2 dt
β a
−1
1 (x)u (x, t) dx + u2 (β, t) = 2
β
2
α
1 a−1 (x)f(x, t)u(x, t)dx + ϕ2 (t). 2
α
Se f = 0 si ottiene immediatamente t u(t)2a
t 2
+
u (β, s)ds =
u0 2a
0
Abbiamo definito
ϕ2 (s)ds, t > 0.
+ 0
⎛ β ⎞ 12 va = ⎝ a−1 (x)v2 (x)dx⎠ . α
Grazie alla limitatezza inferiore e superiore di a−1 , quest’ultima è una norma equivalente a quella di L2 (α, β). Se invece f = 0 si può procedere come segue t u(t)2a
t u (β, s) ds ≤ 2
+ 0
u0 2a
t
+
ϕ (s) ds + 0
t f2a
2
0
u(s)2a ds,
ds + 0
7.2 Sistemi di equazioni iperboliche lineari
209
avendo usato la disuguaglianza di Cauchy-Schwarz. Applicando ora il Lemma di Gronwall si ottiene, per ogni t > 0, ⎞ ⎛ t t t u(t)2a + u2 (β, s) ds ≤ et ⎝u0 2a + ϕ2 (s)ds + f2a ds⎠ . (7.4) 0
0
0
7.2 Sistemi di equazioni iperboliche lineari Consideriamo un sistema lineare della forma ∂u ∂u +A = 0, ∂t ∂x u(0, x) = u0 (x), x ∈ R,
x ∈ R, t > 0,
(7.5)
dove u : [0, ∞) × R → Rp , A : R → Rp×p è una matrice assegnata, e u0 : R → Rp è il dato iniziale. Consideriamo dapprima il caso in cui i coefficienti di A siano costanti (ovvero indipendenti sia da x sia da t). Il sistema (7.5) è detto iperbolico se A è diagonalizzabile ed ha autovalori reali. In tal caso esiste T : R → Rp×p non singolare tale che A = TΛT−1 , essendo Λ = diag(λ1 , ..., λp), con λi ∈ R per i = 1, . . . , p, la matrice diagonale degli autovalori di A mentre T = (ω 1 , ω 2, . . . , ω p) è la matrice i cui vettori colonna sono gli autovettori destri di A, cioè Aω k = λk ω k , k = 1, . . . , p. Tramite questa trasformazione di similitudine, è possibile riscrivere il sistema (7.5) nella forma ∂w ∂w +Λ = 0, (7.6) ∂t ∂x dove w = T−1 u sono dette variabili caratteristiche. In questo modo, si ottengono p equazioni indipendenti della forma ∂wk ∂wk + λk = 0, k = 1, . . . , p, ∂t ∂x del tutto analoghe a quella del problema (7.1) (pur di supporre a0 e f nulle). La soluzione wk è dunque costante lungo ogni curva caratteristica, soluzione del problema di Cauchy ⎧ ⎨ dx = λ , t > 0, k dt (7.7) ⎩ x(0) = x0 .
210
7 Differenze finite per equazioni iperboliche
Essendo i λk costanti, le curve caratteristiche sono le rette x(t) = x0 + λk t e le soluzioni sono nella forma wk (x, t) = ψk (x − λk t), dove ψk è una funzione di una sola variabile. Il suo valore è determinato dalle condizioni iniziali e dalle eventuali condizioni al bordo. Nel caso del problema (7.5), si ha che ψk (x) = wk (x, 0), quindi, la soluzione u = Tw sarà della forma u(x, t) =
p "
wk (x − λk t, 0)ω k .
k=1
Come si vede, essa è composta da p onde viaggianti non interagenti. Poiché in un sistema strettamente iperbolico p linee caratteristiche distinte escono da ogni punto (x, t) del piano (x, t), u(x, t) dipenderà solo dal dato iniziale nei punti x − λk t, per k = 1, . . . , p. Per questa ragione, l’insieme dei p punti che formano i piedi delle caratteristiche uscenti dal punto (x, t), cioè D(x, t)={x ∈ R | x = x − λk t , k = 1, ..., p},
(7.8)
viene chiamato dominio di dipendenza della soluzione u nel punto (x, t). Nel caso si consideri un intervallo limitato (α, β) anziché l’intera retta reale, il segno di λk , k = 1, . . . , p, individua il punto di inflow per ognuna delle variabili caratteristiche. La funzione ψk nel caso di un problema posto su un intervallo limitato sarà determinata non solo dalle condizioni iniziali, ma anche dalle condizioni al bordo fornite all’inflow di ciascuna variabile caratteristica. Considerato un punto (x, t) con x ∈ (α, β) e t > 0, se x − λk t ∈ (α, β) allora wk (x, t) è determinato dalla condizione iniziale, in particolare si ha wk (x, t) = wk (x − λk t, 0). Se invece x − λk t ∈ / (α, β) allora il valore di wk (x, t) dipenderà dalla condizione al bordo (si veda la Fig. 7.2): x−α ), λk x−β ). se λk < 0 , wk (x, t) = wk (β, λk se λk > 0 , wk (x, t) = wk (α,
Conseguentemente, il numero di autovalori positivi determina il numero di condizioni al bordo da assegnare in x = α, mentre in x = β andranno assegnate tante condizioni quanti sono gli autovalori negativi. Nel caso in cui i coefficienti della matrice A in (7.5) siano funzioni di x e t, indichiamo rispettivamente con ⎡
⎤ lT1 ⎢ . ⎥ L = ⎣ .. ⎦
e
R = [r1 . . . rp ] ,
lTp le matrici degli autovettori sinistri e destri di A, i cui elementi soddisfano le relazioni Ark = λk rk ,
lTk A = λk lTk ,
7.2 Sistemi di equazioni iperboliche lineari t
t
(x1,t1)
t= (x1 − α)/ λ k
(x1 ,t 1)
(x2,t 2)
t=(x1 − β)/ λ k
(x2,t 2)
x
x 0
211
α x− λ t k 2 2
β
0
α
x− 2 λkt 2 β
Figura 7.2. Il valore di wk in un punto del piano (x, t) dipende o dalla condizione al bordo o dalla condizione iniziale, a seconda del valore di x − λk t. A sinistra e a destra viene rispettivamente riportato il caso di λk positivo o negativo
ovvero AR = RΛ,
LA = ΛL.
Senza perdita di generalità possiamo supporre che LR = I. Supponiamo ora che esista una funzione vettoriale w soddisfacente le relazioni ∂w = R−1 , ∂u
ovvero
∂uk = rk , ∂w
k = 1, . . . , p.
Procedendo come fatto in precedenza, otteniamo R−1
∂u ∂u + ΛR−1 =0 ∂t ∂x
e dunque di nuovo il sistema diagonale (7.6). Introducendo di nuovo le curve caratteristiche (7.7) (ora non saranno più delle rette in quanto gli autovalori λk variano al variare di x e t), w è costante lungo di esse. Le componenti di w si chiameranno pertanto di nuovo variabili caratteristiche. Essendo R−1 = L (grazie alla relazione di normalizzazione) otteniamo ∂wk · rm = lk · rm = δkm , ∂u
k, m = 1, . . . , p.
Le funzioni wk , k = 1, . . . , p sono dette invarianti di Riemann del sistema iperbolico. 7.2.1 L’equazione delle onde Consideriamo la seguente equazione iperbolica del secondo ordine ∂2u ∂2u − γ 2 2 = f, 2 ∂t ∂x
x ∈ (α, β), t > 0.
Siano u(x, 0) = u0 (x) e
∂u (x, 0) = v0 (x), x ∈ (α, β), ∂t
(7.9)
212
7 Differenze finite per equazioni iperboliche
i dati iniziali e supponiamo, inoltre, che u sia identicamente nulla al bordo u(α, t) = 0 e
u(β, t) = 0, t > 0.
(7.10)
In questo caso, u può rappresentare lo spostamento verticale di una corda elastica vibrante di lunghezza pari a β −α, fissata agli estremi, e γ è un coefficiente dipendente dalla massa specifica della corda e dalla sua tensione. La corda è sottoposta ad una densità di forza verticale f. Le funzioni u0 (x) e v0 (x) descrivono, rispettivamente, lo spostamento iniziale e la velocità iniziale della corda. Come già notato nel Cap. 1, se si sostituisce (costante), l’equazione delle onde diventa
∂2u ∂t2
con t2 ,
∂ 2u ∂x2
con x2 e f con k
t2 − γ 2 x2 = k che rappresenta un’iperbole nel piano (x, t). ∂u Indichiamo per semplicità di notazioni con ut la derivata ∂u ∂t , ux la derivata ∂x e usiamo notazioni analoghe per le derivate seconde. Supponiamo ora che f sia nulla. Dall’equazione (7.9) si può dedurre che in questo caso l’energia cinetica del sistema si conserva, cioè (si veda l’Esercizio 1)
ut (t)2L2 (α,β) + γ 2 ux (t)2L2 (α,β) = v0 2L2 (α,β) + γ 2 u0x2L2 (α,β).
(7.11)
Con il cambio di variabili ω1 =ux , ω2 =ut , l’equazione delle onde (7.9) si trasforma nel seguente sistema del prim’ordine ∂ω ∂ω +A = f , x ∈ (α, β), t > 0, ∂t ∂x dove
ω=
ω1 ω2
, A=
0 −γ 2
−1 0
,
f=
(7.12)
0 f
,
le cui condizioni iniziali sono ω1 (x, 0) = u0 (x) e ω2 (x, 0) = v0 (x). Poiché gli autovalori di A sono i due numeri reali distinti ±γ (le velocità di propagazione dell’onda), il sistema (7.12) è iperbolico. Si noti che, anche in questo caso, a dati iniziali regolari corrispondono soluzioni regolari, mentre discontinuità nei dati iniziali si propagheranno lungo le linee dx caratteristiche = ±γ. dt
7.3 Il metodo delle differenze finite Considereremo ora per semplicità il caso del problema (7.1). Per risolverlo numericamente si possono utilizzare discretizzazioni spazio-temporali basate sul metodo delle
7.3 Il metodo delle differenze finite
213
differenze finite. In tal caso il semipiano {t > 0} viene discretizzato scegliendo un passo temporale Δt, un passo di discretizzazione spaziale h e definendo i punti di griglia (xj , tn ) nel seguente modo j ∈ Z,
xj =jh,
tn =nΔt,
n ∈ N.
Sia λ=Δt/h, e definiamo xj+1/2=xj + h/2. Cerchiamo soluzioni discrete unj che approssimano u(xj , tn ) per ogni j e n. I problemi ai valori iniziali iperbolici sono spesso discretizzati in tempo con metodi espliciti. Questo, naturalmente, impone delle restrizioni sui valori di λ, restrizioni che i metodi impliciti di solito non hanno. Consideriamo, ad esempio, il problema (7.1). Un qualsiasi metodo esplicito alle differenze finite può essere scritto nella forma n n un+1 = unj − λ(Hj+1/2 − Hj−1/2 ), j
(7.13)
n = H(unj , unj+1 ) per un’opportuna funzione H(·, ·) detta flusso numeridove Hj+1/2 co. Lo schema numerico (7.13) nasce, essenzialmente, dalla seguente considerazione. Supponiamo che a sia costante e scriviamo l’equazione (7.1) in forma conservativa
∂u ∂(au) + = 0, ∂t ∂x essendo au il flusso associato all’equazione. Integrando in spazio si ottiene
xj+1/2
∂u x dx + [au]xj+1/2 = 0, j−1/2 ∂t
j∈Z
xj−1/2
ovvero ∂ Uj + ∂t
(au)(xj+ 12 ) − (au)(xj− 12 ) h
xj+ 1
= 0, dove
Uj = h−1
2
u(x) dx.
xj− 1
2
La (7.13) può ora interpretarsi come un’approssimazione in cui si discretizzi la derivata temporale con la differenza finita di Eulero in avanti, Uj sia sostituita da uj e Hj+1/2 sia una opportuna approssimazione di (au)(xj+ 12 ).
214
7 Differenze finite per equazioni iperboliche
7.3.1 Discretizzazione dell’equazione scalare Nell’ambito dei metodi espliciti, i metodi numerici si differenziano a seconda di come viene scelto il flusso numerico H. In particolare, citiamo i metodi seguenti: - Eulero in avanti/centrato (EA/C) un+1 = unj − j
λ a(unj+1 − unj−1 ), 2
(7.14)
1 a(uj+1 + uj ). 2
(7.15)
che è della forma (7.13) con Hj+1/2 = - Lax-Friedrichs (LF) = un+1 j
1 n λ (uj+1 + unj−1) − a(unj+1 − unj−1), 2 2
(7.16)
anch’esso della forma (7.13) con Hj+1/2 =
1 [a(uj+1 + uj ) − λ−1 (uj+1 − uj )]. 2
(7.17)
- Lax-Wendroff (LW) un+1 = unj − j
λ λ2 2 n a(unj+1 − unj−1 ) + a (uj+1 − 2unj + unj−1 ), 2 2
(7.18)
che si può riscrivere nella forma (7.13) pur di prendere Hj+1/2 =
1 [a(uj+1 + uj ) − λa2 (uj+1 − uj )]. 2
(7.19)
- Upwind (o Eulero in avanti/ decentrato) (U) = unj − un+1 j
λ λ a(unj+1 − unj−1 ) + |a|(unj+1 − 2unj + unj−1 ), 2 2
(7.20)
corrispondente alla forma (7.13) pur di scegliere Hj+1/2 =
1 [a(uj+1 + uj ) − |a|(uj+1 − uj )]. 2
(7.21)
Il metodo LF rappresenta una modifica del metodo EA/C consistente nel sostituire il valore nodale unj in (7.14) con la media dei valori nodali precedente unj−1 e successivo unj+1 . Il metodo LW si può derivare applicando dapprima lo sviluppo di Taylor rispetto alla variabile temporale un+1 = un + (∂t u)n Δt + (∂tt u)n
Δt2 + O(Δt3 ), 2
7.3 Il metodo delle differenze finite
215
ove (∂t u)n indica la derivata parziale di u al tempo tn . Indi, usando l’equazione (7.1), si sostituisce ∂t u con −a∂x u, e ∂tt u con a2 ∂xx u. Trascurando il resto O(Δt3 ) ed approssimando le derivate spaziali con differenze finite centrate, si perviene alla (7.18). Infine il metodo U si ottiene discretizzando il termine convettivo a∂x u dell’equazione con la differenza finita upwind, come visto nel Cap. 5, Sez. 5.6. Tutti gli schemi precedentemente introdotti sono espliciti. Un esempio di metodo implicito è il seguente: - Eulero all’indietro/centrato (EI/C) un+1 + j
λ n+1 n a(un+1 j+1 − uj−1 ) = uj . 2
(7.22)
Naturalmente, anche gli schemi impliciti si possono scrivere in una forma generale simile alla (7.13) in cui H n sia sostituito da H n+1 . Nel caso specifico, il flusso numerico sarà ancora definito dalla (7.15). Il vantaggio della formulazione (7.13) è che essa può essere estesa facilmente al caso di problemi iperbolici più generali. Esamineremo, in particolare, il caso dei sistemi lineari nel Cap. 7.3.2. L’estensione al caso di equazioni iperboliche non lineari verrà invece considerato nella Sez. 9.2. Infine, indichiamo i seguenti schemi per l’approssimazione dell’equazione delle onde (7.9), sempre nel caso f = 0: - Leap-Frog un+1 − 2unj + un−1 = (γλ)2 (unj+1 − 2unj + unj−1 ). j j
(7.23)
- Newmark un+1 − 2unj + un−1 = j j
, (γλ)2 + n−1 wj + 2wjn + wjn+1 , 4
(7.24)
dove wjn = unj+1 − 2unj + unj−1. 7.3.2 Discretizzazione di sistemi iperbolici lineari Consideriamo il sistema lineare (7.5). Generalizzando la (7.13), uno schema numerico di approssimazione alle differenze finite può essere scritto nella forma un+1 = unj − λ(Hnj+1/2 − Hnj−1/2 ), j dove unj è il vettore approssimante u(xj , tn ) e Hj+1/2 è, ora, un flusso numerico vettoriale. La sua espressione formale si può derivare facilmente, generalizzando il caso scalare e sostituendo, a, a2 , |a| rispettivamente con A, A2 , |A|, nelle (7.15), (7.17), (7.19), (7.21), essendo |A|=T|Λ|T−1,
216
7 Differenze finite per equazioni iperboliche
dove |Λ|=diag(|λ1 |, ..., |λp|) e T è la matrice degli autovettori di A. Ad esempio, trasformando il sistema (7.5) in p equazioni di trasporto indipendenti e approssimando ognuna di esse con uno schema upwind per equazioni scalari, si ottiene il seguente schema numerico upwind per il sistema di partenza un+1 = unj − j
λ λ A(unj+1 − unj−1 ) + |A|(unj+1 − 2unj + unj−1). 2 2
Il flusso numerico di tale schema è Hj+ 1 = 2
1 [A(uj+1 + uj ) − |A|(uj+1 − uj )]. 2
Il metodo di Lax-Wendroff diventa 1 1 = unj − λA(unj+1 − unj−1) + λ2 A2 (unj+1 − 2unj + unj−1 ) un+1 j 2 2 ed il suo flusso numerico è Hj+ 12 =
1 [A(uj+1 − uj ) − λA2 (uj+1 − uj )]. 2
7.3.3 Trattamento del bordo Nel caso si voglia discretizzare l’equazione iperbolica (7.3) su un intervallo limitato, si dovrà ovviamente utilizzare il nodo di inflow x = α per imporre la condizione al bordo, diciamo un+1 = ϕ(tn+1 ), mentre in tutti gli altri nodi xj , 1 ≤ j ≤ m 0 (compreso quello di outflow xm = β) si scriverà lo schema alle differenze finite. Va tuttavia osservato che gli schemi che fanno uso di una discretizzazione centrata della derivata spaziale richiedono un particolare trattamento in xm . In effetti essi richiederebbero l’uso del valore um+1 , che non è disponibile essendo relativo al punto di coordinate β + h che giace al di fuori dell’intervallo di integrazione. Il problema può essere risolto in vari modi. Una possibilità è utilizzare unicamente per l’ultimo nodo una discretizzazione decentrata di tipo upwind, che non richiede la conoscenza del dato in xm+1 , che tuttavia è solo del primo ordine. Alternativamente, il valore un+1 m può essere ottenuto tramite estrapolazione dai valori disponibili nei nodi interni. Per esempio, una estrapolazione lungo le linee caratteristiche applicata ad uno schema per cui λa ≤ 1 fornisce un+1 = unm−1 λa + unm (1 − λa). m Un’ulteriore possibilità consiste nell’applicare anche al nodo di outflow xm lo schema alle differenze finite centrate ed utilizzare, ove compaia unm+1 , una sua approssimazione basata sulla estrapolazione costante (unm+1 = unm ), o lineare (unm+1 = 2unm − unm−1 ). La questione diviene più problematica nel caso dei sistemi iperbolici, ove si deve ricorrere al concetto di equazioni di compatibilità. Per approfondire questi aspetti ed analizzare le possibili instabilità derivanti dal trattamento numerico al bordo, il lettore può riferirsi a [Str89], [QV94, Cap. 14] e [LeV07].
7.4 Analisi dei metodi alle differenze finite
217
7.4 Analisi dei metodi alle differenze finite Analizziamo le proprietà di consistenza, stabilità, convergenza e accuratezza dei metodi alle differenze finite precedentemente introdotti. 7.4.1 Consistenza e convergenza Per un dato schema numerico, l’errore di troncamento locale è l’errore che si genera pretendendo che la soluzione esatta verifichi lo schema numerico stesso. Ad esempio, nel caso dello schema (7.14), indicata con u la soluzione del problema esatto (7.1), possiamo definire l’errore di troncamento nel punto (xj , tn ) come segue τjn =
u(xj , tn+1 ) − u(xj , tn ) u(xj+1 , tn ) − u(xj−1 , tn ) +a . Δt 2h
Se l’errore di troncamento τ (Δt, h)=max|τjn | j,n
tende a zero quando Δt e h tendono a zero, indipendentemente, allora lo schema numerico si dirà consistente. Si dirà inoltre che uno schema numerico è accurato all’ordine p in tempo e all’ordine q in spazio (per opportuni interi p e q), se per una soluzione sufficientemente regolare del problema esatto, si ha τ (Δt, h) = O(Δtp + hq ). Utilizzando gli sviluppi di Taylor in modo opportuno, si può allora vedere che l’errore di troncamento dei metodi precedentemente introdotti si comporta come segue: -
Eulero (in avanti o all’indietro ) /centrato: O(Δt + h2 ); Upwind: O(Δt + h) ; h2 Lax-Friedrichs : O( Δt + Δt + h2 ) ; 2 Lax-Wendroff : O(Δt + h2 + h2 Δt).
Diremo infine che uno schema è convergente (nella norma del massimo) se lim (max|u(xj , tn ) − unj |) = 0.
Δt,h→0
j,n
Naturalmente si possono anche considerare norme più deboli, come quelle · Δ,1 e · Δ,2 che introdurremo in (7.26). 7.4.2 Stabilità Diremo che un metodo numerico per un problema iperbolico lineare è stabile se per ogni tempo T esiste una costante CT > 0 (eventualmente dipendente da T ) tale che
218
7 Differenze finite per equazioni iperboliche
per ogni h>0, esiste δ0 > 0 possibilmente dipendente da h t.c. per ogni 0 < Δt < δ0 si abbia un Δ ≤ CT u0 Δ , (7.25) per ogni n tale che nΔt ≤ T , e per ogni dato iniziale u0 . Si noti che CT non deve dipendere da Δt e h. Spesso (sempre nel caso di metodi espliciti) la stabilità si avrà solo se il passo temporale è sufficientemente piccolo rispetto a quello spaziale, ovvero per δ0 = δ0 (h). La notazione · Δ indica una norma discreta opportuna, ad esempio ⎛ vΔ,p= ⎝h
∞ "
⎞ p1 |vj |p ⎠
per p = 1, 2, vΔ,∞=sup|vj |.
(7.26)
j
j=−∞
Si noti come vΔ,p rappresenti un’approssimazione della norma Lp (R), per p = 1, 2 o +∞. Lo schema implicito di Eulero all’indietro/centrato (7.22) è stabile nella norma · Δ,2 per una qualunque scelta dei parametri Δt e h (si veda l’Esercizio 2). Uno schema è detto fortemente stabile rispetto alla norma · Δ se un Δ ≤ un−1Δ , n ≥ 1,
(7.27)
il che implica che la (7.25) sia verificata con CT = 1). Osservazione 7.1 Molto spesso nel contesto di problemi iperbolici si cercano soluzioni per tempi lunghi (cioè per T 1). In questi casi è normalmente richiesta la forte stabilità dello schema, in quanto essa garantisce che la soluzione numerica sia limitata per ogni valore di T . • Come vedremo, condizione necessaria affinché uno schema numerico esplicito della forma (7.13) sia stabile, è che il passo di discretizzazione temporale e quello spaziale siano legati tra loro dalla seguente relazione |aλ| ≤ 1, ovvero Δt ≤
h |a|
(7.28)
che viene detta condizione CFL (da Courant, Friedrichs e Lewy). Il numero aλ viene comunemente chiamato numero di CFL.; si tratta di una quantità adimensionale (essendo a una velocità). L’interpretazione geometrica della condizione di stabilità CFL è la seguente. In uno schema alle differenze finite, il valore di un+1 dipende, in generale, dai valori j unj+i di un nei tre punti xj+i , i = −1, 0, 1. Procedendo all’indietro si desume che la soluzione un+1 dipenderà solo dai dati iniziali nei punti xj+i , per i = −(n + j 1), ..., (n + 1) (si veda la Fig. 7.3). Indicando con dominio di dipendenza numerico DΔt (xj , tn ) il dominio di indipendenza di unj , che verrà pertanto chiamato dominio di dipendenza numerico di unj ,
7.4 Analisi dei metodi alle differenze finite
(¯ x, ¯t)
¯ t (¯ x, ¯ t)
t¯
r1 r1
t¯ − Δt
219
x ¯ − Δx
r2
r2 x ¯
x¯ + Δx
x ¯ − Δx
x ¯
x ¯ + Δx
Figura 7.3. Interpretazione geometrica della condizione CFL per un sistema con p = 2, dove ri = x ¯ − λi (t − t¯) i = 1, 2. La condizione CFL è soddisfatta nel caso di sinistra, è violata nel caso di destra
esso verificherà, quindi DΔt (xj , tn ) ⊂ {x ∈ R : |x − xj | ≤ nh =
tn }. λ
Conseguentemente, per ogni punto fissato (x, t) si ha DΔt (x, t) ⊂ {x ∈ R : |x − x| ≤
t }. λ
In particolare, prendendo il limite per Δt → 0, e fissando λ, il dominio di dipendenza numerico diventa t }. λ La condizione (7.28) è allora equivalente all’inclusione D0 (x, t) = {x ∈ R : |x − x| ≤
D(x, t) ⊂ D0 (x, t),
(7.29)
dove D(x, t) è il dominio di dipendenza della soluzione esatta definito nella (7.8). Si noti che nel caso scalare, p = 1 e λ1 = a. Osservazione 7.2 La condizione CFL stabilisce, in particolare, che non esistono schemi alle differenze finite espliciti, incondizionatamente stabili e consistenti per problemi ai valori iniziali iperbolici. Infatti, se fosse violata la condizione CFL, esisterebbe almeno un punto x∗ nel dominio di dipendenza non appartenente al dominio di dipendenza numerico. Cambiando il dato iniziale in x∗ muterà allora solo la soluzione esatta e non quella numerica. Questo implica una non-convergenza del metodo e quindi anche la sua instabilità dato che, per un metodo consistente, il Teorema di equivalenza di Lax-Richtmyer afferma che la stabilità è condizione necessaria e sufficiente per la sua convergenza. • Osservazione 7.3 Nel caso in cui a = a(x, t) non sia più costante nella (7.1), la condizione CFL diventa Δt ≤
h , sup |a(x, t)| x∈R, t>0
220
7 Differenze finite per equazioni iperboliche
e se anche il passo di discretizzazione spaziale viene fatto variare si ha hk
Δt ≤ min
sup
k
|a(x, t)|
,
x∈(xk ,xk+1 ), t>0
essendo hk = xk+1 − xk .
•
Facendo riferimento al sistema iperbolico (7.5), la condizione di stabilità CFL, del tutto analoga alla (7.28), sarà Δt h λk ≤ 1, k = 1, . . . , p, o, equivalentemente, Δt ≤ , h maxk |λk | dove {λk , k = 1 . . . , p} sono gli autovalori di A. Anche questa condizione può scriversi nella forma (7.29). Essa esprime la richiesta che ogni retta della forma x = x − λk (t − t), k = 1, . . . , p, deve intersecare la retta orizzontale t = t − Δt in punti x(k) che stanno all’interno del dominio di dipendenza numerico. Teorema 7.1 Se la condizione CFL (7.28) è soddisfatta, gli schemi upwind, di Lax-Friedrichs e Lax-Wendroff sono fortemente stabili nella norma · Δ,1 . Dimostrazione. Per dimostrare la stabilità dello schema upwind (7.20) lo riscriviamo nella forma seguente (avendo supposto a > 0) = unj − λa(unj − unj−1 ). un+1 j Allora un+1 Δ,1 ≤ h
" " |(1 − λa)unj | + h |λaunj−1 |. j
j
Nell’ipotesi (7.28) entrambi i valori λa e 1 − λa sono non negativi. Pertanto " " un+1 Δ,1 ≤ h(1 − λa) |unj | + hλa |unj−1| = un Δ,1 , j
j
ovvero vale la disuguaglianza (7.25) con CT = 1. Lo schema è dunque fortemente stabile rispetto alla norma · Δ = · Δ,1 . Per lo schema di Lax-Friedrichs, sempre nell’ipotesi (7.28), dalla (7.16) discende un+1 = j
1 1 (1 − λa)unj+1 + (1 + λa)unj−1 , 2 2
7.4 Analisi dei metodi alle differenze finite
dunque un+1 Δ,1
≤
221
⎤ ⎡ " " 1 ⎣ (1 − λa)un + (1 + λa)un ⎦ h j+1 j−1 2 j j
1 1 (1 − λa)un Δ,1 + (1 + λa)un Δ,1 = un Δ,1 . 2 2 Per lo schema di Lax-Wendroff la dimostrazione è analoga (si veda ad esempio [QV94, Cap. 14] o [Str89]). ≤
Si può infine dimostrare che, se la condizione CFL è verificata, lo schema upwind soddisfa un Δ,∞ ≤ u0 Δ,∞ ∀n ≥ 0, (7.30) ovvero è fortemente stabile nella norma · Δ,∞. La relazione (7.30) è detta principio di massimo discreto (si veda l’Esercizio 4). Teorema 7.2 Lo schema di Eulero all’indietro EI/C è fortemente stabile nella norma || · ||Δ,2, senza alcuna restrizione su Δt. Quello di Eulero in avanti EA/C, invece, non è mai fortemente stabile. Tuttavia esso è stabile con costante CT = eT /2 pur di assumere che Δt soddisfi la seguente condizione (più restrittiva della condizione CFL) 2 h Δt ≤ . (7.31) a Dimostrazione. Osserviamo che 1 (7.32) (B − A)B = (B 2 − A2 + (B − A)2 ) ∀A, B ∈ R. 2 Infatti 1 (B − A)B = (B − A)2 + (B − A)A = ((B − A)2 + (B − A)(B + A)). 2 Moltiplicando la (7.22) per un+1 si trova j n+1 n+1 (un+1 )2 + (un+1 − unj )2 = (unj )2 − λa(un+1 . j j j+1 − uj−1 )uj
Osservando che
"
n+1 n+1 (un+1 =0 j+1 − uj−1 )uj
(7.33)
j∈Z
(essendo una somma telescopica), si ottiene subito che ||un+1||2Δ,2 ≤ ||un||2Δ,2, che è il risultato cercato per lo schema EI/C. Passiamo ora allo schema EA/C e moltiplichiamo la (7.14) per unj . Osservando che (B − A)A =
1 2 (B − A2 − (B − A)2 ) ∀A, B ∈ R, 2
(7.34)
222
7 Differenze finite per equazioni iperboliche
troviamo (un+1 )2 = (unj )2 + (un+1 − unj )2 − λa(unj+1 − unj−1 )unj . j j D’altro canto sempre dalla (7.14) otteniamo che un+1 − unj = − j e dunque
(un+1 )2 j
=
(unj )2
+
λa 2
λa n (u − unj−1 ) 2 j+1
2 (unj+1 − unj−1 )2 − λa(unj+1 − unj−1 )unj .
Sommando ora su j ed osservando che l’ultimo addendo dà luogo ad una somma telescopica (e pertanto non fornisce alcun contributo) si ottiene, dopo aver moltiplicato per h, 2 " λa un+1 2Δ,2 = un 2Δ,2 + h (unj+1 − unj−1 )2 , 2 j∈Z
da cui si evince che per nessun valore di Δt il metodo è fortemente stabile. Tuttavia, essendo (unj+1 − unj−1)2 ≤ 2 (unj+1 )2 + (unj−1 )2 , troviamo che, sotto l’ipotesi (7.31), un+1 2Δ,2 ≤ (1 + λ2 a2 )un 2Δ,2 ≤ (1 + Δt)un 2Δ,2 . Procedendo ricorsivamente si trova un2Δ,2 ≤ (1 + Δt)n u0 2Δ,2 ≤ eT u0 2Δ,2 , dove si è utilizzata la disuguaglianza (1 + Δt)n ≤ enΔt ≤ eT
∀n t.c. tn ≤ T.
Si conclude che un Δ,2 ≤ eT /2 u0 Δ,2 , che è il risultato di stabilità cercato per lo schema EA/C.
7.4.3 Analisi di von Neumann e coefficienti di amplificazione La stabilità di uno schema nella norma || · ||Δ,2 si può studiare anche con l’analisi di von Neumann. A tal fine, facciamo l’ipotesi che la funzione u0 (x) sia 2π-periodica e dunque si possa scrivere in serie di Fourier come segue u0 (x) =
∞ "
αk eikx,
k=−∞
(7.35)
7.4 Analisi dei metodi alle differenze finite
223
dove αk =
2π u0 (x) e−ikx dx
1 2π
0
è il k-esimo coefficiente di Fourier. Pertanto, u0j = u0 (xj ) =
∞ "
αk eikjh,
j = 0, ±1, ±2, · · ·
k=−∞
Si può verificare che applicando uno qualunque degli schemi alle differenze visti nella Sez. 7.3.1 si perviene alla seguente relazione unj =
∞ "
αk eikjhγkn , j = 0, ±1, ±2, . . . , n ≥ 1.
(7.36)
k=−∞
Il numero γk ∈ C è detto coefficiente d’amplificazione della k-esima frequenza (o armonica), e caratterizza lo schema in esame. Ad esempio, nel caso del metodo di Eulero in avanti centrato (EA/C) si trova ∞ " aΔt ikh u1j = αk eikjh 1 − (e − e−ikh ) 2h k=−∞ ∞ " aΔt ikjh 1− αk e = i sin(kh) . h k=−∞
Pertanto, aΔt i sin(kh) γk = 1 − h
e dunque
|γk | =
1+
2 5 12 aΔt . sin(kh) h
Poiché esistono valori di k per i quali |γk | > 1, per nessun valore di Δt e h lo schema è fortemente stabile. Procedendo in modo analogo per gli altri schemi si trovano i coefficienti riportati nella Tabella 7.1. Vedremo ora come l’analisi di von Neumann può applicarsi per studiare la stabilità di uno schema numerico rispetto alla norma · Δ,2 e per accertarne le caratteristiche di dissipazione e di dispersione. Dimostriamo a tal fine il seguente risultato: Teorema 7.3 Se esiste un numero β ≥ 0, e un intero positivo m tale per cui, 1 per scelte opportune di Δt e h, si abbia |γk | ≤ (1 + βΔt) m per ogni k, allora lo schema è stabile rispetto alla norma · Δ,2 con costante di stabilità CT = eβT /m . In particolare, se si può prendere β = 0 (e quindi |γk | ≤ 1 ∀k) allora lo schema è fortemente stabile rispetto alla stessa norma.
224
7 Differenze finite per equazioni iperboliche
Tabella 7.1. Coefficiente d’amplificazione per i differenti schemi numerici presentati nella Sez. 7.3.1. Si ricorda che λ = Δt/h Schema γk Eulero in avanti/Centrato 1 − iaλ sin(kh) Eulero all’indietro/Centrato (1 + iaλ sin(kh))−1 Upwind 1 − |a|λ(1 − e−ikh ) Lax-Friedrichs cos kh − iaλ sin(kh) Lax-Wendroff 1 − iaλ sin(kh) − a2 λ2 (1 − cos(kh))
Dimostrazione. Supporremo che il problema (7.1) sia posto sull’intervallo [0, 2π]. In tale intervallo, consideriamo N + 1 nodi equidistanziati, xj = jh
j = 0, . . . , N,
con h =
2π , N
(con N un intero positivo pari) in cui soddisfare lo schema numerico (7.13). Supporremo inoltre per semplicità che il dato iniziale u0 sia periodico. Poiché lo schema numerico dipende solo dai valori di u0 nei nodi xj , possiamo sostituire u0 con il polinomio di Fourier di ordine N/2, −1 "
N 2
u ˜0 (x) =
αk eikx
(7.37)
k=− N 2
che lo interpola nei nodi. Si noti che u ˜0 è una funzione periodica di periodicità 2π. Si avrà, grazie alla (7.36), −1 "
N 2
u0j
= u0 (xj ) =
−1 "
N 2
ikjh
αk e
unj
,
k=− N 2
=
αk γkn eikjh.
k=− N 2
Osserviamo che un2Δ,2
=h
−1 "
N 2
N−1 " j=0
αk αm (γk γ m )n ei(k−m)jh.
k,m=− N 2
Essendo h
N−1 "
ei(k−m)jh = 2πδkm ,
−
j=0
N N ≤ k, m ≤ − 1, 2 2
(si veda, per esempio, [QSS08]) si trova −1 "
N 2
un 2Δ,2
= 2π
k=− N 2
|αk |2 |γk |2n .
7.4 Analisi dei metodi alle differenze finite
225
Grazie all’ipotesi abbiamo un 2Δ,2
≤ (1 + βΔt)
2n m
−1 "
N 2
2π
2n
|αk |2 = (1 + βΔt) m u02Δ,2 ∀n ≥ 0.
k=− N 2
Poiché 1 + βΔt ≤ eβΔt , si deduce che un Δ,2 ≤ e
βΔtn m
βT
u0 Δ,2 = e m u0 Δ,2
∀n t.c. nΔt ≤ T.
Ciò prova il Teorema.
Osservazione 7.4 Nel caso si richieda la stabilità forte, la condizione |γk | ≤ 1 indicata nel Teorema 7.3 è anche necessaria. • Nel caso dello schema upwind (7.20), essendo |γk |2 = [1 − |a|λ(1 − cos kh)]2 + a2 λ2 sin2 kh, si ottiene ∀k, |γk | ≤ 1 se Δt ≤
k ∈ Z,
h , |a|
(7.38)
cioè si trova che la condizione CFL garantisce la stabilità forte in norma || · ||Δ,2. Procedendo in modo analogo, si può verificare che anche per lo schema di LaxFriedrichs vale la (7.38). Lo schema di Eulero all’indietro centrato EI/C è invece incondizionatamente fortemente stabile nella norma · Δ,2 , essendo |γk | ≤ 1 per ogni k e per ogni possibile scelta di Δt e h, come già ottenuto per altra via nel Teorema 7.2. Nel caso del metodo di Eulero in avanti centrato EA/C si ha |γk |2 = 1 +
a2 Δt2 a2 Δt2 sin2 (kh) ≤ 1 + , 2 h h2
k ∈ Z.
Se β > 0 è una costante tale che Δt ≤ β
h2 a2
(7.39)
allora |γk | ≤ (1 + βΔt)1/2 . Pertanto applicando il Teorema 7.3 (con m = 2) si deduce che il metodo EA/C è stabile, seppure con una condizione più restrittiva della condizione CFL, come già ottenuto per altra via nel Teorema 7.2. Si può trovare una condizione di stabilità forte per il metodo di Eulero in avanti centrato nel caso si consideri l’equazione di trasporto e reazione ∂u ∂u +a + a0 u = 0, ∂t ∂x
(7.40)
226
7 Differenze finite per equazioni iperboliche 1.2
Δt = 2 Δ t* Δt = 0.98 Δ t*
1
0.8
u0
2
0.6
0.4
0.2
1/3
0
2/3
1
x
0 0
0.5
1
1.5
2
2.5
Figura 7.4. La figura a destra mostra l’andamento di u Δ,2 , dove u è la soluzione dell’equazione (7.40) (con a = a0 = 1) ottenuta con il metodo EA/C, per due valori di Δt, uno inferiore e l’altro superiore al valore critico Δt∗ . A sinistra, il dato iniziale utilizzato n
n
con a0 > 0. In tal caso si ha infatti per ogni k ∈ Z |γk | = 1 − 2a0 Δt + 2
Δt2 a20
+ λ sin (kh) ≤ 1 − 2a0 Δt + 2
2
Δt2 a20
+
aΔt h
2
e quindi lo schema risulta essere fortemente stabile sotto la condizione Δt
0, Uh− (t)(xi ) =
u− h (t)(xi ), ϕh (t)(x0 ),
i = 1, . . . , m − 1,
(8.36)
dove {xi , i = 0, · · · , m} sono i nodi, x0 = α, xm = β, h è la massima distanza fra due nodi consecutivi, vh+ (xi ) denota il limite destro di vh in xi , vh− (xi ) il limite sinistro. Per semplicità di notazione la dipendenza di uh e f da t sarà spesso sottointesa quando ciò non si presterà ad ambiguità. Deriviamo ora una stima di stabilità per la soluzione uh della formulazione (8.35), supponendo, per semplicità, che il termine forzante f sia identicamente nullo. Scelta dunque vh = uh in (8.35), abbiamo (posto Ω = (α, β)) 1 d uh 2L2(Ω) 2 dt
x i+1
a ∂ + , 2 uh + a0 u2h dx 2 ∂x i=0 x i − + + a(xi )(u+ h − Uh )(xi )uh (xi ) = 0. +
m−1 "
Ora, integrando per parti il termine convettivo, abbiamo xi+1 m−1 " 1 d ∂ a 2 2 uh L2(Ω) + uh dx a0 − 2 dt ∂x 2 i=0 m−1 "
+
i=0
xi
a a + − + 2 2 (x )) + ) (u (x )) − a(x ) U (x ) u (x ) = 0. (xi+1 ) (u− (x i+1 i i i i i h h h h 2 2 (8.37)
258
8 Elementi finiti e metodi spettrali per equazioni iperboliche
Isolando il contributo associato al nodo x0 e sfruttando la definizione (8.36), possiamo riscrivere la seconda sommatoria dell’equazione precedente come m−1 " i=0
=
+
a a + − + 2 2 (xi+1 ) (u− (x (x )) + ) (u (x )) − a(x ) U (x ) u (x ) i+1 i i i i i h h h h 2 2
a a + − 2 2 (x0 ) (u+ h (x0 )) − a(x0 ) ϕh (x0 ) uh (x0 ) + (xm ) (uh (xm )) 2 2 m−1 " i=1
a + − + 2 2 − a(x (x )) + (u (x )) ) u (x ) u (x ) (xi ) (u− i i i i i h h h h 2
=
a 2 + (x0 ) (u+ h (x0 )) − a(x0 ) ϕh (x0 ) uh (α) 2
+
m−1 "a 2 a 2 (xm ) (u− (xi ) uh (xi ) , (x )) + m h 2 2 i=1
(8.38) − avendo indicato con uh (xi ) = u+ (x ) − u (x ) il salto della funzione uh in i i h h corrispondenza del nodo xi . Supponiamo ora, in analogia a quanto fatto nel caso multidimensionale (si veda (8.26)), ∃γ ≥ 0 t.c. a0 −
∂ a ≥ γ. ∂x 2
(8.39)
Tornando alla (8.37) ed utilizzando la relazione (8.38) e le disuguaglianze di CauchySchwarz e di Young, abbiamo m−1 "a 2 1 d a 2 uh 2L2 (Ω) + γuh 2L2 (Ω) + (xi ) uh (xi ) + (x0 ) (u+ h (x0 )) + 2 dt 2 2 i=1
a a a + 2 2 (xm ) (u− (x0 ) ϕ2h (x0 ) + (x0 ) (u+ h (xm )) = a(x0 ) ϕh (x0 ) uh (x0 ) ≤ h (x0 )) , 2 2 2 ovvero, integrando anche rispetto al tempo, ∀t > 0, t uh (t)2L2(Ω)
uh (t)2L2 (Ω)
+ 2γ
i=1
0
+
2 a(xm ) (u− h (xm ))
dt +
m−1 "
≤
u0,h2L2(Ω)
t a(xi )
0
2 uh (xi , t) dt
t ϕ2h (x0 , t) dt.
+ a(x0 ) 0
(8.40) Tale stima rappresenta dunque il risultato di stabilità desiderato. Osserviamo che, nel caso in cui venga rimossa la richiesta di avere un termine forzante identicamente nullo, si può replicare l’analisi precedente servendosi opportunamente del lemma di Gronwall per trattare il contributo di f. Ciò condurrebbe ad una
8.4 Elementi finiti discontinui
259
stima analoga alla (8.40), tuttavia stavolta il termine di destra della disuguaglianza diventerebbe t
e
t u0,h2L2 (Ω)
t ϕ2h (x0 , t)
+ a(x0 )
dt +
0
(f(τ ))2 dτ .
(8.41)
0
Nel caso poi in cui la costante γ nella disuguaglianza (8.39) sia strettamente positiva, si potrebbe evitare l’uso del lemma di Gronwall, pervenendo ad una stima come la (8.40) in cui a primo membro 2 γ viene sostituito da γ, mentre il secondo membro assume la forma (8.41) senza tuttavia la presenza dell’esponenziale et . Per quanto riguarda gli aspetti algoritmici, si osservi che, per via della discontinuità delle funzioni test, la (8.35) si può riscrivere in modo equivalente come segue, ∀i = 0, . . . , m − 1, x i+1
∂uh ∂uh − + +a + a0 uh vh dx + a(u+ h − Uh )(xi )vh (xi ) ∂t ∂x
xi
(8.42)
β fvh dx ∀vh ∈ Pr (Ii ),
= α
essendo Ii = [xi , xi+1 ]. In altri termini, l’approssimazione con elementi finiti discontinui dà luogo a relazioni “indipendenti” elemento per elemento; l’unico punto di − collegamento fra un elemento e i suoi vicini è espresso dal termine di salto (u+ h − Uh ) che può anche essere interpretato come l’attribuzione del dato al bordo sulla frontiera di inflow dell’elemento in esame. Abbiamo dunque un insieme di problemi di dimensione ridotta da risolvere in ogni elemento, precisamente r + 1 equazioni per ogni intervallino [xi , xi+1 ]. Scriviamole nella forma compatta ∀t > 0,
Mh u˙ h (t) + Lh uh (t) = fh (t)
uh (0) = u0,h,
(8.43)
essendo Mh la matrice di massa, Lh la matrice associata alla forma bilineare e alla relazione di salto, fh il termine noto: x i+1
(Mh )pq =
x i+1
ϕp ϕq dx, xi
(Lh )pq =
(aϕq,x + a0 ϕq ) ϕp dx + (aϕq ϕp )(xi ), xi
x i+1
fϕp dx + aUh− (xi )ϕp (xi ),
(fh )p =
q, p = 0, . . . , r .
xi
Abbiamo indicato con {ϕq , q = 0, . . . , r} una base per Pr ([xi , xi+1 ]) e con uh (t) i coefficienti di uh (x, t)|[xi ,xi+1 ] nello sviluppo rispetto alla base {ϕq }. Se si prende la
260
8 Elementi finiti e metodi spettrali per equazioni iperboliche ϕ0
xi
ϕ0
xi+1/2
r=0
xi+1
ϕ1
xi
ϕ0
xi+1 xi
r=1
ϕ1
xi+1/2
ϕ2
xi+1
r=2
Figura 8.7. Le basi di Lagrange per r = 0, r = 1 e r = 2
base di Lagrange si avranno, ad esempio, le funzioni indicate in Fig. 8.7 (per il caso r = 0, r = 1 e r = 2) e i valori di {uh (t)} sono i valori assunti da uh (t) nei nodi (xi+1/2 per r = 0, xi e xi+1 per r = 1, xi , xi+1/2 e xi+1 per r = 2). Si osservi che tutte le funzioni precedenti sono identicamente nulle al di fuori dell’intervallo [xi , xi+1 ]. Si noti che nel caso di elementi finiti discontinui è perfettamente lecito usa∂uh re polinomi di grado r = 0, in tal caso il termine di trasporto a fornirà contributo ∂x nullo su ciascun elemento. Può essere interessante, al fine di diagonalizzare la matrice di massa, utilizzare come base per Pr ([xi , xi+1 ]) i polinomi di Legendre ϕq (x) = Lq (2(x − xi )/hi ), essendo hi = xi+1 −xi e {Lq , q = 0, 1, . . .} i polinomi ortogonali di Legendre definiti sull’intervallo [−1, 1], che abbiamo introdotto nella Sez. 4.2.2. In tal modo si ottiene hi infatti (Mh )pq = δpq . Ovviamente in tal caso i valori incogniti {uh (t)} non si 2p + 1 potranno più interpretare come valori nodali di uh (t), ma piuttosto come i coefficienti di Legendre dello sviluppo di uh (t) rispetto alla nuova base. La diagonalizzazione della matrice di massa risulta particolarmente interessante quando si usino schemi di avanzamento in tempo espliciti (quali ad esempio gli schemi di Runge-Kutta del secondo e terzo ordine, che verranno introdotti nel Cap. 9). In tal caso, infatti, su ogni intervallino avremo un problema completamente esplicito da risolvere. A titolo di esempio, nel seguito vengono presentati dei risultati numerici ottenuti per il problema ∂u ∂u + = 0, x ∈ (−5, 5), t > 0, (8.44) ∂t ∂x u(−5, t) = 0, t > 0, con la condizione iniziale seguente sin(πx) per x ∈ (−2, 2), u(x, 0) = 0 altrimenti.
(8.45)
Il problema è stato discretizzato utilizzando elementi finiti lineari in spazio, sia continui che discontinui. Per la discretizzazione temporale è stato utilizzato lo schema di Eulero all’indietro in entrambi i casi. È stato scelto h = 0.25 ed un passo temporale Δt = h; per tale valore di h il numero di fase associato all’onda sinusoidale è φk = π/2. In Fig. 8.8 è riportata la soluzione numerica al tempo t = 1 insieme alla relativa soluzione esatta. Si può notare la forte diffusione numerica dello schema che tuttavia
8.4 Elementi finiti discontinui 1
1
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0
0
−0.2
−0.2
Soluzione calcolata Soluzione esatta
−0.4
−0.4
−0.6
−0.6
−0.8
−0.8
−1 −5
−4
−3
−2
−1
261
0
1
2
3
4
5
−1 −5
Soluzione calcolata Soluzione esatta
−4
−3
−2
−1
0
1
2
3
4
5
Figura 8.8. Soluzione al tempo t = 1 del problema (8.44) con φk = π/2, h = 0.25, ottenuta con elementi finiti lineari continui (a sinistra) e discontinui (a destra) e discretizzazione temporale di Eulero all’indietro
presenta delle piccole oscillazioni nella parte posteriore nel caso di elementi continui. Si può altresì osservare che la soluzione numerica ottenuta con elementi discontinui presenta effettivamente delle discontinuità mentre non ha più l’andamento oscillante nella parte posteriore. Consideriamo ora il seguente problema ⎧ ∂u ∂u ⎪ ⎨ = 0, x ∈ (0, 1), t > 0, + ∂t ∂x u(0, t) = 1, t > 0, ⎪ ⎩ u(x, 0) = 0, x ∈ [0, 1].
(8.46)
che rappresenta il trasporto di una discontinuità entrante nel dominio. Abbiamo considerato elementi finiti lineari continui, con trattamento sia forte sia debole della condizione al contorno, ed elementi finiti lineari discontinui. Anche questa volta è stato utilizzato il metodo di Eulero all’indietro per la discretizzazione temporale. Il passo della griglia è h = 0.025 ed è stato scelto Δt = h. I risultati al tempo t = 0.5 sono rappresentati in Fig. 8.9. Si può notare come il dato di Dirichlet sia ben rappresentato anche dagli schemi con trattamento debole al bordo. A tal proposito, per il caso di elementi finiti continui con trattamento debole al bordo, abbiamo calcolato l’andamento di |uh (0) − u(0)| per t = 0.1 per vari valori di h, essendo Δt costante. Si può notare una riduzione di tipo lineare rispetto ad h.
8.4.2 Il caso multidimensionale Consideriamo ora il caso del problema multidimensionale (8.22). Sia Wh lo spazio dei polinomi di grado 2 su ogni elemento K ∈ Th , discontinui fra un elemento e l’altro, introdotto in (8.34). La semi-discretizzazione del problema (8.22) con elementi finiti
262
8 Elementi finiti e metodi spettrali per equazioni iperboliche 1.4
1.4
1.2
1.2
1
1
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1.4
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.06
0.07
0.08
0.09
0.9
1
0.55
0.5
1.2
0.45
1 0.4
0.35
0.8
0.3
0.6 0.25
0.2
0.4
0.15
0.2 0.1
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0.05 0.01
0.02
0.03
0.04
0.05
0.1
0.11
Figura 8.9. Soluzione del problema (8.46) per t = 0.5 con h = 0.025 ottenuta con elementi finiti lineari continui e trattamento forte (in alto a sinistra) e debole (in alto a destra) della condizione al bordo di Dirichlet, mentre nel caso in basso a sinistra si sono utilizzati elementi discontinui in spazio. Infine, in basso a destra si mostra l’andamento di |uh (0) − u(0)| in funzione di h per t = 0.1, nel caso di trattamento debole della condizione di Dirichlet
discontinui diventa: per ogni t > 0 trovare uh (t) ∈ Wh tale che ⎤ ⎡ " ∂uh (t) ⎣aK (uh (t), vh ) − a · nK [uh (t)]vh+ dγ ⎦ = vh dΩ + ∂t K∈Th Ω ∂K in f(t)vh dΩ ∀vh ∈ Wh , Ω
con uh (0) = u0,h, dove nK indica la normale esterna a ∂K, e ∂K in ={x ∈ ∂K : a(x) · nK (x) < 0}. La forma bilineare aK è definita nel modo seguente , + a · ∇u v + a0 u v dx, aK (u, v) = K
mentre
[uh (x)]=
− u+ h (x) − uh (x),
x∈ / ∂Ω in ,
u+ h (x) − ϕh (x),
x ∈ ∂Ω in ,
(8.47)
8.4 Elementi finiti discontinui
263
con u± h (x)= lim uh (x + sa), s→0±
x ∈ ∂K.
Per ogni t > 0, la stima di stabilità che si ottiene per il problema (8.47) è (grazie all’ipotesi (8.26)) t uh (t)2L2 (Ω)
+
⎛
"
⎝μ0 uh (τ )2L2(Ω) +
⎞ |a · nK | [uh (τ )]2 ⎠ dτ
K∈T
h ∂K in ⎤ t f(τ )2L2 (Ω) + |ϕh |2a,∂Ω in dτ ⎦ , ≤ C ⎣u0,h2L2 (Ω) +
0
⎡
0
essendo ∂Ωin la frontiera di inflow (8.23) e avendo introdotto, per ogni sottoinsieme Γ di ∂Ω di misura non nulla, la seminorma ⎛ |v|a,Γ = ⎝
⎞1/2 |a · n|v2 dγ ⎠
.
Γ
Supponendo per semplicità che f = 0, ϕ = 0, e che u0 ∈ H r+1 (Ω), si può dimostrare la seguente stima a priori dell’errore
max u(t) − uh (t)L2 (Ω)
⎛ T " +⎝
t∈[0,T ]
≤
⎞ 12 |a · nK | [u(t) − uh (t)]2 dt⎠
(8.48)
0 K∈Th ∂K in Chr+1/2 u0 Hr+1 (Ω) .
Per le dimostrazioni rinviamo a [QV94, Cap. 14], a [Joh87] ed alle referenze ivi citate. Altre formulazioni sono possibili, basate su varie forme di stabilizzazione. Consideriamo un problema di trasporto e reazione come (8.22) ma scritto in forma conservativa ∂u + div(au) + a0 u = f, ∂t
x ∈ Ω, t > 0.
Posto ora aK (uh , vh ) = K
+
, − uh (a · ∇vh ) + a0 uh vh dx,
(8.49)
264
8 Elementi finiti e metodi spettrali per equazioni iperboliche
consideriamo la seguente approssimazione: per ogni t > 0, trovare uh (t) ∈ Wh tale che, ∀vh ∈ Wh , " " ∂uh (t) aK (uh (t), vh ) + {a uh (t)}vh dγ vh dΩ + ∂t in K∈T e⊂∂Ω h e Ω " + ce (γ) uh (t) vh dγ = (8.50)
e⊂∂Ω e
f(t)vh dΩ − Ω
"
(a · n) ϕ(t) vh dγ .
e⊂∂Ω in e
Le notazioni sono le seguenti: con e si denota un qualunque lato degli elementi della triangolazione Th condiviso da due triangoli, diciamo K1 e K 2 . Per ogni funzione scalare ψ, regolare a pezzi sulla triangolazione, con ψi = ψK , si sono definiti le i medie e i salti su e come segue: {ψ} =
1 1 (ψ + ψ2 ), 2
ψ = ψ1 n1 + ψ2 n2 ,
(8.51)
essendo ni la normale esterna all’elemento Ki . Se invece σ è una funzione vettoriale, allora 1 {σ} = (σ 1 + σ 2 ), σ = σ 1 · n1 + σ 2 · n2 , 2 su e. Si noti che il salto ψ di una funzione scalare ψ attraverso e è un vettore parallelo alla normale a e, mentre il salto σ di una funzione vettoriale σ è una quantità scalare. Queste definizioni non dipendono dall’ordinamento degli elementi. Se e è un lato appartenente alla frontiera ∂Ω, allora ψ = ψ n,
{σ} = σ.
Le quantità {ψ} e σ non sono invece richieste sui lati di frontiera. Per quanto riguarda ce (γ), si tratta di una funzione non negativa che, tipicamente, verrà scelta come costante su ogni lato. Scegliendo, ad esempio, ce = |a · n|/2 su ogni lato interno, ce = −a · n/2 su ∂Ω in , ce = a · n/2 su ∂Ω out , la formulazione (8.50) si riduce alla formulazione upwind standard
" " ∂uh (t) aK (uh (t), vh ) + {a uh (t)}upvh dγ vh dΩ + ∂t K∈Th e⊂∂Ω in e Ω " = f(t)vh dΩ − (a · n) ϕ(t) vh dγ ∀vh ∈ Wh . Ω
(8.52)
e⊂∂Ω in e
Ora {a uh }up denota il valore upwind di a uh , ovvero coincide con a u1h se a · n1 > 0, con a u2h se a · n1 < 0, ed infine con a{uh } se a · n1 = 0. Infine, se a è costante (o a divergenza nulla), div(auh ) = a · ∇uh e (8.52) coincide con (8.47). La formulazione (8.50) è detta di Galerkin discontinuo con stabilizzazione di salto. Essa è stabile se
8.5 Approssimazione con metodi spettrali
265
ce ≥ θ0 |a · ne | per ogni lato interno e, ed inoltre convergente con ordine ottimale. In effetti, nel caso del problema stazionario si dimostra che u − uh 2L2(Ω) +
" √ ce u − uh 2L2(e) ≤ C h2r+1 u2Hr+1(Ω) . e∈Th
Per la dimostrazione e per altre formulazioni con stabilizzazione di salto, anche per problemi di diffusione e trasporto, rinviamo il lettore a [BMS04].
8.5 Approssimazione con metodi spettrali In questa sezione faremo un breve cenno all’approssimazione di problemi iperbolici con metodi spettrali. Ci limiteremo per semplicità al caso di problemi monodimensionali. Tratteremo dapprima l’approssimazione G-NI in un singolo intervallo, poi l’approssimazione SEM relativa ad una decomposizione in sotto-intervalli in cui si usino polinomi discontinui quando si passi da un intervallo ai suoi vicini. Ciò fornisce una generalizzazione degli elementi finiti discontinui, nel caso in cui si considerino polinomi di grado “elevato” in ogni elemento, e gli integrali su ogni elemento siano approssimati con la formula di integrazione numerica GLL (4.18). 8.5.1 Il metodo G-NI in un singolo intervallo Consideriamo il problema iperbolico di trasporto-reazione del primo ordine (7.3) e supponiamo che (α, β) = (−1, 1). Approssimiamo in spazio con un metodo spettrale di collocazione, con imposizione forte delle condizioni al contorno. Indicati con {x0 = −1, x1 , . . . , xN = 1} i nodi GLL introdotti nella Sez. 4.2.3, il problema semi-discretizzato è: per ogni t > 0, trovare uN (t) ∈ QN (lo spazio dei polinomi (4.1)) tale che ⎧ ∂uN ∂uN ⎪ ⎪ +a + a0 uN (xj , t) = f(xj , t), j = 1, . . . , N, ⎪ ⎪ ∂t ∂x ⎨ (8.53) uN (−1, t) = ϕ(t), ⎪ ⎪ ⎪ ⎪ ⎩ j = 0, . . . , N. uN (xj , 0) = u0 (xj ), Servendosi opportunamente del prodotto scalare discreto GLL definito in (4.25), l’approssimazione G-NI del problema (8.53), diventa: per ogni t > 0, trovare uN (t) ∈ QN tale che ⎧ ∂u (t) , , + + ∂uN (t) N ⎪ ⎪ + a + a0 uN (t), vN N = f(t), vN N , v , v N N ⎪ ⎪ ∂t ∂x N N ⎨ ∀vN ∈ Q− N, u (−1, t) = ϕ(t), ⎪ N ⎪ ⎪ ⎪ ⎩ uN (x, 0) = u0,N , (8.54)
266
8 Elementi finiti e metodi spettrali per equazioni iperboliche
dove u0,N ∈ QN , ed avendo posto Q− N = {vN ∈ QN : vN (−1) = 0}. Dunque, all’inflow, la soluzione uN soddisfa la condizione imposta, per ogni tempo t > 0, mentre le funzioni test si annullano. Le soluzioni dei problemi (8.53) e (8.54) in realtà coincidono se u0,N in (8.54) è GLL scelto come l’interpolato ΠN u0 . Per dimostrarlo, è sufficiente scegliere in (8.54) vN coincidente con il polinomio caratteristico ψj (definito in (4.12), (4.13)) associato al nodo GLL xj , per ogni j = 1, . . . , N . Deriviamo ora una stima di stabilità per la formulazione (8.54) nella norma (4.51) indotta dal prodotto scalare discreto (4.25). Scegliamo, per semplicità, un dato all’inflow omogeneo, ovvero ϕ(t) = 0, per ogni t, ed a e a0 costanti. Scelto, per ogni t > 0, vN = uN (t), abbiamo 1 ∂ a uN (t)2N + 2 ∂t 2
1 −1
+ , ∂u2N (t) dx + a0 uN (t)2N = f(t), uN (t) N . ∂x
Riscrivendo opportunamente il termine convettivo, integrando rispetto al tempo ed utilizzando la disuguaglianza di Young, abbiamo t uN (t)2N
+
a
+
,2 uN (1, τ ) dτ + 2 a0
0
=
t
u0,N 2N + 2
t uN (τ )2N dτ 0
, f(τ ), uN (τ ) N dτ
+
0
t
≤
u0,N 2N
uN (τ )2N
+ a0 0
1 dτ + a0
t f(τ )2N dτ, 0
ovvero t uN (t)2N
+ a 0
≤ u0,N 2N
1 + a0
+
,2 uN (1, τ ) dτ + a0
t uN (τ )2N dτ 0
t
(8.55)
f(τ )2N dτ. 0
Ora, per la norma u0,N 2N vale la maggiorazione u0,N 2N ≤ u0,N 2L∞(−1,1)
N "
αi = 2 u0,N 2L∞ (−1,1),
i=0
e maggiorazione analoga vale per f(τ )2N purché f sia una funzione continua. Dunque, tornando alla (8.55) ed utilizzando per norme a primo membro la disuguaglianza
8.5 Approssimazione con metodi spettrali
267
(4.52), si ha t uN (t)2L2 (−1,1)
+ a
+
,2 uN (1, τ ) dτ + a0
0
t uN (τ )2L2 (−1,1) dτ 0
≤ 2 u0,N 2L∞ (−1,1) +
2 a0
t f(τ )2L2 (−1,1) dτ. 0
La reinterpretazione del metodo G-NI come metodo di collocazione risulta meno immediata nel caso in cui il campo convettivo a non sia costante e si parta da una formulazione conservativa dell’equazione differenziale in (8.53), ovvero il secondo termine sia sostituito da ∂(au)/∂x. In tal caso si può ancora mostrare che l’approssimazione G-NI equivale all’approssimazione + GLL , di collocazione in cui il termine convettivo sia approssimato da ∂ ΠN (auN ) /∂x, ovvero dalla derivata di interpolazione (4.40). Anche nel caso di un’approssimazione G-NI si può ricorrere ad un’imposizione debole delle condizioni al bordo. Tale approccio risulta più flessibile rispetto a quello sopra considerato e più adatto in vista di un’applicazione del metodo spettrale a problemi multidimensionali o a sistemi di equazioni. Come visto nella sezione precedente, punto di partenza per l’imposizione debole delle condizioni al bordo è un’opportuna integrazione per parti del termine di trasporto. Riferendoci al problema monodimensionale (8.53), si ha infatti (se a è costante) 1 −1
1 1 ∂u(t) ∂v a v dx = − a u(t) dx + a u(t) v −1 ∂x ∂x −1 1
=− −1
a u(t)
∂v dx + a u(1, t) v(1) − a ϕ(t) v(−1). ∂x
In virtù di tale uguaglianza, è immediato formulare l’approssimazione G-NI con imposizione debole delle condizioni al bordo per il problema (8.53): per ogni t > 0, trovare uN (t) ∈ QN tale che ∂u (t) + , ∂vN N , vN − a uN (t), + a0 uN (t), vN N ∂t N ∂x N , + + a uN (1, t) vN (1) = f(t), vN N + a ϕ(t) vN (−1) ∀vN ∈ QN ,
(8.56)
con uN (x, 0) = u0,N (x). Osserviamo che sia la soluzione uN che la funzione test vN sono libere al bordo. Una formulazione equivalente alla (8.56) si ottiene contro-integrando opportunamente per parti il termine convettivo:
268
8 Elementi finiti e metodi spettrali per equazioni iperboliche
per ogni t > 0, trovare uN (t) ∈ QN tale che ∂u (t) ∂u (t) + , N N , vN , vN + a + a0 uN (t), vN N ∂t N ∂x N , + , + + a uN (−1, t) − ϕ(t) vN (−1) = f, vN N ∀vN ∈ QN .
(8.57)
È ora possibile reinterpretare tale formulazione debole come un opportuno metodo di collocazione. A tal fine è sufficiente scegliere in (8.57) la funzione test vN coincidente con i polinomi caratteristici (4.12), (4.13) associati ai nodi GLL. Considerando dapprima i nodi interni e di outflow, ovvero scelta vN = ψi , con i = 1, . . . , N , abbiamo ∂u ∂uN N + a + a0 uN (xi , t) = f(xi , t), (8.58) ∂t ∂x avendo già semplificato il peso αi comune a tutti i termini dell’uguaglianza. D’altro canto, scelta vN = ψ0 , otteniamo, in corrispondenza del nodo di inflow, la relazione ∂u
N
∂t
+ +
∂uN + a0 uN (−1, t) ∂x , 1 + a uN (−1, t) − ϕ(t) = f(−1, t), α0
a
(8.59)
essendo α0 = 2/(N 2 + N ) il peso GLL associato al nodo −1. Dalle equazioni (8.58) e (8.59) segue dunque che una riscrittura in termini di collocazione è possibile in corrispondenza di tutti i nodi GLL tranne che per quello di inflow, per il quale invece si trova la relazione + , ∂uN ∂uN a uN (−1, t) − ϕ(t) = α0 f − −a − a0 uN (−1, t), ∂t ∂x
(8.60)
ovvero la condizione al bordo del problema differenziale (8.53) a meno del residuo associato all’approssimazione uN . Tale condizione è dunque soddisfatta esattamente solo al limite, per N −→ ∞, ovvero in modo naturale o debole. In accordo con quanto notato precedentemente, la formulazione (8.57) si complicherebbe inevitabilmente nel caso, ad esempio, di un campo convettivo a non costante. Infatti, non si potrebbe concludere direttamente che ∂u (t) ∂vN N − a uN (t), = a − a uN (1, t) vN (1) + a ϕ(t) vN (−1), , vN ∂x N ∂x N ∂vN non identifica più necessariamente poiché, in questo caso, il prodotto a uN (t) ∂x un polinomio di grado 2N − 1. Si rende dunque necessario passare attraverso l’oGLL peratore d’interpolazione ΠN , introdotto nella Sez. 4.2.3, prima di effettuare la
8.5 Approssimazione con metodi spettrali
269
contro-integrazione per parti. Limitandoci al termine di trasporto si ha dunque − − =
+ , ∂vN ∂vN GLL a uN (t) , = − ΠN = ∂x N ∂x N + , ∂vN GLL a uN (t) , ΠN ∂x + ∂Π GLL+a u (t), , 1 N N , vN − a uN (t) vN −1 . ∂x
a uN (t),
La formulazione debole (8.57) dunque diventa: per ogni t > 0, trovare uN (t) ∈ QN tale che + ∂Π GLL+a u (t), ∂u (t) , N N N + , vN , vN + a0 uN (t), vN N ∂t ∂x N , + , + + a(−1) uN (−1, t) − ϕ(t) vN (−1) = f(t), vN N ∀vN ∈ QN ,
(8.61)
con uN (x, 0) = u0,N (x). Anche la reinterpretazione, in termini di collocazione, della formulazione (8.57), rappresentata dalle relazioni (8.58) e (8.60), andrà deGLL bitamente modificata con l’introduzione dell’operatore d’interpolazione ΠN (ovvero sostituendo la derivata esatta con la derivata di interpolazione). Precisamente otteniamo + , ∂u GLL ∂ΠN a uN N + + a0 uN (xi , t) = f(xi , t), ∂t ∂x per i = 1, . . . , N , e + , GLL , + ∂ΠN a uN ∂uN − − a0 uN (−1, t), a(−1) uN (−1, t) − ϕ(t) = α0 f − ∂t ∂x in corrispondenza del nodo di inflow x = −1. 8.5.2 Il metodo DG-SEM-NI Come anticipato, in questa sezione introdurremo un’approssimazione basata su una partizione in sotto-intervalli, in ognuno dei quali si usi il metodo G-NI. I polinomi saranno inoltre discontinui tra un intervallo e l’altro. Questo spiega l’acronimo DG (discontinuous Galerkin), SEM (spectral element method), NI (numerical integration). Riconsideriamo il problema (8.53) sul generico intervallo (α, β). Su quest’ultimo introduciamo una partizione in M sottointervalli Ωm = (xm−1 , xm ) con m = 1, . . . , M . Sia WN,M = {v ∈ L2 (α, β) : vΩ ∈ QN , ∀m = 1, . . . , M } m
lo spazio dei polinomi definiti a pezzi di grado N (≥ 1) su ogni sotto-intervallo. Osserviamo che la continuità non è necessariamente garantita in corrispondenza dei punti
270
8 Elementi finiti e metodi spettrali per equazioni iperboliche
{xi }. Possiamo così formulare la seguente approssimazione del problema (8.53): per ogni t > 0, trovare uN,M (t) ∈ WN,M tale che M " ∂uN,M
∂t
m=1
, vN,M
N,Ωm
∂u , + N,M + a + a0 uN,M , vN,M N,Ωm , vN,M ∂x N,Ωm
M " , + , + − + f, vN,M N,Ω + a(xm−1 ) u+ N,M − UN,M (xm−1 ) vN,M (xm−1 ) = m=1
m
(8.62) per ogni vN,M ∈ WN,M , essendo − UN,M (xi )
=
u− N,M (xi ),
i = 1, . . . , M − 1,
ϕ(x0 ),
per i = 0,
(8.63)
e dove (·, ·)N,Ωm denota l’approssimazione tramite la formula GLL (4.25) del prodotto scalare L2 ristretto all’elemento Ωm . Per semplificare le notazioni abbiamo sottinteso la dipendenza da t di uN,M e f. Data la natura discontinua della formulazione, possiamo rileggere l’equazione (8.62) su ognuno degli M sotto-intervalli, scegliendo la funzione test vN,M tale che vN,M [α,β]\Ω = 0. Così facendo otteniamo infatti m
∂u
∂u + , N,M , vN,M + a + a0 uN,M , vN,M N,Ω m ∂t N,Ωm ∂x N,Ωm , , + + + − + + a(xm−1 ) uN,M − UN,M (xm−1 ) vN,M (xm−1 ) = f, vN,M N,Ω , N,M
, vN,M
m
− con m = 1, . . . , M , e dove la quantità UN,M (xi ) risulta definita ancora secondo la (8.63). Osserviamo che, per m = 1, il termine + , + a(x0 ) u+ N,M − ϕ (x0 ) vN,M (x0 )
fornisce l’imposizione in forma debole della condizione al bordo di inflow. D’altro canto il termine + , − + a(xm−1 ) u+ N,M − UN,M (xm−1 ) vN,M (xm−1 ), per m = 2, . . . , M , può essere interpretato come un termine di penalizzazione che fornisce un’imposizione debole della continuità della soluzione uN,M in corrispondenza degli estremi xi , i = 1, . . . , M − 1. Tali termini sarebbero ovviamente assenti se si utilizzassero polinomi a tratti continui negli estremi xi . Vogliamo ora interpretare la formulazione (8.62) come un opportuno metodo di collocazione. A tal fine, introduciamo, su ciascun sotto-intervallo Ωm , gli N + 1 nodi GLL (m) (m) xj , con j = 0, . . . , N , e indichiamo con αj i corrispondenti pesi (si veda (4.69)). Identifichiamo ora la funzione test vN,M in (8.62) con il polinomio caratteristico di (m) (m) Lagrange ψj ∈ PN (Ωm ) associato al nodo xj ed esteso a zero fuori dal dominio Ωm . Data la presenza del termine di salto, avremo una riscrittura non univoca per
8.6 Trattamento numerico delle condizioni al bordo per sistemi iperbolici
271
l’equazione (8.62). Incominciamo a considerare i polinomi caratteristici associati ai (m) nodi xj , con j = 1, . . . , N − 1, e m = 1, . . . , M . In tal caso non avremo contributo alcuno del termine di penalizzazione ∂u ∂uN,M N,M (m) (m) + a + a0 uN,M (xj ) = f(xj ). ∂t ∂x Per questa scelta di nodi ritroviamo così esattamente la collocazione del problema (m) differenziale (8.53). Nel caso invece in cui la funzione ψj sia associata ad un nodo della partizione {xi }, ovvero j = 0, con m = 1, . . . , M abbiamo ∂uN,M (m) ∂uN,M (m) α0 +a + a0 uN,M (x0 ) ∂t ∂x (8.64) , (m) (m) + (m) (m) − + a(x0 ) u+ (x − U ) = α f(x ), 0 0 0 N,M N,M − ricordando che UN,M (x0 ) = ϕ(x0 ). Implicitamente abbiamo adottato la convenzione che il sotto-intervallo Ωm non includa xm , in quanto la natura discontinua del metodo adottato ci porterebbe a processare ogni nodo xi , con i = 1, . . . , M − 1, due volte. L’equazione (8.64) può essere riscritta come (1)
∂u
N,M
∂t
, (m) a(x0 ) + + ∂uN,M (m) − uN,M − UN,M (x0 ). + a0 uN,M − f (x0 ) = − (m) ∂x α (m)
+a
0
Osserviamo che mentre il termine di sinistra rappresenta il residuo dell’equazione in (m) corrispondenza del nodo x0 , quello di destra coincide con il residuo dell’imposizio(m) ne debole della continuità di uN,M in x0 .
8.6 Trattamento numerico delle condizioni al bordo per sistemi iperbolici Abbiamo visto diverse strategie per imporre le condizioni al bordo di inflow per l’equazione di trasporto scalare. Quando si considerano sistemi iperbolici, il trattamento numerico delle condizioni al bordo richiede un po’ più di attenzione. Illustreremo questo problema su un sistema lineare a coefficienti costanti in una dimensione, ⎧ ⎪ ⎨ ∂u + A ∂u = 0, −1 < x < 1, t > 0, ∂t ∂x (8.65) ⎪ ⎩ u(x, 0) = u (x), −1 < x < 1, 0 completato con opportune condizioni al bordo, preso da [CHQZ07]. Scegliamo, nel seguito, il caso di un sistema costituito da due equazioni iperboliche, identificando in (8.65) u con il vettore (u, v)T e A con la matrice −1/2 −1 A= , −1 −1/2
272
8 Elementi finiti e metodi spettrali per equazioni iperboliche
i cui autovalori sono −3/2 e 1/2. Fatta la scelta v(x, 0) = sin(2x) − cos(2x)
u(x, 0) = sin(2x) + cos(2x), per le condizioni iniziali e
u(−1, t) = sin(−2 + 3t) + cos(−2 − t) = ϕ(t), v(1, t) = sin(2 + 3t) + cos(2 − t) = ψ(t)
(8.66)
per le condizioni al bordo, otteniamo un problema (8.65) ben posto. Consideriamo ora la matrice degli autovettori (destri) 1/2 1/2 W = , 1/2 −1/2 la cui inversa risulta essere
W
−1
=
Sfruttando la relazione
1
1 −1
Λ = W −1 AW =
1
.
−3/2
0
0
1/2
,
possiamo riscrivere l’equazione differenziale in (8.65) in termini delle variabili caratteristiche u + v z 1 z = W −1 u = , (8.67) = z2 u−v come
∂z ∂z +Λ = 0. (8.68) ∂t ∂x La variabile caratteristica z1 si propaga verso sinistra con velocità 3/2, mentre z2 si propaga verso destra con velocità 1/2. Questo suggerisce di assegnare una condizione per z1 in x = 1 e una per z2 in corrispondenza di x = −1. Teoricamente possiamo ricostruire i valori al bordo di z1 e z2 utilizzando le condizioni al bordo per u e v. Dalla relazione (8.67), si ha infatti 1/2 1/2 z1 1/2 (z1 + z2 ) , u = Wz = = z2 1/2 −1/2 1/2 (z1 − z2 ) ovvero, sfruttando i valori al bordo (8.66) assegnati per u e v, 1 (z1 + z2 )(−1, t) = ϕ(t), 2
1 (z1 − z2 )(1, t) = ψ(t). 2
(8.69)
8.6 Trattamento numerico delle condizioni al bordo per sistemi iperbolici
273
Il sistema (8.68) risulta dunque solo apparentemente disaccoppiato in quanto, in realtà, le variabili z1 e z2 vengono accoppiate dalle condizioni al bordo (8.69). Si delinea dunque il problema di come trattare, da un punto di vista numerico, le condizioni al contorno per il problema (8.65). Può risultare infatti già difficoltosa la discretizzazione del corrispondente problema scalare (per a costante > 0) ⎧ ∂z ∂z ⎪ ⎪ +a = 0, −1 < x < 1, t > 0, ⎪ ⎪ ∂x ⎨ ∂t (8.70) z(−1, t) = φ(t), t > 0, ⎪ ⎪ ⎪ ⎪ ⎩ z(x, 0) = z0 (x), −1 < x < 1, se non si utilizza uno schema di discretizzazione appropriato. Illustreremo il procedimento per un metodo di approssimazione spettrale. In effetti per metodi ad alta accuratezza è ancora più fondamentale di quanto non lo sia per un metodo agli elementi finiti o alle differenze finite trattare correttamente le condizioni al bordo, in quanto errori al bordo verrebbero propagati all’interno con velocità infinita. Introdotta la partizione x0 = −1 < x1 < . . . < xN−1 < xN = 1 dell’intervallo [−1, 1], se si decide di utilizzare, ad esempio, uno schema a differenze finite si incontrano problemi essenzialmente nel derivare il valore di z in corrispondenza del nodo xN . Infatti, se da un lato lo schema upwind ci fornisce un’approssimazione per tale valore ma è affetto da una stabilità condizionata, d’altro canto uno schema con ordine di convergenza più elevato, come quello a differenze finite centrate, non è in grado di fornirci tale approssimazione a meno di introdurre un nodo supplementare fuori dall’intervallo di definizione (−1, 1). Al contrario, una discretizzazione spettrale non comporta alcun problema al bordo. Per esempio, lo schema di collocazione corrispondente al problema (8.70) può essere scritto anche sul bordo di outflow: n ∀n ≥ 0, trovare zN ∈ QN tale che ⎧ n+1 n n ⎪ ⎨ zN (xi ) − zN (xi ) + a ∂zN (xi ) = 0, i = 1, . . . , N, Δt ∂x ⎪ ⎩ n+1 zN (x0 ) = φ(tn+1 ). Ad ogni nodo, sia esso interno o di bordo, risulta associata un’equazione. Possiamo dunque affermare di essere in presenza di un problema che ammette soluzione univoca. L’univocità della soluzione risulta invece problematica passando al sistema (8.65). In tal caso infatti, mentre ad ogni nodo interno xi , con i = 1, . . . , N −1, son associate due incognite e due equazioni, in corrispondenza dei nodi di bordo x0 e xN abbiamo ancora due incognite ma una sola equazione. Dovranno essere dunque fornite condizioni aggiuntive per tali punti: in generale, andranno aggiunte in corrispondenza dell’estremo x = −1 tante condizioni quanti sono gli autovalori positivi, mentre per x = 1 andranno fornite tante condizioni addizionali quanti sono gli autovalori negativi.
274
8 Elementi finiti e metodi spettrali per equazioni iperboliche
Cerchiamo una soluzione a tale problema ispirandoci al metodo di Galerkin spettrale. Supponiamo di applicare al sistema (8.65) un metodo di collocazione: vogliamo dunque trovare uN = (uN,1 , uN,2 )T ∈ (QN )2 tale che ∂uN ∂uN (xi ) + A (xi ) = 0, ∂t ∂x
i = 1, . . . , N − 1,
(8.71)
e con uN,1 (x0 , t) = ϕ(t),
uN,2 (xN , t) = ψ(t).
(8.72)
L’idea più semplice per ricavare le due equazioni mancanti per uN,1 e uN,2 in corrispondenza di xN e x0 , rispettivamente, è quella di sfruttare l’equazione vettoriale (8.71) assieme ai valori noti ϕ(t) e ψ(t) in (8.72). La soluzione calcolata in tal modo risulta tuttavia fortemente instabile. Cerchiamo dunque un approccio alternativo. L’idea è quella di aggiungere alle 2(N − 1) relazioni di collocazione (8.71) e alle condizioni al bordo “fisiche” (8.72), le equazioni delle caratteristiche uscenti in corrispondenza dei punti x0 e xN . Più nel dettaglio, la caratteristica uscente dal dominio nel punto x0 = −1 è quella associata all’autovalore negativo della matrice A, e ha equazione ∂z1 3 ∂z1 (x0 ) − (x0 ) = 0, ∂t 2 ∂x
(8.73)
mentre quella associata al punto xN = 1 è individuata dall’autovalore positivo 1/2 ed è data da ∂z2 1 ∂z2 (xN ) + (xN ) = 0. (8.74) ∂t 2 ∂x La scelta della caratteristica uscente è motivata dal fatto che questa è portatrice di informazioni dall’interno del dominio al corrispondente punto di outflow, punto in cui ha senso dunque imporre l’equazione differenziale. Le equazioni (8.73) e (8.74) ci permettono di avere un sistema chiuso di 2N + 2 equazioni nelle 2N + 2 incognite uN,1 (xi , t) = uN (xi , t), uN,2 (xi , t) = vN (xi , t), con i = 0, . . . , N . Per completezza, possiamo riscrivere le equazioni caratteristiche (8.73) e (8.74) in termini delle incognite uN e vN , come ∂(uN + vN ) 3 ∂(uN + vN ) (x0 ) − (x0 ) = 0 ∂t 2 ∂x e
∂(uN − vN ) 1 ∂(uN − vN ) (xN ) + (xN ) = 0, ∂t 2 ∂x rispettivamente, ovvero in termini matriciali come
∂uN ∂uN (x0 ) + A (x0 ) = 0, ∂t ∂x ∂uN ∂uN −1 W22 (xN ) + A (xN ) = 0. ∂t ∂x
−1 −1 W12 W11 −1 W21
(8.75)
8.6 Trattamento numerico delle condizioni al bordo per sistemi iperbolici
275
Tali equazioni aggiuntive sono dette di compatibilità: esse rappresentano una combinazione lineare delle equazioni differenziali del problema in corrispondenza dei punti di bordo con coefficienti dati dalle componenti della matrice W −1 . Osservazione 8.4 Come osservato in precedenza i metodi spettrali (di collocazione, di Galerkin, o G-NI) rappresentano un “buon terreno” su cui testare possibili soluzioni a problemi numerici quali appunto l’assegnazione di condizioni supplementari per sistemi iperbolici. Questo è dovuto alla natura globale di tali metodi che propagano immediatamente e su tutto il dominio ogni possibile perturbazione numerica che venga introdotta al bordo. • 8.6.1 Trattamento debole delle condizioni al bordo Vogliamo generalizzare ora l’approccio basato sulle equazioni di compatibilità passando da relazioni puntuali, quali appunto le (8.75), a relazioni integrali, in linea con un’approssimazione numerica di tipo, ad esempio, elementi finiti o G-NI. Consideriamo di nuovo il sistema a coefficienti costanti (8.65) e le notazioni usate nella Sez. 8.6. Sia A una matrice reale, simmetrica e non singolare di ordine d, Λ la matrice diagonale reale degli autovalori di A e W la matrice quadrata le cui colonne sono gli autovettori (destri) di A. Supponiamo che W sia ortogonale il che ci garantisce che Λ = W T AW . Le variabili caratteristiche, definite come z = W T u, soddisfano il sistema diagonale (8.68). Introduciamo lo splitting Λ = diag(Λ+ , Λ− ) della matrice degli autovalori raggruppando, rispettivamente, gli autovalori positivi (Λ+ ) e quelli negativi (Λ− ). Tali sottomatrici risultano entrambe diagonali, Λ+ definita positiva di ordine p, Λ− definita negativa di ordine n = d − p. Analogamente possiamo riscrivere z come z = (z+ , z−)T , avendo indicato con z+ (z− , rispettivamente) le variabili caratteristiche costanti lungo le caratteristiche con pendenza positiva (negativa), ovvero che si muovono verso destra (sinistra). In corrispondenza dell’estremo di destra x = 1, z+ è associato alle variabili caratteristiche uscenti mentre z− a quelle entranti. Chiaramente i ruoli si scambiano in corrispondenza dell’estremo di sinistra x = −1. Un caso semplice si presenta se assegnamo i valori delle caratteristiche entranti in corrispondenza di entrambi gli estremi del dominio, ovvero p condizioni in x = −1 ed n condizioni in corrispondenza di x = 1. In questo caso (8.68) rappresenta, a tutti gli effetti, un sistema disaccoppiato. Solitamente, tuttavia, vengono assegnate, in corrispondenza di entrambi i punti di bordo, combinazioni lineari Bu = g delle variabili fisiche, ovvero, rileggendole in termini delle variabili z, combinazioni lineari Cz = g delle variabili caratteristiche, con C = BW . Nessuna delle caratteristiche uscenti verrà, in linea di massima, individuata da queste combinazioni in quanto i valori risultanti saranno in generale incompatibili con quelli propagati dal sistema iperbolico all’interno del dominio. Al contrario, le condizioni al bordo dovrebbero permettere di determinare le variabili caratteristiche entranti in funzione di quelle uscenti e dei dati. Per la precisione, supponiamo che siano assegnate le condizioni al bordo BL u(−1, t) = gL(t),
BR u(1, t) = gR (t),
t > 0,
(8.76)
276
8 Elementi finiti e metodi spettrali per equazioni iperboliche
dove gL e gR sono vettori assegnati e BL , BR opportune matrici. Concentriamoci sull’estremo di sinistra, x = −1. Poiché, in corrispondenza di tale punto, si hanno p caratteristiche entranti, BL avrà dimensione p × d. Ponendo CL = BL W ed utilizzando lo splitting z = (z+ , z− )T introdotto per z ed il corrispondente splitting W = (W + , W −)T per la matrice degli autovettori, si ha CL z(−1, t) = CL+ z+ (−1, t) + CL−z− (−1, t) = gL(t), dove CL+ = BL W + è una matrice p × p mentre CL− = BL W − ha dimensione p × n. Facciamo la richiesta che la matrice CL+ sia non singolare. La caratteristica entrante in corrispondenza dell’estremo x = −1 è data da z+ (−1, t) = SL z− (−1, t) + zL (t),
(8.77)
essendo SL = −(CL+ )−1 CL− una matrice p × n e zL (t) = (CL+ )−1 gL(t). In maniera del tutto analoga possiamo assegnare, in corrispondenza dell’estremo di destra x = 1, la variabile caratteristica entrante come z− (1, t) = SR z+ (1, t) + zR (t),
(8.78)
essendo SR una matrice n × p. Le matrici SL ed SR sono dette matrici di riflessione. Il sistema iperbolico (8.65) verrà dunque completato dalle condizioni al bordo (8.76) o, equivalentemente, dalle condizioni (8.77)-(8.78), oltre che, ovviamente, da un’opportuna condizione iniziale u(x, 0) = u0 (x), per −1 ≤ x ≤ 1. Cerchiamo di capire a quali vantaggi può portare una tale scelta per le condizioni al bordo. Partiamo dalla formulazione debole del problema (8.65), integrando per parti il termine contenente la derivata spaziale 1
∂u v dx − ∂t T
−1
1 −1
1 ∂v T Au dx + vT Au −1 = 0, ∂x
per ogni t > 0, essendo v una funzione test arbitraria, differenziabile. Vorremmo 1 cercare di riscrivere il termine di bordo vT Au −1 con una formulazione equivalente alla forma (8.76). Introducendo la variabile caratteristica W T v = y = (y+ , y− )T associata alla funzione test v, avremo vT Au = yT Λz = (y+ )T Λ+ z+ + (y− )T Λ−z− .
8.6 Trattamento numerico delle condizioni al bordo per sistemi iperbolici
277
Utilizzando le relazioni (8.77)-(8.78), ne segue dunque che 1
∂u dx − v ∂t T
−1
1 −1
∂v T Au dx ∂x
− (y+ )T (−1, t)Λ+ SL z− (−1, t) − (y− )T (−1, t)Λ−z− (−1, t)
(8.79)
+ (y+ )T (1, t)Λ+ z+ (1, t) + (y− )T (1, t)Λ− SR z+ (1, t) = (y+ )T (−1, t)Λ+ zL (t) − (y− )T (1, t)Λ−zR (t). Osserviamo che nel termine noto di tale formulazione intervengono le condizioni al bordo (8.77)-(8.78), che vengono così incorporate dal sistema senza che vi sia bisogno di pretendere nulla sul comportamento al bordo delle funzioni u e v. Inoltre, integrando ancora per parti, è possibile ottenere una formulazione equivalente alla (8.79) in cui le condizioni al bordo vengono imposte in modo debole 1 vT −1
∂u dx + ∂t
1 vT A −1
∂u dx ∂x
+
+ , (y+ )T (−1, t)Λ+ z+ (−1, t) − SL z− (−1, t)
−
+ , (y− )T (1, t)Λ− z− (1, t) − SR z+ (1, t)
=
(y+ )T (−1, t)Λ+ zL (t) − (y− )T (1, t)Λ− zR (t).
(8.80)
Infine ricordiamo che solitamente sulle matrici di riflessione SL e SR viene fatta la seguente ipotesi, detta di dissipazione SL SR < 1,
(8.81)
sufficiente a garantire la stabilità dello schema precedente rispetto alla norma L2 . La norma di matrice in (8.81) va intesa come la norma euclidea di una matrice rettangolare, ovvero la radice quadrata del massimo autovalore di S T S. La formulazione (8.79) (o (8.80)) si presta ad essere approssimata con una delle tecniche “alla Galerkin” viste sino ad ora: con il metodo di Galerkin-elementi finiti, con il metodo di Galerkin spettrale, con il metodo spettrale con integrazione numerica Gaussiana in un singolo dominio (G-NI) o in versione spectral element, nel caso di elementi spettrali continui (SEM-NI) o discontinui (DG-SEM-NI).
278
8 Elementi finiti e metodi spettrali per equazioni iperboliche
8.7 Esercizi 1. Verificare che la discretizzazione con elementi finiti lineari continui (8.13) coincide con quella alle differenze finite (7.22) nel caso in cui si renda diagonale la matrice di massa con la tecnica del mass-lumping. [Soluzione: si usi la proprietà (5.29) di partizione dell’unità come fatto nella Sez. 5.5.] 2. Si dimostrino le disuguaglianze di stabilità fornite nella Sez. (8.4) per la semidiscretizzazione basata su elementi finiti discontinui. 3. Si verifichi la relazione (8.13). 4. Si discretizzi con il metodo degli elementi spettrali continui, SEM-NI, e discontinui, DG-SEM-NI, il sistema (8.79).
9 Cenni a problemi iperbolici non lineari
In questo capitolo introduciamo alcuni esempi di problemi iperbolici non lineari. Accenneremo ad alcune proprietà caratteristiche di tali problemi, la più rilevante essendo quella di poter generare soluzioni discontinue anche nel caso di dati iniziali e al contorno continui. L’approssimazione numerica di questi problemi è un compito tutt’altro che facile. In questo Capitolo ci limiteremo semplicemente ad accennare a come si possono applicare gli schemi alle differenze finite e agli elementi finiti discontinui nel caso di equazioni monodimensionali. Per una trattazione più esauriente consigliamo di riferirsi a [LeV07], [GR96], [Bre00], [Tor99], [Kro97].
9.1 Equazioni scalari Consideriamo la seguente equazione ∂u ∂ + F (u) = 0, x ∈ R, t > 0, ∂t ∂x
(9.1)
dove F è una funzione non lineare di u detta flusso di u in quanto su ogni intervallo (α, β) di R essa soddisfa la seguente relazione d β u(x, t)dx = F (u(t, α)) − F (u(t, β)). dt α Per tale ragione la (9.1) esprime una legge di conservazione. Un esempio classico è costituito dall’equazione di Burgers, già considerata nell’esempio 1.3, in cui F (u) = u2 /2. Tale equazione in forma non conservativa si può scrivere (fintanto che la soluzione rimane regolare) ∂u ∂u +u = 0. ∂t ∂x
(9.2)
L’equazione delle linee caratteristiche per la (9.2) è x (t) = u, ma essendo u costante sulle caratteristiche, si ottiene x (t) = costante, cioè le caratteristiche sono delle A. Quarteroni: Modellistica numerica per problemi differenziali, 4a edizione c Springer-Verlag Italia, Milano 2008
280
9 Cenni a problemi iperbolici non lineari
rette. Esse sono definite nel piano (x, t) dalla mappa t → (x + tu0 (x), t), e la soluzione è definita implicitamente da u(x + tu0 (x)) = u0 (x), ∀t < tc , essendo tc un valore critico del tempo in cui per la prima √ volta tali caratteristiche si intersecano. Ad esempio, se u0 = (1 + x2 )−1 , tc = 8/ 27. In effetti, se u0 (x) è negativa in qualche punto, posto tc = −
1 min u0 (x)
per t > tc non può esistere alcuna soluzione classica (ovvero di classe C 1 ), in quanto ∂u lim inf (x, t) = −∞ x∈R ∂x t→t− c Consideriamo la Fig. 9.1: si nota come per t = tc la soluzione presenti una discontinuità. t
t2 tc t1 0
x
Figura 9.1. Sviluppo della singolarità
Per ovviare a questa perdita di unicità si introduce il concetto di soluzione debole per le equazioni iperboliche: diciamo che u è una soluzione debole di (9.1) se soddisfa la relazione differenziale (9.1) in tutti i punti x ∈ R ad eccezione di quelli in cui è discontinua. In questi ultimi non si pretende più che valga la (9.1) (non avrebbe alcun senso derivare una funzione discontinua), ma si esige che sia verificata la seguente condizione di Rankine-Hugoniot F (ur ) − F (ul ) = σ(ur − ul ),
(9.3)
ove ur e ul indicano, rispettivamente, il limite destro e sinistro di u nel punto di discontinuità, e σ è la velocità di propagazione della discontinuità. La condizione (9.3) esprime dunque il fatto che il salto dei flussi è proporzionale al salto della soluzione. Le soluzioni deboli non sono necessariamente uniche: tra di esse quella fisicamente corretta è la cosiddetta soluzione entropica. Come vedremo alla fine di questa sezione, nel caso dell’equazione di Burgers la soluzione entropica si ottiene come limite, per ε → 0, della soluzione uε (x, t)
9.1 Equazioni scalari
281
dell’equazione avente un termine di perturbazione viscoso ∂uε ∂ 2 uε ∂ + F (uε ) = ε 2 , x ∈ R, t > 0, ∂t ∂x ∂x con uε (x, 0) = u0 (x). In generale, possiamo dire che: -
se F (u) è differenziabile, una discontinuità che si propaga con velocità σ data dalla (9.3), soddisfa la condizione di entropia se F (ul ) ≥ σ ≥ F (ur );
-
se F (u) non è differenziabile, una discontinuità che si propaga con velocità σ data dalla (9.3) soddisfa la condizione di entropia se F (u) − F (ul ) F (u) − F (ur ) ≥σ≥ , u − ul u − ur per ogni u compresa tra ul e ur .
Esempio 9.1 Consideriamo l’equazione di Burgers con la condizione iniziale seguente u0 (x) =
ul ur
se x < 0, se x > 0,
dove ur ed ul sono due costanti. Se ul > ur , allora esiste una sola soluzione debole (che è anche entropica) ul , x < σt, u(x, t) = (9.4) ur , x > σt, dove σ = (ul + ur )/2 è la velocità di propagazione della discontinuità (detta anche shock). In questo caso le caratteristiche “entrano” nello shock (si veda la Fig. 9.2). Nel caso ul < ur ci sono infinite soluzioni deboli: una ha ancora la forma (9.4), ma in questo caso le caratteristiche escono dalla discontinuità (si veda la Fig. 9.3). Tale soluzione è instabile, ovvero piccole perturbazioni sui dati cambiano in modo sostanziale la soluzione stessa. Un’altra t x = σt ul ur
σt
x
0
Figura 9.2. Soluzione entropica per l’equazione di Burgers
x
282
9 Cenni a problemi iperbolici non lineari t
x = σt
ur ul
σt
x
0
x
Figura 9.3. Soluzione non entropica per l’equazione di Burgers t
x = σt
ur ul
tul
tur
x
0
x
Figura 9.4. Onda di rarefazione
soluzione debole è
⎧ ⎪ ⎨ uxl u(x, t) = ⎪ ⎩ t ur
se x < ul t, se ul t ≤ x ≤ ur t, se x > ur t.
Tale soluzione, che descrive un’onda di rarefazione, a differenza della precedente, è entropica (si veda la Fig. 9.4).
Si dice che un problema iperbolico (9.1) possiede una funzione entropia se esistono una funzione strettamente convessa η = η(u) ed una funzione Ψ = Ψ (u) tali che Ψ (u) = η (u)F (u), (9.5) dove l’apice indica la derivata rispetto all’argomento u. La funzione η è detta entropia e Ψ è detta flusso d’entropia. Si ricorda che una funzione η si dice convessa se per ogni u e w distinti e θ ∈ (0, 1) si ha η(u + θ(w − u)) < (1 − θ)η(u) + θη(w). Se η possiede derivata seconda continua, ciò è equivalente a richiedere che η > 0. Osservazione 9.1 Quella qui presentata è una definizione “matematica” di entropia. Nel caso in cui (9.1) governi un fenomeno fisico, è spesso possibile definire una “entropia termodinamica”. Essa risulta essere effettivamente anche una entropia del problema differenziale nel senso precedentemente descritto. •
9.1 Equazioni scalari
283
La forma quasi-lineare di (9.1) è data da ∂u ∂u + F (u) = 0. ∂t ∂x
(9.6)
Se u è sufficientemente regolare, moltiplicando (9.6) per η (u) si verifica facilmente che η e Ψ soddisfano una legge di conservazione del tipo ∂η ∂Ψ (u) + (u) = 0. ∂t ∂x
(9.7)
Per una equazione scalare è in genere possibile trovare diverse coppie di funzioni η e Ψ che soddisfino le condizioni date. Le operazioni effettuate per derivare (9.7) sono valide solo se u è regolare, in particolare se non vi sono discontinuità nella soluzione. Si possono però trovare le condizioni che la variabile entropia deve soddisfare in corrispondenza di una discontinuità nella soluzione di (9.1) quando tale equazione rappresenti il limite per → 0+ della seguente equazione modificata (detta equazione di viscosità) ∂u ∂F ∂2u + (u) = 2 . ∂t ∂x ∂x
(9.8)
La soluzione di (9.8) è regolare per ogni > 0, ed effettuando le stesse manipolazioni usate precedentemente si può scrivere 2 ∂η ∂2u ∂ ∂u ∂u ∂Ψ η (u) − η (u) . (u) + (u) = η (u) 2 = ∂t ∂x ∂x ∂x ∂x ∂x Integrando ora su un generico rettangolo [x1 , x2] × [t1 , t2 ] si ottiene t2 t 2 x2 ∂Ψ (u) ∂η ∂u (u) + dxdt = η (u(x2 , t)) (x2 , t) ∂t ∂x ∂x t1 x1 2 t2 xt21 ∂u ∂u − η (u(x1 , t)) (x1 , t) dt − η (u) dxdt = R1 () + R2 (), ∂x ∂x t1 x1 dove abbiamo posto R1 () =
∂u ∂u η (u(x2 , t)) (x2 , t) − η (u(x1 , t)) (x1 , t) dt, ∂x ∂x t1 2 t 2 x2 ∂u R2 () = − η (u) dxdt . ∂x t1 x1 t2
Abbiamo lim R1 () = 0,
→0+
mentre se la soluzione per → 0+ del problema modificato presenta una discontinuità lungo una curva nel piano (x, t) si ha lim R2 () = 0,
→0+
284
9 Cenni a problemi iperbolici non lineari
+ ,2 dato che l’integrale contenente il termine ∂u è, in generale, illimitato. ∂x D’altra parte R2 () ≤ 0 per ogni > 0, essendo ∂ 2 η/∂u2 > 0, dunque la soluzione debole al limite per → 0+ soddisfa t 2 x2 ∂η ∂Ψ (9.9) (u) + (u) dxdt ≤ 0 ∀x1 , x2 , t1 , t2 . ∂t ∂x t1 x1 In altre parole ∂η ∂Ψ (u) + (u) ≤ 0, ∂t ∂x
x ∈ R,
t>0
in senso debole. Vi è ovviamente una relazione tra quanto appena visto e la nozione di soluzione entropica. Se l’equazione differenziale ammette una funzione entropia η, allora una soluzione debole è una soluzione entropica se e solo se η soddisfa (9.9). In altre parole, le soluzioni entropiche sono soluzioni-limite del problema modificato (9.8) per → 0+ .
9.2 Approssimazione alle differenze finite Ritorniamo a considerare l’equazione iperbolica non lineare (9.1), con la condizione iniziale u(x, 0) = u0 (x), x ∈ R . Indichiamo con a(u) = F (u) la velocità caratteristica. Anche per questo problema possiamo usare uno schema esplicito alle differenze fin nite della forma (7.13). L’interpretazione funzionale di Hj+1/2 = H(unj , unj+1) è la seguente n Hj+1/2
1 Δt
tn+1
F (u(xj+1/2 , t))dt, tn
n approssima il flusso medio attraverso xj+1/2 nell’intervallo di tempo ovvero Hj+1/2 n n+1 [t , t ]. Per avere consistenza, il flusso numerico H(·, ·) deve verificare
H(u, u) = F (u),
(9.10)
nel caso in cui u sia una costante. Sotto l’ipotesi (9.10), grazie ad un classico risultato di Lax e Wendroff, le funzioni u tali che u(xj , tn ) =
lim unj ,
Δt,h→0
sono soluzioni deboli del problema di partenza. Sfortunatamente, però, non è assicurato che le soluzioni ottenute in questa maniera soddisfino la condizione d’entropia (ovvero non è detto che le soluzioni deboli siano
9.2 Approssimazione alle differenze finite
285
anche soluzioni entropiche). Al fine di “recuperare” le soluzioni entropiche, gli schemi numerici devono introdurre un’adeguata diffusione numerica, come suggerito dall’analisi della Sez. 9.1. Riscriviamo a tal fine (7.13) nella forma un+1 = G(unj−1 , unj, unj+1 ) j
(9.11)
e introduciamo alcune definizioni. Lo schema numerico (9.11) è detto: -
monotono se G è una funzione monotona crescente di ognuno dei suoi argomenti; limitato se esiste C > 0 tale che supj,n |unj | ≤ C; stabile se ∀ h > 0, ∃ δ0 > 0 (possibilmente dipendente da h) t.c., per ogni 0 < Δt < δ0 , se un e vn sono le soluzioni alle differenze finite, ottenute a partire da due dati iniziali u0 e v0 , allora un − vn Δ ≤ CT u0 − v0 Δ ,
(9.12)
per ogni n ≥ 0 t.c. nΔt ≤ T e per ogni scelta dei dati iniziali u0 e v0 . La costante CT > 0 è indipendente da Δt e h, e · Δ è una opportuna norma discreta, come quelle introdotte in (7.26). Si noti che per problemi lineari questa definizione è equivalente alla (7.25). Si parlerà di stabilità forte quando in (9.12) si può prendere CT = 1 per ogni T > 0. A titolo di esempio, ponendo per semplicità di notazione Fj = F (uj ), lo schema di Lax-Friedrichs per il problema (9.1) si realizza attraverso lo schema generale (7.13) in cui si prenda 1 1 Hj+1/2 = Fj+1 + Fj − (uj+1 − uj ) . 2 λ Questo metodo è consistente, stabile e monotono purché valga la seguente condizione (analoga alla condizione CFL già vista nel caso lineare) n Δt F (uj ) ≤ 1 ∀j ∈ Z , ∀n ∈ N. (9.13) h Un classico risultato di N.N. Kuznetsov stabilisce che schemi monotoni del tipo (9.11) sono limitati, stabili, convergenti alla soluzione entropica ed hanno un’accuratezza al massimo del primo ordine sia rispetto al tempo che allo spazio, ovvero esiste una costante C > 0 t.c. max |unj − u(xj , tn )| ≤ C(Δt + h). j,n
Essi sono in genere troppo dissipativi e non generano soluzioni accurate a meno che non si usino griglie molto raffinate. Schemi di ordine più elevato (i cosiddetti high order shock capturing schemes) sono stati sviluppati usando tecniche che permettono di calibrare la dissipazione numerica in funzione della regolarità locale della soluzione, al fine di risolvere correttamente le discontinuità (assicurando la convergenza a soluzioni entropiche ed evitando oscillazioni spurie) utilizzando globalmente una dissipazione numerica minima. Questa problematica è complessa e non può essere affrontata con eccessivo desiderio di sintesi. Per approfondimenti rinviamo ai testi [LeV02b], [LeV07], [GR96] e [Hir88].
286
9 Cenni a problemi iperbolici non lineari
9.3 Approssimazione con elementi finiti discontinui Per la discretizzazione del problema (9.1) consideriamo ora l’approssimazione spaziale basata su elementi finiti discontinui. Usando le stesse notazioni introdotte nella Sez. 8.4, cerchiamo per ogni t > 0 uh (t) ∈ Wh tale che si abbia ∀j = 0, . . . , m − 1 e ∀vh ∈ Pr (Ij ), ∂uh ∂vh vh dx− F (uh ) dx+Hj+1 (uh )vh− (xj+1 )−Hj (uh )vh+ (xj ) = 0, (9.14) ∂t ∂x Ij
Ij
essendo Ij = [xj , xj+1 ]. Il dato iniziale u0h è fornito dalle relazioni 0 uh vh dx = u0 vh dx, j = 0, . . . , m − 1. Ij
Ij
La funzione Hj denota ora il flusso non lineare nel nodo xj e dipende dai valori di uh in xj , ovvero + Hj (uh (t)) = H(u− h (xj , t), uh (xj , t)),
(9.15)
per un opportuno flusso numerico H(·, ·). Se j = 0 si dovrà porre u− h (x0 , t) = φ(t), che è il dato al bordo nell’estremo di sinistra (ammesso naturalmente che questo sia il punto di inflow). Osserviamo che esistono varie possibilità di scelta per la funzione H. Vogliamo tuttavia che tali scelte diano luogo in (9.14) a schemi che siano perturbazioni di schemi monotoni. Questi ultimi, infatti, come già accennato nella sezione precedente, pur essendo solo del primo ordine, sono stabili e convergono alla soluzione entropica. Precisamente, pretendiamo che (9.14) sia uno schema monotono quando r = 0. In tal (j) caso detto uh il valore costante di uh su Ij , la (9.14) diventa ∂ (j) (j) (j+1) (j−1) (j) (t)) − H(uh (t), uh (t)) = 0, (9.16) u (t) + H(uh (t), uh ∂t h xj+1 0,(j) = h−1 u0 dx nell’intervallo Ij , j = 0, . . . , m − 1, con dato iniziale uh j xj avendo indicato con hj = xj+1 − xj l’ampiezza di Ij . Affinché lo schema (9.16) sia monotono, il flusso H deve essere monotono, il che equivale a dire che H(v, w) è: hj
-
una funzione Lipschitziana dei suoi due argomenti; una funzione non decrescente in v e non crescente in w. Simbolicamente, H(↑, ↓); consistente con il flusso F , ovvero H(u, u) = F (u), per ogni costante u. Alcuni celebri esempi di flusso monotono sono i seguenti: 1. Flusso di Godunov H(v, w) =
⎧ ⎨
min F (u)
se v ≤ w,
⎩ max F (u)
se v > w;
v≤u≤w w≤u≤v
9.3 Approssimazione con elementi finiti discontinui
287
2. Flusso di Engquist-Osher v H(v, w) =
w
max(F (u), 0)du + 0
min(F (u), 0)du + F (0);
0
3. Flusso di Lax-Friedrichs H(v, w) =
1 [F (v) + F (w) − δ(w − v)], 2
δ=
max inf x u0 (x)≤u≤supx u0 (x)
|F (u)|.
Il flusso di Godunov è quello che dà luogo alla minor quantità di dissipazione numerica, quello di Lax-Friedrichs è il meno costoso da valutare. Tuttavia l’esperienza numerica suggerisce che se il grado r aumenta, la scelta del flusso H non ha conseguenze significative sulla qualità dell’approssimazione. Nel caso lineare, in cui F (u) = au, tutti i flussi precedenti coincidono e sono uguali al flusso upwind H(v, w) = a
v + w |a| − (w − v). 2 2
(9.17)
In tal caso osserviamo che lo schema (9.14) coincide esattamente con quello introdotto in (8.42) allorché a > 0. Infatti, posto a0 = 0 e f = 0 in (8.42) e integrando per parti si ottiene, per ogni j = 1, . . . , m − 1 ∂uh ∂vh vh dx − (auh ) dx ∂t ∂x Ij (9.18) Ij
+(auh )− (xj+1 )vh− (xj+1 ) − (auh )− (xj )vh+ (xj ) = 0, ovvero la (9.14), tenendo conto che nel caso in esame auh = F (uh ) e ∀j = 1, . . . , m − 1 (auh )− (xj ) = a
+ u− a h (xj ) + uh (xj ) (xj ) − u− − (u+ h (xj )) = Hj (uh ). 2 2 h
La verifica nel caso j = 0 è ovvia. − In tal caso, indicato con [uh ]j = u+ h (xj ) − uh (xj ), si ha il seguente risultato di stabilità uh (t)2L2 (α,β) + θ(uh (t)) ≤ u0h 2L2 (α,β) avendo posto θ(uh (t)) = |a|
t m−1 " 0
[uh(t)]2j dt.
j=1
Si noti come anche i salti siano controllati dal dato iniziale. L’analisi di convergenza fornisce il seguente risultato (nell’ipotesi che u0 ∈ Hr+1 (α, β)) u(t) − uh (t)L2 (α,β) ≤ Chr+1/2 |u0|Hr+1 (α,β),
(9.19)
288
9 Cenni a problemi iperbolici non lineari
dunque un ordine di convergenza (= r + 1/2) più grande di quello (= r) che si avrebbe usando elementi finiti continui, come già riscontrato nel caso lineare (si veda la (8.48)). Nel caso non lineare e per r = 0, definendo la seminorma |v|T V (α,β) =
m−1 "
|vj+1 − vj |,
v ∈ Wh ,
j=0
e prendendo il flusso numerico di Engquist-Osher nella (9.16), si ha il seguente risultato (dovuto a N.N. Kuznestov) √ u(t) − uh (t)L1 (α,β) ≤ u0 − u0h L1 (α,β) + C|u0 |T V (α,β) th. Inoltre, |uh (t)|T V (α,β) ≤ |u0h|T V (α,β) ≤ |u0 |T V (α,β) . Per la discretizzazione temporale, scriviamo dapprima lo schema (9.14) nella forma algebrica d uh (t) = Lh (uh (t), t), dt uh (0) = u0h ,
Mh
t ∈ (0, T ),
essendo uh (t) il vettore dei gradi di libertà, Lh (uh (t), t) il vettore risultante della discretizzazione del termine di flusso − ∂F ∂x e Mh la matrice di massa. Mh è una matrice diagonale a blocchi il cui j-esimo blocco è la matrice di massa relativa all’elemento Ij (come già osservato quest’ultima è diagonale se si ricorre ad una base di polinomi di Legendre). Per la discretizzazione temporale, oltre agli schemi di Eulero precedentemente considerati possiamo ricorrere al seguente metodo di Runge-Kutta del 2o ordine: Mh (u∗h − unh ) = ΔtLh (unh , tn ), ∗ ∗ n+1 ), Mh (u∗∗ h − uh ) = ΔtLh (uh , t
= 12 (unh + u∗∗ un+1 h h ). Nel caso del problema lineare (in cui F (u) = au), usando r = 1 questo schema è stabile nella norma · L2(α,β) purché sia soddisfatta la condizione Δt ≤
1 h . 3 |a|
Per r arbitrario, l’evidenza numerica mostra che bisogna utilizzare uno schema di ordine 2r + 1, in tal caso si ha stabilità sotto la condizione 1 h Δt ≤ . 2r + 1 |a| Riportiamo lo schema di Runge-Kutta del 3o ordine, da usare preferibilmente quando r=1 Mh (u∗h − unh ) = ΔtLh (unh , tn ), 3 n 1 ∗ 1 ∗ n+1 ), Mh (u∗∗ h − ( 4 uh + 4 uh )) = 4 ΔtLh (uh , t 2 ∗∗ n+1/2 − ( 13 unh + 23 u∗∗ ). Mh (un+1 h )) = 3 ΔtLh (uh , t h
(9.20)
9.3 Approssimazione con elementi finiti discontinui
−1
289
r=0
10
−2
r=1
10
−3
10
r=2 −4
10
r=3 −5
10
−6
10
−3
−2
10
10
h
Figura 9.5. Errore u − uh L2 (0,1) ottenuto risolvendo un problema di trasporto lineare con dato iniziale regolare usando elementi finiti discontinui di grado r rispettivamente pari a 0, 1, 2 e 3. L’errore è stato calcolato al tempo t = 0.01. Lo schema di avanzamento in tempo è quello di Runge-Kutta del terz’ordine con Δt = 5 × 10−4
Esempio 9.2 Consideriamo ancora il problema dell’Esempio 8.2, che risolviamo con il metodo degli elementi finiti discontinui, utilizzando lo schema di Runge-Kutta del terz’ordine per l’avanzamento temporale. L’obiettivo è di verificare sperimentalmente la (9.19). A tal scopo abbiamo usato un passo temporale molto piccolo, Δt = 5 × 10−4 , e 5 valori decrescenti del passo h ottenuti dividendo ripetutamente per 2 il valore iniziale h = 12.5 × 10−3 . Si è confrontato l’errore in norma L2 (0, 1) al tempo t = 0.01 per elementi di grado r pari a 0, 1, 2 e 3. Il risultato è riportato in scala logaritmica in Fig. 9.5. Esso è in buon accordo con la teoria secondo la quale l’errore tende a zero come hr+1/2 . In effetti, per r = 1 in questo caso particolare la convergenza è più rapida di quanto predetto dalla teoria: i dati numerici forniscono un ordine di convergenza molto vicino a 2. Nel caso di r > 1 non sono stati riportati i risultati per i valori più piccoli di h in quanto per tali valori (e per il Δt scelto) il problema è numericamente instabile.
0.5 2
1.5
r=0
u
0.1 1
r=1 r=2 r=3
0.5
0 0
0.1
0.2
0.3
0.4
0.5 x
0.6
0.7
0.8
0.9
1
0.01
−3
10
−2
10
Figura 9.6. Errore u − uh L2 (0,1) ottenuto risolvendo un problema di trasporto lineare con dato iniziale illustrato nella figura a sinistra. Si sono usati elementi finiti discontinui di grado r rispettivamente pari a 0, 1, 2 e 3. L’errore è stato calcolato al tempo t = 0.01. Lo schema di avanzamento in tempo è quello di Runge-Kutta del terz’ordine con Δt = 5 × 10−4
290
9 Cenni a problemi iperbolici non lineari
Esempio 9.3 Consideriamo lo stesso problema di trasporto lineare dell’esempio precedente, usando ora come dato iniziale l’onda quadra illustrata a sinistra nella Fig. 9.6. Essendo il dato iniziale discontinuo l’utilizzo di elementi di grado elevato non migliora l’ordine di convergenza, che risulta essere, per tutti i valori di r considerati, molto vicino al valore teorico di 1/2. In Fig. 9.7 si mostrano le oscillazioni nella vicinanza della discontinuità della soluzione caso r = 2, responsabili del degrado della convergenza, mentre la soluzione per r = 0 non mostra alcuna oscillazione.
Nel caso del problema non lineare utilizzando lo schema di Runge-Kutta del 2o ordine con r = 0 sotto la condizione (9.13) si ottiene |unh |T V (α,β) ≤ |u0 |T V (α,β) , ovvero la stabilità forte nella norma | · |T V (α,β) . Quando non si faccia ricorso a schemi monotoni, è molto più difficile ottenere la stabilità forte. In questo caso ci si può limitare a garantire che la variazione totale delle medie locali sia uniformemente limitata. (Si veda [Coc98].) Esempio 9.4 Questo esempio vuole illustrare una caratteristica tipica dei problemi non lineari, cioè come si possano sviluppare discontinuità nella soluzione anche a partire da un dato iniziale regolare. A tale scopo consideriamo l’equazione di Burgers (9.2) nell’intervallo (0, 1), con dato iniziale (si veda la Figura 9.8) ⎧ 5 , ⎨ 1, 0 ≤ x ≤ 12 5 3 5 7 u0 (x) = 54(2x − 6 ) − 27(2x − 56 )2 + 1, 12 < x < 12 , ⎩ 7 0, 12 ≤ x ≤ 1. Si può verificare facilmente che u0 , illustrata in Fig. 9.8, è di classe C 1 (0, 1). Si è quindi considerata la soluzione numerica ottenuta con il metodo Galerkin discontinuo, utilizzando lo schema di Runge-Kutta del terz’ordine con un passo temporale Δt = 10−3 e h = 0.01, per r = 0, r = 1 e r = 2. La Fig. 9.9 mostra la soluzione al tempo t = 0.5 2.5
2.5
2
2
1.5
1.5
1
1
0.5
0.5
0
0
−0.5 0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
−0.5 0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Figura 9.7. Soluzione al tempo t = 0.01 e per h = 3.125 × 10−3 per il caso test di Fig. 9.6. A sinistra il caso r = 3: si noti la presenza di oscillazioni nelle vicinanze delle discontinuità, mentre altrove la soluzione è accurata. A destra si mostra la soluzione ottenuta usando la stessa discretizzazione spaziale e temporale per r = 0
9.3 Approssimazione con elementi finiti discontinui
291
1.2 1 0.8 0.6 0.4 0.2 0 −0.2 0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Figura 9.8. Soluzione iniziale u0 per il primo caso test del problema di Burgers ottenuta con tali schemi. Si può notare come si sia sviluppata una discontinuità che lo schema numerico risolve senza oscillazioni nel caso r = 0, mentre per ordini più elevati si hanno delle oscillazioni nelle vicinanze della discontinuità stessa.
Per eliminare le oscillazioni nelle vicinanze della discontinuità della soluzione si può usare la tecnica dei limitatori di flusso (flux limiters), la cui descrizione esula dagli scopi di questo libro. Rimandiamo al proposito il lettore alla bibliografia già citata. Ci limitiamo a dire che lo schema di Runge-Kutta del terz’ordine (9.20) si modifica come segue: + , n n u∗h = Λh unh + ΔtM−1 h Lh (uh , t ) , +3 n 1 ∗ 1 , −1 ∗ n+1 ) , u∗∗ h = Λh 4 uh + 4 uh + 4 ΔtMh Lh (uh , t + , −1 2 ∗∗ n+1/2 = Λh 13 unh + 23 u∗∗ ) , un+1 h h + 3 ΔtMh Lh (uh , t essendo Λh il limitatore di flusso, che è funzione anche delle variazioni della soluzione calcolata, cioè della differenza di valori tra due nodi adiacenti. Esso è pari all’operatore identità laddove la soluzione è regolare, mentre ne limita le variazioni se queste provocano l’insorgenza di oscillazioni ad alta frequenza nella soluzione numerica. Chiaramente Λh va costruito in modo opportuno, in particolare deve mantenere le proprietà di consistenza e conservazione dello schema e scostarsi il meno possibile dall’operatore identità per non far degradare l’accuratezza. A titolo esemplificativo riportiamo in Fig. 9.10 il risultato ottenuto con elementi finiti discontinui lineari (r = 1) per lo stesso caso test di Fig. 9.9 applicando la tecnica dei limitatori di flusso. La soluzione numerica ottenuta risulta più regolare, anche se leggermente più diffusiva di quella di Fig. 9.9.
Esempio 9.5 Consideriamo ora un secondo problema, dove il dato iniziale è quello di Fig. 9.11, ottenuto riflettendo specularmente rispetto alla retta x = 0.5 il dato del caso test precedente. Mantenendo invariati tutti gli altri parametri della simulazione numerica esaminiamo di nuovo
292
9 Cenni a problemi iperbolici non lineari 1.4
1.4
1.2
1.2 1 0.8
u
u
h
h
1 0.8 0.6
0.6
0.4
0.4
0.2
0.2 0
0 x −0.2 0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
−0.2 0
x 0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1.4 1.2 1
u
h
0.8 0.6 0.4 0.2 0 −0.2 0
x 0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Figura 9.9. Soluzione al tempo t = 0.5 per il primo caso test del problema di Burgers. Confronto tra la soluzione numerica per r = 0 (in alto a sinistra), r = 1 (in alto a destra) e r = 2 (in basso). Per il caso r = 0 la soluzione discreta, costante a tratti, è stata evidenziata collegando con una linea punteggiata i valori in corrispondenza al punto medio di ogni elemento 1.4 1.2 1
uh
0.8 0.6 0.4 0.2 0 x −0.2 0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Figura 9.10. Soluzione al tempo t = 0.5 per il primo caso test del problema di Burgers. Soluzione ottenuta per r = 1 applicando la tecnica dei limitatori di flusso per regolarizzare la soluzione numerica nelle vicinanze della discontinuità
la soluzione a t = 0.5. Essa è illustrata in Fig. 9.12. In questo caso la soluzione rimane continua, in quanto per questa condizione iniziale, le linee caratteristiche (che nel caso della equazione di Burgers sono delle rette nel piano (x, t) di pendenza pari a arctan u−1 ) non si incrociano mai. L’ingrandimento permette di apprezzare in modo qualitativo la migliore accuratezza della soluzione ottenuta per r = 2 rispetto a quella ottenuta per r = 1.
9.4 Sistemi iperbolici non-lineari
293
1.2 1 0.8
u
0
0.6 0.4 0.2 0 −0.2 0
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
1
1
1
0.8
0.8
0.6
0.6
0.4
0.4
u
u
Figura 9.11. Soluzione iniziale u0 per il secondo caso test del problema di Burgers
0.2
0.2
0
0
−0.2 0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
−0.2 0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Figura 9.12. Soluzione al tempo t = 0.5 per il secondo caso test del problema di Burgers. Confronto tra la soluzione ottenuta per r = 1 (a sinistra) e quella per r = 2 (a destra). Nel riquadro è illustrato un ingrandimento della soluzione numerica che permette di apprezzare qualitativamente la migliore accuratezza ottenuta per r = 2
9.4 Sistemi iperbolici non-lineari Accenniamo infine al caso dei sistemi di equazioni iperboliche non lineari. Un esempio classico è fornito dalle equazioni di Eulero che si ottengono dalle seguenti equazioni di Navier-Stokes (per fluidi comprimibili) in Rd , d = 1, 2, 3, ∂ρ " ∂(ρuj ) = 0, + ∂t ∂xj j=1 d ∂(ρui ) " ∂(ρui uj + δij p) ∂τij = 0, i = 1, . . . , d − + ∂t ∂xj ∂xj j=1 !d d ∂ρe " ∂(ρhuj ) ∂( i=1 ui τij + qj ) = 0. − + ∂t ∂xj ∂xj d
(9.21)
j=1
Le variabili hanno il seguente significato: u = (u1 , . . . , ud )T è il vettore delle velocità, ρ la densità, p la pressione, ei + 12 |u|2 l’energia totale per unità di massa, pari alla
294
9 Cenni a problemi iperbolici non lineari
somma dell’energia interna ei e dell’energia cinetica del fluido, h = e+p/ρ l’entalpia totale per unità di massa, q il flusso termico e infine ∂uj ∂ui τij = μ − 23 δij divu + ∂xi ∂xj il tensore degli sforzi (essendo μ la viscosità molecolare del fluido). Le equazioni del sistema precedente descrivono la conservazione della massa, del momento e dell’energia, rispettivamente. Per completare il sistema è necessario assegnare una legge che leghi e alle variabili ρ, p, u, del tipo e = Φ(ρ, p, u). Tale legge viene normalmente derivata dalle equazioni di stato del fluido in esame. In particolare le equazioni di stato del gas ideale p = ρRT,
ei = Cv T,
dove R = Cp − Cv è la costante del gas e T la temperatura, forniscono e=
p 1 + |u|2, ρ(γ − 1) 2
dove γ = Cp/Cv è il rapporto tra i calori specifici a pressione ed a volume costante, rispettivamente. Il flusso termico q viene usualmente legato al gradiente di temperatura tramite la legge di Fick q = −κ∇T = −
κ 1 ∇(e − |u|2), Cv 2
essendo κ la conducibilità termica del fluido in esame. Se μ = 0 e κ = 0, si ottengono le equazioni di Eulero per fluidi non viscosi. Il lettore interessato può trovarle in testi specializzati di fluidodinamica oppure nella teoria dei sistemi iperbolici non lineari, quali per esempio [Hir88] o [GR96]. Tali equazioni possono essere scritte in forma compatta nel seguente modo ∂w + DivF (w) = 0, ∂t
(9.22)
essendo w = (ρ, ρu, ρe)T il vettore delle cosiddette variabili conservate. La matrice dei flussi F (w), funzione non lineare di w, si può ottenere dalle (9.21). Ad esempio, se d = 2, abbiamo ⎡ ⎤ ρu1 ρu2 ⎢ρu2 + p ρu1 u2 ⎥ 1 ⎥ F (w) = ⎢ ⎣ ρu1 u2 ρu22 + p⎦ . ρhu1 ρhu2
9.4 Sistemi iperbolici non-lineari
295
Infine si è indicato con Div l’operatore di divergenza di un tensore: se τ è un tensore di componenti (τij ), la sua divergenza è un vettore di componenti (Div(τ ))k =
d " ∂ (τkj ) , ∂x j j=1
k = 1, ..., d.
(9.23)
La (9.22) è detta forma conservativa delle equazioni di Eulero. Infatti integrandola su una qualsiasi regione Ω ⊂ Rd ed usando il teorema di Gauss si ottiene d w dΩ + F (w) · n dγ = 0. dt ∂Ω Ω
Ciò si interpreta dicendo che la variazione nel tempo di w in Ω è bilanciata dalla variazione dei flussi attraverso la frontiera di Ω. La (9.22) è pertanto una legge di conservazione. Le equazioni di Navier-Stokes possono essere scritte anch’esse in forma conservativa come segue ∂w + DivF (w) = DivG(w), ∂t dove G(w) sono i cosiddetti flussi viscosi. Sempre nel caso d = 2 essi sono dati da ⎡ ⎤ 0 0 ⎢ ⎥ τ11 τ12 ⎥ G(w) = ⎢ ⎣ ⎦ τ21 τ22 ρhu1 + u · τ1 + q1 ρhu2 + u · τ2 + q2 dove τ1 = (τ11 , τ21 )T e τ2 = (τ12 , τ22)T . Riscriviamo ora il sistema (9.22) nella forma ∂w " ∂Fi (w) ∂w = 0. + ∂t ∂w ∂xi d
(9.24)
i=1
Essa è un caso particolare di problema della forma seguente ∂w " ∂w Ai (w) = 0, + ∂t ∂xi d
(9.25)
i=1
!d detta forma quasi-lineare. Se la matrice Aα (w) = i=1 αi Ai (w) è diagonalizzabile per tutti i valori reali di {α1 , . . . , αd} ed i suoi autovalori sono reali e distinti, allora il sistema (9.25) è strettamente iperbolico. Esempio 9.6 Un semplice esempio di problema strettamente iperbolico è fornito dal cosiddetto sistema p: ∂u ∂v − = 0, ∂t ∂x ∂u ∂ + p(v) = 0 . ∂t ∂x
296
9 Cenni a problemi iperbolici non lineari
Se p (v) < 0, i due autovalori della matrice jacobiana 0 −1 A(w) = p (v) 0 sono λ1 (v) = −
−p (v) < 0 < λ2 (v) = + −p (v) .
Esempio 9.7 Per il sistema di Eulero monodimensionale (ovvero con d = 1) si ha: w = T (ρ, ρu, e)T e F (w) = (ρu, ρu2 + p, u(e + p)) . Gli autovalori della matrice A1 (w) del p sistema sono u − c, u, u + c dove c = γ è la velocità del suono. Essendo u, c ∈ R, gli ρ autovalori sono reali e distinti e quindi il sistema di Eulero monodimensionale è strettamente iperbolico.
Si possono estendere al caso dei sistemi le considerazioni fatte sulle discontinuità della soluzione nel caso scalare, introducendo anche qui il concetto di soluzione debole. In particolare, anche in questo caso, si ha un’unica soluzione debole entropica. La condizione di entropia può essere estesa nel caso di sistemi, usando per esempio quella proposta da Lax. Osserviamo che nel caso del sistema monodimensionale (9.22) le condizioni di salto di Rankine-Hugoniot si scrivono nella forma F (w+ ) − F (w− ) = σ(w+ − w− ), essendo w± i due stati costanti che rappresentano i valori delle incognite attraverso la discontinuità e σ rappresenta ancora la velocità con cui si propaga la discontinuità. Usando il teorema fondamentale del calcolo, tale relazione si scrive nella forma 1 σ(w+ − w− ) = DF (θw+ + (1 − θ)w− ) · (w+ − w− )dθ 0
=
A(w− , w+ ) · (w+ − w− ),
(9.26)
dove la matrice A(w− , w+ ) =
1
DF (θw+ + (1 − θ)w− ) dθ
0
rappresenta il valor medio dello Jacobiano di F (indicato con DF ) lungo il segmento che congiunge w− con w+ . La relazione (9.26) mostra che, in ogni punto di salto, la differenza tra gli stati destro e sinistro w+ − w− è un autovettore della matrice A(w− , w+ ), mentre la velocità del salto σ coincide con il corrispondente autovalore λ = λ(w− , w+ ). Chiamando λi (w) l’i−esimo autovalore della matrice A(w) = DF (w), la condizione di ammissibilità di Lax richiede che λi (w+ ) ≤ σ ≤ λi (w− )
per ogni i.
9.4 Sistemi iperbolici non-lineari
297
Intuitivamente, ciò significa che per uno shock della i−esima famiglia, la velocità a cui esso viaggia deve essere maggiore della velocità λi (w+ ) delle onde immediatamente di fronte allo shock e minore della velocità λi (w− ) delle onde dietro lo shock. Nel caso di sistemi iperbolici di m equazioni (m > 1), l’entropia η e il flusso associato Ψ sono ancora delle funzioni scalari e la relazione (9.5) diventa ∇Ψ (u) =
dF (u) · ∇η(u), du
(9.27)
che rappresenta un sistema di m equazioni e 2 incognite (η e Ψ ). Se m > 2 tale sistema può non avere soluzioni. Osservazione 9.2 Nel caso delle equazioni di Eulero, la funzione entropia esiste anche nel caso m = 3. •
10 Le equazioni di Navier-Stokes
Le equazioni di Navier-Stokes descrivono il moto di un fluido con densità ρ costante in un dominio Ω ⊂ Rd (con d = 2, 3). Esse si scrivono nella seguente forma ⎧ ⎨ ∂u − div ν +∇u + ∇uT , + (u · ∇)u + ∇p = f , x ∈ Ω, t > 0, ∂t (10.1) ⎩ divu = 0, x ∈ Ω, t > 0, essendo u la velocità del fluido, ρ la densità, p la pressione divisa per la densità (che in questo capitolo chiameremo semplicemente “pressione”), ν = μρ la viscosità cinematica, μ la viscosità dinamica e f è un termine forzante per unità di massa che si suppone appartenere allo spazio L2 (R+ ; [L2 (Ω)]d ) (si veda la Sez. 6.2). La prima equazione del sistema è l’equazione di bilancio della quantità di moto, la seconda è l’equazione di conservazione della massa, detta anche equazione di continuità. Il termine (u · ∇)u descrive il processo di trasporto convettivo, mentre −div ν(∇u + ∇uT ) descrive il processo di diffusione molecolare. Il sistema (10.1) può essere ottenuto dalle analoghe equazioni per fluidi comprimibili introdotte nel Cap. 9 supponendo ρ costante, utilizzando l’equazione di continuità (che ora è divenuta semplicemente divu = 0) per semplificare i vari termini e quindi dividendo le equazioni per ρ. Si noti come, a differenza del caso comprimibile, non appaia in (10.2) una equazione per l’energia. Infatti, anche se in principio è possibile scrivere una tale equazione anche per i fluidi incomprimibili, essa può essere completamente risolta una volta calcolato il campo di velocità tramite il sistema (10.1). Nel caso in cui ν è costante, usando l’equazione di continuità, otteniamo div ν(∇u + ∇uT ) = ν (Δu + ∇divu) = νΔu e il sistema (10.1) si può scrivere nella forma più compatta ⎧ ⎨ ∂u − νΔu + (u · ∇)u + ∇p = f , x ∈ Ω, t > 0, ∂t ⎩ divu = 0, x ∈ Ω, t > 0, che è quella che considereremo nel resto del capitolo. A. Quarteroni: Modellistica numerica per problemi differenziali, 4a edizione c Springer-Verlag Italia, Milano 2008
(10.2)
300
10 Le equazioni di Navier-Stokes
Le equazioni (10.2) sono spesso chiamate equazioni di Navier-Stokes incomprimibili. Più in generale, sono detti fluidi incomprimibili quelli che soddisfano la condizione di incomprimibilità divu = 0. Il moto di fluidi a densità costante soddisfa necessariamente tale condizione, tuttavia si possono avere flussi incomprimibili a densità variabile (per esempio i cosiddetti flussi stratificati), che sono governati da un diverso sistema di equazioni, dove la densità ρ appare esplicitamente. Affronteremo questo caso nella Sez. 10.9 Affinché il problema (10.2) sia ben posto è necessario assegnare delle condizioni iniziali u(x, 0) = u0 (x) ∀x ∈ Ω, (10.3) unitamente a delle condizioni al contorno, per esempio, ∀t > 0, ⎧ u(x, t) = ϕ(x, t) ∀x ∈ ΓD , ⎪ ⎪ ⎨ ∂u ⎪ ⎪ ⎩ ν − pn (x, t) = ψ(x, t) ∀x ∈ ΓN , ∂n
(10.4)
dove u0 , ϕ e ψ sono funzioni vettoriali assegnate, mentre ΓD e ΓN sono porzioni ◦
◦
della frontiera ∂Ω di Ω tali che ΓD ∪ ΓN = ∂Ω, ΓD ∩ ΓN = ∅ e n è il versore normale uscente a ∂Ω. Nel caso si utilizzino le equazioni nella forma (10.1), la seconda equazione in (10.4) deve essere sostituita da , 1 + T ν ∇u + ∇u · n − pn (x, t) = ψ(x, t) ∀x ∈ ΓN . 2 Se indichiamo con ui , i = 1, . . . , d le componenti del vettore u rispetto ad un sistema di riferimento cartesiano e con fi quelle del vettore f, il sistema (10.2) può essere riscritto in funzione delle singole componenti come ⎧ d ⎪ " ∂ui ⎪ ∂ui ∂p ⎪ ⎪ − νΔu + uj + = fi , i = 1, . . . , d, i ⎪ ⎨ ∂t ∂x ∂x j i j=1 d " ⎪ ∂uj ⎪ ⎪ ⎪ = 0. ⎪ ⎩ ∂xj j=1
Nel caso bidimensionale, le equazioni di Navier-Stokes con le condizioni al contorno indicate danno luogo a problemi ben posti in senso classico, ovvero hanno soluzioni dotate di derivate continue, e non sviluppano singolarità in tempo se il dato iniziale è regolare. Le cose cambiano nel caso tridimensionale, in cui esistenza ed unicità di soluzioni in senso classico sono state dimostrate solo per tempi piccoli. Nella sezione seguente introdurremo la formulazione debole del problema di Navier-Stokes: in questo caso è possibile dimostrare un risultato di esistenza globale (per ogni intervallo temporale). Resta tuttavia aperto il problema dell’unicità (legato peraltro al problema della regolarità), indubbiamente il problema centrale della teoria delle equazioni di Navier-Stokes.
10.1 Formulazione debole delle equazioni di Navier-Stokes
301
Osservazione 10.1 Abbiamo scritto le equazioni di Navier-Stokes in termini delle cosiddette variabili primitive u e p. Altre variabili possono tuttavia essere utilizzate. Per esempio nel caso bidimensionale si adottano spesso la vorticità ω e la funzione corrente ψ, che sono legate alla velocità dalle relazioni ⎡ ⎤ ∂ψ ⎢ ∂x2 ⎥ ∂u2 ∂u1 ⎥. ω = rotu = − , u=⎢ ⎣ ∂ψ ⎦ ∂x1 ∂x2 − ∂x1 Le diverse formulazioni sono equivalenti dal punto di vista matematico, pur dando origine a metodi di approssimazione fra loro differenti. Per ulteriori dettagli si veda ad esempio [Qua93]. •
10.1 Formulazione debole delle equazioni di Navier-Stokes Al fine di ottenere una formulazione debole del problema (10.2)-(10.4), procediamo formalmente e moltiplichiamo la prima delle (10.2) per una funzione test v, appartenente ad un opportuno spazio V che poi specificheremo, ed integriamola su Ω: ∂u · v dΩ − νΔu · v dΩ + [(u · ∇)u] · v dΩ + ∇p · vdΩ = f · vdΩ. ∂t Ω
Ω
Ω
Ω
Ω
Utilizzando la formula di Green si trova ∂u · v dγ, − νΔu · v dΩ = ν∇u · ∇v dΩ − ν ∂n ∂Ω Ω Ω ∇p · v dΩ = − pdivv dΩ + pv · n dγ. Ω
Ω
∂Ω
Sostituendo queste relazioni nella prima delle (10.2), si trova ∂u · v dΩ + ν∇u · ∇v dΩ + [(u · ∇)u] · v dΩ − pdivv dΩ ∂t Ω Ω Ω Ω ∂u ν = f · v dΩ + − pn · v dγ ∀v ∈ V. ∂n Ω
(10.5)
∂Ω
Analogamente possiamo moltiplicare la seconda delle (10.2) per una funzione test q, appartenente allo spazio Q (da specificare) a cui appartiene anche l’incognita p; integrando su Ω si ottiene qdivu dΩ = 0 ∀q ∈ Q. (10.6) Ω
302
10 Le equazioni di Navier-Stokes
Come d’abitudine sceglieremo V in modo che le funzioni test si annullino sulla porzione del bordo dove la soluzione è nota V = [H1ΓD (Ω)]d = {v ∈ [H1 (Ω)]d : v|ΓD = 0}.
(10.7)
Esso coinciderà con [H10 (Ω)]d se ΓD = ∂Ω. Supponiamo che ΓN = ∅. Allora possiamo scegliere Q = L2 (Ω). Cercheremo inoltre, per ogni t > 0, u(t) ∈ [H1 (Ω)]d , con u(t) = ϕ(t) su ΓD , u(0) = u0 e p(t) ∈ Q. Con tale scelta di spazi si osservi innanzitutto che ∂u − pn) · vdγ = ψ · vdγ ∀v ∈ V . (ν ∂n ∂Ω
ΓN
Inoltre, tutti i termini lineari sono ben definiti. Precisamente, usando la notazione vettoriale Hk (Ω) = [Hk (Ω)]d , Lp (Ω) = [Lp (Ω)]d , k ≥ 1, 1 ≤ p < ∞, abbiamo: ν ∇u · ∇v ≤ ν|u|H1(Ω) |v|H1(Ω) , Ω
pdivvdΩ ≤ pL2(Ω) |v|H1(Ω) , Ω
q∇udΩ ≤ qL2(Ω) |u|H1(Ω) . Ω
Per ogni funzione v ∈ H1 (Ω), indichiamo con d " vk 2H1(Ω) )1/2 vH1 (Ω) = ( k=1
la sua norma e con |v|H1(Ω) =
d +"
|vk |2H1(Ω)
,1/2
k=1
la sua seminorma. Grazie alla disuguaglianza di Poincaré, |v|H1(Ω) è equivalente alla norma vH1 (Ω) per ogni funzione di V . Significato analogo avrà la notazione vLp (Ω) , 1 ≤ p < ∞. Useremo gli stessi simboli anche nel caso di funzioni tensoriali. Per quanto concerne il termine non lineare, iniziamo con l’osservare che vale il seguente risultato (si veda la sez. A.5 e [Ada75]): se d ≤ 3, ∃C > 0 t.c. ∀v ∈ H1 (Ω) allora v ∈ L4 (Ω) ed inoltre vL4 (Ω) ≤ CvH1(Ω) . Usando inoltre la seguente disuguaglianza di Hölder a tre fattori fgh dΩ ≤ fLp (Ω) gLq (Ω) hLr(Ω) , Ω
10.1 Formulazione debole delle equazioni di Navier-Stokes
303
valida per p, q, r > 1 tali che p−1 + q −1 + r −1 = 1, troviamo [(u · ∇)u] · v dΩ ≤ ∇uL2 (Ω) uL4(Ω) vL4 (Ω) ≤ C 2 u2H1(Ω) vH1 (Ω) . Ω
Dunque l’integrale esiste finito dato che le singole norme sono limitate. Per quanto riguarda l’unicità della soluzione, torniamo a considerare le equazioni di Navier-Stokes nella forma forte (10.2) (analoghe considerazioni varrebbero anche per le equazioni scritte nella forma (10.5), (10.6)). Se ΓD = ∂Ω, ovvero se si considerano solo condizioni di Dirichlet, si può notare che la pressione compare sempre sotto segno di derivata; questo vuol dire che se (u, p) è soluzione delle (10.2), lo è anche (u, p + c), dove c è una qualsiasi costante, dato che ∇(p + c) = ∇p. Per evitare tale indeterminazione possiamo fissare il valore di p in un punto x0 del dominio di risoluzione, ossia porre p(x0 ) = p0 , oppure, alternativamente, imporre che il valore medio della pressione sia nullo (p, 1) =
p dΩ = 0. Ω
La prima condizione è in generale non consistente con il problema: infatti, se p ∈ L2 (Ω) essa non è necessariamente continua e non ha quindi senso riferirsi a valori puntuali di p. (Sarà però possibile farlo per la formulazione numerica.) La seconda è invece consistente con la formulazione; prenderemo perciò Q = L20 (Ω) = {p ∈ L2 (Ω) : (p, 1) = 0}. Vogliamo anche osservare che nel caso in cui ΓD = ∂Ω, il dato al bordo ϕ dovrà essere compatibile con il vincolo di incomprimibilità, ovvero
ϕ · n dγ =
∂Ω
divu dΩ = 0. Ω
Nel caso invece in cui la frontiera ΓN non sia vuota, ovvero si considerino anche condizioni al bordo di tipo Neumann (o miste), non si avranno, a priori, problemi di indeterminazione della pressione, per via della condizione su ΓN in cui p non compare più sotto il segno di derivata. In tal caso si prenderà Q = L2 (Ω). In definitiva, da ora in poi sarà sottointeso che Q = L2 (Ω)
se
ΓN = ∅,
Q = L20 (Ω)
se ΓN = ∅.
(10.8)
304
10 Le equazioni di Navier-Stokes
La formulazione debole delle equazioni (10.2), (10.3), (10.4) è pertanto: trovare u ∈ L2 (R+ ; [H1(Ω)]d ) ∩ C 0 (R+ ; [L2(Ω)]d ), p ∈ L2 (R+ ; Q) tale che ⎧ ∂u ⎪ ⎪ ⎪ · v dΩ + ν ∇u · ∇v dΩ + [(u · ∇)u] · v dΩ − p divv dΩ ⎪ ⎪ ∂t ⎪ ⎪ ⎪ Ω Ω Ω ⎪ Ω ⎪ ⎨ = f · v dΩ + ψ · vdγ ∀v ∈ V, ⎪ ⎪ Ω ΓN ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ q divudΩ = 0 ∀q ∈ Q, ⎪ ⎩ Ω
(10.9) con u|ΓD = ϕD e u|t=0 = u0 . Si è scelto V come in (10.7) e Q = L2 (Ω) se ΓN = ∅, Q = L20 (Ω) se ΓN = ∅. Come già osservato tale problema ha esistenza di soluzioni sia per d = 2 che per d = 3, mentre l’unicità si dimostra solo per d = 2, nell’ipotesi di dati sufficientemente piccoli. Per un’approfondita analisi matematica di questi aspetti il lettore può fare riferimento a [Sal08]. Definiamo ora il numero di Reynolds come Re =
|U|L , ν
dove L è una lunghezza caratteristica del dominio Ω (ad esempio la lunghezza del canale entro cui si studia il moto di un fluido) ed U una velocità caratteristica del fluido. Il numero di Reynolds è una misura di quanto il trasporto domina sulla componente diffusiva del fenomeno. Se Re 0 (eventualmente dipendente da h) tale che a(vh , vh ) ≥ αvh 2V
∀vh ∈ Vh∗ ,
ove Vh∗ = {vh ∈ Vh : b(vh , qh ) = 0 ∀qh ∈ Qh };
10.2 Le equazioni di Stokes e la loro approssimazione
309
b) continua, ossia ∃γ > 0 tale che |a(vh , uh)| ≤ γvh V uh V
∀vh , uh ∈ Vh .
2. La forma bilineare b(·, ·) è continua, ossia ∃δ > 0 tale che |b(vh , qh )| ≤ δvh V qhQ
∀vh ∈ Vh , qh ∈ Qh .
3. Infine, esiste una costante positiva β (eventualmente dipendente da h) tale che ∀qh ∈ Qh , ∃vh ∈ Vh : b(vh , qh ) ≥ βvh H1 (Ω) qhL2 (Ω) .
(10.19)
Sotto le ipotesi precedenti valgono inoltre le seguenti stime a priori sulla soluzione numerica: 1 f V , α γ 1 ph Q ≤ 1+ f V , β α
uh V ≤
dove V denota al solito lo spazio duale di V . Inoltre, valgono i seguenti risultati di convergenza: γ γ δ u − uh V ≤ 1 + 1+ inf u − vh V + inf p − qh Q , β α vh ∈Vh α qh ∈Qh γ γ 1+ inf u − vh V p − ph Q ≤ β α vh ∈Vh δ δγ inf p − qh Q . + 1+ + β αβ qh ∈Qh
Osserviamo che la condizione (10.19) equivale ad assumere che esiste una costante positiva β tale che b(vh , qh ) ≥ β, qh ∈Qh ,qh =0vh ∈Vh ,vh =0 vh H1 (Ω) qh L2(Ω) inf
sup
(10.20)
ed è per questo nota anche come condizione inf-sup. La dimostrazione di questo teorema richiede l’uso di risultati non elementari di analisi funzionale. La presenteremo nella Sez. 10.3 per un problema di punto-sella che si riscontra in ambiti assai più generali delle equazioni di Stokes. In questa prospettiva il Teorema 10.3 può essere considerato come un caso particolare dei Teoremi 10.5 e 10.6. Il lettore non interessato (o meno sensibile) agli aspetti teorici può saltare senza danni apparenti direttamente alla Sez. 10.4.
310
10 Le equazioni di Navier-Stokes
10.3 Problemi di punto-sella Obiettivo di questa sezione è lo studio dei problemi (10.14) e (10.18) e la dimostrazione di un risultato di convergenza della soluzione del problema (10.18) a quella del problema (10.14). A tal fine, caleremo tali formulazioni in una cornice più astratta che ci permetterà così di applicare la teoria proposta in [Bre74], [Bab71].
10.3.1 Formulazione del problema Siano X ed M due spazi di Hilbert muniti, rispettivamente, delle norme ·X e ·M . Indicati con X ed M i corrispondenti spazi duali (ovvero gli spazi dei funzionali lineari e continui definiti, rispettivamente, su X ed M ), introduciamo le forme bilineari a(·, ·) : X × X −→ R e b(·, ·) : X × M −→ R che supponiamo continue, ovvero tali che esistano γ, δ > 0: |a(w, v)| ≤ γ wX vX ,
|b(w, μ)| ≤ δ wX μM ,
per ogni w, v ∈ X e μ ∈ M . Consideriamo ora il seguente problema vincolato: trovare (u, η) ∈ X × M tali che a(u, v) + b(v, η) = l, v ∀v ∈ X, b(u, μ) = σ, μ
∀μ ∈ M,
(10.21)
(10.22)
essendo l ∈ X e σ ∈ M due funzionali assegnati, mentre ·, · denota la dualità tra X e X o quella tra M e M . La formulazione (10.22) è sufficientemente generale da includere la formulazione (10.14) del problema di Stokes, quella di un generico problema vincolato rispetto alla forma bilineare a(·, ·) (η rappresenta il vincolo), o ancora la formulazione a cui si perviene quando si vogliano usare elementi finiti di tipo misto per problemi ai valori al bordo di diversa natura, come, ad esempio, quelli dell’elasticità lineare (si veda, ad esempio, [BF91], [QV94]). È utile riscrivere il problema (10.22) in forma operatoriale. A tal fine, associamo alle forme bilineari a(·, ·) e b(·, ·) gli operatori A ∈ L(X, X ) e B ∈ L(X, M ) definiti rispettivamente attraverso le relazioni Aw, v = a(w, v)
∀ w, v ∈ X,
Bv, μ = b(v, μ)
∀ v ∈ X, μ ∈ M,
dove la dualità è fra X e X nella prima relazione, fra M e M nella seconda; in accordo con le notazioni usate nella Sez. 3.4.3, con L(V, W ) indichiamo lo spazio dei funzionali lineari e continui da V a W . Sia ora B T ∈ L(M, X ) l’operatore aggiunto di B definito come B T μ, v = Bv, μ = b(v, μ)
∀ v ∈ X, μ ∈ M.
(10.23)
10.3 Problemi di punto-sella
311
La prima dualità è fra X e X, la seconda fra M e M . (Questo operatore, indicato con il simbolo B nella Sez. 3.6.1, si veda la definizione generale (3.99), viene qui denotato B T per uniformarci alla notazione usata classicamente nell’ambito dei problemi di punto-sella.) Possiamo allora riscrivere il problema (10.22) come: trovare (u, η) ∈ X × M tali che
Au + B T η = l
in X ,
Bu = σ
in M .
(10.24)
10.3.2 Analisi del problema Al fine di analizzare il problema (10.24), definiamo la varietà affine X σ = {v ∈ X : b(v, μ) = σ, μ ∀μ ∈ M }.
(10.25)
Osserviamo che lo spazio X 0 identifica il nucleo di B, ovvero X 0 = {v ∈ X : b(v, μ) = 0 ∀μ ∈ M } = ker(B), e che questo spazio è un sottospazio chiuso di X. Possiamo così associare al problema (10.22) il seguente problema ridotto trovare u ∈ X σ
t.c.
a(u, v) = l, v
∀ v ∈ X0.
(10.26)
È evidente che, se (u, η) è una soluzione di (10.22), allora u è soluzione anche di (10.26). Introdurremo nel seguito delle condizioni opportune in grado di garantire anche l’implicazione inversa e che la soluzione di (10.26) esista unica, costruendo, in tal modo, una soluzione per (10.22). Avremo bisogno di un risultato di equivalenza che coinvolge la forma bilineare b(·, ·) e l’operatore B. 0 Indichiamo con Xpolar l’insieme polare di X 0 , cioè 0 Xpolar = {g ∈ X : g, v = 0 ∀v ∈ X 0 }. 0 = (ker(B))polar . Lo Poiché X 0 = ker(B), possiamo anche scrivere che Xpolar 0 0 ⊥ spazio X è somma diretta di X e del suo ortogonale (X ) ,
X = X 0 ⊕ (X 0 )⊥ . Una rappresentazione pittorica di questi spazi è data in Fig. 10.1. Dal momento che, in generale, ker(B) non è vuoto, non possiamo dire che B sia un isomorfismo tra X e M . Si vuol dunque introdurre una condizione che è equivalente ad affermare che B è un isomorfismo tra (X 0 )⊥ ed M (e, analogamente, B T è un isomorfismo tra M e 0 Xpolar ).
312
10 Le equazioni di Navier-Stokes X
X X 0 = KerB
0 Xpolar
(X 0 )⊥ B
A
B
BT
M
BT
M
0 Figura 10.1. Gli spazi X ed M , i duali X ed M , i sottospazi X 0 , (X 0 )⊥ e Xpolar , gli operatori A, B e B T . Le linee tratteggiate indicano isomorfismi
Lemma 10.1 Le seguenti proprietà sono fra loro equivalenti: a. esiste una costante β ∗ > 0 tale che valga la seguente condizione di compatibilità ∀ μ ∈ M ∃v ∈ X, con v = 0, : b(v, μ) ≥ β ∗ vX μM ;
(10.27)
0 b. l’operatore B T è un isomorfismo tra M e Xpolar e vale la proprietà
B T μX =
B T μ, v ≥ β ∗ μM v∈V, v=0 vX sup
∀μ ∈ M ;
(10.28)
c. l’operatore B è un isomorfismo tra (X 0 )⊥ ed M e vale la proprietà BvM =
sup μ∈M, μ=0
Bv, μ ≥ β ∗ vX μM
∀v ∈ (X 0 )⊥ .
(10.29)
Dimostrazione. Dimostriamo innanzitutto che a. e b. sono equivalenti. Dalla definizione (10.23) di B T è evidente che le disuguaglianze (10.27) e (10.28) coincidono. 0 Resta quindi da verificare che B T è un isomorfismo tra M e Xpolar . Dalla relazione T (10.28) segue che B è un operatore iniettivo da M nella sua immagine R(B T ), con inverso continuo. Ne segue dunque che R(B T ) è un sottospazio chiuso di X . 0 Rimane da verificare che R(B T ) = Xpolar . Utilizzando il seguente risultato, noto come teorema dell’immagine chiusa (si veda, ad esempio, [Yos74]), R(B T ) = (ker(B))polar , 0 otteniamo che R(B T ) = Xpolar , che è quanto desiderato.
10.3 Problemi di punto-sella
313
0 Proviamo ora che b. e c. sono equivalenti. Verifichiamo innanzitutto che Xpolar può essere identificato con il duale dello spazio (X 0 )⊥ . Infatti, ad ogni g ∈ ((X 0 )⊥ ) , possiamo associare un funzionale gˆ ∈ X che soddisfa la relazione
ˆ g, v = g, P ⊥v
∀v ∈ X,
dove P ⊥ denota la proiezione ortogonale di X sullo spazio (X 0 )⊥ , ovvero ∀v ∈ X,
P ⊥ v ∈ (X 0 )⊥ : (P ⊥ v − v, w)X = 0 ∀w ∈ (X 0 )⊥ .
0 Chiaramente gˆ ∈ Xpolar e si può verificare che g −→ gˆ è un’isometria tra ((X 0 )⊥ ) 0 e Xpolar . Di conseguenza, B T è un isomorfismo tra M e ((X 0 )⊥ ) soddisfacente la relazione 1 0 (B T )−1 L(Xpolar ,M ) ≤ ∗ β
se e solo se B è un isomorfismo tra (X 0 )⊥ e M che soddisfa la relazione B −1 L(M ,(X 0 )⊥ ) ≤
1 . β∗
Questo completa la dimostrazione.
Possiamo a questo punto fornire un risultato di esistenza, unicità e dipendenza continua dai dati per la soluzione del problema (10.22). Teorema 10.4 Supponiamo che la forma bilineare a(·, ·) soddisfi la (10.21) e che sia coerciva sullo spazio X 0 , cioè esista una costante α > 0 tale che a(v, v) ≥ αv2X
∀v ∈ X 0 .
(10.30)
Supponiamo inoltre che la forma bilineare b(·, ·) soddisfi la (10.21) e la condizione di compatibilità (10.27). Allora, per ogni l ∈ X e σ ∈ M , esiste un’unica soluzione u del problema (10.26) ed un’unica funzione η ∈ M tale che (u, η) sia l’unica soluzione del problema (10.22). Inoltre la mappa (l, σ) −→ (u, η) è un isomorfismo fra X × M e X × M e valgono le seguenti stime a priori: 1 α+γ , lX + uX ≤ (10.31) σ M α β∗ ηM ≤
γ 1 γ(α + γ) lX + 1+ σM , ∗ ∗ β α αβ
(10.32)
essendo α, β ∗ e γ definite, rispettivamente, dalla (10.30), (10.27) e (10.21) e dove · X e · M denotano le norme degli spazi duali definite come in (10.28) e (10.29).
314
10 Le equazioni di Navier-Stokes
Dimostrazione. L’unicità della soluzione del problema (10.26) è una diretta conseguenza dell’ipotesi di coercività (10.30). Dimostriamone ora l’esistenza. Avendo supposto soddisfatta la relazione (10.27), possiamo affermare, in virtù dell’equivalenza dimostrata nel Lemma 10.1, ed in particolare di quanto affermato al punto c., che esiste un’unica funzione uσ ∈ (X 0 )⊥ tale che Buσ = σ, ed inoltre uσ X ≤
1 σM . β∗
(10.33)
Il problema (10.26) può così esser riformulato: trovare
u 6 ∈ X0
t.c.
a(6 u, v) = l, v − a(uσ , v)
∀ v ∈ X0,
(10.34)
essendo la soluzione u del problema (10.26) identificata dalla relazione u = u 6+ uσ . L’esistenza e l’unicità della soluzione u 6 del problema (10.34) è a questo punto assicurata dal Lemma di Lax-Milgram, insieme alla stima a priori 6 uX ≤
, 1+ lX + γuσ X , α
ovvero, grazie alla (10.33), 6 uX ≤
, 1+ γ lX + ∗ σM . α β
(10.35)
L’unicità della soluzione u del problema (10.22) è dunque una diretta conseguenza dell’unicità delle funzioni u 6 ∈ X 0 ed uσ ∈ (X 0 )⊥ , mentre la stima di stabilità (10.31) segue dalla (10.35) combinata ancora con la (10.33). Occupiamoci ora della componente η della soluzione. Torniamo dunque al problema (10.22). Poiché la formulazione (10.34) può essere riscritta nella forma Au − l, v = 0 ∀v ∈ X 0 , 0 ne segue che (Au − l) ∈ Xpolar . Possiamo così sfruttare il punto b. del Lemma 10.1 ed affermare che esiste un’unica funzione η ∈ M tale che Au − l = −B T η, cioè tale che (u, η) sia una soluzione del problema (10.22) soddisfacente la stima
ηM ≤
1 Au − lX . β∗
(10.36)
Abbiamo inoltre già osservato che ogni soluzione (u, η) di (10.22) fornisce una soluzione u del problema (10.26): da ciò segue immediatamente l’unicità della soluzione per il problema (10.22). Infine la stima a priori (10.32) discende dalla (10.36), osservando che 1 ηM ≤ ∗ AL(X,X ) uX + lX β ed utilizzando la stima a priori (10.31) già dimostrata per la funzione u.
10.3 Problemi di punto-sella
315
10.3.3 Approssimazione con il metodo di Galerkin ed analisi di stabilità e convergenza Introduciamo ora l’approssimazione di Galerkin del problema astratto (10.22). Indichiamo con Xh ed Mh due sottospazi di dimensione finita degli spazi X ed M , rispettivamente. Essi possono essere spazi di elementi finiti, oppure spazi polinomiali (su un singolo dominio o su partizioni in sotto-elementi) quali quelli che si usano nei metodi spettrali o in quelli agli elementi spettrali. Siamo interessati a trovare una soluzione per il seguente problema: dati l ∈ X e σ ∈ M , trovare (uh , ηh ) ∈ Xh × Mh tali che
a(uh , vh ) + b(vh , ηh ) = l, vh
∀vh ∈ Xh ,
b(uh , μh ) = σ, μh
∀μh ∈ Mh .
(10.37)
Analogamente a quanto fatto nel caso del problema continuo, possiamo definire lo spazio Xhσ = {vh ∈ Xh : b(vh , μh ) = σ, μh ∀μh ∈ Mh }
(10.38)
che ci permette di introdurre la seguente versione finito-dimensionale della formulazione ridotta (10.26) trovare uh ∈ Xhσ
t.c.
a(uh , vh ) = l, vh
∀ vh ∈ Xh0 .
(10.39)
Lo spazio (10.38) non è necessariamente un sottospazio di X σ essendo, in generale, Mh un sottospazio proprio di M . Inoltre è evidente che ogni soluzione (uh , ηh ) del problema (10.37) fornisce una soluzione uh del problema ridotto (10.39). Quello che ci proponiamo di fare nel seguito di questa sezione è di fornire condizioni opportune in grado di garantire l’implicazione inversa insieme ad un risultato di stabilità e di convergenza per la soluzione (uh , ηh ) del problema (10.37). Partiamo dal risultato di stabilità, fornendo la controparte discreta del Teorema 10.4. Teorema 10.5 (Esistenza, unicità, stabilità) Supponiamo che la forma bilineare a(·, ·) soddisfi la (10.21) e che sia coerciva sullo spazio Xh0 , cioè esista una costante αh > 0 tale che a(vh , vh ) ≥ αh vh 2X
∀vh ∈ Xh0 .
(10.40)
Supponiamo inoltre che la forma bilineare b(·, ·) soddisfi la (10.21) e la seguente condizione di compatibilità nel discreto: esiste una costante βh > 0 tale che ∀ μh ∈ Mh ∃vh ∈ Xh , vh = 0 : b(vh , μh ) ≥ βh vh X μh M .
(10.41)
316
10 Le equazioni di Navier-Stokes
Allora, per ogni l ∈ X e σ ∈ M , esiste un’unica soluzione (uh , ηh ) del problema (10.37) che soddisfa le seguenti stime di stabilità: uh X ≤ ηh M ≤
1 αh + γ lX + σM , αh βh
γ 1 γ(αh + γ) 1+ lX + σM . βh αh αh βh
(10.42) (10.43)
Dimostrazione. Si ottiene ripercorrendo la dimostrazione del Teorema 10.4 considerando Xh al posto di X, Mh al posto di M ed osservando semplicemente che lXh ≤ lX , σMh ≤ σM . Osserviamo che la relazione di coercività (10.30) non necessariamente garantisce la (10.40) in quanto Xh0 ⊂ X 0 , così come la condizione di compatibilità (10.27) non implica, in generale, la (10.41), essendo Xh un sottospazio proprio di X. Inoltre, nel caso in cui entrambe le costanti αh e βh in (10.40) e (10.41) risultino indipendenti da h, le disuguaglianze (10.42) e (10.43) ci forniscono il risultato di stabilità desiderato. La condizione (10.41) è la ben nota condizione inf-sup o condizione LBB (si veda [BF91]). Ricordiamo che la (10.19) (o (10.20)) ne costituisce un caso particolare. Passiamo ora all’analisi di convergenza formulata nel seguente Teorema 10.6 (Convergenza) Supponiamo siano verificate le ipotesi dei Teoremi 10.4 e 10.5. Allora le soluzioni (u, η) e (uh , ηh) dei problemi (10.22) e (10.37), rispettivamente, soddisfano le seguenti stime dell’errore: γ u − uh X ≤ 1 + αh η − ηh M
inf u − vh∗ X +
∗ ∈X σ vh h
δ αh
inf η − μh M , (10.44)
μh ∈Mh
γ γ 1+ inf u − vh∗ X βh αh vh∗ ∈Xhσ δ γδ inf η − μh M , + 1+ + βh αh βh μh ∈Mh ≤
(10.45)
essendo γ, δ, αh e βh definite, rispettivamente, dalle relazioni (10.21), (10.40) e (10.41). Inoltre vale la seguente stima δ ∗ inf inf u − vh X . u − v ≤ 1 + X h ∗ ∈X σ vh βh vh ∈Xh h
(10.46)
Dimostrazione. Consideriamo vh ∈ Xh , vh∗ ∈ Xhσ e μh ∈ Mh . Sottraendo (10.37)1 da (10.22)1 ed aggiungendo e togliendo le quantità a(vh∗ , vh ) e b(vh , μh ) abbiamo a(uh − vh∗ , vh ) + b(vh , ηh − μh ) = a(u − vh∗ , vh ) + b(vh , η − μh ).
10.3 Problemi di punto-sella
317
Scegliamo ora vh = uh − vh∗ ∈ Xh0 . Grazie alla definizione dello spazio Xh0 e sfruttando la coercività (10.40) e le relazioni di continuità (10.21), arriviamo alla maggiorazione 1 uh − vh∗ X ≤ γ u − vh∗ X + δ η − μh M αh da cui segue immediatamente la stima (10.44), grazie al fatto che u − uh X ≤ u − vh∗ X + uh − vh∗ X . Proviamo ora la stima (10.45). Grazie alla condizione di compatibilità (10.41), per ogni μh ∈ Mh , possiamo scrivere che ηh − μh M ≤
1 βh
sup vh ∈Xh , vh =0
b(vh , ηh − μh ) . vh X
(10.47)
D’altro canto, sottraendo, membro a membro, la (10.37)2 dalla (10.22)2 , ed aggiungendo e togliendo la quantità b(vh , μh ), ricaviamo che b(vh , ηh − μh ) = a(u − uh , vh ) + b(vh , η − μh ). Utilizzando tale uguaglianza in (10.47) e le relazioni di continuità (10.21), ne segue 1 γ u − uh X + δη − μh M , ηh − μh M ≤ βh ovvero il risultato desiderato, sfruttata opportunamente la stima dell’errore (10.44) precedentemente derivata per la variabile u. Dimostriamo infine la (10.46). Per ogni vh ∈ Xh , grazie alla (10.41) e al Lemma 10.1 (applicato ora nei sottospazi di dimensione finita), esiste un’unica funzione zh ∈ (Xh0 )⊥ tale che b(zh , μh ) = b(u − vh , μh ) ∀μh ∈ Mh e inoltre zh X ≤
δ u − vh X . βh
Posto vh∗ = zh + vh , ne segue che vh∗ ∈ Xhσ , essendo b(u, μh) = σ, μh per ogni μh ∈ Mh . Inoltre δ u − vh∗ X ≤ u − vh X + zh X ≤ 1 + u − vh X , βh da cui segue la stima (10.46).
Osserviamo che le stime (10.44) e (10.45) garantiscono la convergenza ottimale a patto che le relazioni (10.40) e (10.41) valgano con costanti αh e βh limitate inferiormente da due costanti α e β indipendenti da h. Osserviamo inoltre che la stima dell’errore (10.44) vale anche se le condizioni di compatibilità (10.27) e (10.41) non son soddisfatte.
318
10 Le equazioni di Navier-Stokes
Osservazione 10.2 (Modi spuri di pressione) La condizione di compatibilità (10.41) è fondamentale per garantire l’unicità della soluzione ηh . Per verificarlo, osserviamo innanzitutto che da tale relazione segue che se
∃ μh ∈ Mh
b(vh , μh ) = 0
t.c.
∀vh ∈ Xh ,
allora μh = 0.
Supponiamo dunque che la condizione (10.41) non sia soddisfatta: allora esiste una funzione μ∗h ∈ Mh , μ∗h = 0, tale che b(vh , μ∗h ) = 0 ∀vh ∈ Xh . Di conseguenza, se (uh , ηh ) è una soluzione del problema (10.37), allora anche (uh , ηh + τ μ∗h ), per ogni τ ∈ R, è una soluzione dello stesso problema. L’elemento μ∗h è detto modo spurio e, più in particolare, modo spurio di pressione quando ci si riferisca al problema di Stokes (10.18) in cui le funzioni μh rappresentano delle pressioni discrete. Poiché il problema discreto (10.37) non è in grado di tenerne conto, ciò porta alla generazione di instabilità numeriche. •
10.4 Formulazione algebrica del problema di Stokes Vediamo ora la struttura del sistema lineare associato all’approssimazione di Galerkin (10.18) del problema di Stokes (o, più in generale, di un problema di punto-sella discreto della forma (10.37)). Indichiamo con {ϕj ∈ Vh }, {φk ∈ Qh }, le funzioni di base per gli spazi Vh e Qh , rispettivamente. Sviluppiamo le incognite uh e ph rispetto a tali basi ottenendo uh (x) =
N "
uj ϕj (x),
ph (x) =
j=1
M "
pk φk (x),
(10.48)
k=1
dove N = dimVh , M = dimQh . Scegliendo come funzioni test nelle (10.18) le stesse funzioni di base, si ottiene il seguente sistema lineare a blocchi AU + BT P = F, (10.49) BU = 0, dove A ∈ RN×N e B ∈ RM ×N sono le matrici relative rispettivamente alle forme bilineari a(·, ·) e b(·, ·), con elementi dati da A = [aij ] = [a(ϕj , ϕi )],
B = [bkm] = [b(ϕm , φk )],
mentre U e P sono i vettori delle incognite, U = [uj ], P = [pj ].
10.4 Formulazione algebrica del problema di Stokes
319
Poniamo
A BT
.
S= B
(10.50)
0
Questa matrice (N +M )×(N +M ) è simmetrica a blocchi (essendo A simmetrica) e non definita, in quanto si può verificare che ha autovalori reali, ma di segno variabile, alcuni positivi altri negativi. Naturalmente, condizione necessaria e sufficiente affinché il problema algebrico (10.49) ammetta un’unica soluzione è che non ve ne siano di nulli, ovvero che il determinante di S sia diverso da 0. Vediamo come questa proprietà discenda dalla condizione inf-sup (10.20). La matrice A è invertibile perché associata alla forma bilineare coerciva a(·, ·). Quindi, dalla prima delle (10.49), si può formalmente ricavare U come U = A−1 (F − BT P).
(10.51)
Sostituendo la (10.51) nella seconda equazione delle (10.49) si ottiene RP = BA−1 F,
ove
R = BA−1 BT .
(10.52)
Abbiamo, di fatto, eseguito una eliminazione gaussiana a blocchi sul sistema (10.50). Si ottiene così un sistema nella sola incognita P (la pressione), il quale ammette una ed una sola soluzione nel caso in cui la matrice R sia non singolare. Si può facilmente dimostrare che, essendo A non singolare e definita positiva, chiedere che R sia non singolare corrisponde a chiedere che il nucleo della matrice BT sia composto dal solo vettore nullo. A questo punto, se esiste unico il vettore P, per la non singolarità della matrice A esiste unico il vettore U soddisfacente la (10.51). Concludendo, il sistema algebrico (10.49) ammette un’unica soluzione (U, P) se, e solo se, kerBT = {0}. (10.53) Questa condizione algebrica è peraltro equivalente alla condizione inf-sup (10.20) (si veda l’Esercizio 1). Riprendiamo l’Osservazione 10.2 fatta per il problema generale di punto-sella, e supponiamo che la condizione inf-sup (10.20) non sia soddisfatta. In tal caso è facile vedere che ∃qh∗ ∈ Qh : b(vh , qh∗ ) = 0 ∀vh ∈ Vh . (10.54) Di conseguenza, se (uh , ph ) è una soluzione del problema di Stokes (10.18), anche (uh , ph + qh∗ ) lo sarà, in quanto a(uh , vh ) + b(vh , ph + qh∗ ) = a(uh , vh ) + b(vh , ph ) + b(vh , qh∗ ) = a(uh , vh ) + b(vh , ph ) = (f , vh )
∀vh ∈ Vh .
320
10 Le equazioni di Navier-Stokes
Le funzioni qh∗ che non verificano la condizione inf-sup sono “trasparenti” allo schema di Galerkin (10.18) e per questo, come già osservato in precedenza, vengono dette modi spuri di pressione o pressioni parassite. La loro presenza impedisce alla pressione di essere unica. Per questa ragione, gli spazi di elementi finiti che non soddisfano la (10.20) vengono detti instabili. Due sono le strategie generalmente seguite per ottenere elementi stabili, spesso anche detti elementi compatibili: - scegliere gli spazi Vh e Qh in modo che sia verificata la condizione inf-sup; - stabilizzare il problema (a priori o a posteriori), eliminando i modi spuri. Analizziamo il primo tipo di strategia e consideriamo dapprima il caso di approssimazioni agli elementi finiti. Per caratterizzare gli spazi Qh e Vh è sufficiente indicare i gradi di libertà per la velocità e per la pressione sui singoli elementi della triangolazione. Cominciamo con l’osservare che la formulazione debole considerata non richiede che la pressione sia necessariamente continua. Consideriamo dunque dapprima il caso di pressioni discontinue. Essendo le equazioni di Stokes del prim’ordine in p e del secondo ordine in u, in generale è sensato utilizzare polinomi di grado k ≥ 1 per lo spazio Vh e di grado k − 1 per lo spazio Qh . In particolare, supponiamo di impiegare elementi finiti P1 per le componenti della velocità e di tipo P0 per la pressione (si veda la Fig. 10.2 nella quale, ed in quelle che seguiranno, con il simbolo 2 si sono indicati i gradi di libertà per la pressione e con il simbolo • quelli per la velocità). Si può verificare che tale scelta, pur apparendo assai naturale, non soddisfa la condizione inf-sup (10.20) (si vedano gli Esercizi 3 e 5).
Figura 10.2. Caso di pressione discontinua: scelte non soddisfacenti la condizione inf-sup
Al fine di trovare una coppia che soddisfi la condizione inf-sup osserviamo che più ampio sarà lo spazio Vh , più alta sarà la “probabilità” che la condizione (10.20) sia soddisfatta. In altri termini lo spazio Vh deve essere sufficientemente “ricco” rispetto allo spazio Qh . In Fig. 10.3 sono rappresentate scelte di spazi soddisfacenti la condizione inf-sup, sempre nel caso di pressione discontinua e velocità continua. Quella in (a) è composta dagli elementi P2 − P0 , quella in (b) da Q2 − P0 , quella in (c), detta di CrouzeixRaviart, dagli elementi discontinui di grado 1 per la pressione e di grado 2 più una bolla cubica per la velocità. In Fig. 10.4(a), (b) sono rappresentate scelte non soddisfacenti la condizione infsup per il caso di pressioni continue. Si tratta di elementi finiti di grado 1 sia per
10.4 Formulazione algebrica del problema di Stokes
(a)
321
(c)
(b)
Figura 10.3. Caso di pressione discontinua: scelte soddisfacenti la condizione inf-sup con elementi triangolari, (a), e quadrilateri, (b). Anche la coppia (c), detta di Crouzeix-Raviart, soddisfa la condizione inf-sup
(a)
(b)
(c)
(d)
Figura 10.4. Caso di pressione continua: le coppie (a) e (b) non soddisfano la condizione infsup. Gli elementi usati per la velocità nella coppia (c) sono noti come elementi finiti P1 -isoP2 , mentre quelli usati nella coppia (d) sono conosciuti come mini-element
le velocità che per le pressioni. Più in generale, elementi finiti continui dello stesso grado k ≥ 1 per velocità e pressioni sono instabili. In (c) e (d) sono rappresentati invece elementi stabili. In particolare, le pressioni sono continue e di grado 1. Nel caso (c) le velocità sono continue e di grado 1 su ciascuno dei 4 sottotriangoli indicati in figura. Nel caso (d) invece, le velocità sono la somma di polinomi di grado 1 e di una funzione di tipo bolla. Rinviamo a [BF91] per la dimostrazione dei risultati qui menzionati nonché per l’analisi della stima di convergenza. Nel caso si usino approssimazioni con metodi spettrali, è possibile vedere che l’uso dello stesso grado polinomiale per velocità e pressione viola la condizione infsup. Una scelta di sottospazi compatibili è quella dei polinomi di grado N (≥ 2) per le componenti della velocità e di grado N − 2 per la pressione. Ciò dà luogo alla cosiddetta approssimazione QN − QN−2 . I gradi di libertà per le componenti della velocità sono rappresentati dai valori negli (N + 1)2 nodi GLL (si veda la Fig. 10.5). Per quanto riguarda la pressione, due sono le scelte possibili: usare il sotto-insieme degli (N − 1)2 nodi interni di Gauss-Lobatto (Fig. 10.6, a sinistra), oppure usare gli (N − 1)2 nodi di Gauss (Fig. 10.6, a destra). Naturalmente, con queste scelte si può realizzare un metodo spettrale di Galerkin, di collocazione G-NI, o infine ad elementi spettrali SEM-NI con integrazione numerica (si veda [CHQZ07]).
322
10 Le equazioni di Navier-Stokes 1
−1 −1
1
Figura 10.5. Gli (N + 1)2 nodi di Gauss-Lobatto, gradi di libertà per le componenti della velocità (qui N = 6) 1
1
−1
−1 −1
1
−1
1
Figura 10.6. Gli (N − 1)2 nodi interni di Gauss-Legendre-Lobatto (a sinistra) e gli (N − 1)2 nodi di Gauss-Legendre (a destra), nel caso N = 6
10.5 Un esempio di problema stabilizzato Come abbiamo visto, elementi finiti (o metodi spettrali) che utilizzino lo stesso grado polinomiale per la pressione e per la velocità non verificano la condizione inf-sup e sono, pertanto, “instabili”. È tuttavia possibile stabilizzarli, ricorrendo a tecniche che si ispirano a quelle di tipo SUPG o GLS, già incontrate nel Cap. 5 nell’ambito dell’approssimazione numerica di problemi di diffusione-trasporto. Per una descrizione più completa rinviamo il lettore a [BF91] e a [QV94]. Ci limitiamo qui a mostrare come applicare una tecnica di stabilizzazione di tipo GLS alle equazioni (10.18) nel caso in cui si usino elementi finiti lineari sia per la pressione che per le componenti della velocità, ovvero ◦
1
Vh = [X h ]2 , Qh = {qh ∈ Xh1 :
Ω
qh dΩ = 0}.
10.5 Un esempio di problema stabilizzato
323
Questa scelta è motivata dall’esigenza di ridurre al massimo il numero globale di incognite, esigenza che diventa stringente nel caso di problemi tridimensionali. Poniamo dunque Wh = Vh × Qh e consideriamo anziché (10.18), il seguente problema (ci limiteremo al caso α = 0): trovare (uh , ph) ∈ Wh : Ah (uh , ph ; vh , qh) = (fh , vh )
∀(vh , qh) ∈ Wh ,(10.55)
avendo posto Ah : Wh × Wh → R, Ah (uh , ph; vh , qh) = a(uh , vh ) + b(vh , ph )−b(uh , qh) +δ
" K∈Th
(−νΔuh + ∇ph − f )(−νΔvh + ∇qh ) dK,
h2K K
ed essendo δ un parametro positivo da scegliere opportunamente. Si tratta di un’approssimazione fortemente consistente del problema (10.11), essendo il termine aggiuntivo nullo quando calcolato sulla soluzione esatta, in quanto, per la (10.12), −νΔu + ∇p − f = 0. Osserviamo inoltre che, in questo caso specifico, trattandosi di elementi finiti lineari, Δuh|K = Δvh|K = 0 ∀K ∈ Th . Quanto alla stabilità, osserviamo che Ah (uh , ph ; uh, ph ) = ν∇uh2L2 (Ω) + δ
"
h2K ∇ph 2L2 (K) .
(10.56)
k∈Th
Pertanto, il nucleo della forma Ah si riduce al solo vettore nullo ed il problema (10.55) ammette una ed una sola soluzione. Quest’ultima verifica la disuguaglianza ν∇uh2L2 (Ω) + δ
"
h2K ∇ph 2L2 (K) ≤ Cf 2L2(Ω) ,
(10.57)
K∈Th
essendo C una costante positiva che dipende da ν ma non da h (si veda l’Esercizio 8). Applicando il Lemma di Strang si può ora verificare che il problema di Galerkin generalizzato (10.55) fornisce la seguente approssimazione per la soluzione del problema (10.11) # u − uh H1 (Ω) +
δ
"
$1/2 h2K ∇p − ∇ph 2L2 (K)
≤ Ch.
K∈Th
Utilizzando nuovamente le notazioni della Sez. 10.2, si può verificare che il problema (10.55) ammette la seguente forma matriciale A BT U F = . (10.58) B −C P G
324
10 Le equazioni di Navier-Stokes
Tale sistema differisce da quello non stabilizzato (10.49) per la presenza del blocco non nullo di posizione (2,2), proveniente dal termine di stabilizzazione. Precisamente, " C = (ckm ) , ckm = δ h2K ∇φm · ∇φk dK, k, m = 1, . . . , M, K∈Th
K
mentre il termine noto G ha componenti " 2 hK f · ∇φk dK, gk = −δ K∈Th
k = 1, . . . , M.
K
Il sistema ridotto alla sola incognita di pressione diventa RP = BA−1 F − G, dove ora, a differenza della (10.52), si ha R = BA−1 BT + C. Essendo C una matrice definita positiva, la matrice R è non singolare.
10.6 Un esempio numerico Risolviamo le equazioni di Navier-Stokes nel caso stazionario sul dominio Ω = (0, 1) × (0, 1) con le seguenti condizioni al contorno di tipo Dirichlet: u=0
per x ∈ ∂Ω\Γ,
u = (1, 0)T
per x ∈ Γ,
(10.59)
dove Γ = {x = (x1 , x2 )T ∈ ∂Ω : x2 = 1}. Questo problema è noto come flusso in cavità con parete superiore scorrevole. Utilizziamo elementi finiti su griglie di rettangoli di tipo Q1 − Q1 non stabilizzati, oppure stabilizzati con il metodo GLS. In Fig. 10.7, a sinistra, vengono riportati i soli modi spuri di pressione che si generano qualora si usino gli elementi Q1 − Q1 non stabilizzati. Nella stessa figura a destra riportiamo invece le isolinee della pressione ottenuta con la stessa coppia stabilizzata; come si vede non c’è più traccia di oscillazioni spurie. Infine, nei disegni di Fig. 10.8 riportiamo le linee di flusso (le cosiddette streamlines) ottenute per Re = 1000 e Re = 5000. Grazie alla stabilizzazione si ottengono soluzioni accurate anche al crescere del numero di Reynolds, essendo rimosse sia l’instabilità legata alle soluzioni parassite, sia l’inaccuratezza del metodo di Galerkin quando i termini di trasporto dominano su quelli di diffusione. Per lo stesso problema consideriamo il metodo spettrale G-NI in cui sia la pressione sia le due componenti della velocità sono cercate nello spazio QN (con N = 32). Tale approssimazione non è stabile in quanto la condizione inf-sup non è verificata. Nella Fig. 10.9 si riportano a sinistra le isolinee dei modi spuri di pressione, a destra le isolinee della pressione ottenuta per il metodo G-NI, stabilizzato con la tecnica GLS.
10.7 Discretizzazione in tempo delle equazioni di Navier-Stokes 1
325
1
0
0 0
1
0
1
Figura 10.7. A destra, isolinee di pressione per il caso test del flusso in cavità risolto con elementi finiti stabilizzati. Quella verticale è associata al valore nullo della pressione. A sinistra si riportano invece le isolinee della pressione parassita calcolata sullo stesso caso test senza ricorrere alla stabilizzazione 1
1
0
0 0
1
0
1
Figura 10.8. Le streamlines ottenute nel caso del problema del flusso in cavità per Re = 1000 a sinistra, Re = 5000 a destra
10.7 Discretizzazione in tempo delle equazioni di Navier-Stokes Torniamo ora ad occuparci delle equazioni di Navier-Stokes (10.2) ed analizziamo alcuni possibili schemi di discretizzazione temporale. Supporremo d’ora in avanti, per comodità di notazione, che ΓD = ∂Ω e ϕ = 0 in (10.3), cosicché V = [H10 (Ω)]d . La discretizzazione in spazio delle equazioni di Navier-Stokes dà allora luogo al seguente problema:
326
10 Le equazioni di Navier-Stokes
Figura 10.9. Isolinee di pressione ottenute con un’approssimazione spettrale, a sinistra, e con il metodo G-NI stabilizzato con stabilizzazione GLS, a destra. In entrambi i casi si usano polinomi di grado N = 32 per la pressione e per le due componenti della velocità. L’isolinea verticale è associata al valore nullo della pressione. Il problema è quello del flusso in cavità risolto in precedenza con il metodo degli elementi finiti
per ogni t > 0, trovare (uh (t), ph (t)) ∈ Vh × Qh tali che ⎧ ∂uh (t) ⎪ ⎪ , v + a(uh (t), vh ) + c(uh (t), uh(t), vh ) + b(vh , ph (t)) = ⎪ h ⎪ ⎨ ∂t (fh (t), vh ) ∀vh ∈ Vh , ⎪ ⎪ ⎪ ⎪ ⎩ b(uh (t), qh ) = 0 ∀qh ∈ Qh , (10.60) dove {Vh ⊂ V } e {Qh ⊂ Q} sono, come di consueto, due famiglie di sottospazi di dimensione finita. La forma trilineare c(·, ·, ·), definita da [(w · ∇)z] · v dΩ
c(w, z, v) =
∀w, z, v ∈ V,
Ω
è associata al termine convettivo non lineare, mentre a(·, ·) e b(·, ·) sono le stesse che in (10.13) (ponendo tuttavia α = 0). Il problema (10.60) è un sistema di equazioni differenziali algebriche. Utilizzando notazioni già impiegate nelle precedenti sezioni, esso ha la forma ⎧ ⎨ M du(t) + Au(t) + C(u(t))u(t) + BT p(t) = f (t), dt ⎩ Bu(t) = 0,
(10.61)
con u(0) = u0 . C(u(t)) è una matrice dipendente da u(t), il cui elemento generico è cmi (t) = c(u(t), ϕi , ϕm ). Per discretizzare in tempo tale sistema utilizziamo a titolo
10.7 Discretizzazione in tempo delle equazioni di Navier-Stokes
327
di esempio il θ-metodo, presentato nella Sez. 6.1. Se si pone = θun+1 + (1 − θ)un , un+1 θ = θpn+1 + (1 − θ)pn , pn+1 θ fθn+1 = f (θtn+1 + (1 − θ)tn ), si perviene al seguente sistema di equazioni algebriche ⎧ n+1 − un ⎨ Mu + Aun+1 + C(un+1 )un+1 + BT pn+1 = fθn+1 , θ θ θ θ Δt ⎩ Bun+1 = 0.
(10.62)
La sua risoluzione risulta in generale molto costosa (salvo nel caso in cui θ = 0, corrispondente al metodo di Eulero in avanti). Una possibile alternativa è quella di utilizzare uno schema nel quale la parte lineare del problema viene trattata in maniera implicita, mentre quella non lineare in maniera esplicita (giungendo così ad un problema semi-implicito). Se θ ≥ 1/2, lo schema risulta incondizionatamente stabile, mentre va soggetto a condizioni su Δt (in funzione di h e di ν) negli altri casi. Commentiamo in dettaglio le varie opzioni qui di seguito. Nelle Sez. 10.7.2 e 10.7.3 considereremo invece alcuni schemi di discretizzazione temporale alternativi ai precedenti. 10.7.1 Metodi alle differenze finite Consideriamo dapprima una discretizzazione temporale esplicita per la prima equazione delle (10.61), ad esempio quella corrispondente a θ = 0 in (10.62). Supponendo note le quantità al tempo tn , si otterrà Mun+1 = H(un , pn , f n), Bun+1 = 0, essendo M la matrice di massa di elementi mij = ϕi ϕj dΩ. Ω
Tale sistema è sovradeterminato nella velocità un+1 , mentre non consente di ottenere la pressione pn+1 . Sostituendo pn con pn+1 nella equazione del momento si otterrebbe il sistema lineare ⎧ ⎨ 1 Mun+1 + BT pn+1 = G, Δt (10.63) ⎩ Bun+1 = 0, dove G è un vettore opportuno. Esso corrisponde a una discretizzazione semi-esplicita di (10.60). Essendo M definita positiva e simmetrica, il sistema ridotto BM−1 BT pn+1 =
328
10 Le equazioni di Navier-Stokes
BM−1 G è non singolare se la condizione (10.53) è soddisfatta. La velocità un+1 si ricava poi dalla prima delle (10.63). Tale metodo risulta stabile se è soddisfatta una condizione del tipo Δt ≤ Cmin(h2 /ν, h/(max |un |)). x∈Ω
Consideriamo ora una discretizzazione temporale implicita del problema (10.60) (ad esempio basata sul metodo di Eulero all’indietro, corrispondente alla scelta θ = 1 in (10.62)). Come precedentemente osservato tale metodo è incondizionatamente stabile. In tal caso si trova un sistema algebrico non lineare, corrispondente alla discretizzazione ad elementi finiti del problema di Navier-Stokes stazionario ⎧ ⎨ −νΔz + (z · ∇)z + ∇p + z = ˜f , Δt ⎩ divz = 0. Un tale sistema non lineare di equazioni può essere risolto ad esempio con una tecnica di tipo Newton accoppiata ad un metodo di Krylov (come il GMRES o il metodo BiCGStab) per la risoluzione del sistema lineare che si ottiene ad ogni passo di iterazione di Newton (si veda ad esempio [Saa96] o [QV94, Cap. 2]). In questo modo si hanno globalmente tre cicli iterativi annidati: - iterazione temporale: tn → tn+1 , - iterazione di Newton: xn+1 → xn+1 k k+1 , n+1 - iterazione di Krylov: [xk ]j → [xn+1 ]j+1 , k avendo indicato per semplicità con xn la coppia (un , pn ). Si ottiene così una successione [xn+1 ]j per la quale k ]j = lim lim [xn+1 k
k→∞j→∞
un+1 pn+1
.
Operiamo ora la discretizzazione temporale utilizzando un metodo semi-implicito, ossia trattiamo in implicito la parte lineare e in esplicito il termine convettivo non lineare. Otteniamo pertanto il sistema lineare ⎧ ⎨ 1 Mun+1 + Aun+1 + BT pn+1 = G, Δt ⎩ Bun+1 = 0,
(10.64)
dove G è un vettore opportuno, ovvero un sistema del tipo (10.49). La condizione di stabilità in questo caso è del tipo Δt ≤ C
h . max|un | x∈Ω
(10.65)
10.7 Discretizzazione in tempo delle equazioni di Navier-Stokes
329
10.7.2 Metodi alle caratteristiche (o Lagrangiani) Per questi metodi si definisce innanzitutto la cosiddetta derivata materiale Du ∂u = + (u · ∇)u, Dt ∂t indi la si approssima, ad esempio, con la formula di Eulero all’indietro: Du un+1 (x) − un (xp ) (x) ≈ , Dt Δt essendo xp il piede (al tempo tn ) della caratteristica uscente da x al tempo tn+1 . Si deve quindi risolvere un sistema di equazioni differenziali ordinarie per seguire a ritroso la linea caratteristica X spiccata dal punto x stesso ⎧ ⎪ ⎨ dX (t; s, x) = u(t, X(t; s, x)), t ∈ (tn , tn+1 ), dt ⎪ ⎩ X(s; s, x) = x, con s = tn+1 . La difficoltà si è dunque trasferita nella ricostruzione delle linee caratteristiche. La prima esigenza è quella di approssimare adeguatamente il campo di velocità u per t ∈ (tn , tn+1 ), in quanto un+1 è ancora incognita. A tale scopo, il metodo più semplice consiste nell’utilizzare uno schema di Eulero in avanti per la discretizzazione della derivata materiale. La seconda difficoltà è legata al fatto che la caratteristica può attraversare più elementi della griglia di calcolo. Occorre quindi avere un algoritmo efficiente per individuare l’elemento di griglia dove cade il piede della caratteristica e che sappia dunque tenere conto della possibilità che la caratteristica termini sul bordo del dominio computazionale. Per ogni tn+1 l’equazione del momento si riscrive un+1 (x) − un (xp ) − νΔun+1(x) + ∇pn+1 (x) = f n+1(x), Δt dove x è un generico punto di Ω e xp il piede della caratteristica uscente da x al tempo tn+1 . 10.7.3 Metodi a passi frazionari Incominciamo facendo una digressione per un generico problema evolutivo della forma ∂w + Lw = f, ∂t dove L è un operatore differenziabile che supponiamo possa essere scomposto nella somma di due operatori L1 e L2 , ovvero Lv = L1 v + L2 v.
330
10 Le equazioni di Navier-Stokes
I metodi a passi frazionari realizzano l’avanzamento temporale da tn a tn+1 in due (o più) passi: dapprima viene risolto il problema considerando solo L1 , quindi si corregge la soluzione ottenuta considerando solo l’operatore L2 . Per tale ragione questi metodi si chiamano anche operator splitting. Separando i due operatori L1 e L2 si spera di ridurre un problema complesso a due problemi più semplici, confinando in ognuno di essi gli effetti e le problematiche ad essi associati (non linearità, diffusione, trasporto, . . .). In tal senso, gli operatori L1 e L2 possono essere scelti in base a considerazioni fisiche operate sulla base del problema che si sta risolvendo. In effetti, anche la risoluzione delle equazioni di Navier-Stokes con il metodo alle caratteristiche potrebbe essere interpretata come un metodo a passi frazionari nel quale il primo passo è proprio quello lagrangiano. Uno schema possibile, semplice, ma non ottimale, può essere il seguente, detto splitting di Yanenko: 1. si calcola w˜ soluzione di w˜ − wn + L1 w˜ = 0; Δt 2. si calcola w n+1 come w n+1 − w ˜ + L2 w n+1 = f n . Δt Eliminando w, ˜ otteniamo il seguente problema per la variabile w n+1 w n+1 − w n + Lwn+1 = f n + ΔtL1 (f n − L2 w n+1 ). Δt Se L1 e L2 sono entrambi operatori ellittici, allora questo schema è incondizionatamente stabile rispetto a Δt. Applichiamo questa strategia alle equazioni di Navier-Stokes (10.2), scegliendo come L1 l’operatore L1 (w) = −νΔw + (w · ∇)w ed essendo L2 la parte che resta per completare il sistema di Navier-Stokes. In tal modo abbiamo separato le due principali difficoltà derivanti rispettivamente dalla non-linearità e dalla richiesta di incomprimibilità. Lo schema a passi frazionari che si ottiene è il seguente: ˜ n+1 1. si risolve la seguente equazione di diffusione(-trasporto) per la velocità u ⎧ n+1 ˜ − un ⎨ u − νΔ˜ un+1 + (u∗ · ∇)u∗∗ = f n+1 in Ω, Δt (10.66) ⎩ n+1 ˜ =0 su ∂Ω; u 2. si risolve in seguito il problema accoppiato nelle incognite un+1 e pn+1 ⎧ n+1 ˜ n+1 u −u ⎪ ⎪ ⎪ + ∇pn+1 = 0 in Ω, ⎪ ⎨ Δt (10.67) in Ω, divun+1 = 0 ⎪ ⎪ ⎪ ⎪ ⎩ n+1 ·n=0 su ∂Ω, u
10.7 Discretizzazione in tempo delle equazioni di Navier-Stokes
331
˜ n+1 o un a seconda che il primo passo tratti i termidove u∗ e u∗∗ possono essere u ni convettivi in modo esplicito, implicito o semi-implicito. In questo modo si calcola ˜ n+1 che poi si corregge al secondo passo al primo passo una velocità intermedia u dello schema in modo da soddisfare il vincolo di incomprimibilità. Se la risoluzione del primo passo può essere condotta con successo con le tecniche presentate per problemi di diffusione-trasporto, più difficoltosa appare la risoluzione del secondo passo. Nel tentativo di semplificare le cose, applichiamo l’operatore di divergenza alla prima equazione del secondo passo. Troviamo div
˜ n+1 un+1 u − div + Δpn+1 = 0, Δt Δt
ovvero un problema ellittico con condizioni al contorno di Neumann ⎧ ˜ n+1 u ⎪ ⎪ in Ω, ⎨ −Δpn+1 = −div Δt n+1 ⎪ ⎪ ⎩ ∂p =0 su ∂Ω. ∂n
(10.68)
La condizione di Neumann discende dalla condizione un+1 · n = 0 su ∂Ω (si veda la (10.67)). Dalla risoluzione di (10.68) si ricava pn+1 e quindi la velocità un+1 utilizzando la prima delle equazioni nella (10.67), ˜ n+1 − Δt∇pn+1 un+1 = u
in Ω,
(10.69)
la quale fornisce, in modo esplicito, la correzione da operare sulla velocità. Riassumendo, si risolve dapprima il sistema scalare ellittico (10.66) nell’incogni˜ n+1 (velocità intermedia), indi il problema ellittico (10.68) nell’incognita pn+1 , ta u infine si ottiene la nuova velocità un+1 attraverso la relazione esplicita (10.69). Vediamo ora le principali caratteristiche di tale metodo. Consideriamo il primo passo di avanzamento e supponiamo di porre u∗ = u∗∗ = un , ottenendo (dopo la discretizzazione spaziale) un sistema lineare della forma 1 ˜ n+1 = ˜f n+1 . M+A u Δt Tale problema è scomponibile nelle singole componenti spaziali (l’accoppiamento essendo venuto meno grazie al trattamento esplicito dei termini convettivi) ed è quindi riconducibile alla risoluzione di d problemi ellittici scalari, uno per ogni componente della velocità. Il limite principale di tale metodo risiede nel fatto che il trattamento esplicito dei termini convettivi comporta una condizione di stabilità della stessa forma di (10.65). Usando invece un metodo di avanzamento in tempo implicito, ponendo u∗ = u∗∗ = ˜ n+1 , si ottiene un metodo incondizionatamente stabile, ma composto da un’equau zione di diffusione-trasporto non-lineare accoppiata nelle componenti spaziali, un problema pertanto più difficile da risolvere di quello ottenuto in precedenza. Ancora una volta, tale problema potrà essere risolto con un metodo iterativo di tipo Newton combinato con un metodo di Krylov.
332
10 Le equazioni di Navier-Stokes
Consideriamo ora il secondo passo del metodo. In esso si impongono delle condizioni del tipo un+1 · n = 0 su ∂Ω, ossia si impone una condizione al contorno solo sulla componente normale della velocità, perdendo così il controllo della componente tangenziale della velocità. Ciò dà luogo ad un errore, detto errore di splitting: si trovano velocità a divergenza nulla, ma che risentono in prossimità del bordo di perturbazioni causate dal mancato soddisfacimento della condizione di Dirichlet per la componente tangenziale della velocità, e che originano degli strati limite sulla √ pressione di ampiezza ν Δt. Il metodo appena descritto, dovuto a Chorin e Temam, viene anche chiamato metodo di proiezione. Il motivo è da ricercarsi nel seguente Teorema di scomposizione di Helmholtz-Weyl. Teorema 10.7 Sia Ω ⊂ Rd , d = 2, 3, un dominio con frontiera Lipschitziana. Allora per ogni v ∈ [L2 (Ω)]d , esistono uniche due funzioni w, z, d w ∈ H0div = {v ∈ L2 (Ω) : divv = 0 in Ω, v · n = 0 su ∂Ω}, z ∈ [L2 (Ω)]d ,
rotz = 0
(quindi z = ∇ψ, ψ ∈ H1 (Ω))
tali che v = w + z. Questo risultato assicura che una generica funzione v ∈ [L2 (Ω)]d può essere rappresentata in modo univoco come somma di un campo solenoidale (ossia a divergenza nulla) e di un campo irrotazionale (cioè dato dal gradiente di un’opportuna funzione). ˜ n+1 a partire da un risolvendo In effetti, dopo il primo passo (10.66) in cui si genera u l’equazione del momento, nel secondo passo si recupera un campo solenoidale un+1 ˜ n+1 , applicando il teorema di in (10.69), con un+1 · n = 0 su ∂Ω, proiezione di u ˜ n+1 , v = un+1 , ψ = −Δtpn+1 . decomposizione con le identificazioni: w = u Si chiama metodo di proiezione in quanto ˜ n+1 · ψ dΩ ∀ψ ∈ H0div , un+1 · ψ dΩ = u Ω
Ω
˜ n+1 sullo spazio ossia un+1 è la proiezione, rispetto al prodotto scalare di L2 (Ω), di u 0 Hdiv . Osservazione 10.3 Ci sono molte varianti del classico metodo di proiezione qui presentato miranti ad eliminare (o ridurre) l’errore di splitting sulla pressione. Per maggiori dettagli si veda [QV94], [Qua93], [Pro97], [CHQZ07] e [KS05]. • Esempio 10.1 Nella Fig. 10.10 riportiamo le isolinee del modulo della velocità relative alla risoluzione del problema di Navier-Stokes in un dominio bidimensionale Ω = (0, 17) × (0, 10) con 5 cilindri (in sezione). È stata assegnata una condizione di Dirichlet non omogenea
10.8 Risoluzione del sistema di Stokes e metodi di fattorizzazione algebrica
333
Figura 10.10. Isolinee del modulo della velocità per il caso test dell’Esempio 10.1 associate agli istanti t = 10.5 (sopra) e t = 11.4 (sotto) (u = [atan(20(5 − |5 − y|)), 0]T ) all’inflow, una condizione di Dirichlet omogenea sui lati orizzontali e sul bordo dei cilindri, mentre all’outflow è stata posta a zero la componente normale del tensore degli sforzi. La soluzione è ottenuta utilizzando, per la discretizzazione in spazio, elementi spettrali stabilizzati (114 elementi spettrali, con polinomi di grado 7 per la velocità e la pressione, su ciascun elemento) e uno schema implicito BDF2 per la discretizzazione in tempo ( si veda Sez. 11.5 e anche [QSS08]).
10.8 Risoluzione del sistema di Stokes e metodi di fattorizzazione algebrica Un approccio alternativo ai precedenti è basato sulle fattorizzazioni inesatte (o incomplete) della matrice del sistema di Stokes (10.49) o di quello che si ottiene dopo l’adozione di avanzamenti temporali semi-impliciti, come ad esempio (10.64), delle equazioni di Navier-Stokes tempo-dipendenti. Supporremo dunque di avere a che fare con un sistema algebrico della forma C BT U F = (10.70) B 0 P 0
334
10 Le equazioni di Navier-Stokes
1 dove C coincide con la matrice A nel caso del sistema (10.49), con Δt M + A nel caso α del sistema (10.64), mentre più in generale potrebbe essere data da Δt M + A + δD, essendo D la matrice associata al gradiente, nel caso si applichi una linearizzazione o uno schema semi-implicito del termine convettivo, nel qual caso i coefficienti α e δ dipenderanno dagli schemi temporali e di linearizzazione scelti. Possiamo ancora associare a (10.70) il complemento di Schur
RP = BC−1 F,
con R = BC−1 BT ,
(10.71)
che si riduce a (10.52) nel caso si parta dal sistema di Stokes (10.49) anziché da (10.70). Iniziamo con l’osservare che il numero di condizionamento della matrice R dipende dalla costante β della condizione inf-sup. Più precisamente, nel caso del problema stazionario (10.52), si hanno le relazioni β = λmin , δ ≥ λmax dove λmin e λmax sono gli autovalori di R, mentre δ è la costante di continuità della forma bilineare b(·, ·) (si veda [QV94], Sez. 9.2.1). Pertanto, cond(R) ≤ δ 2 /β 2 . Nel caso evolutivo si perviene ad un sistema di tipo (10.70); in tal caso il condizionamento dipende anche da Δt nonché da come si è discretizzato il termine convettivo. Un possibile approccio per la risoluzione di (10.52) consiste nel risolvere il complemento di Schur (10.71) con un metodo iterativo, ad esempio, il gradiente coniugato se C = A, oppure il GMRES o il Bi-CGStab nel caso in cui siano presenti anche termini del prim’ordine, ovvero δ = 0. In tal caso è cruciale scegliere un buon precondizionatore. Una discussione al proposito è fatta in [QV94] per quanto concerne approssimazioni spaziali agli elementi finiti, e in [CHQZ07] per discretizzazioni con metodi spettrali. Qui ci limiteremo ad osservare che, detta S la matrice a blocchi del sistema (10.70), essa si può fattorizzare nel prodotto di due matrici triangolari a blocchi, ovvero I 0 C BT S= BC−1 I 0 −R e che le due matrici PD =
C
0
0
−R
o
PT =
C
BT
0
−R
forniscono due precondizionatori ottimali di S, uno diagonale a blocchi, l’altro triangolare a blocchi. Entrambi sono tuttavia piuttosto onerosi per via della presenza del termine diagonale R, il complemento di Schur, che contiene a sua volta l’inversa di C. In alternativa si possono usare le loro approssimazioni ⎡ ⎤ ⎡ ⎤ . . BT C 0 C .D = ⎣ .T = ⎣ ⎦ o P ⎦ P . . 0 −R 0 −R
10.8 Risoluzione del sistema di Stokes e metodi di fattorizzazione algebrica
335
. eR . siano due approssimazioni “di basso costo” di C ed R, rispettivamente (ad dove C esempio, costruite a partire da precondizionatori ottimali della matrice di rigidezza). Per una rassegna di precondizionatori di R e di S (nel caso del sistema di Stokes), si veda [BGL05]. Una diversa fattorizzazione di S, C 0 I C−1 BT S= = LU (10.72) B −R 0 I è invece alla base del cosiddetto precondizionatore SIMPLE proposto da Patankar [Pat80], ed ottenuto sostituendo il fattore U con quello approssimato in cui C−1 venga sostituita da una matrice diagonale D−1 (con D, ad esempio, data dalla diagonale di C). Molte varianti sono possibili, si veda ad esempio [Wes01]. Un approccio alternativo consiste nell’approssimare a priori sia L sia U in (10.72), ottenendo la fattorizzazione inesatta C 0 I UBT . . . S = LU = (10.73) B −BLBT 0 I essendo L ed U due possibili approssimazioni di C−1 . Basandosi su questa approssimazione (o fattorizzazione LU-inesatta di S) proposta da J.B. Perot [Per93] nell’ambito dei volumi finiti, ed in seguito generalizzata da A. Veneziani (si veda [Ven98], [QSV00], [SV05]) per approssimazioni di Galerkin di problemi di punto-sella, la risoluzione del sistema . u F . S = . p 0 dà luogo ai seguenti passi: ⎧ u=F (velocità intermedia) ⎨ C6 passo L : ⎩ . = −B6 −BLBT p u (pressione) . (velocità finale). .=u 6 − UBT p passo U : u In [QSV00] sono state esplorate le seguenti due possibilità: α −1 M , (10.74) L=U = Δt α −1 e U = C−1 . (10.75) L= M Δt La prima (10.74) è anche chiamata approssimazione di Chorin-Temam algebrica in quanto in tal caso i passi L e U sopra descritti riproducono in versione algebrica il metodo a passi frazionari di Chorin e Temam (si veda la Sez. 10.7.3). La scelta (10.75) è detta approssimazione di Yosida in quanto si può ricondurre ad un processo di regolarizzazione “alla Yosida” del complemento di Schur ([Ven98]).
336
10 Le equazioni di Navier-Stokes
Il vantaggio di questa strategia rispetto ai metodi a passi frazionari descritti in precedenza è la loro trasparenza rispetto al problema delle condizioni al bordo. Queste ultime sono già implicitamente tenute in conto dalla formulazione algebrica (10.70) e non devono essere imposte nel corso dei singoli passi L e U. Diverse generalizzazioni della tecnica di fattorizzazione inesatta (10.73) sono state recentemente proposte, consistenti in diverse scelte delle componenti L e U che garantiscono un ordine temporale più elevato (≥ 2) nel caso si considerino a monte discretizzazioni temporali di ordine superiore ad 1 delle equazioni di Navier-Stokes. Rinviamo il lettore interessato a [GSV06, SV05, Ger08]. Riportiamo in Fig. 10.11 il comportamento dell’errore corrispondente alla discretizzazione delle equazioni evolutive di Navier-Stokes sul dominio Ω = (0, 1)2 con il metodo SEM usando 4 × 4 elementi (quadrati di lato H = 0.25) e polinomi di grado N = 8 per le componenti della velocità e N = 6 per le componenti della pressione. La soluzione esatta è u(x, y, t) = (sin(x) sin(y + t), cos(x) cos(y + t))T , p(x, y, t) = cos(x) sin(y + t). La discretizzazione temporale è ottenuta con le differenze finite implicite all’indietro BDF di ordine 2 (BDF2), 3 (BDF3), 4 (BDF4) (si veda [QSS08]), completate da una fattorizzazione algebrica di tipo Yosida di ordine rispettivamente 2, 3, 4. Indicando con (unN , pnN ) la soluzione numerica all’istante tn , gli errori su velocità e pressione # Eu =
Δt
NT "
$1/2 u(tn ) − unN 2H 1 (Ω)
# e Ep =
Δt
n=0
NT "
$1/2 p(tn ) − pnN 2L2 (Ω)
n=0
sono infinitesimi (in Δt) di ordine 2, 3, e 4, rispettivamente, per le velocità, mentre sono di ordine 3/2, 5/2 e 7/2, rispettivamente, per le pressioni.
10
0
10 10
10 10 10 10 10
−2
−2 −4
−4
10
−6
2
−6
10
3 BDF2+Yosida
−8
4
10
BDF3+Yosida3 BDF4+Yosida4
−10
10 −4
10
10
−3
Δt
10
−2
10
−1
1.5
−8
2.5 −10
BDF2+Yosida
3.5
BDF3+Yosida3 BDF4+Yosida4
−12
−4
10
10
−3
Δt
10
−2
Figura 10.11. A sinistra errore Eu sulla velocità; a destra errore Ep sulla pressione
10
−1
10.9 Problemi di fluidi a superficie libera
337
10.9 Problemi di fluidi a superficie libera I fluidi a superficie libera si manifestano in diverse situazioni e in molteplici forme; ogni qual volta due fluidi immiscibili vengono a contatto, si crea una superficie libera. I fluidi possono formare getti [LR98], bolle [HB76],[TF88], gocce, onde [Max76] e pellicole. Fluidi di questo genere trovano riscontro in una vasta gamma di applicazioni, quali onde in fiumi, laghi e oceani [Bla02],[Qu02] e loro interazioni con imbarcazioni e rive [Wya00],[KMI+ 83], iniezione, modellazione ed estrusione di polimeri e metalli liquidi [Cab03], reattori chimici a colonna o bioreattori, ecc. A seconda delle scale spaziali e temporali e del tipo di liquidi coinvolti, fenomeni quali il trasferimento di calore, la tensione superficiale, gli effetti viscosi e la loro nonlinearità, l’interazione fluido-struttura, la transizione da flusso laminare a turbolento, la comprimibilità e le reazioni chimiche, possono o meno avere un’influenza importante sul comportamento del fluido in esame. Nella presente sezione ci concentreremo su flussi laminari di fluidi viscosi ma Newtoniani, soggetti a tensione superficiale; il fluido potrà quindi essere descritto dalle equazioni di Navier-Stokes. Gli altri aspetti sopra menzionati verranno trascurati, in modo da concentrarci sulle specificità dovute alla presenza della superficie libera. Per descrivere questo tipo di fluidi, si possono distinguere due famiglie di modelli: • I metodi a tracciamento del fronte. Essi considerano la superficie libera come il confine di un dominio mobile, su cui vengono specificate opportune condizioni al contorno. All’interno del dominio viene applicato un modello convenzionale di fluido, con attenzione tuttavia al fatto che il dominio non è fisso, bensì in movimento. Il fluido dall’altra parte del confine (ad esempio l’aria) viene usualmente trascurato, oppure il suo effetto viene modellato in modo semplificato, senza essere simulato direttamente (vedi, ad es., [MP97]). • I metodi di cattura del fronte. Essi considerano due fluidi in un dominio spaziale a confini fissi, separati da una superficie libera. Essi possono equivalentemente essere considerati come un unico fluido le cui proprietà, quali densità e viscosità, variano globalmente come costanti a tratti. La superficie libera sarà la superficie di discontinuità (si veda, ad es., [HW65],[HN81]). In questa sezione applicheremo i metodi di cattura del fronte. Più precisamente, deriveremo un modello matematico per il caso generale di un fluido con densità e viscosità variabile, che risulterà quindi appropriato per modellare il flusso di due fluidi con superficie libera.
10.9.1 Equazioni di Navier-Stokes con densità e viscosità variabili Denotiamo con ∂ξ l’operatore di derivata parziale rispetto alla variabile ξ. Consideriamo il caso generale di un fluido viscoso incomprimibile in cui densità ρ e viscosità dinamica μ varino rispetto allo spazio e al tempo. Entro un fissato dominio spaziale Ω ⊂ Rd , l’evoluzione della velocità u = u(x, t) e della pressione p = p(x, t) del
338
10 Le equazioni di Navier-Stokes
Figura 10.12. Topologie di griglia tipiche in due dimensioni per il metodo di tracciamento del fronte (a sinistra) e per il metodo di cattura del fronte (a destra). La linea più spessa rappresenta la superficie libera.
fluido sono modellate dalle equazioni di Navier-Stokes incomprimibili: ρ∂t u + ρ(u · ∇)u − ∇ · (2μD(u)) + ∇p = f , x ∈ Ω, t > 0,
(10.76)
x ∈ Ω, t > 0,
(10.77)
divu = 0, + 1
,
in cui (D(v))ij = 2 ∂xj (v)i + ∂xi (v)j , i, j = 1 . . . d, è il gradiente simmetrico di v, chiamato anche tensore del tasso di deformazione, e f denota una forza di volume, ad es. la forza gravitazionale. Si noti che nel caso in cui ρ sia costante riotteniamo la forma (10.1) Si noti inoltre che l’incomprimibilità non è in contrasto con la densità variabile, in quanto l’incomprimibilità indica che una porzione elementare di fluido non cambia volume, e quindi densità, mentre la densità variabile corrisponde al fatto che diverse porzioni elementari di fluido possono avere densità differenti. Gli ultimi due addendi del termine sinistro dell’equazione (10.76) possono essere riscritti come −DivT(u, p), dove T(u, p) = 2μD(u) − Ip è il tensore degli sforzi e I è il tensore identità d × d. La divergenza di un tensore è stata definita in (9.23). Per una dettagliata derivazione, motivazione e giustificazione di questo modello si veda [LL59]. La densità ρ e la viscosità μ possono variare in spazio e tempo; è quindi necessario un modello separato per la loro evoluzione. Usualmente, il bilancio di massa conduce all’equazione dt ρ = ∂t ρ + u · ∇ρ = 0 ρ|t=0 = ρ0
x ∈ Ω, t > 0, x ∈ Ω,
(10.78)
dove dt indica la derivata totale (o lagrangiana, o materiale). Nei casi in cui la viscosità μ può essere espressa in funzione della densità, ovvero μ = μ(ρ), questa relazione, assieme alla (10.78), costituisce il modello di evoluzione per ρ e μ.
10.9 Problemi di fluidi a superficie libera
339
Modelli adatti al caso speciale di un flusso di due fluidi sono descritti in Sez. 10.9.3. Come già ricordato, il modello di fluido deve essere completato con opportune condizioni iniziali e al contorno. 10.9.2 Condizioni al contorno Generalizziamo ora la discussione delle condizioni al contorno al caso della formulazione (10.76), (10.77) delle equazioni di Navier-Stokes. Come fatto all’inizio di questo capitolo, suddividiamo il contorno ∂Ω del dominio Ω in un numero finito di componenti. Affinché il problema di Navier-Stokes sia ben posto, su ogni componente devono essere specificate appropriate condizioni al contorno. Varie tipologie di condizioni sono possibili, si veda ad esempio [QV94] e i riferimenti ivi contenuti; nel proseguio ci limiteremo solo ai casi di seguito definiti. Le condizioni al contorno di Dirichlet prescrivono un campo di velocità u=ϕ
ΓD ⊂ ∂Ω.
(10.79)
Usualmente vengono impiegate per imporre un profilo di velocità ϕ all’inflow, oppure per modellare una parete solida che si muove con velocità ϕ. In quest’ultimo caso, vengono dette condizioni di non-scorrimento, poiché impongono che il fluido non scorra sulla parete, bensí vi rimanga solidale. Si noti che quando vengono specificate condizioni al contorno di Dirichlet sull’intero contorno ∂Ω, la pressione non è univocamente definita. In questo caso, se (u, p) è soluzione di (10.76), (10.77) e (10.79), allora anche (u, p + c), c ∈ R, è soluzione dello stesso insieme di equazioni. Integrando parzialmente l’equazione (10.77), si ha allora che gD deve soddisfare la condizione di compatibilità ϕ · n ds = 0, ∂Ω
altrimenti il problema non ammette alcuna soluzione. Le condizioni al contorno di Neumann prescrivono una forza per unità di area quale componente normale del tensore degli sforzi T(u, p)n = 2μD(u)n − p n = ψ
su ΓN ⊂ ∂Ω,
(10.80)
in cui n è la normale unitaria esterna su ΓN . Le condizioni di Neumann vengono utilizzate per modellare una data forza ψ per unità di superficie sul contorno, spesso con ψ = 0 per quel che viene chiamato un free outflow. Per gradienti della velocità evanescenti, la forza ψ N corrisponde alla pressione sul contorno. Si veda anche [HRT96] per maggiorni dettagli sull’interpretazione e le implicazioni di questo tipo di condizioni al contorno. Le condizioni al contorno miste combinano condizioni al contorno di Dirichlet nella direzione normale n con condizioni al contorno di Neumann nelle direzioni tangenziali τ : u·n = ϕ·n su ΓD , (T(u, p)n) · τ = (2μD(u)n) · τ = 0
su ΓN ,
∀τ : τ · n = 0.
340
10 Le equazioni di Navier-Stokes
La scelta ϕ = 0 esprime una simmetria della soluzione lungo ΓD , ma anche lo scorrimento libero su ΓD senza penetrazione. In questo caso parliamo di condizioni al contorno di scorrimento libero. In alcuni casi è desiderabile una transizione continua da condizioni al contorno di scorrimento a condizioni di non-scorrimento. Questa situazione può essere realizzata imponendo condizioni al contorno di Dirichlet nella direzione normale, come nel caso delle condizioni al contorno di libero scorrimento, e sostituendo le condizioni nella direzione tangenziale con condizioni al contorno di Robin, ovvero una combinazione lineare di condizioni al contorno di Dirichlet e di Neumann: u · n = ϕ · n su ΓD , (ωCτ u + (1 − ω)(T(u, p)n)) · τ = (ωCτ u + (1 − ω)(2μD(u)n)) · τ = ωCτ gD · τ su ΓN , ∀τ : τ · n = 0. Qui, ω ∈ [0, 1] determina il regime. Per ω = 0 abbiamo condizioni al contorno di libero scorrimento, mentre per ω = 1 abbiamo condizioni di non-scorrimento. In pratica, ω può essere una funzione continua di spazio e tempo, con valori in [0, 1], e permettere così una transizione continua fra i due casi. Questo vale per ϕ = 0, ma le condizioni al contorno di transizione comprendono anche il caso generale di Dirichlet per ϕ = 0 e ω = 1. Il peso Cτ può essere visto come un fattore di conversione fra le velocità e la forza per unità di area. Questa tipologia di condizioni al contorno viene studiata in maggior dettaglio in [Joe05]. 10.9.3 Applicazioni ai fluidi a superficie libera Un fluido a superficie libera può essere descritto dal modello di fluido (10.76)-(10.77). In questo modello, la superficie libera è un’interfaccia denotata da Γ (t), che divide il dominio Ω in due sottodomini aperti Ω + (t) e Ω − (t). La posizione iniziale dell’interfaccia è nota, Γ (0) = Γ0 , e l’interfaccia si muove con la velocità del fluido u. In ogni sottodominio abbiamo densità e viscosità costanti, denotate da ρ+ , ρ− , μ+ e μ− . Richiediamo che ρ± > 0 e μ± > 0. Densità e viscosità sono quindi definite globalmente come: ρ(x, t) =
ρ− , x ∈ Ω − (t) ρ+ , x ∈ Ω + (t),
μ(x, t) =
μ− , x ∈ Ω − (t) μ+ , x ∈ Ω + (t).
Per modellare gli effetti di portanza, bisogna introdurre la forza gravitazionale nel termine a destra, che prende la forma f = ρg, dove g è il vettore dell’accelerazione di gravità. Poiché la viscosità è discontinua lungo l’interfaccia, l’equazione (10.76) vale in senso forte solo in Ω + ∪ Ω − . I due sottodomini devono quindi essere accoppiati mediante appropriate condizioni di interfaccia (si veda, ad es., [Smo01]). Indichiamo con nΓ la normale unitaria all’interfaccia che punta da Ω − in Ω + e con κ la curvatura dell’interfaccia, definita come κ=
d−1 " 1 , Rτ i i=1
(10.81)
10.9 Problemi di fluidi a superficie libera
341
in cui Rτ i sono i raggi di curvatura lungo i vettori principali τ i che spazzano lo spazio tangenziale all’interfaccia Γ . Il segno di Rτ i è tale che Rτ i nΓ punti da Γ verso il centro del cerchio che approssima localmente Γ . Il salto di una quantità v attraverso l’interfaccia viene indicato da [v]Γ e definito come [v]Γ (x, t) = lim (v(x + nΓ , t) − v(x − nΓ , t)) →0+
= v|Ω + (t) (x, t) − v|Ω − (t)(x, t)
∀x ∈ Γ (t).
Le condizioni di interfaccia diventano quindi [u]Γ = 0, [T(u, p)nΓ ]Γ = [2μD(u)nΓ − p nΓ ]Γ = σκnΓ .
(10.82) (10.83)
L’equazione (10.82) viene detta condizione di interfaccia cinematica ed esprime il fatto che tutte le componenti della velocità sono continue. In effetti, la componente normale deve essere continua in quanto non vi è flusso attraverso l’interfaccia, mentre le componenti tangenziali devono essere continue perchè entrambi i fluidi sono assunti viscosi (μ+ > 0 e μ− > 0). L’equazione (10.83) viene detta condizione di interfaccia dinamica ed esprime il fatto che lo sforzo normale cambia di un valore pari alla forza di tensione superficiale. Questa forza è proporzionale alla curvatura dell’interfaccia e punta in direzione della normale all’interfaccia. Il coefficiente di tensione superficiale σ dipende dall’accoppiamento dei fluidi e, in generale, anche dalla temperatura; noi lo assumeremo costante, in quanto trascuriamo tutti gli effetti dovuti al flusso di calore. Si noti che l’evoluzione dell’interfaccia deve essere compatibile con l’equazione di conservazione della massa (10.78). Dal punto di vista matematico, questa equazione deve essere considerata in senso debole, ossia nel senso delle distribuzioni, dal momento che la densità è discontinua attraverso l’interfaccia e le sue derivate possono quindi essere interpretate solo in senso debole. Assieme alle equazioni (10.76) e (10.77), questa equazione costituisce il modello fisico che descrive un flusso composto da due fluidi. Poichè questa forma dell’equazione di conservazione della massa è spesso poco conveniente per le simulazioni numeriche, bisogna introdurre altri modelli equivalenti che descrivano l’evoluzione dell’interfaccia Γ (t); una rassegna è presentata nella Sezione 10.9.4. 10.9.4 Modellistica dell’evoluzione dell’interfaccia Diamo qui una breve rassegna dei differenti approcci per descrivere l’evoluzione di un’interfaccia Γ (t) in un dominio fisso Ω. Nei metodi di cattura del fronte, l’interfaccia viene rappresentata implicitamente con il valore di una funzione scalare φ : Ω × (0, T ) → R che registra per ogni punto x a quale sottoinsieme tale punto appartiene: Ω + (t) o Ω − (t). Un’equazione di trasporto risolta per φ descrive quindi l’evoluzione dell’interfaccia. Attraverso questo
342
10 Le equazioni di Navier-Stokes
metodo, tutti i modelli di interfaccia impliciti condividono il vantaggio che i cambi di topologia dell’interfaccia sono possibili in modo naturale nel modello, e quindi si realizzano senza bisogno di interventi speciali. 10.9.5 I metodi Volume of Fluid I metodi Volume Of Fluid (VOF) sono stati introdotti da Hirt e Nichols [HN81]. Qui φ è una funzione costante a tratti 1 x ∈ Ω + (t) φ(x, t) = 0 x ∈ Ω − (t) e l’interfaccia Γ (t) si colloca quindi alla discontinuità della funzione φ. In questo modo, densità e viscosità sono definite semplicemente come ρ = ρ− + (ρ+ − ρ− )φ, −
(10.84)
−
μ = μ + (μ − μ )φ. +
L’equazione di trasporto viene usualmente discretizzata con metodi ai volumi finiti, approssimando φ con un valore costante in ciascuna cella della griglia. A causa degli errori di discretizzazione e degli schemi di trasporto diffusivi, l’approssimazione di φ assumerà valori compresi fra 0 e 1, che, grazie all’equazione (10.84) possono essere interpretati (e spesso lo sono) come la frazione di volume del fluido che occupa Ω + . Questo spiega la denominazione Volume of Fluid. Frazioni di volume fra 0 e 1 rappresentano una miscela dei due fluidi. Poiché i fluidi sono considerati immiscibili, questo è un comportamento non desiderato, in particolar modo perchè gli effetti del mescolamento potrebbero non restare confinati vicino all’interfaccia, bensì espandersi nell’intero dominio Ω. In questo modo, l’interfaccia, inizialmente supposta netta, verrebbe a diffondersi sempre più. Esistono diverse tecniche per limitare questo problema; sono state sviluppate procedure elaborate per la ricostruzione delle normali e della curvatura di un’interfaccia diffusa. I metodi Volume of Fluid si avvantaggiano del fatto che l’applicazione di una discretizzazione conservativa dell’equazione di trasporto assicura la conservazione della massa del fluido, in quanto la relazione (10.84) fra φ e ρ è lineare. 10.9.6 Metodi Level Set Per evitare i problemi connessi ai metodi Volume of Fluid, Dervieux e Thomasset [DT80] hanno proposto di definire l’interfaccia come la curva di livello zero di una funzione continua di pseudo densità e di applicare questo metodo a problemi di flusso. Il loro approccio è stato successivamente studiato più sistematicamente in [OS88] e in successive pubblicazioni, nelle quali venne coniato il termine metodo Level Set. La prima applicazione a problemi di flusso si ha grazie a Mulder, Osher e Sethian [MOS92]. In contrasto con l’approccio Volume of Fluid, questi metodi permettono di
10.9 Problemi di fluidi a superficie libera
343
mantenere l’interfaccia netta, in quanto φ è definita come una funzione continua tale che φ(x, t) > 0 ∀x ∈ Ω + (t), φ(x, t) < 0 ∀x ∈ Ω − (t), φ(x, t) = 0 ∀x ∈ Γ (t). La funzione φ è detta funzione level set, in quanto l’interfaccia Γ (t) è il suo level set zero, con la sua isolinea o isosuperficie associata al valore zero Γ (t) = {x ∈ Ω : φ(x, t) = 0}.
(10.85)
Densità e viscosità possono ora essere espresse in funzione di φ come ρ = ρ− + (ρ+ − ρ− )H(φ), −
−
μ = μ + (μ − μ )H(φ), +
(10.86) (10.87)
dove H(·) è la funzione di Heaviside H(ξ) =
0 ξ 0.
Per costruzione, in un modello Level Set l’interfaccia resta definita in modo preciso, pertanto due fluidi immiscibili non si mescolano. Inoltre, la determinazione delle normali e della curvatura dell’interfaccia è più facile e più naturale. In cambio, essendo la relazione (10.86) non lineare, l’applicazione di una discretizzazione conservativa dell’equazione di trasporto per φ non assicura la conservazione della massa del fluido dopo la discretizzazione. Tuttavia, la conservazione della massa è garantita al limite via raffinamento di griglia. Più in dettaglio, l’evoluzione della superficie libera è descritta da un’equazione di trasporto per la funzione Level Set: ∂t φ + u · ∇φ = 0 x ∈ Ω, t ∈ (0, T ), φ = φ0 x ∈ Ω, t ∈ (0, T ), φ = φin x ∈ ∂Σin , t ∈ (0, T ),
(10.88)
in cui Σin è il bordo di inflow Σin = {(x, t) ∈ ∂Ω × (0, T ) : u(x, t) · n < 0}. Le equazioni dei fluidi (10.76)-(10.77) e l’equazione Level Set (10.88) sono quindi accoppiate. L’equazione (10.88) può essere ricavata come segue [MOS92]: sia ¯ x(t) il percorso di un punto sull’interfaccia Γ (t); questo punto si muove con il fluido, quindi dt x ¯(t) = u(¯ x(t), t). Essendo la funzione φ costantemente zero sull’interfaccia in moto, deve risultare φ(¯ x(t), t) = 0 .
344
10 Le equazioni di Navier-Stokes
Derivando rispetto al tempo e applicando la regola di derivazione di funzioni composte, si ha ∂t φ + ∇φ · u = 0 su Γ (t) ∀t ∈ (0, T ). (10.89) Se invece consideriamo il percorso di un punto in Ω ± , possiamo chiedere φ(¯ x(t), t) = ±c, c > 0, in modo da assicurarci che il segno di φ(¯ x, t) non cambi e che, conseguentemente, ¯ x(t) ∈ Ω ± (t) per ogni t > 0. In questo modo, l’equazione (10.89) si generalizza all’intero dominio Ω, il che ci porta all’equazione (10.88). Possiamo ora verificare che la conservazione della massa è soddisfatta. Utilizzando la (10.86) otteniamo formalmente ∂t ρ + u · ∇ρ = (ρ+ − ρ− )(∂t H(φ) + u · ∇H(φ)) = (ρ+ − ρ− )δ(φ)(∂t φ + u · ∇φ)
(10.90)
in cui δ(·) denota la funzione delta di Dirac. Grazie all’equazione (10.88), il terzo fattore in (10.90) risulta zero. Vale quindi l’equazione (10.78) e la conservazione della massa viene soddisfatta. 10.9.7 Grandezze relative all’interfaccia Nel problema del flusso di due fluidi sono di particolare interesse la normale all’interfaccia e la sua curvatura, in quanto la tensione superficiale è proporzionale alla curvatura e agisce nella direzione normale. Forniamo qui una derivazione intuitiva di queste quantità in funzione di φ, senza entrare nei dettagli della geometria differenziale. Si veda, ad es., [Spi99] per una derivazione dettagliata e rigorosa. La normale unitaria nΓ è ortogonale a tutte le direzioni tangenti τ . Queste ultime, a loro volta, sono caratterizzate dal fatto che le derivate direzionali di φ lungo di esse devono essere nulle, ovvero 0 = ∂τ φ = ∇φ · τ
su Γ.
Come conseguenza possiamo definire la normale unitaria come nΓ =
∇φ . |∇φ|
(10.91)
Si noti che con questa definizione, nΓ punta da Ω − verso Ω + . Inoltre, poichè φ è definita non solo sull’interfaccia ma anche nell’intero dominio, anche l’espressione per la normale si generalizza in modo naturale all’intero dominio. Per ricavare l’espressione della curvatura, dobbiamo considerare le direzioni principali tangenziali τ i , i = 1 . . . d − 1, caratterizzate dal fatto che la derivata direzionale di nΓ lungo τ i ha essa stessa direzione τ i , ovvero ∂τ i nΓ = ∇nΓ τ i = −κi τ i ,
κi ∈ R,
i = 1 . . .d − 1
(10.92)
10.9 Problemi di fluidi a superficie libera
345
Più grande è |κi |, maggiore sarà la curvatura della superficie in questa direzione. Per tale ragione i κi sono denominati curvature principali. Con semplici calcoli si ricava che κi = (Rτ i )−1 , dove i valori Rτ i sono i raggi dei cerchi (o dei cilindri) approssimanti l’interfaccia, come nell’equazione (10.81). Si nota dall’equazione (10.92) che i d − 1 valori −κi sono autovalori del tensore ∇nΓ di dimensioni d × d. Dalla definizione (10.91) si ha che nΓ è essenzialmente un campo gradiente, regolare vicino all’interfaccia. Il tensore di rango due ∇nΓ risulta pertanto un tensore di derivate seconde di una funzione regolare, e quindi è simmetrico, dunque possiede un ulteriore autovalore reale il cui autovettore associato deve essere nΓ , essendo gli autovettori di un tensore simmetrico ortogonali. Tale è nullo, in quanto (∇nΓ nΓ )i =
d "
(∂xi nj )nj =
j=1
d " 1 j=1
2
∂xi (n2j ) =
1 ∂x |nΓ |2 = 0, 2 i
essendo |nΓ | = 1 per costruzione (10.91). Partendo dall’equazione (10.81), per la curvatura otteniamo κ=
d−1 " i=1
d−1 " 1 ∇φ . = κi = −tr(∇nΓ ) = −divnΓ = div Rτ i |∇φ| i=1
Condizioni iniziali Pur conoscendo la posizione Γ0 dell’interfaccia a t = 0, la funzione level set associata φ0 non è univocamente definita. Questo grado di libertà può essere usato per semplificare ulteriormente i successivi passaggi. Si noti che ripidi gradienti di φ rendono più difficoltosa la soluzione numerica dell’equazione (10.88) (si veda, ad es., [QV94]), mentre gradienti poco accentuati diminuiscono la stabilità numerica nel determinare Γ a partire da φ. Risulta quindi un buon compromesso introdurre l’ulteriore vincolo |∇φ| = 1. Una funzione che soddisfa questo vincolo è la funzione distanza dist(x; Γ ) = min |x − y|, y∈Γ
che in ogni punto x assume il valore della minore distanza euclidea da x a Γ . Moltiplicando questa funzione per −1 su Ω − , otteniamo la funzione distanza con segno ⎧ ⎨ dist(x; Γ ) x ∈ Ω + sdist(x; Γ ) = 0 x∈Γ ⎩ −dist(x; Γ ) x ∈ Ω − . È uso, e buona norma, scegliere φ0 (x) = sdist(x; Γ0) per rappresentare l’interfaccia iniziale Γ0 . È interessante notare che se |∇φ| = 1, le espressioni della curvatura e della normale dell’interfaccia si semplificano ulteriormente: nΓ = ∇φ
e
κ = −div∇φ = −Δφ.
346
10 Le equazioni di Navier-Stokes
Ri-inizializzazione Purtroppo, la proprietà di normalizzazione |∇φ| = 1 non è preservata per via del trasporto di φ con la velocità del fluido u. Per rimediare, una possibile strategia consiste nel determinare un campo di velocità di trasporto che imprima all’interfaccia lo stesso movimento indotto dal campo di velocità del fluido e mantenga allo stesso tempo la proprietà di normalizzazione. In effetti, un siffatto campo di velocità esiste, e si conoscono algoritmi efficienti per determinarlo (si veda, ad es., [AS99]). Esso è noto come velocità di estensione, in quanto viene costruito estendendo all’intero dominio la velocità definita sull’interfaccia. Alternativamente, possiamo sempre usare la velocità del fluido u per trasportare la funzione dei level set φ, e intervenire quando |∇φ| si discosta troppo da 1. L’azione da intraprendere in questo caso viene detta ri-inizializzazione, in quanto la procedura è in parte simile a quella di inizializzazione con la condizione iniziale. Supponiamo di ri-inizializzare al tempo t = tr , si procede come segue: 1. dato φ(·, tr ), trovare Γ (tr ) = {x : φ(x, tr ) = 0}; 2. sostituire φ(·, tr ) con sdist(·, Γ (tr )). È interessante notare come il problema di trovare la velocità di estensione sia strettamente correlato al problema di ri-inizializzare φ per una funzione distanza con segno. Si possono utilizzare gli stessi algoritmi, e ci si può aspettare lo stesso costo computazionale. Tuttavia, due differenze concettuali favoriscono l’approccio della riinizializzazione: in primo luogo, le velocità di estensione devono essere calcolate ad ogni passo temporale, mentre la ri-inizializzazione può essere applicata solo quando necessaria. In secondo luogo, le velocità di estensione approssimate conserveranno solo approssimativamente la proprietà di normalizzazione della distanza, e potrebbe rendersi comunque necessaria una ri-inizializzazione. In [Win07] si possono trovare i dettagli algoritmici sulla costruzione efficiente di un’approssimazione della funzione distanza con segno, con particolare riguardo al caso tridimensionale.
10.9.8 Esistenza e unicità Sono noti assai pochi risultati in merito alle proprietà di esistenza, unicità e regolarità delle soluzioni di problemi a superficie libera della forma (10.76)-(10.78). Un risultato di esistenza globale nel caso in cui f = ρg e σ = 0 è dovuto a P.L. Lions [Lio96]. Questa dimostrazione richiede che Ω sia un sottoinsieme derivabile, limitato e connesso di Rd , e che sull’intero bordo vengano imposte delle condizioni al contorno di Dirichlet omogenee, (ossia che ΓD = ∂Ω e ϕ = 0, si veda (10.79). Se inoltre valgono le seguenti ipotesi: ρ0 ∈ L∞ (Ω), e
ρ0 u0 ∈ L2 (Ω)d ,
g ∈ L (Ω × (0, T )) , 2
d
ρ0 |u0 |2 ∈ L1 (Ω),
ρ0 ≥ 0
q.o. in Ω,
10.10 Esercizi
347
allora esistono soluzioni globali deboli che soddisfano ρ ∈ L∞ (Ω × (0, T )), u∈L
2
(0, T ; H01 (Ω))d , ∞ 1
ρ ∈ C([0, ∞); Lp(Ω))
∀p ∈ [1, ∞),
∇u ∈ L (Ω × (0, T )) 2
ρ|u| ∈ L (0, T ; L (Ω)). 2
In particolare, non si conoscono proprietà di regolarità del campo di pressione p. Se però ρ0 > 0, allora si prova [Lio96] che esiste “in piccolo” (ovvero per un intervallo temporale finito) una soluzione forte alla quale tutte le soluzioni deboli sono uguali. Un altro risultato dovuto a Tanaka [Tan93] considera il caso in cui il coefficiente di tensione superficiale sia diverso da zero ma costante. Sotto alcune assunzioni (più forti delle precedenti) di regolarità dei dati iniziali, si prova che esiste una soluzione globale purché i dati iniziali e le forze esterne siano sufficientemente piccoli. Inoltre, viene provata l’unicità locale (in tempo). La situazione descritta non è forse del tutto soddisfacente, ma non ci impedisce di sviluppare modelli numerici ben posti che approssimino i modelli matematici e forniscano soluzioni che siano in buon accordo con le osservazioni fisiche.
10.10 Esercizi 1. Si verifichi che la condizione (10.53) è equivalente alla condizione inf-sup (10.20). [Soluzione: la (10.53) è violata se e solo se ∃p∗ = 0 con p∗ ∈ RM tale che BT p∗ = 0 o, equivalentemente, che ∃p∗h ∈ Qh tale che b(ϕn , p∗h) = 0 ∀n = 1, . . . , N . Ciò equivale ad avere b(vh , p∗h ) = 0 ∀vh ∈ Vh , proprietà che a sua volta equivale a violare la condizione (10.20).] 2. Si dimostri che una condizione necessaria affinché la (10.53) sia soddisfatta è che 2N ≥ M . [Soluzione: si ha che N = rango(B) + dim(kerB), mentre M = rango(BT ) + dim(kerBT ) = rango(BT ) = rango(B). Di conseguenza, abbiamo che N −M = dim(kerB) ≥ 0 e dunque una condizione necessaria per avere un’unica soluzione è N ≥ M .] 3. Si dimostri che la coppia di elementi finiti P1 − P0 per velocità e pressione non soddisfa la condizione inf-sup. [Soluzione: eseguiamo la dimostrazione in due dimensioni spaziali. Si consideri per semplicità una triangolazione uniforme come quella indicata in figura 10.13, a sinistra, in 2n2 triangoli, n ≥ 2. Il numero di gradi di libertà per la pressione è M = 2n2 − 1 (un valore per ogni triangolo meno uno, avendo imposto il vincolo di media nulla), mentre quello per la velocità è N = 2(n − 1)2 (corrispondente a due componenti per ogni vertice interno, supponendo che ai nodi di bordo siano assegnate condizioni di Dirichlet). La condizione necessaria N ≥ M dell’Esercizio 2 è pertanto violata in questo caso.]
348
10 Le equazioni di Navier-Stokes
4. Si dimostri che la coppia di elementi finiti quadrangolari Q1 − Q0 con velocità bi-lineare e pressione costante su ciascun elemento non soddisfa la condizione inf-sup. [Soluzione: poniamoci in due dimensioni e cominciamo con l’osservare che se la griglia è formata da n × n elementi (si veda la Fig. 10.13 a destra), ci saranno (n − 1)2 nodi interni e quindi N = 2(n − 1)2 gradi di libertà per le velocità e M = n2 − 1 gradi di libertà per le pressioni. La condizione necessaria è perciò soddisfatta purché n ≥ 3. Bisogna procedere perciò ad una verifica diretta del fatto che la condizione inf-sup non sia soddisfatta. Supponiamo la griglia uniforme di passo h ed indichiamo con qi±1/2,j±1/2 una quantità q valutata nei punti (xi±1/2 , yj±1/2) = (xi ±h/2, yi ±h/2). Sia Kij l’elemento ij-esimo della griglia di calcolo. Con qualche manipolazione algebrica si trova che qh divuh dΩ = Ω
n−1 h" uij (qi−1/2,j−1/2 + qi−1/2,j+1/2 2 i,j=1
−qi+1/2,j−1/2 − qi+1/2,j+1/2) +vij (qi−1/2,j−1/2 − qi−1/2,j+1/2 + qi+1/2,j−1/2 − qi+1/2,j+1/2).
Appare allora evidente che la pressione p∗ che vale 1 sugli elementi neri e −1 sugli elementi bianchi della Fig. 10.13, a destra, è una pressione spuria.] 5. Per il problema di Stokes si consideri il problema di Dirichlet omogeneo sul quadrato (0, 1)2 e si utilizzi una griglia uniforme formata da elementi quadrati. Verificare quindi direttamente l’esistenza di (almeno) un modo di pressione spurio. 6. Si consideri il problema di Stokes stazionario non-omogeneo: ⎧ ⎨ −νΔu + ∇p = f in Ω ⊂ R2 , divu = 0 in Ω, ⎩ u=g su Γ = ∂Ω , dove g è una funzione data. Si mostri che il problema ammette soluzione solo se Γ g · n = 0 e si trovi la sua formulazione debole. Mostrare che il termine a
Figura 10.13. Griglia uniforme per una discretizzazione con elementi P1 − P0 (a sinistra) e Q1 − Q0 (a destra) con modi spuri di pressione
10.10 Esercizi
349
destra dell’equazione di conservazione della quantità di moto (prima equazione del sistema) definisce un elemento di V , spazio duale di V . 7. Ripetere le medesime considerazione dell’esercizio precedente per il problema di Navier-Stokes non omogeneo: ⎧ ⎨ (u · ∇)u − νΔu + ∇p = f in Ω ⊂ R2 , divu = 0 in Ω, ⎩ u=g su Γ = ∂Ω. 8. Si dimostri la stima a priori (10.57). [Soluzione: si ponga vh = uh e qh = ph nella (10.55). Indi si applichino le disuguaglianze di Cauchy-Schwarz e di Young al termine noto, nonché la disuguaglianza di Poincaré.]
11 Cenni di programmazione degli elementi finiti
In questo capitolo approfondiamo alcuni aspetti relativi alla traduzione in codici di calcolo del metodo degli elementi finiti. Questa operazione di implementazione può nascondere alcune insidie. La necessità di avere un’implementazione ad alta efficienza computazionale, oltre alle esigenze sintattiche di un qualsiasi linguaggio di programmazione, richiede una codifica che non è in genere l’immediata traduzione di quanto visto in sede di presentazione teorica. L’efficienza dipende da tanti fattori, compresi il linguaggio usato e l’architettura su cui si lavora. L’esperienza personale può giocare un ruolo fondamentale tanto quanto l’apprendimento da un testo. Anche se talvolta passare tanto tempo alla ricerca di un errore in un codice o di una struttura dati più efficiente può sembrare tempo perso, non lo è (quasi) mai. Per questo, l’auspicio è che il presente capitolo sia una sorta di “canovaccio” per prove che il lettore possa fare autonomamente più che un capitolo da studiare in senso tradizionale. Un’ultima osservazione riguarda il taglio del capitolo: l’approccio seguito qui è quello di fornire indicazioni di carattere generale: ovviamente ogni problema ha specificità che possono essere sfruttate in modo mirato per una implementazione ancor più efficiente.
11.1 Fasi operative di un codice a elementi finiti Nell’esecuzione di un calcolo a elementi finiti possiamo distinguere quattro fasi che rappresentano altrettante fasi di codifica (Fig. 11.1). 1. Pre-processing. Questa fase consiste nella impostazione del problema e nella codifica del dominio di calcolo che, come visto nel Cap. 3, richiede la costruzione della reticolazione. In generale, a parte i casi banali (ad esempio in dimensione 1), la costruzione di una mesh adeguata è un problema numerico di rilevante interesse, per il quale sono state sviluppate tecniche ad hoc. In genere, questa operazione è svolta da programmi a parte o da moduli appositi all’interno di un solutore, nei quali di recente molta cura è stata rivolta alla parte di interfaccia grafica e di inA. Quarteroni: Modellistica numerica per problemi differenziali, 4a edizione c Springer-Verlag Italia, Milano 2008
352
11 Cenni di programmazione degli elementi finiti
Pre
Assemblaggio -
M ESH
I NFO G EOMETRIA
I NFO F UNZIONALI
6 ? C OSTRUZIONE M ATRICI
? R ISOLUTORE A LGEBRICO
A DATTIVIT A` R EMESHING 6
NO
Post
? @
@ S`I OK ? @ @ @ @
- E ND
Figura 11.1. Fasi operative di un codice a elementi finiti
terfacciamento con programmi di CAD (Computer Aided Design). Alle tecniche di base per la generazione di griglia è dedicato il Cap. 12. 2. Assemblaggio. In questa fase vengono costruite le strutture dati “funzionali”, a partire da quelle “geometriche” ricavate dalla mesh e dalle scelte dell’utente circa il tipo di elementi finiti che si vuole usare. Inoltre, in base al problema che si vuol risolvere e alle sue condizioni al bordo, viene calcolata la matrice di rigidezza associata alla discretizzazione (si vedano i Cap. 3 e 5). Questa operazione può essere eventualmente inserita all’interno di un ciclo di avanzamento temporale se si stanno trattando problemi tempo-dipendenti (come fatto nei Cap. 6-10) e può essere il frutto anche di un’operazione di linearizzazione nel caso si stiano trattando problemi non lineari. In senso stretto, il termine “assemblaggio” si riferisce alla costruzione della matrice del sistema lineare, passando dal calcolo locale svolto sull’elemento di riferimento a quello globale che concorre alla determinazione della matrice associata al problema discretizzato. La Fig. 11.2 riassume le diverse operazioni durante la fase di assemblaggio per la preparazione del sistema algebrico.
11.1 Fasi operative di un codice a elementi finiti
353
Nodi 1
2
3
1
4
6
5
2
5
6
1
3
1
6
2
4
2
6
3
5
3
6
4
Elemento
1
2
5
6
1 4
3 2 (Dirichlet)
5
4
A ϕi , i = 1, 2, 3
3 (Dirichlet)
3
6
b
4
3 6 4
A
b
Figura 11.2. Schematizzazione dell’assemblaggio. Le informazioni geometriche e topologiche (tabella in alto), opportunamente memorizzate descrivono la griglia. Mediante la mappatura sul e del termine l’elemento di riferimento, si effettua il calcolo della matrice di discretizzazione A noto b, procedendo prima elemento per elemento (calcolo locale) e poi, sfruttando l’additività dell’operazione di integrazione, si aggiorna la matrice globale. I simboli che rappresentano ogni elemento della matrice sono ottenuti dalla sovrapposizione dei simboli usati per definire ogni elemento della mesh. Alla fine, si opera la prescrizione delle condizioni al bordo, che idealmente elimina i gradi di libertà con condizioni di Dirichlet, giungendo alla matrice finale A e al termine noto b. Come vedremo, l’operazione viene spesso implementata diversamente
3. Risoluzione del sistema algebrico. Il nocciolo risolutivo di base di ogni calcolo ad elementi finiti è rappresentato dalla soluzione di un sistema lineare. Come detto, questo potrà essere eventualmente parte di un ciclo temporale (basato su un metodo di discretizzazione implicito) o di un ciclo iterativo dovuto alla linearizzazione di un problema non lineare. La scelta del metodo risolutivo è in genere affidata all’utente. Per questo motivo è molto importante che l’utente sappia unire alle conoscenze del problema in esame, che come visto nel Cap. 3 si riflettono sulla struttura della matrice (ad esempio la simmetria, la positività) una buona conoscenza dei metodi a disposizioni per poter fare una scelta ottimale (la quale raramente è quella di default). Per questo motivo, in Appendice B vengono richiamate le principali caratteristiche dei metodi per la risoluzione di sistemi lineari. Oggi vi sono molte librerie di calcolo molto efficienti per la risoluzione di sistemi lineari di diverso tipo, per cui l’orientamento in fase di codifica è in genere quello
354
11 Cenni di programmazione degli elementi finiti
di includere tali librerie piuttosto che implementarle ex-novo. Ad esempio, negli esempi che seguiranno la parte di risoluzione dei sistemi lineari è affidata a Aztec Versione 2.1, libreria sviluppata presso i Sandia Laboratories di Albuqerque, New Mexico, USA (si veda [AZT]). Vi sono tuttavia molte altre librerie dedicate a questo scopo, fra le quali ricordiamo PetSC (si veda [Pet]) e UMFPACK [UMF], TriLinos [Tri]. 4. Post-processing. La mole di dati numerici generati da un codice agli elementi finiti è spesso enorme. Occorre elaborare questa informazione in modo da presentare risultati sintetici ed in una forma utilizzabile per gli scopi dell’analisi. La sintesi mediante immagini o il calcolo di grandezze derivate può non essere una fase banale. In particolare, il calcolo di grandezze derivate, se non viene effettuato con i dovuti accorgimenti può introdurre inaccettabili errori aggiuntivi. Presenteremo le tecniche di generazione di griglia nel prossimo capitolo. Pertanto, l’oggetto principale di questo capitolo sarà la fase di Assemblaggio (Sez. 11.4), nella quale la codifica efficiente del metodo degli elementi finiti non è la semplice traduzione in un linguaggio di programmazione di quanto visto nella teoria, ma sono richiesti accorgimenti opportuni. Prima di affrontare l’argomento, nella Sez. 11.2 ci occuperemo della codifica di formule di quadratura per il calcolo numerico degli integrali, mentre la codifica delle matrici in formato sparso è trattata nella Sez. 11.3. Per quanto riguarda la fase di post-processing, rimandiamo alla letteratura specifica, osservando che alcune tecniche usate sono state già introdotte nel Cap.3 per il calcolo di stimatori a posteriori. La Sez. 11.6 riporta infine un esempio completo.
11.1.1 Due parole sul codice utilizzato Vi sono molti linguaggi e ambienti di programmazione disponibili oggi, caratterizzati da filosofie e obiettivi disparati. Nel momento in cui si affronta l’implementazione di un metodo numerico, occorre fare una scelta motivata in questo panorama, per poter concretizzare le spiegazioni attraverso porzioni di codice. Tra gli ambienti di programmazione molto utili per la costruzione di prototipi, Matlab è sicuramente uno strumento validissimo sotto molti punti di vista, anche se, come per tutti i linguaggi interpretati, difetta sotto il profilo della efficienza computazionale. Un altro ambiente orientato alla soluzione di problemi differenziali in 2D mediante il metodo degli elementi finiti è FreeFem++ (si veda www.freefem.org). Questo ambiente comprende in un unico pacchetto (gratuito e usabile sotto diversi sistemi operativi) tutte le quattro fasi indicate sopra, con una sintassi particolarmente accattivante, che riduce la distanza fra codifica e formulazione teorica, e in particolare avvicinando significativamente la prima alla seconda. Questa operazione ha un indubbio valore “didattico”, di effettuare simulazioni anche di problemi non banali rapidamente. Tuttavia, i costi computazionali e la difficoltà ad implementare nuove strategie che richiedano estensioni della sintassi possono risultare penalizzanti in casi di interesse reale.
11.2 Calcolo numerico degli integrali
355
Tradizionalmente, tra i linguaggi di programmazione compilati, il Fortran (in particolare il Fortran 77) è quello cha ha avuto maggior successo in ambito numerico, grazie al fatto di generare codici eseguibili molto efficienti. Più di recente, la filosofia di programmazione orientata agli oggetti è sembrata avere caratteristiche di astrazione molto adatte per problemi matematico-numerici. L’astrazione insita nella trasversalità degli strumenti matematici sembra trovare un ottimo corrispettivo nell’astrazione propria della programmazione a oggetti, basata sulla progettazione di tipi di dato da parte dell’utente (più che su operazioni da svolgere, come nella programmazione procedurale) e sul loro uso polimorfico (si veda ad es. [LL00, CP00, Str00]). Tuttavia, il costo computazionale di questa astrazione ha talvolta ridotto l’interesse per una programmazione filosoficamente interessante, ma sovente operativamente perdente per problemi di tipo scientifico, dove l’efficienza computazionale è (quasi) sempre cruciale. Questo ha richiesto lo sviluppo di tecniche di programmazione più sofisticate (ad esempio gli Expression Templates), che consentissero di evitare che i costi della interpretazione di oggetti astratti diventassero troppo pesanti dutrante l’esecuzione del codice (si vedano ad es. [Vel95, Fur97, Pru06, DV08]). Accanto al Fortran, pertanto, oggi sono sempre più diffusi anche in ambito scientifico linguaggi come il C++, nato come un miglioramento del linguaggio C orientato agli oggetti: fra gli altri, ricordiamo Diffpack e FoamCFD. A questo linguaggio faremo pertanto riferimento nelle parti di codice presentati nel seguito. In particolare, queste porzioni di codice sono parte di un’ampia libreria, LifeV (Life 5), sviluppata presso i centri CMCS del Politecnico di Losanna, l’INRIA di Rocquencourt, Parigi e il MOX del Politecnico di Milano. Questa libreria, liberamente scaricabile da www.lifev.org sotto le condizioni generali di licenza LGPL, si configura come un codice aperto a nuovi contributi in diversi contesti applicativi (principalmente in 3D) per l’applicazione di metodi numerici recenti in un contesto di programmazione avanzata orientata agli oggetti. La lettura accurata del codice (che d’ora in avanti chiameremo “Programmi” per semplicità) richiede alcune conoscenze di base di C++ per le quali rinviamo a [LL00]. Volendo tuttavia usare il presente capitolo come base per fare prove autonome (e con il proprio linguaggio di programmazione preferito) non è essenziale, per la comprensione del testo, la conoscenza completa della sintassi del C++, ma è sufficiente avere dimestichezza con i construtti sintattici di base.
11.2 Calcolo numerico degli integrali Il calcolo numerico effettivo degli integrali richiesti nella formulazione a Elementi Finiti viene tipicamente eseguito mediante l’applicazione di formule di quadratura. Per una introduzione completa all’argomento della quadratura numerica, rimandiamo a testi di Analisi Numerica di base (ad esempio [QSS08]). In questa sede, basta ricordare che una formula di quadratura generica ha la forma: f(x)dx ≈ K
nqn " iq=1
f(xiq )wiq
356
11 Cenni di programmazione degli elementi finiti
ove K indica la regione su cui si integra (tipicamente un elemento della griglia), nqn è il numero di nodi di quadratura per la formula scelta, xiq sono le coordinate dei nodi di quadratura e wiq sono i pesi. Tipicamente, l’accuratezza della formula nonché il costo computazionale crescono con il numero di nodi di quadratura. Come visto nel Cap. 4, Sez. 4.2.2 e 4.2.3, le formule che, a parità di numero di nodi, garantiscono la migliore accuratezza sono quelle gaussiane. Il calcolo dell’integrale viene in genere svolto sull’elemento di riferimento, sul quale è nota l’espressione delle funzioni di base, mediante un opportuno cambio di variabile (Sez. 3.3). Se indichiamo le coordinate dello spazio di riferimento con x ˆi e le relative funzioni di base con ϕ .i , l’integrazione nello spazio di riferimento richiederà la conoscenza della matrice Jacobiana J della trasformazione geometrica, definita come ∂xi J = [Jij ] = . ∂ xˆj Infatti, si ha:
f(x)dx = ˆ K
K
f(ˆ x)|J|(x)dˆ x≈
"
xiq )wiq fˆ(ˆ xiq )|J|(ˆ
(11.1)
iq
dove |J| indica il determinante di J. Nel caso di operatori dove interviene la derivata spaziale, occorre applicare le regole di derivazione delle funzioni composte: " ∂f ∂ x ∂f .j = , ∂xi ∂. xj ∂xi d
∇f = J −T ∇xf. =
j=1
1 cof (J)∇xf., |J|
ove cof(J) è la matrice dei cofattori di J. Ad esempio, per il calcolo della matrice di stiffness avremo: " ∂ϕα ∂ϕβ " ∂ ϕˆα ∂ xˆl ∂ ϕˆβ ∂ xˆm ∇ϕα ∇ϕβ = dx = |J|dx ≈ ∂ xˆl ∂xi ∂ xˆm ∂xj K ∂xi ∂xj i,j K
i,j,l,m K
! ! ∂ ϕˆα −1 ∂ ϕˆβ −1 J J |J|(xˆiq )wiq , ˆl li ∂ xˆm mj i,j,l,m iq ∂ x
(11.2) essendo α e β gli indici di due generiche funzioni di base. Si noti la presenza degli elementi della matrice Jacobiana inversa J −1 , dovuti alla trasformazione di coordinate che intervengono nel calcolo delle derivate delle funzioni di base. La classe che codifica una formula di quadratura memorizza pertanto nodi di quadratura e pesi associati. Nel calcolo effettivo degli integrali, verranno poi ottenute le informazioni sulla mappatura necessarie per il calcolo vero e proprio, dipendenti dalla geometria di K.
11.2 Calcolo numerico degli integrali
357
Nel Programma 1 si riporta la codifica di una formula di quadratura a 5 punti per tetraedri: 1 1 1 9 1 .1 = , w1 = x , , 6 6 6 20 6 1 1 1 9 1 .2 = x , , , w2 = 20 6 6 6 2 1 1 1 9 1 .3 = , w3 = x , , 20 6 6 2 6 1 1 1 9 1 .4 = , w4 = x , , 20 6 2 6 6 1 1 1 16 1 .5 = x , , , w5 = − . 4 4 4 20 6 Il fattore 1/6 che compare nell’espressione dei pesi wi rappresenta il volume del tetraedro di riferimento. Sovente, i pesi tabulati nei libri non tengono conto esplicitamente di questo fattore, per cui, nel nostro caso, si trovano i valori 9/20 e −16/20, ma la misura dell’elemento di riferimento non va dimenticata!
Programma 1 - pt-tetra-5pt: Formula di quadratura a cinque nodi su tetraedro: la classe QuadPoint definisce il singolo nodo di quadratura con il peso associato. La formula di quadratura sarà definita da un array di oggetti QuadPoint class QuadPoint { Real _coor[ 3 ]; Real _weight; public: QuadPoint(Real x, Real y, Real z, Real weight ) { _coor[ 0 ] = x; _coor[ 1 ] = y; _coor[ 2 ] = z; _weight = weight; } } //Integrazione su Tetraedro con una formula a 5 nodi const Real tet5ptx1 = 1. / 6. , tet5ptx2 = 1. / 2., tet5ptx3 = 1. / 4.; static const QuadPoint pt_tetra_5pt[ 5 ] = { QuadPoint( tet5ptx1,tet5ptx1, tet5ptx1, 9. / 120. ), QuadPoint( tet5ptx1,tet5ptx1, tet5ptx2, 9. / 120. ), QuadPoint( tet5ptx1, tet5ptx2, tet5ptx1, 9. / 120. ), QuadPoint( tet5ptx2, tet5ptx1, tet5ptx1, 9. / 120. ), QuadPoint( tet5ptx3, tet5ptx3, tet5ptx3, -16. / 120. ) };
358
11 Cenni di programmazione degli elementi finiti
La scelta di una formula di quadratura risponde a due esigenze (di tipo conflittuale): 1. da un lato, maggiore è l’accuratezza e meglio è controllato l’errore generato dal calcolo degli intergrali; per problemi a coefficienti costanti o polinomiali, facendo leva sul concetto di grado di esattezza di una formula di quadratura, si può addirittura annullare completamente l’errore di integrazione numerica; 2. dall’altro lato, l’aumento dell’accuratezza si accompagna spesso ad un aumento del numero di nodi nqn. La giusta sintesi fra le due esigenze, evidentemente, dipende dai requisiti del problema che si vuole risolvere, nonché dalle specifiche di accuratezza e velocità per il calcolo da eseguire. 11.2.1 Le coordinate baricentriche Quando l’elemento di riferimento è un simplesso unitario, è possibile far riferimento nella definizione delle formule di quadratura alle coordinate baricentriche (dette anche di area in 2D o di volume in 3D), introdotte nel Cap. 5. Questo insieme di coordinate gode infatti di alcune proprietà utili in determinati contesti. Dato il tetraedro di riferimento, associamo ad ogni punto 4 numeri (in generale, se il problema è d dimensionale, si associano d + 1 numeri, ma da ora in avanti ci riferiremo solo al caso 3D, anche se le definizioni si estendono in modo immediato al caso 2D e 1D), P = (λ0 , λ1 , λ2 , λ3 )
con
λ1 = 1 − λ2 − λ3 − λ4 .
Si tratta evidentemente di una definizione un po’ anomala, dal momento che le coordinate non sono indipendenti fra loro. Inoltre, i 4 vertici del tetraedro, nella numerazione canonica di Fig. 11.3, verranno identificati dalle n-uple: P0 = (1, 0, 0, 0), P1 = (0, 1, 0, 0), P2 = (0, 0, 1, 0), P3 = (0, 0, 0, 1) in modo che in modo naturale ogni coordinata è associata ad un vertice, mentre il baricentro avrà coordinate B = (1/4, 1/4, 1/4, 1/4). In generale, la coordinata di un punto P qualsiasi rappresenterà il rapporto fra il volume del tetraedro che ha come vertici quelli della faccia opposta al vertice cui è associata e il punto P e il volume totale del tetraedro. Le proprietà che rendono interessanti queste coordinate sono principalmente le seguenti. 1. Le funzioni di base degli elementi finiti lagrangiani lineari sull’elemento di riferimento coincidono proprio con l’espressione delle coordinate baricentriche, pur di porre (. x, y., z.) = (λ1 , λ2 , λ3 ), ossia ϕ .i = λi , i = 0, 1, 2, 3. Questo giustifica il nome di “coordinate”, nel senso che (come vedremo anche nella Sez. 11.4.3, in particolare nella (11.5)) l’espressione di un generico punto nello spazio fisico a partire da quella delle coordinate dei vertici del tetraedro diventa: x .=
3 " j=0
λj x .j ,
y. =
3 " j=0
λj y.j ,
z. =
3 " j=0
λj z.j .
11.2 Calcolo numerico degli integrali
359
zˆ P3 yˆ P2 P
P0
P1
xˆ
Figura 11.3. La coordinata baricentrica λi del punto P rappresenta il rapporto fra il volume del tetraedro che ha come vertici P stesso e quello della faccia opposta al vertice Pi (in figura viene ombreggiato il tetraedro opposto a P0 sotteso da P e dai vertici P1 , P2 , P3 ) e il volume totale del tetraedro
Anche le funzioni di base di elementi di grado più elevato possono essere espresse in funzione delle coordinate baricentriche e in particolare per un tetraedro lagrangiano di grado 2 si ha: ϕ .0 = λ0 (2λ0 − 1), ϕ .1 = λ1 (2λ1 − 1), ϕ .2 = λ2 (2λ2 − 1), ϕ .3 = λ3 (2λ3 − 1), ϕ .4 = 4λ1 λ2 , ϕ .5 = 4λ1 λ3 , ϕ .6 = 4λ1 λ4 , ϕ .7 = 4λ2 λ3 , ϕ .8 = 4λ3 λ4 , ϕ .9 = 4λ2 λ4 . Il calcolo delle derivate rispetto alle coordinate baricentriche è reso complicato dal fatto che esse non sono tutte indipendenti fra loro. Esistono tuttavia modi efficienti per il calcolo della matrice Jacobiana: il lettore interessato può riferirsi a [Aki94], Cap. 9 o [Hug00], Cap. 3. 2. Per le coordinate baricentriche in 3D si ha: K
λa0 λb1 λc2 λd3 dω =
a!b!c!d! . 6Vol(K), (a + b + c + d + 3)!
. la misura del volume dell’elemento K . (pari a 1/6). Questa foressendo Vol(K) mula consente agevolmente il calcolo esatto di integrali polinomiali nelle funzioni di base lagrangiane, utili ad esempio per problemi a coefficienti costanti. In 2D la formula analoga è K
λa0 λb1 λc2 dω =
a!b!c! . 2Area(K), (a + b + c + 2)!
360
11 Cenni di programmazione degli elementi finiti
mentre in 1D essa diventa λa0 λb1 dω = K
a!b! . Lunghezza(K). (a + b + 1)!
3. La verifica di appartenenza di un punto P a un elemento K si riduce alla verifica che le sue coordinate baricentriche λi siano tutte positive. Questa proprietà è particolarmente utile quando serva determinare l’elemento di appartenenza di un punto, come nell’uso di derivate lagrangiane (Cap. 10) o del calcolo di grandezze in post-processing come le linee di flusso. 11.2.2 Alcuni esempi di formule di quadratura A titolo di esempio, la Tabella 11.1 riporta i pesi e i nodi per alcune formule di quadratura assai comuni in 2D. La Tabella 11.2 riporta alcune formule per tetraedri. Le formule sono simmetriche: bisogna considerare tutte le possibili permutazioni delle coordinate baricentriche per avere la lista completa dei nodi. Per comodità si riporta, oltre al numero totale di nodi nqn, la molteplicità m di ciascun nodo di quadratura, cioè il numero di nodi generati dalle permutazioni. Si fornisce anche il grado di esattezza r. Vediamo due semplici esempi. Supponiamo di voler calcolare: I = f(x, y)dx = f.(. x, y.)J(. x, y.)d. x. K
K
Usando i pesi e nodi della prima riga della tabella si ottiene: I
1.1 1 1 1 f ( , )J( , ) = Area(K)f(x, y), 2 3 3 3 3
dove il coefficiente 1/2 rappresenta l’area dell’elemento di riferimento, x è il nodo di coordinate baricentriche λ1 = λ2 = λ3 = 1/3 e corrisponde al baricentro del Tabella 11.1. Nodi e pesi per formule di quadratura su triangoli. I nodi sono espressi mediante le loro coordinate baricentriche. I pesi non tengono conto della misura dell’elemento di riferimento (che vale 1/2) nqn 1 3 3 4 6 6
1/3 1 2/3 1/3 0.6 0.65902762237 0.81684757298 0.10810301817
λ(j) 1/3 0 1/3 1/3 0.2 0.23193336855 0.09157621351 0.44594849092
1/3 0 1/3 1/3 0.2 0.10903900907 0.09157621351 0.44594849092
m 1 3 3 1 3 6 3 3
wj 1 1/3 1/3 -0.5625 0.52083 1/6 0.10995174366 0.22338158968
r 1 1 1 2 2 3
11.3 Memorizzazione di matrici sparse
361
triangolo. Pertanto la corrispondente formula è la ben nota formula del punto medio composita. Per usare la formula della seconda riga notiamo che m = 3 e dunque abbiamo di fatto 3 nodi di quadratura le cui coordinate baricentriche si ottengono per permutazione ciclica: (λ1 = 1, λ2 = 0, λ3 = 0), (λ1 = 0, λ2 = 1, λ3 = 0), (λ1 = 0, λ2 = 0, λ3 = 1). Quindi per ogni triangolo K otteniamo f(x)dx
1 1 . f (0, 0)J(0, 0) + f.(1, 0)J(1, 0) + f.(0, 1)J(0, 1) 23
K
= Area(K)
2 " 1 i=0
3
f (xi ) .
essendo x0 , x1 , x2 , i vertici del triangolo K, corrispondenti alle coordinate baricentriche (0,0),(1,0) e (0,1) rispettivamente. La corrispondente formula dà pertanto origine alla formula del trapezio composita. Entrambe le formule hanno grado di esattezza 1. Tabella 11.2. Nodi e pesi per formule di quadratura su tetraedri. I nodi sono espressi mediante le loro coordinate baricentriche. I pesi non tengono conto della misura dell’elemento di riferimento (che vale 1/6) nqn 1 4 5
λ(j) 1/4 1/4 0.58541020 0.13819660 1/4 1/4 1/2 1/6
1/4 0.13819660 1/4 1/6
1/4 0.13819660 1/4 1/6
m 1 4 1 4
wj 1 1/4 -16/20 9/20
r 1 2 3
Altre formule di quadratura per il calcolo di integrali per diversi elementi finiti si trovano in [Com95], [Hug00], [Str71]. Osservazione 11.1 Qualora si faccia uso di elementi quadrilateri o prismatici, nodi e pesi delle formule di quadratura si possono ottenere come prodotto tensoriale delle formule di quadratura di Gauss per il caso monodimensionale, come visto nel Cap. 4 (si veda anche [CHQZ06]). •
11.3 Memorizzazione di matrici sparse Come visto nel Cap. 3, le matrici degli elementi finiti sono sparse. La distribuzione degli elementi non nulli viene indicata dal cosiddetto pattern di sparsità (detto anche grafo) della matrice. Il pattern dipende dalla griglia computazionale adottata, dal
362
11 Cenni di programmazione degli elementi finiti
tipo di elemento finito scelto e dalla numerazione dei nodi. La memorizzazione efficiente di una matrice consiste pertanto nella memorizzazione dei soli elementi non nulli, secondo il posizionamento indicato dal pattern. La discretizzazione di problemi differenziali diversi, ma sulla stessa griglia computazionale e con lo stesso tipo di elementi finiti, porta a matrici con lo stesso grafo. Per questo motivo può capitare di dover gestire più matrici, ma tutte con lo stesso pattern. Pertanto, in una logica di programmazione a oggetti, può essere utile separare la memorizzazione del grafo (che può diventare un “tipo di dato” definito dall’utente, ossia una classe) dalla memorizzazione dei valori di ogni matrice. In tal modo, una matrice si può vedere come una struttura dati per la memorizzazione dei suoi valori, unita a un puntatore al grafo ad essa associato. Il puntatore, infatti, memorizza solo la locazione di memoria ove il pattern viene memorizzato e quindi, di per sé, ha una occupazione di memoria minima. Più matrici potranno pertanto condividere lo stesso grafo, senza inutili duplicazioni di memorizzazione del pattern (si vedano i codici 2 e 3). All’atto pratico, vi sono diverse tecniche per memorizzare in modo efficiente matrici sparse, ossia la posizione e il valore dei loro elementi non nulli. E’ bene osservare che, in questo contesto, l’aggettivo “efficiente” non si riferisce soltanto alla minor occupazione di memoria che si possa realizzare, ma anche alla rapidità di accesso in memoria di ogni elemento. Un formato di memorizzazione che richieda il minimo dispendio di memoria possibile è verosimilmente più lento nell’accedere a un valore desiderato. Infatti, la maggior compattezza di memorizzazione tipicamente si ottiene introducendo forme indirette di indirizzamento, in base alle quali il valore di un elemento si ottiene dopo aver ricavato la sua posizione nella memoria dell’elaboratore accedendo alle strutture dati che memorizzano il grafo. Più passaggi intermedi sono necessari, più il tempo di accesso all’elemento desiderato sarà lungo. Proprio per la necessità di trovare il giusto compromesso, diverse tecniche di memorizzazione sono state proposte in letteratura, con diverse prerogative. Una rassegna commentata si trova ad esempio in [FSV05], Appendice B. Qui ci limitiamo a ricordare un formato molto usato per la memorizzazione di matrici sparse quadrate, ossia il formato MSR (Modified Sparse Row). Il grafo di sparsità di una matrice quadrata generata dalla discretizzazione di un problema mediante elementi finiti possiede la proprietà che gli elementi diagonali sono sempre compresi a priori fra gli elementi non nulli, per il motivo banale che il supporto di una funzione di base ha intersezione non vuota con se stesso. Il formato MSR si basa su questa considerazione per memorizzare solo il pattern della parte extra-diagonale, utilizzando poi un altro vettore per memorizzare i valori della diagonale principale, ordinati secondo la riga di appartenenza. Nella pratica, per memorizzare la matrice, si usano due vettori, che chiameremo value (valori) e bindx (connessione delle righe). A questo, per i motivi che vedremo in [FSV05] si propone di aggiungere un terzo vettore che chiamiamo bindy (connessione delle colonne). Indichiamo con n la dimensione della matrice da memorizzare e nz il numero dei suoi elementi non nulli.
11.3 Memorizzazione di matrici sparse
Per illustrare il formato MSR ci n = 5 e nz = 17: ⎡0 a ⎢ 0 ⎢ A= ⎢ ⎢ h ⎣ 0 i
363
serviamo di un esempio (vd. Fig. 11.4) in cui 1 2 0 f b k l c n 0 0 s
3 0 m 0 d q
4 g 0 r p e
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
0 1 2 3 4
Facciamo notare che la numerazione di righe e colonne in matrici e vettori parte da 0, secondo la sintassi del C++. I vettori che caratterizzano il formato MSR sono: ⎤ ⎤ ⎡ ⎡ 0 a 6 ⎢ b ⎥ ⎢ 8 ⎥ 1 ⎥ ⎥ ⎢ ⎢ 2 ⎢ c ⎥ ⎢ 10 ⎥ ⎥ ⎢ d ⎥ ⎢ 3 ⎥ ⎢ ⎢ 13 ⎥ ⎥ ⎢ e ⎥ ⎢ 4 ⎥ ⎢ ⎢ 15 ⎥ ⎥ ⎢ ∗ ⎥ ⎢ 5 ⎥ ⎢ ⎢ 18 ⎥ ⎥ ⎢ f ⎥ ⎢ 6 ⎥ ⎢ ⎢ 2 ⎥ ⎢ g ⎥ ⎢ 4 ⎥ 7 ⎥ ⎥ ⎢ ⎢ 8 ⎢ k ⎥ ⎢ 2 ⎥ bindx = ⎢ value = ⎢ ⎥ ⎥ 9 ⎢ m ⎥ ⎢ 3 ⎥ ⎢ h ⎥ ⎢ 0 ⎥ 10 ⎥ ⎥ ⎢ ⎢ ⎢ l ⎥ ⎢ 1 ⎥ 11 ⎥ ⎥ ⎢ ⎢ ⎢ r ⎥ ⎢ 4 ⎥ 12 ⎥ ⎥ ⎢ ⎢ ⎢ n ⎥ ⎢ 1 ⎥ 13 ⎥ ⎥ ⎢ ⎢ 14 ⎢ p ⎥ ⎢ 4 ⎥ ⎥ ⎢ i ⎥ ⎢ 15 ⎥ ⎢ ⎢ 0 ⎥ ⎣ s ⎦ ⎣ 16 2 ⎦ 17 q 3 Il vettore bindy è:
⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ bindy = ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣
10 15 11 13 6 8 16 9 17 7 12 14
⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦
0 1 2 3 4 5 6 7 8 9 10 11
Vediamo come sono strutturati questi vettori. Nelle prime n posizioni di value (indicizzate da 0 a 4 = n − 1) vengono memorizzati i valori diagonali della matrice. La posizione di indice n viene lasciata vuota, mentre dalla posizione di indice n + 1 in avanti vengono memorizzati i valori degli elementi extradiagonali, ordinati riga per
364
11 Cenni di programmazione degli elementi finiti
Riga 0
value=
bindx=
Riga 1
a
b
c
d
e
∗
f
g
k
m
0
1
2
3
4
5
6
7
8
6
8
10 13 15 18 2
4 1
10 − 6 = 4
ybind=
Riga 2
Riga 3
Riga 4
h
l
r
n
p
i
s
q
9
10
11
12
13
14
15
16
17
2
3
0
1
4
1
4
0
2
3
2
3
4
5
6
7
8
9
10
11
10 15 11 13 6
8
16 9
0
Colonna 0 Colonna 1
Colonna 2
17 7 Colonna 3
12 14 Colonna 4
Figura 11.4. Illustrazione delle strutture del formato MSR: le frecce indicano il percorso per la determinazione degli elementi della terza riga e della terza colonna
riga. La dimensione complessiva di value sarà pertanto nz + 1. Il vettore bindx ha pure nz + 1 elementi. Gli elementi di posizione n + 1 fino a nz + 1 contengono gli indici di colonna dei rispettivi elementi il cui valore è memorizzato in value nella stessa posizione. Le prime n + 1 posizioni di bindx puntano a dove iniziano le righe nelle posizioni di indice da n + 1 a nz + 1. Se ad esempio si volesse accedere agli elementi della terza riga (vedi Fig. 11.4), si ha che: a) l’elemento diagonale è in value(2); b) gli elementi extra-diagonali sono compresi nelle posizioni indicate da bindx(2) e bindx(3)-1, ossia: 1. i valori sono in value(bindx(2)), bindx(2)+1), . . ., value(bindx(3)-1); 2. gli indici di colonna sono in bindx(bindx(2)), bindx(bindx(2)+1), . . ., bindx(bindx(3)-1). L’elemento bindx(n) punta a una ipotetica riga successiva all’ultima. In questo modo, il numero di elementi non nulli della riga i-esima (per 1 ≤ i ≤ n) è dato senza eccezioni (che significa senza la necessità di introdurre salti condizionati) dalla differenza bindx(i+1)-bindx(i). Se la matrice fosse memorizzata solo tramite questi due vettori, avremmo un accesso agevole per righe (ossia è facile estrarne una riga), mentre l’accesso per colonne richiederebbe numerosi confronti, a scapito dell’efficienza. Un modo per rendere più agevole questa operazione è quello di arricchire il formato MSR di bindy. Si sfrutta la caratteristica delle matrici degli elementi finiti di avere un pattern simmetrico. Infatti, la proprietà che due funzioni di base abbiano supporto non disgiunto è evidentemente “simmetrica”. Questo significa che, se percorriamo gli elementi extra-diagonali della
11.3 Memorizzazione di matrici sparse
365
riga di indice k e troviamo che il coefficiente akl è presente nel pattern (cioè è non nullo), sarà presente nel pattern anche alk , che si ottiene percorrendo la riga di indice l. Se la posizione in bindx (e value) dell’elemento alk è memorizzata in un vettore “gemello” della porzione di bindx che va dagli indici n + 1 a nz, abbiamo una struttura che restituisce gli elementi di una colonna desiderata. Tale vettore è bindy: ad esempio, per estrarre la colonna di indice 2 dalla matrice basta leggere gli elementi di bindy compresi fra le posizioni bindx(2)-(n+1) e bindx(3)-1-(n+1) (la sottrazione di indice n+1 serve solo come shift fra gli indici cui punta bindx in value e quelli cui deve puntare in bindy). Questi elementi puntano alle posizioni di bindx e value ove si possono trovare, rispettivamente, gli indici di riga corrispondenti e i valori della matrice. Il formato MSR essendo uno dei formati più “compatti” per matrici sparse consente economia di memoria ed è pertanto utilizzato in alcune librerie di algebra lineare per problemi di grandi dimensioni, come Aztec (si veda [AZT]). Ha tuttavia il difetto di essere utilizzabile solo per matrici quadrate. Per maggiori dettagli si vedano [FSV05], [Saa96]. Nei Programmi 2 e 3 riportiamo la struttura dati (ossia i membri private) delle classi MSRPatt e MSRMatr. Programma 2 - BasePattern: Struttura di base per memorizzare il pattern di matrice
in formato MSR eclass BasePattern : public PatternDefs public: ... protected: ... UInt _nnz; UInt _nrows; UInt _ncols; ; class MSRPatt : public BasePattern public: ... const Container& bindx() const return _bindx; ; const Container& bindy() const return _bindy; ; ;
Programma 3 - MSRMatr: Matrici in formato MSR template class MSRMatr public:
366
11 Cenni di programmazione degli elementi finiti
... private: std::vector _value; const MSRPatt *_Patt; ;
11.4 La fase di assemblaggio Per fase di assemblaggio intendiamo in realtà l’articolazione di diverse operazioni che portano alla costruzione della matrice associata al problema discretizzato. Per questo scopo, occorrono due tipi di informazioni: 1. geometriche, tipicamente contenute nel file della mesh; 2. funzionali, relative alla rappresentazione della soluzione mediante elementi finiti. Le informazioni di carattere funzionale sono tanto più ampie quanti più tipi di elementi diversi sono codificati. In LifeV sono trattati elementi finiti Lagrangiani e non, continui e discontinui. In particolare, per gli elementi Lagrangiani continui, si hanno: 1. elementi finiti Lagrangiani in 1D di grado 1 e 2; 2. elementi finiti Lagrangiani in 2D; a) triangolari con funzioni lineari e quadratiche; b) quadrilateri con funzioni bilineari e biquadratiche; 3. elementi finiti Lagrangiani in 3D; a) tetraedrici con funzioni lineari e quadratiche; b) prismatici con funzioni bilineari e biquadratiche. In Fig. 11.5 sono riportate le principali geometrie di riferimento considerate nel codice con la numerazione locale dei vertici. I tetraedri rappresentano l’estensione in 3D degli elementi triangolari considerati nel Cap. 3. Gli elementi prismatici estendono in 3D gli elementi geometrici quadrilateri in 2D introdotti nel Cap. 4. Una descrizione completa della costruzione di elementi di questo tipo si può trovare in [Hug00], Cap. 3. Le informazioni geometriche e funzionali, opportunamente codificate, vengono poi utilizzate per la costruzione della matrice del problema discretizzato. Contrariamente a quanto sembrerebbe naturale nella definizione di elementi finiti Lagrangiani, la costruzione della matrice avviene effettuando un ciclo sugli elementi anziché sui nodi. Il motivo di questo approccio element-oriented, piuttosto che di quello nodeoriented, è essenzialmente legato a questioni di efficienza computazionale. L’espressione analitica di una funzione di base associata ad un nodo varia su ogni elemento afferente a quel nodo. Effettuando un ciclo su nodi si renderebbe necessario, prima di effettuare il calcolo degli integrali individuare l’espressione analitica della funzione di base appropriata per ogni elemento afferente. In termini di codice questo significa che il corpo del ciclo va riempito di salti condizionati, ossia istruzioni di tipo if...then...elseif...then...else... all’interno del ciclo di assemblaggio. I salti condizionati sono istruzioni “costose” in termini computazionali, tanto più se sono all’interno di
11.4 La fase di assemblaggio
1D
367
4
2
1
1
3
3
2
3D 1
4
2
3
8
2D
7
6
5 4
1
2
1
3 2
Figura 11.5. Illustrazione di alcuni elementi di riferimento presenti in LifeV con la numerazione locale (convenzionale) dei nodi
un ciclo (e vengono quindi effettuati numerose volte). Per rendersene conto, è sufficiente osservare il numero di micro-istruzioni assembler richieste in fase di compilazione per espandere un salto condizionato, rispetto a una qualsiasi altra istruzione, si veda ad esempio [HVZ97]. Come vedremo, l’approccio element-oriented, sfruttando l’additività dell’ operazione di integrazione, permette di aggirare brillantemente l’ostacolo. In particolare, come già evidenziato nel Cap. 3, la costruzione della matrice del problema può avvenire concettualmente in due passi, all’interno di un ciclo sugli elementi della griglia: 1. costruzione della matrice e del termine noto che discretizzano l’operatore differenziale sull’ elemento considerato (matrice e vettore locali); 2. aggiornamento della matrice e del termine noto globali, sfruttando l’additività dell’operazione di integrazione. Vi sono anche approcci diversi al problema: in alcuni casi, la matrice non viene costruita, ma si calcolano direttamente i suoi effetti nella moltiplicazione per un vettore; per ragioni di spazio qui ci occupiamo dell’approcio più standard. Come detto, la costruzione della matrice locale viene effettuata operando l’inte. usando opportune formule di quadratura. A grazione sull’elemento di riferimento K, costruzione effettuata di matrice e termine noto, vengono imposte le condizioni al bordo; in particolare, la prescrizione delle condizioni di Dirichlet non usa necessariamente la tecnica vista nelle Sez 2.2.2 e 3.4, che consiste nella eliminazione dei gradi di libertà associati a tali condizioni dopo la costruzione del rilevamento.
368
11 Cenni di programmazione degli elementi finiti
Come si vede, l’assemblaggio è una fase articolata. Nei paragrafi seguenti tratteremo gli aspetti menzionati, senza tuttavia approfondirli, per ragioni di spazio. Verranno prima trattate le strutture dati per la codifica delle informazioni geometriche (Sez. 11.4.1) e funzionali (Sez. 11.4.2). Il calcolo della mappatura geometrica tra elemento di riferimento e elemento corrente fornisce l’occasione per introdurre gli elementi isoparametrici (Sez. 11.4.3). Il calcolo effettivo di matrice e termine noto locali e il loro uso nella costruzione del sistema globale è trattato nella Sez. 11.4.4. Infine, nella Sez. 11.4.5 accenniamo ad alcune tecniche implementative per l’imposizione delle condizioni al bordo. 11.4.1 Codifica delle informazioni geometriche In termini di strutture dati, la mesh può essere vista come una collezione di elementi geometrici e di informazioni topologiche. Le prime possono essere costruite aggregando classi per la definizione di punti (ossia di elementi geometrici zero dimensionali), di spigoli (elementi geometrici 1D), di facce (2D) e infine volumi (3D). Una possibile interfaccia per la codifica di queste entità geometriche, limitatamente al caso di punti e volumi, è fornita nel Programma 4.
Programma 4 - GeoElements: Classi elementari e aggregate per la costruzione degli
enti geometrici //! Classe per Punti e Vertici class GeoElement0D public: GeoElement0D(); GeoElement0D( ID id, Real x, Real y, Real z, bool boundary = false ); GeoElement0D & operator = ( GeoElement0D const & g ); ; // Classe per Elementi 3D template class GeoElement3D public: GeoElement3D( ID id = 0 ); typedef GeoElement1D EdgeType; typedef GeoElement2D FaceType; typedef GeoElement0D PointType; typedef FaceType GeoBElement; //! Numero di Vertici per elemento static const UInt numLocalVertices;
11.4 La fase di assemblaggio
369
//! Numero di Facce per elemento static const UInt numLocalFaces; //! Numero di spigoli per elemento (regola di Eulero) static const UInt numLocalEdges; ;
La classe per la definizione delle entità geometriche, che qui viene presentata in una forma significativamente semplificata rispetto a quella di LifeV, fornisce metodi (che non riportiamo per ragioni di spazio) che consentano di interrogare (query) la struttura per ricavare informazioni di interesse, quali l’identificatore all’interno di una lista o gli identificatori di entità geometriche adiacenti. Questo è molto importante nel definire la connessione della mesh e, dunque, il pattern della matrice. La definizione di tipi standard per le entità geometriche (indicate con il termine di GEOSHAPE nel codice precedente) può essere fatta mediante l’introduzione di opportune classi che indichino la struttura geometrica di cui si compongono i volumi della mesh. Ad esempio, nel Programma 5 indichiamo la classe per i tetraedri. Programma 5 - Tetra: Classe per la codifica di elementi tetraedrici class Tetra public: static const ReferenceShapes Shape = TETRA; static const ReferenceGeometry Geometry = VOLUME; static const UInt nDim = 3; static const UInt numVertices = 4; static const UInt numFaces = 4; static const UInt numEdges = numFaces + numVertices - 2; ;
Partendo da queste classi di base, una mesh sarà una classe per collezionare gli elementi. In realtà, alla struttura geometrica è giocoforza aggiungere: 1. informazioni topologiche che permettano la caratterizzazione degli elementi nella griglia, ossia la connettività fra i nodi, rispetto ad una numerazione convenzionale degli stessi. La convenzione per i possibili elementi presente in LifeV è data in Fig. 11.5; per poter “visitare” in modo efficiente gli elementi di una griglia, si possono aggiungere anche informazioni sugli elementi adiacenti ad ogni elemento; 2. informazioni specifiche che permettono la localizzazione dei gradi di libertà che sono sul bordo; questo semplifica le gestione della prescrizione delle condizioni di bordo; osserviamo che tipicamente si associa ad ogni elemento geometrico di bordo un indicatore che poi verrà associato ad una specifica condizione al bordo. A partire dalla classe di riferimento geometrica, si codificano poi gli elementi geometrici correnti, secondo le possibili mappature trattate nella Sez. 11.4.3. Ad esempio, se la mappatura è di tipo affine, si ottengono tetraedri lineari, indicati nel Programma 6.
370
11 Cenni di programmazione degli elementi finiti
Programma 6 - LinearTetra: Classe per la codifica di tetraedri ottenuti per trasformazione geometrica affine dell’elemento di riferimento class LinearTetra: public Tetra public: typedef Tetra BasRefSha; typedef LinearTriangle GeoBShape; static const UInt numPoints = 4; static const UInt nbPtsPerVertex = 1; static const UInt nbPtsPerEdge = 0; static const UInt nbPtsPerFace = 0; static const UInt nbPtsPerVolume = 0; ;
A questo punto, il codice con parte della classe che identifica la mesh è nel Programma 7 Programma 7 - RegionMesh3D: Classe per la memorizzazione di una mesh 3D template class RegionMesh3D public: explicit RegionMesh3D(); //Definizione dei profili di base typedef GEOSHAPE VolumeShape; typedef typename GEOSHAPE::GeoBShape FaceShape; typedef typename FaceShape::GeoBShape EdgeShape; // Enti geometrici typedef GeoElement3D VolumeType; typedef GeoElement2D FaceType; typedef GeoElement1D EdgeType; typedef GeoElement0D PointType; //Vettore dei punti typedef SimpleVect Points; //Vettore dei volumi typedef SimpleVect Volumes; //Vettore delle facce di bordo typedef SimpleVect Faces; //Vettore degli spigoli typedef SimpleVect Edges; typedef GEOSHAPE ElementShape; typedef typename GEOSHAPE::GeoBShape BElementShape; typedef GeoElement3D ElementType;
11.4 La fase di assemblaggio
371
typedef GeoElement2D BElementType; typedef SimpleVect Elements; Points _pointList; Volumes volumeList; Faces faceList; Edges edgeList; UInt numLocalVertices() const; //Numero di vertici per elemento UInt numLocalFaces() const; //Numero di facce per elemento UInt numLocalEdges() const; //Numero di spigoli per elemento UInt numLocalEdgesOfFace() const; //Numero di spigoli per faccia UInt numElements() const; //Numero totale di volumi UInt & numElements(); UInt numBElements() const; //Numero di elementi al bordo (=facce) UInt & numBElements(); ElementType & element( ID const & i ); ElementType const & element( ID const & i ) const; BElementType & bElement( ID const & i ); BElementType const & bElement( ID const & i ) const; ;
Il vettore di elementi geometrici di tipo “volume” dichiarato in Volumes volumeList conterrà ad esempio la lista dei vertici che definiscono ogni tetraedro della mesh, nell’ordine convenzionale stabilito e indicato in Fig. 11.5. La costruzione di un contenitore per una mesh di tetraedri affini verrà effettuata mediante l’istruzione RegionMesh3D aMesh;
cui seguirà la lettura della Mesh per riempire effettivamente i vettori di volumi, facce, spigoli e punti previsti in RegionMesh3D. Per quanto riguarda i formati di un file di mesh, non esiste uno standard accettato universalmente. Tipicamente, ci si aspetta che un tale file contenga le coordinate dei vertici, la connettività che associa i vertici agli elementi geometrici e la lista degli elementi di bordo con relativo indicatore da usare per la definizione delle condizioni di bordo. I valori delle condizioni al bordo, invece, sono generalmente assegnati separatamente. Osservazione 11.2 I problemi multi-fisica o multi-modello stanno diventando una componente rilevante del calcolo scientifico: si pensi ad esempio ai problemi di interazione fluido-struttura o di accoppiamento (talvolta in chiave adattiva) di problemi nei quali il modello differenziale completo (e computazionalmente più costoso) venga usato solo in una regione di specifico interesse, accoppiandolo con modelli più semplici nelle rimanenti regioni. Queste applicazioni e, più in generale, la necessità di sviluppare algoritmi di calcolo di tipo parallelo, hanno motivato lo sviluppo di tecniche di risoluzione dei problemi differenziali mediante decomposizione dei domini. Il
372
11 Cenni di programmazione degli elementi finiti
lettore interessato può consultare ad esempio [QV99], [TW05]. In questo caso, la mesh risultante è la collezione delle mesh dei sottodomini, unitamente alle informazioni topologiche circa le interfacce fra sottodomini. In questo testo, per semplicità, faremo comunque sempre riferimento a problemi a un solo dominio. •
11.4.2 Codifica delle informazioni funzionali Come visto nel Cap. 3, la definizione delle funzioni di base viene effettuata su un elemento di riferimento. Ad esempio, per i tetraedri, questo elemento coincide con il simplesso unitario (vedi Fig. 11.5). La codifica di un elemento di riferimento avrà essenzialmente puntatori a funzioni per la determinazione delle funzioni di base e delle loro derivate. Inoltre, potrà essere arricchita da un puntatore alla formula di quadratura usata nel calcolo degli integrali (vd. Sez. 11.2), come nel Programma 8. Programma 8 - RefEle: Classe per la memorizzazione delle informazioni funzionali
sull’elemento di riferimento class RefEle protected: const Fct* _phi; //Puntatore alle funzioni di base const Fct* _dPhi;//Puntatore alle derivate delle funzioni di base const Fct* _d2Phi;////Puntatore allee derivate seconde delle funzioni di base const Real* _refCoor; //Coord di Riferimento: xi_1,eta_1,zeta_1,xi_2,eta_2,zeta_2,... const SetOfQuadRule* _sqr; //Puntatore all’insieme di formule di quadratura public: const std::string name; //Nome dell’elemento di riferimento const ReferenceShapes shape; //Forma geometrica dell’elemento const int nbDof; //Numero totale di gradi di libertà const int nbCoor; //Numero di coordinate locali ;
Nel codice 9 riportiamo le funzioni per la definizione di elementi finiti lineari su tetraedro. Per ragioni di spazio riportiamo solo la codifica di alcune delle derivate prime. Programma 9 - fctP13D: Funzioni di base per un elemento tetraedrico lineare Real fct1_P1_3D( cRRef x, cRRef y, cRRef z )return 1 -x - y - z; Real fct2_P1_3D( cRRef x, cRRef, cRRef )return x; Real fct3_P1_3D( cRRef, cRRef y, cRRef )return y; Real fct4_P1_3D( cRRef, cRRef, cRRef z )return z; Real derfct1_1_P1_3D( cRRef, cRRef, cRRef )return -1; Real derfct1_2_P1_3D( cRRef, cRRef, cRRef )return -1; ...
11.4 La fase di assemblaggio
373
Una volta instanziato l’elemento di riferimento, le informazioni funzionali saranno disponibili sia per la rappresentazione della soluzione che per la definizione della mappatura geometrica fra elemento di riferimento e elemento corrente, come vediamo nella sezione che segue. Avendo definito l’elemento geometrico e il tipo di elementi finiti che vogliamo usare, siamo ora in grado di costruire i gradi di libertà del problema. Ciò significa assegnare ad ogni elemento della mesh la numerazione dei gradi di libertà che giacciono sull’elemento e il pattern della matrice locale; quest’ultima è generalmente piena, anche se può comunque contenere elementi nulli. Un grado di libertà può avere bisogno di informazioni aggiuntive quali, nel caso di elementi finiti Lagrangiani, le coordinate del nodo corrispondente sull’elemento di riferimento.
11.4.3 Mappatura tra elemento di riferimento e elemento fisico Nel Cap.3 si è visto come sia vantaggioso scrivere le funzioni di base, le formule di quadratura e, dunque, svolgere il calcolo degli integrali ripetto a un elemento di riferimento. Può essere pertanto interessante esaminare alcuni metodi pratici per la costruzione e la codifica di tale cambio di coordinate. Per maggiori dettagli, rimandiamo a [Hug00]. Limitiamoci per ora a considerare il caso di elementi triangolari e tetraedrici. Un primo tipo di trasformazione di coordinate è quello affine. In sostanza, la mapˆ e x è esprimibile tramite una matrice B e un vettore c (vd. Sez.3.4.3 e patura fra x Fig. 11.6): x = Bˆ x + c.
(11.3)
zˆ P3
P2
P0
yˆ
P1 x ˆ
Figura 11.6. Mappatura fra il tetraedro di riferimento e quello corrente. A destra in alto, una mappatura di tipo affine; a destra in basso, una mappatura di tipo quadratico
374
11 Cenni di programmazione degli elementi finiti
In questo modo, si ha banalmente che J = B (costante su ciascun elemento). Se la distribuzione di nodi generata dal reticolatore è corretta, il determinante di J è sempre positivo, cosa che garantisce che non vi siano casi degeneri (ad esempio quattro vertici di un tetraedro complanari) e che non vi sono permutazioni scorrette nei nodi corrispondenti nella mappatura. L’espressione di B e c si ricava dall’espressione delle coordinate dei nodi. Supponiamo infatti che i nodi numerati localmente 1,2,3,4 del tetraedro di riferimento corrispondano rispettivamente ai nodi della mesh numerati con i, k, l, m. Si ha allora: ⎧ x i = c1 yi = c2 yi = c3 ⎪ ⎪ ⎨ xk = b11 + xi yk = b12 + yi zk = b13 + yi (11.4) xl = b21 + xi yl = b22 + yi zl = b23 + yi ⎪ ⎪ ⎩ xm = b31 + xi ym = b32 + yi zm = b33 + yi da cui ri ricavano le espressioni di B e c. Esiste, tuttavia, un modo più efficace di rappresentare la trasformazione: essendo lineare elemento per elemento, essa può essere rappresentata tramite le funzioni di base degli elementi finiti Lagrangiani lineari. Infatti, si può scrivere: x=
3 " j=0
Xj ϕ .j (. x, y., z.), y =
3 " j=0
Yj ϕ .j (. x, y., z.), z =
3 "
Zj ϕ .j (. x, y., z.).
(11.5)
j=0
Gli elementi della matrice Jacobiana della trasformazione si calcolano immediatamente: ⎡ 4 ⎤ 4 4 ! ∂ϕ .j ! ∂ϕ .j ! ∂ϕ .j X X X j j j ⎢ ∂. x j=1 ∂. y j=1 ∂. z ⎥ ⎢ j=1 ⎥ ⎢ ! 4 4 4 ! ∂ϕ ! ∂ϕ ∂ϕ .j .j .j ⎥ ⎢ ⎥ Yj Yj Yj (11.6) J=⎢ ⎥. ∂. x ∂. y ∂. z ⎢ j=1 ⎥ j=1 j=1 ⎢ 4 ⎥ 4 4 ! ! ⎣ ! ∂ϕ .j ∂ϕ .j ∂ϕ .j ⎦ Zj Zj Zj ∂. x ∂. y ∂. z j=1 j=1 j=1 Quando in un elemento finito Lagrangiano le stesse funzioni di base vengono usate per la definizione della mappa geometrica, si parla di elementi iso-parametrici (vd. Fig. 11.6 e 11.7). Ovviamente, la coincidenza vale per il fatto di avere scelto elementi finiti lineari e trasformazioni geometriche affini. Quando si prendono in considerazione elementi finiti di grado maggiore di 1, possiamo considerare due tipi di mappature: – elementi finiti affini: in questo caso, la trasformazione geometrica è descritta ancora dalle trasformazioni affini (11.5), anche se l’informazione funzionale relativa alla soluzione è descritta da funzioni quadratiche o di grado più elevato; il bordo del dominio discretizzato Ωh , in questo caso, è sempre poligonale (poliedrico); – elementi finiti isoparametrici: la trasformazione geometrica è descritta dalle stesse funzioni di base usate per rappresentare la soluzione; pertanto gli elementi nello spazio fisico Oxyz avranno in generale lati curvi.
11.4 La fase di assemblaggio
375
y P3
P2 x
P0
P1
Figura 11.7. Mappatura fra il quadrilatero di riferimento e l’elemento corrente: affine (in alto), isoparametrico (in centro), ibrido (in basso). Quest’ultimo viene costruito con 5 nodi, in modo da poter avere una trasformazione biquadratica per i nodi di un solo lato
La definizione di una mappatura quadratica a partire dall’elemento di riferimento tetraedrico, consente ad esempio la creazione di elementi geometrici quadratici tetraedrici, codificati nella classe QuadraticTetra riportata nel Programma 10. Programma 10 - QuadraticTetra: Classe per la definzione di elementi tetraedrici
quadratici class QuadraticTetra: public Tetra public: typedef Tetra BasRefSha; typedef QuadraticTriangle GeoBShape; static const UInt numPoints = 10; static const UInt nbPtsPerVertex = 1; static const UInt nbPtsPerEdge = 1; static const UInt nbPtsPerFace = 0; static const UInt nbPtsPerVolume = 0; ;
Stabilito il tipo di elemento di riferimento e le mappature geometriche, è possibile costruire la collezione degli elementi “correnti”. L’elemento corrente può essere codificato come nel Programma 11.
376
11 Cenni di programmazione degli elementi finiti
Programma 11 - CurrentFE: Classe per la definizione dell’elemento corrente class CurrentFE private: void _comp_jacobian(); void _comp_jacobian_and_det(); void _comp_inv_jacobian_and_det(); void _comp_quad_point_coor(); template void _update_point( const GEOELE& geoele ); //! compute phiDer void _comp_phiDer(); //! compute the second derivative phiDer2 void _comp_phiDer2(); //! compute phiDer and phiDer2 void _comp_phiDerDer2();
UInt _currentId; public: CurrentFE( const RefFE& _refFE, const GeoMap& _geoMap, const QuadRule& _qr ); const int nbGeoNode; const int nbNode; const int nbCoor; const int nbQuadPt; const int nbDiag; const int nbUpper; const int nbPattern; const RefFE& refFE; const GeoMap& geoMap; const QuadRule& qr; ;
La classe contiene, come si vede, le informazioni relative all’elemento di riferimento, alla mappatura geometrica che lo genera e alla formula di quadratura che verrà ultilizzata per il calcolo degli integrali. In particolare, la (11.6) si rivela molto efficace in fase di codifica, che riportiamo nel Codice 12. Va notato come il calcolo dello jacobiano venga effettuato nei nodi di quadratura richiesti per il calcolo degli integrali (Sez. 11.2).
11.4 La fase di assemblaggio
377
Programma 12 - comp-jacobian: Membro della classe che memorizza gli elementi correnti che calcola lo jacobiano della trasformazione fra elemento corrente e di riferimento void CurrentFE::_comp_jacobian() Real fctDer; // derivate dei GeoMap: for ( int ig = 0;ig < nbQuadPt;ig++ ) for ( int icoor = 0;icoor < nbCoor;icoor++ ) for ( int jcoor = 0;jcoor < nbCoor;jcoor++ ) fctDer = 0.; for ( int j = 0;j < nbGeoNode;j++ ) fctDer += point( j, icoor ) * dPhiGeo( j, jcoor, ig ); jacobian( icoor, jcoor, ig ) = fctDer;
Nel caso di elementi quadrilateri e prismatici, molti concetti visti possono essere estesi, facendo riferimento ad esempio a mappe bilineari o biquadratiche. Risulta tuttavia più complesso garantire l’invertibilità della mappatura: per maggiori dettagli, si veda [FSV05]. Vi sono casi in cui può essere utile usare elementi finiti che siano di grado diverso rispetto a diverse coordinate. Questo è possibile in particolare con griglie quadrilatere strutturate, in cui si può costruire un elemento in cui su uno dei lati si abbia un polinomio biquadratico, mentre sugli altri lati si hanno polinomi bilineari. Nel caso di una codifica isoparametrica della mappatura geometrica, questo porta ad avere, ad esempio, elementi quadrilateri con tre lati diritti e uno curvo. A questo proposito, segnaliamo che in [Hug00], Cap. 3 viene riportata l’implementazione “incrementale” di un elemento quadrilatero che, a partire da una base bilineare a 4 nodi, viene arricchito di altri gradi di libertà fino all’elemento biquadratico a 9 nodi. 11.4.4 La costruzione dei sistemi locali e di quello globale Questa fase è il cuore della costruzione della discretizzazione degli operatori differenziali. Prendiamo come esempio il codice in Programma 13, che costruisce la discretizzazione dell’equazione differenziale μu + σu = f. L’operazione complessiva si articola in un ciclo sugli elementi della mesh aMesh. Dopo l’azzeramento della matrice e del vettore elementari, queste strutture vengono riempite in modo incrementale, prima con la discretizzazione dell’operatore di stiffness (diffusione) e poi con quello di massa (reazione). La subroutine source si occupa del vettore termine noto locale. Successivamente, le subroutine assemb si occupano di aggiornare il calcolo nella matrice globale, come già indicato in Fig. 11.2.
378
11 Cenni di programmazione degli elementi finiti
In questa fase, per non dover verificare se un grado di libertà è di bordo mediante salti condizionati all’interno del ciclo, non si tiene conto delle condizioni al bordo. Programma 13 - assemble: Codice per l’assemblaggio della discretizzazione di un
problema di diffusione e reazione μu + σu = f, dove f è indicata da sourceFct Real mu=1., sigma=0.5; ElemMat elmat(fe.nbNode,1,1); ElemVec elvec(fe.nbNode,1); for(UInt i = 1; igive_bindx().begin() + r + 1);
384
11 Cenni di programmazione degli elementi finiti
typename std::vector::iterator start = _value.begin() + istart; typename std::vector::iterator end = _value.begin() + iend; UInt disp = _Patt->nRows() + 1; UInt row, col; transform( start, end, start, zero ); for ( UInt i = istart;i < iend;++i ) row = _Patt->give_bindx() [ i ]; col = _Patt->give_bindy() [ i - disp ]; b[ row ] -= _value[ col ] * datum; _value[ col ] = 0.;
b[ r ] = datum; return ;
11.5 L’integrazione in tempo Fra i tanti metodi per effettuare l’integrazione in tempo, nei Capitoli precedenti si è analizzato il θ metodo, ma si è fatto cenno anche a numerosi altri metodi, in particolare ai BDF (Backward Difference Formulas) implementati in LifeV. Una loro introduzione si trova in [QSS08]. Qui ne richiamiamo brevemente gli aspetti di base. Dato il sistema di equazioni differenziali ordinarie: M
du = f − Au dt
e il dato iniziale associato u(t = 0) = u0 , un metodo BDF è un metodo multistep implicito nella forma: " αj α0 M Un+1 + AUn+1 = f n+1 + Un+1−j , Δt Δt p
(11.7)
j=1
per opportuni p ≥ 1, ove i coefficienti sono determinati in modo che: ∂U α0 n+1 " αj n+1−j − + O(Δtp ). |t=tn+1 = U U ∂t Δt Δt p
j=1
Nella Tabella 11.3 (a sinistra) vengono riportati i coefficienti per p = 1 (metodo di Eulero implicito), p = 2, 3. Nel caso in cui la matrice A sia funzione di u, ossia nel caso in cui il problema (11.7) sia non lineare, i metodi BDF, essendo impliciti, possono risultare molto costosi, richiedendo ad ogni basso temporale la risoluzione del sistema algebrico non
11.5 L’integrazione in tempo
385
Tabella 11.3. Coefficienti αi per i metodi BDF (p = 1, 2, 3) e coefficienti βi per l’estrapolazione in tempo p α0 1 1 2 3/2 3 11/6
α1 1 2 3
α2 -1/2 -3/2
α3 1/3
β0 1 2 3
β1 -1 -3
β2 1
lineare in Un+1 p " α0 αj n+1−j M Un+1 + A(Un+1 )Un+1 = f n+1 + U . Δt Δt j=1
Una possibile soluzione di compromesso che riduce significativamente i costi computazionali, senza tuttavia passare a un metodo completamente esplicito (le cui proprietà di stabilità in generale possono essere insoddisfacenti) è quello di risolvere il sistema lineare: p " α0 αj n+1−j M Un+1 + A(U∗ )Un+1 = f n+1 + U . Δt Δt j=1 ove U∗ approssima Un+1 usando le soluzioni note dai passi precedenti. In sostanza si pone: p " U∗ = βj Un−j = Un+1 + O(Δtp ), j=0
per opportuni coefficienti di “estrapolazione” βj . L’obiettivo è quello di ridurre i costi computazionali senza ridurre in modo drammatico la regione di assoluta stabilità dello schema implicito né l’accuratezza complessiva dello schema di avanzamento in tempo. La Tabella 11.3 riporta a destra i coefficienti βj . La codifica di un integratore in tempo di tipo BDF a questo punto può essere dunque effettuata mediante una opportuna classe, riportata nel Programma 18, i cui membri sono: 1. l’indicatore dell’ordine p che dimensiona anche i vettori α e β; 2. i vettori α e β; 3. la matrice unknowns data dall’accostamento dei vettori Un , Un−1, . . . Un+1−p. La dimensione di ciscun vettore, ossia il numero di righe di questa matrice (che ha p colonne) viene memorizzata in un indice size. Una volta assemblate le matrici A e M , l’avanzamento in tempo verrà effettuato p α ! α0 j calcolando la matrice M + A, il termine noto f n+1 + Un+1−j e risolvendo Δt Δt j=1 il sistema (11.7). In particolare, nella implementazione presentata nel codice 18, la p α ! j funzione time der calcola il termine Un+1−j accedendo al vettore α e alla Δt j=1 matrice unknowns. Nel caso in cui il problema sia non lineare si può ricorrere al vettore β tramite la funzione extrap().
386
11 Cenni di programmazione degli elementi finiti
Dopo aver calcolata la soluzione al nuovo passo temporale, la matrice unknowns deve “farle posto”, spostando a destra tutte le sue colonne, in modo che la prima colonna sia la soluzione appena calcolata. Questa operazione è gestita dalla funzione shift right, che sostanzialmente copia la penultima colonna di unknowns nell’ultima, la terzultima nella penultima e così via fino a liberare la prima colonna per memorizzarvi la soluzione appena calcolata. Programma 18 - Bdf: Classe di base per la costruzione di metodi di integrazione in
tempo di tipo Bdf class Bdf public: Bdf( const UInt p ); ~Bdf(); void initialize_unk( Vector u0 ); void shift_right( Vector const& u_curr ); Vector time_der( Real dt ) const; Vector extrap() const; double coeff_der( UInt i ) const; double coeff_ext( UInt i ) const; const std::vector& unk() const; void showMe() const; private: UInt _M_order; UInt _M_size; Vector _M_alpha; Vector _M_beta; std::vector _M_unknowns; ;
Bdf::Bdf( const UInt p ) : _M_order( p ), _M_size( 0 ), _M_alpha( p + 1 ), _M_beta( p ) if ( n BDF_MAX_ORDER ) // Gestione dell’errore per aver richiesto un ordine sbagliato // o non implementato switch ( p )
11.6 Ed ora consideriamo un esempio completo
387
case 1: _M_alpha[ 0 ] = 1.; // Eulero implicito _M_alpha[ 1 ] = 1.; _M_beta[ 0 ] = 1.; // u al tempo n+1 approssimato da u al tempo n break; case 2: _M_alpha[ 0 ] = 3. / 2.; _M_alpha[ 1 ] = 2.; _M_alpha[ 2 ] = -1. / 2.; _M_beta[ 0 ] = 2.; _M_beta[ 1 ] = -1.; break; case 3: _M_alpha[ 0 ] = 11. / 6.; _M_alpha[ 1 ] = 3.; _M_alpha[ 2 ] = -3. / 2.; _M_alpha[ 3 ] = 1. / 3.; _M_beta[ 0 ] = 3.; _M_beta[ 1 ] = -3.; _M_beta[ 2 ] = 1.; break; _M_unknowns.resize( p ); //numero di colonne della matrice _M_unknowns
11.6 Ed ora consideriamo un esempio completo Concludiamo questo capitolo con il listato di un programma scritto con LifeV per la risoluzione del problema parabolico di diffusione-reazione: ⎧ ∂u ⎪ ⎪ − μ(t)u + σ(t)u = f, ⎪ ⎪ ⎪ ⎨ u∂t= g , 1 u = g2 , ⎪ ⎪ ⎪ ⎪ ∇u · n = 0, ⎪ ⎩ u = u0 ,
x ∈ Ω,
0 < t ≤ 10,
x ∈ Γ10 ∪ Γ11 , 0 < t ≤ 10, x ∈ Γ20 ∪ Γ21 , 0 < t ≤ 10, x ∈ Γ50 , 0 < t ≤ 10, x ∈ Ω, t = 0,
dove Ω è un dominio cubico e ∂Ω = Γ10 ∪ Γ11 ∪ Γ20 ∪ Γ21 ∪ Γ50 . Precisamente, i codici numerici sulle porzioni di bordo sono: Γ20 : x = 0, 0 < y < 1, 0 < z < 1; Γ21 : x = 0, (y = 0, 0 < z < 1) ∪ (y = 1, 0 < z < 1) ∪(z = 0, 0 < y < 1) ∪ (z = 0, 0 < y < 1); Γ10 : x = 1, 0 < y < 1, 0 < z < 1; Γ11 : x = 1, (y = 0, 0 < z < 1) ∪ (y = 1, 0 < z < 1) ∪(z = 0, 0 < y < 1) ∪ (z = 0, 0 < y < 1); Γ50 : ∂Ω\ {Γ20 ∪ Γ21 ∪ Γ10 ∪ Γ11 ∪ Γ50 } .
388
11 Cenni di programmazione degli elementi finiti
In particolare, μ(t) = t2 , σ(t) = 2, g1 (x, y, z, t) = g2 (x, y, z, t) = t2 + x2 , u0 (x, y, z) = 0, f = 2t + 2x2 . La soluzione esatta è proprio t2 + x2 e il test viene proposto su una griglia cubica di 6007 elementi con tetraedri affini quadratici, per un totale di 9247 gradi di libertà. Il passo temporale scelto è Δt = 0.5, l’ordine dello schema BDF scelto è 3. Il listato 19 contiene il programma principale per questo esempio ed è stato arricchito di commenti che aiutino la lettura, anche se, ovviamente, non tutto sarà immediatamente comprensibile dopo la sola lettura dei paragrafi precedenti. Coerentemente con lo spirito con cui questo capitolo è stato concepito, invitiamo il lettore a provare a lanciare il codice, modificandolo opportunamente per una piena comprensione della sua struttura. Scaricando LifeV da www.lifev.org si ottengono altri casi da provare sotto la directory testsuite. Per la visualizzazione dei risultati, in questo listato si fa riferimento al programma Medit, gratuitamente scaricabile da www.inria.fr. Le figure 11.9 riportano il pattern della matrice prima e dopo la prescrizione delle condizioni di bordo, passando da 244171 a 214087 elementi non nulli.
Figura 11.9. Pattern della matrice del caso test proposto prima (sinistra) e dopo (destra) l’applicazione delle condizioni al bordo
Programma 19 - main.cpp: Risoluzione di un problema parabolico su dominio cubico // INCLUSIONI PRELIMINARI DI PARTI DELLA LIBRERIA #include #include "main.hpp" #include "ud_functions.hpp" #include #include #include #include
11.6 Ed ora consideriamo un esempio completo #include #include #include #define P2 // Useremo elementi Lagrangiani affini quadratici int main() using namespace LifeV; using namespace std; Chrono chrono; // Utility per il calcolo dei tempi di esecuzione // =================================================== // Definizione delle condizioni al bordo (vedere main.hpp) // =================================================== BCFunctionBase gv1(g1); // Funzione g1 BCFunctionBase gv2(g2); // Funzione g2 BCHandler BCh(2); // Due condizioni al bordo vengono imposte // Alle due condizioni si associano i codici numerici 10 e 20 // contenuti nella griglia si calcolo BCh.addBC("Dirichlet1", 10, Essential, Scalar, gv1); BCh.addBC("Dirichlet2", 20, Essential, Scalar, gv2); // =================================================== // Informazioni sulla mappatura geometrica e l’integrazione numerica // =================================================== const GeoMap& geoMap = geoLinearTetra; const QuadRule& qr = quadRuleTetra64pt; const GeoMap& geoMapBd = geoLinearTria; const QuadRule& qrBd = quadRuleTria3pt; //P2 elements const RefFE& refFE = feTetraP2; const RefFE& refBdFE = feTriaP2; // ================================ // Struttura della mesh // ================================ RegionMesh3D aMesh; GetPot datafile( "data" ); // le informazioni su quale sia il file della mesh // e altro sono contenute in un file chiamato ‘‘data’’ long int m=1; std::string mesh_type = datafile( "mesh_type", "INRIA" ); string mesh_dir = datafile( "mesh_dir", "." ); string fname=mesh_dir+datafile( "mesh_file", "cube_6007.mesh" ); readMppFile(aMesh,fname,m); // lettura della griglia
389
390
11 Cenni di programmazione degli elementi finiti
aMesh.updateElementEdges(); aMesh.updateElementFaces(); aMesh.showMe(); // ======================================= // Definizione dell’elemento finito corrente, munito di // mappa geometrica e regola di quadratura // ======================================= CurrentFE fe(refFE,geoMap,qr); CurrentBdFE feBd(refBdFE,geoMapBd,qrBd); // ======================================== // Definizione dei gradi di liberta’ (DOF) per il problema // e per le condizioni al bordo specifiche // ======================================== Dof dof(refFE); dof.update(aMesh); BCh.bdUpdate( aMesh, feBd, dof ); UInt dim = dof.numTotalDof(); dof.showMe(); // ================================ // Inizializzazione dei vettori delle incognite // U e del termine noto F // ================================ ScalUnknown U(dim), F(dim); U=ZeroVector( dim ); F=ZeroVector( dim ); // =============================================== // Definizione dei parametri per l’integrazione in tempo // Vengono sempre specificati in ‘‘data’’ e letti da li // =============================================== Real Tfin = datafile( "bdf/endtime", 10.0 ); Real delta_t = datafile( "bdf/timestep", 0.5 ); Real t0 = 0.; UInt ord_bdf = datafile( "bdf/order", 3 );; Bdf bdf(ord_bdf); Real coeff=bdf.coeff_der(0)/delta_t; bdf.showMe(); // ====================================================== // Costruzione del pattern e delle matrici indipendenti dal tempo // ====================================================== // pattern for stiff operator
11.6 Ed ora consideriamo un esempio completo MSRPatt pattA(dof); MSRMatr A(pattA); MSRMatr M(pattA); M.zeros(); cout 0
(13.1)
dove u : (x, t) → R denota l’incognita, x ∈ Ω ⊂ Rd (d = 1, 2, 3), ∂t indica la derivata parziale rispetto a t, F è una funzione vettoriale assegnata, lineare o nonlineare, detta flusso, s è una funzione assegnata detta termine di sorgente. Se il flusso F contiene termini dipendenti dalle derivate prime di u, il problema differenziale è del second’ordine. L’equazione differenziale che (13.1) deve essere completata dalla condizione iniziale u(x, 0) = u0 (x), x ∈ Ω per t = 0, nonché da opportune condizioni al contorno, su tutta la frontiera ∂Ω nel caso il problema (13.1) sia del second’ordine, oppure solo su un sotto-insieme ∂Ω in di ∂Ω (la frontiera di inflow) nel caso di problemi del prim’ordine. Abbiamo già visto nei capitoli precedenti che equazioni differenziali di questo tipo sono dette leggi di conservazione. Il metodo ai volumi finiti opera su equazioni scritte in forma conservativa come la (13.1). Le equazioni di diffusione-trasporto-reazione studiate nel Cap. 5, quelle di puro trasporto studiate nei Cap. 7-9, quelle paraboliche esaminate nel Cap. 6, possono tutte essere considerate come casi particolari di (13.1). In effetti tutte le equazioni differenziali alle derivate parziali che derivano da leggi fisiche di conservazione possono essere messe in forma conservativa. Con qualche sforzo supplementare possiamo naturalmente considerare il caso vettoriale, in cui l’incognita u è una funzione vettoriale a p componenti, così come il termine di sorgente s, mentre il flusso F è ora un tensore di dimensione p × d. In particolare, anche le equazioni di Navier-Stokes per fluidi comprimibili considerate nella Sez. 9.4 possono essere riscritte in forma conservativa. A. Quarteroni: Modellistica numerica per problemi differenziali, 4a edizione c Springer-Verlag Italia, Milano 2008
418
13 Il metodo dei volumi finiti ni1
ni2 Ωi
ni3
ni5 ni4
Figura 13.1. Un volume di controllo
13.1 Alcuni principi elementari Il passo preliminare per una discretizzazione ai volumi finiti di (13.1) consiste nell’identificare un insieme di poliedri Ωi ⊂ Ω di diametro inferiore ad h, detti volumi (o celle) di controllo, i = 1, . . . , M , tali che ∪i Ω i = Ω (assumeremo qui per semplicità che il dominio Ω sia poligonale, in caso contrario ∪i Ω i ne sarà una approssimazione). Si veda la Fig. 13.1 per un esempio di volume di controllo in due dimensioni. Ipotizzeremo inoltre che le celle siano a due a due disgiunte, essendo questo il caso più comunemente usato, anche se questa restrizione non è in principio richiesta dal metodo. L’equazione (13.1) viene integrata su ogni Ωi , fornendo il sistema di equazioni ∂t
F(u) · ni dγ =
u dΩ +
Ωi
∂Ωi
s(u) dΩ,
i = 1, . . . , M.
(13.2)
Ωi
Abbiamo indicato con ni il versore normale esterno a ∂Ωi . In due dimensioni, se indichiamo con nij , j = 1, . . . , Li , il versore normale esterno costante al lato lij di ∂Ωi (e Li il numero di tali lati: in Fig. 13.1 Li = 5), la (13.2) si può riscrivere ∂t Ωi
u dΩ +
Li " j=1 l
ij
F(u) · nij dγ =
s(u) dΩ,
i = 1, . . . , M.
(13.3)
Ωi
Tre generi di problemi si pongono immediatamente: -
come rappresentiamo l’incognita u in ogni volume di controllo; come approssimiamo gli integrali (di volume e di superficie); come rappresentiamo il flusso F(u) su ogni lato, in funzione dei valori dell’incognita u sui volumi di controllo adiacenti al lato.
In generale, un metodo ai volumi finiti si caratterizza per la forma geometrica dei suoi volumi di controllo, nonché per la posizione delle incognite (ovvero per dove vengono allocate le variabili) in ogni volume di controllo. Per la costruzione dei volumi di controllo si parte usualmente da una triangolazione Th del dominio in elementi dello stesso genere, tipicamente triangoli o quadrilateri
13.1 Alcuni principi elementari
∂Ω xi
xi
419
∂Ω
Figura 13.2. Volumi di controllo (indicati in grigio) generati da una partizione di un dominio Ω quadrato con elementi quadrati di lato h. Nella figura di sinistra si riporta il caso cell-centered, in quella di destra il caso vertex-centered
in 2D, tetraedri o cubi in 3D, come succede ad esempio quando si usino gli elementi finiti. La griglia può essere strutturata, strutturata a blocchi (con blocchi disgiunti oppure sovrapponentisi), o non strutturata. Le griglie strutturate sono limitate a domini di forma relativamente semplice, in modo che l’intero dominio, o ogni blocco in cui sia stato suddiviso, possa essere mappato in un rettangolo o in un cubo. Una volta triangolato il dominio si possono seguire due strade. Nei metodi detti cell-centered, gli elementi della griglia Th fungono direttamente da volumi di controllo. Conseguentemente, le incognite sono collocate in un punto interno a ciascun elemento, tipicamente il baricentro, che chiamiamo nodo. Questa scelta apparentemente naturale dei volumi di controllo presenta però uno svantaggio: non essendovi nodi che giacciono sul bordo di Ω, l’imposizione delle condizioni al bordo essenziali richiederà degli accorgimenti particolari, che esamineremo in seguito. Per ovviare a tale inconveniente si possono costruire i volumi di controllo attorno ai vertici di Th , dove verranno quindi collocate le incognite. Questo dà luogo ai cosidetti schemi vertex-centered. Talvolta, in problemi a più campi che coinvolgono più variabili, entrambe le tecniche sono usate contemporaneamente per collocare le diverse incognite in nodi diversi. Si dirà in questo caso che si hanno metodi su griglie sfalsate o staggered; ne accenneremo nella Sez. 13.6 dedicata alla discretizzazione delle equazioni di Navier-Stokes. Un esempio elementare su griglia strutturata quadrangolare è riportato in Fig. 13.2, dove sono indicati anche i volumi di controllo per schemi cell-centered e vertex-centered. Questi ultimi sono definiti dai quadrati ΩiV = {x ∈ Ω : x − xi ∞ < h/2},
Ωi = ΩiV ∩ Ω,
essendo {xi } i vertici dei quadrati {K} della griglia di partenza Th , che coincidono in questo caso con i nodi dei volumi di controllo. Queste due scelte non esauriscono le possibilità che si incontrano in pratica. Talvolta le variabili sono collocate su ciascun lato (o faccia in 3D) della griglia Th , e il volume di controllo corrispondente è formato dagli elementi di Th adiacenti al lato (o alla faccia).
420
13 Il metodo dei volumi finiti
In generale, un approccio a volumi finiti è semplice da implementare (e le celle della discretizzazione possono essere scelte di forma assai generale), la soluzione è tipicamente considerata come una funzione costante in ogni volume di controllo, le condizioni al contorno di Neumann si impongono in modo naturale, e la formulazione stessa del problema esprime la conservazione locale della quantità Ωi u dΩ. Lo svantaggio potenziale è l’oggettiva difficoltà a disegnare schemi di ordine elevato, la necessità di dover trattare le condizioni al bordo essenziali in modo particolare per i metodi cell-centered; infine, l’analisi matematica è meno semplice che nel caso dei metodi di Galerkin non potendosi applicare direttamente le tecniche variazionali come si fa per i metodi di Galerkin.
13.2 La costruzione dei volumi di controllo per schemi vertex-centered Nel caso di griglie non strutturate triangolari in 2D o tetraedriche in 3D, la costruzione dei volumi di controllo attorno ai vertici di Th non è ovvia. In teoria si potrebbe scegliere come volume di controllo Ωi l’insieme di tutti gli elementi che contengono il vertice xi . Questo però genererebbe dei volumi di controllo a intersezione non nulla, una situazione che, per quanto ammissibile, non è desiderabile. Ci si può allora avvalere di alcuni concetti geometrici. Consideriamo a titolo di esempio un dominio bidimensionale Ω ⊂ R2 , limitato, con frontiera poligonale, e sia {xi }i∈P un insieme di punti, che chiameremo nodi, di Ω. Tipicamente questi punti sono quelli in cui si intende fornire un’approssimazione della soluzione u. Qui P indica un insieme di indici. A ciascun nodo associamo il poligono ΩiV = {x ∈ R2 : |x − xi | < |x − xj |, ∀j = i},
(13.4)
con i ∈ P. L’insieme {ΩiV , i ∈ P} è detto diagramma, o anche tassellazione, di Voronoi associato all’insieme di punti {xi }i∈P ; ΩiV è chiamato i-esimo poligono di Voronoi. Per un esempio si veda la Fig. 13.3. I poligoni così ottenuti sono convessi, ma non necessariamente limitati (si considerino ad esempio quelli adiacenti la frontiera). I loro vertici sono detti vertici di Voronoi, e sono detti regolari quando sono punto d’incontro di tre poligoni di Voronoi, degeneri se ve ne convergono almeno quattro. Una tassellazione di Voronoi con tutti i vertici regolari è detta a sua volta regolare. ∂Ω Ωi = ΩiV
xi
xk Ωk
Figura 13.3. Un diagramma di Voronoi
13.2 La costruzione dei volumi di controllo per schemi vertex-centered
421
Kj
Ωi Figura 13.4. Triangolazione di Delaunay (a destra) ottenuta a partire da diagramma di Voronoi (a sinistra). I pallini indicano i nodi {xi }i∈P
A questo punto possiamo definire i volumi di controllo Ωi introdotti nella precedente sezione come Ωi = ΩiV ∩ Ω, i ∈ P. (13.5) Per ogni i ∈ P, indichiamo con Pi l’insieme degli indici dei nodi adiacenti a xi , ovvero Pi = {j ∈ P\{i} : ∂Ωi ∩ ∂Ωj = ∅}. Indichiamo inoltre con lij = ∂Ωi ∩ ∂Ωj , j ∈ Pi , un lato della frontiera di Ωi condiviso da un volume di controllo adiacente, e con mij la sua lunghezza. Se il diagramma di Voronoi è regolare si ha che mij > 0. In questo caso, se congiungiamo ciascun nodo xi con i nodi di Pi otteniamo una triangolazione di Ω che coincide con la triangolazione di Delaunay (si veda la Sez. 12.4.1) dell’inviluppo convesso dei nodi. Nel caso ci siano dei vertici degeneri nella tassellazione di Voronoi, da questa procedura si ottiene ancora una triangolazione di Delaunay operando una triangolazione opportuna dei poligoni Ωi costruiti intorno ai vertici degeneri. Chiaramente, se Ω è convesso il procedimento sopra descritto ne fornisce direttamente una triangolazione di Delaunay. Si veda per un esempio la Fig. 13.4. Il procedimento inverso è pure possibile, notando che i vertici del diagramma di Voronoi corrispondono ai centri dei cerchi circoscritti ai triangoli (circocentri) della triangolazione di Delaunay corrispondente. Gli assi dei triangoli formano quindi i lati della tassellazione. Ωi Kj
Figura 13.5. Diagramma di Voronoi (a destra) ottenuto a partire da una triangolazione di Delaunay (a sinistra)
422
13 Il metodo dei volumi finiti v2
Ω2,K Ω3,K
G
Ω1,K
v3
v1
Figura 13.6. Un triangolo K, il suo baricentro G = 13 (v1 + v2 + v3 ), e i poligoni Ωi,K
Quest’ultima rappresenta quindi un possibile insieme di volumi di controllo associato ad una assegnata triangolazione di Delaunay (si veda per un esempio la Fig. 13.5). Il diagramma di Voronoi e la triangolazione di Delaunay stanno in effetti in una relazione di dualitá: ad ogni vertice della tassellazione di Voronoi corrisponde biunivocamente un elemento (triangolo) della triangolazione di Delaunay e ogni vertice della triangolazione di Delaunay è in corrispondenza biunivoca con un poligono della tassellazione e quindi con un nodo. Vi sono due interessanti proprietà che vale la pena di sottolineare. La prima è che il centro del cerchio circoscritto ad un triangolo non ottuso K sta all’interno della chiusura di K. Pertanto se una triangolazione di Delaunay ha tutti gli angoli non ottusi, i vertici del diagramma di Voronoi corrispondente sono tutti contenuti in Ω. La seconda è che, se indichiamo con vi , i = 1, 2, 3, i vertici del triangolo non ottuso K, e con Ωi,K = Ωi ∩ K la porzione del volume di controllo Ωi inclusa in K, allora si hanno le seguenti disuguaglianze tra le misure di K e Ωi,K 1 1 |K| ≤ |Ωi,K | ≤ |K|, 4 2
i = 1, 2, 3.
(13.6)
Un’alternativa alla costruzione basata sul diagramma di Voronoi che non necessita di una triangolazione di Delaunay consiste nel partire da una triangolazione Th di Ω formata da triangoli qualunque, anche ottusi. Se K è il generico triangolo di Th di vertici vi , i = 1, 2, 3, definiamo ora Ωi,K = {x ∈ K : λj (x) < λi (x), j = i} dove λj sono le coordinate baricentriche rispetto a K (si veda la Sez. 5.8.8 e il Cap. 12 per la loro definizione). Un esempio è riportato in Fig. 13.6. A questo punto i volumi di controllo possono essere definiti nel modo seguente: / Ωi = int Ω i,K , i ∈ P, {K : vi ∈∂K}
dove int(D) denota l’interno dell’insieme chiuso D. La famiglia {Ωi , i ∈ P} definisce la cosiddetta “median dual grid” (più raramente detta diagramma di Donald). Si veda la Fig. 13.7 per un esempio. Conseguentemente si possono definire le quantità lij , mij e Pi come fatto per il diagramma di Voronoi. Gli elementi lij non sono necessariamente segmenti rettilinei.
13.3 Discretizzazione di un problema di diffusione-trasporto-reazione
423
Ωi
Kj
Figura 13.7. Triangolazione del dominio (a sinistra) e median dual grid, o diagramma di Donald (a destra)
13.3 Discretizzazione di un problema di diffusione-trasporto-reazione Consideriamo a titolo d’esempio l’equazione (13.1) in cui F(u) = −μ∇u + b u,
s(u) = f − σ u.
(13.7)
Si tratta di un problema evolutivo di tipo diffusione-trasporto-reazione scritto in forma conservativa, simile a quello descritto all’inizio del Cap. 5. Le funzioni f, μ, σ e b sono assegnate; per esse si faranno le ipotesi previste all’inizio del Cap. 5. Come nel caso del problema (5.1), anche qui si supporrà per semplicità che u soddisfi una condizione al bordo di tipo Dirichlet omogeneo, u = 0 su ∂Ω. Supponiamo che Ω sia partizionato da un diagramma di Voronoi e si consideri la corrispondente triangolazione di Delaunay (come indicato ad esempio in Fig. 13.4). Quanto segue è in realtà estendibile anche ad altre tipologie di volumi finiti. Sarà sufficiente considerare l’insieme dei soli indici interni, Pint = {i ∈ P : xi ∈ Ω}, essendo u nulla al bordo. Integrando l’equazione assegnata sul volume di controllo Ωi come fatto in (13.3) ed usando il teorema della divergenza, troviamo ∂t Ωi
u dΩ +
Li "
−μ
j=1 l
∂u + b · nij u dγ = ∂nij
f − σ u dΩ,
◦
i = 1, . . . , M ,
Ωi
ij
(13.8) avendo indicato con M l’insieme degli indici di Pint . Al fine di approssimare gli integrali di linea, una strategia usuale consiste nell’approssimare le funzioni μ e b · nij con costanti a tratti, precisamente (13.9) μl ∼ μij = cost > 0, b · nij l ∼ bij = cost. ◦
ij
ij
Tali costanti possono rappresentare il valore della corrispondente funzione nel punto medio del segmento lij , oppure il valor medio sullo stesso lato, ovvero μij =
1 mij
μ dγ, lij
bij =
1 mij
b · nij dγ, lij
se mij > 0.
424
13 Il metodo dei volumi finiti xj lij xi
Figura 13.8. Il segmento lij
Per quanto riguarda le derivate normali, una possibilità consiste nell’approssimarle con rapporti incrementali del tipo ∂u u(xj ) − u(xi ) ∼ ∂nij |xj − xi | (si veda per un esempio la Fig. 13.8). Naturalmente questa formula è esatta se u è lineare sul segmento congiungente xi e xj . Infine, per quanto concerne l’approssimazione dell’integrale di u su lij , si sostituisce ul con una costante ottenuta per ij combinazione lineare convessa, ovvero ul ρij u(xi ) + (1 − ρij ) u(xj ), ij
essendo ρij ∈ [0, 1] un parametro da definire. Operando le approssimazioni precedentemente introdotte ed indicando con ui l’approssimazione del valore u(xi ) dell’incognita, possiamo derivare dalla (13.8) le seguenti equazioni approssimate: dui mi dt
+
Li "
mij {−μij
j=1
uj − ui + bij [ ρij ui + (1 − ρij ) uj ]} δij
+ mi σi ui = mi fi ,
(13.10)
◦
i = 1, . . . , M ,
avendo indicato con mi la misura di Ωi , con σi e fi i valori di σ e f in xi e con δij la distanza di xi da xj . Si noti che la (13.10) può essere scritta nella forma
mi
Li " dui mij Hij (ui , uj ) + mi σi ui = mi fi , + dt
(13.11)
j=1
dove Hij è il cosiddetto flusso numerico che rappresenta il contributo dell’approssimazione del flusso attraverso il lato lij . Il concetto di flusso numerico è già stato introdotto nei Cap. 7 e 9, nel contesto di schemi alle differenze finite per equazioni iperboliche. Anche alcune caratteristiche del flusso numerico si traducono in proprietà dello schema. Per esempio, per avere uno schema conservativo sarà necessario che Hij (ui , uj ) = −Hji(uj , ui ).
13.4 Analisi dell’approssimazione ai volumi finiti
425
13.4 Analisi dell’approssimazione ai volumi finiti Il sistema di equazioni (13.10) si può riscrivere nella forma di un problema variazio◦
nale discreto procedendo nel modo seguente. Per ogni i = 1, . . . , M , si moltiplica l’equazione i-esima per un numero reale vi , quindi si somma sull’indice i, ottenendo ◦
M "
dui mi vi dt i=1
◦
+
M " i=1
vi
Li "
mij {−μij
j=1
◦
+
M "
uj − ui + bij [ ρij ui + (1 − ρij ) uj ]} δij
◦
mi σi vi ui =
i=1
M "
mi vi fi .
i=1
(13.12) Si indichi ora con Vh lo spazio delle funzioni continue lineari a pezzi rispetto alla triangolazione Th di Delaunay, che si annullano al bordo (si veda la (3.17)). Da un insieme di valori vi possiamo ricostruire in modo univoco una funzione vh ∈ Vh che interpola tali valori nei nodi xi , ovvero vh ∈ Vh : vh (xi ) = vi ,
◦
i = 1, . . . , M .
In modo analogo, sia uh ∈ Vh la funzione interpolante i valori ui in xi . Allora la (13.12) si riscrive equivalentemente nella seguente forma “variazionale” discreta: per ogni t > 0, trovare uh = uh (t) ∈ Vh t.c. (∂t uh , vh )h + ah (uh , vh ) = (f, vh )h
∀vh ∈ Vh ,
(13.13)
! avendo posto (wh , vh )h = M i=1 mi vi wi ed avendo indicato con ah (uh , vh ) la forma bilineare che compare al primo membro della (13.12). Si è dunque interpretata l’approssimazione ai volumi finiti come un caso particolare del metodo di Galerkin generalizzato per il problema assegnato. Per quanto concerne la scelta dei coefficienti ρij della combinazione lineare, una possibilità è di usare ρij = 1/2, il che corrisponde ad usare una differenza finita di tipo centrato per il termine convettivo. Questa strategia è adeguata quando il numero di Péclet locale non è tanto grande, ovvero non vi è alcuna coppia di indici i, j per cui si verifica che ◦
μij |bij | δij . Quando invece ciò si verifichi si impone una scelta più oculata dei coefficienti ρij della combinazione convessa. In generale, ρij = ϕ(bij δij /μij ), dove ϕ è una funzione del numero di Péclet locale a valori in [0, 1] che può essere scelta come segue: se ϕ(z) = 1/2 [sign(z) + 1] avremo una stabilizzazione di tipo upwind, mentre scegliendo ϕ(z) = 1 − (1 − z/(ez − 1))/z si avrà una stabilizzazione di tipo fittingesponenziale. Con questa scelta si può mostrare che ah (·, ·) è una forma bilineare, è Vh -ellittica, uniformemente rispetto a h, nella consueta ipotesi che i coefficienti del problema soddisfino la condizione di positività 1/2 div(b) + σ ≥ β0 = cost ≥ 0. Precisamente, supponendo μ ≥ μ0 = cost > 0, ah (vh , vh ) ≥ μ0 |vh |2H1 (Ω) + β0 (vh , vh )h .
426
13 Il metodo dei volumi finiti
Essendo inoltre (vh , vh )h uniformemente equivalente al prodotto scalare esatto (vh , vh ) per funzioni di Vh , ciò assicura la stabilità del problema (13.13). Infine, il metodo è convergente, linearmente rispetto ad h. Precisamente , + u − uh H1 (Ω) ≤ C h uH2(Ω) + |∇f|L∞ (Ω) nell’ipotesi che le norme a secondo membro siano limitate. Per la dimostrazione si veda, ad esempio, [KA00]. Rinviamo alla stessa referenza anche per l’analisi di altre proprietà del metodo, quali la monotonia e le proprietà di conservazione.
13.5 Implementazione delle condizioni al bordo Come detto il problema differenziale considerato va completato con condizioni al bordo opportune. Per un problema scritto in forma conservativa le condizioni al bordo naturali consistono nell’imporre i flussi, ovvero F(u) · n = h
su ΓN ⊂ ∂Ω.
La loro implementazione nel contesto dei volumi finiti è immediata. Basta agire sul flusso numerico relativo ai lati di bordo, imponendo Hik = H(ui , uk ) = h(xik )
se lik ⊂ ΓN ,
dove xik è un punto opportuno contenuto in lik , tipicamente il punto medio. Per quanto riguarda le condizioni di tipo essenziale, o di Dirichlet, della forma u=g
su ΓD ⊂ ∂Ω,
la loro applicazione è immediata nel contesto di schemi vertex-centered in quanto basta aggiungere l’equazione corrispondente per i nodi giacenti su ΓD . Come già osservato, la questione è più delicata per schemi cell-centered, non essendoci in questo caso nodi sul bordo. Una possibilità è quella di imporre le condizioni debolmente, in modo analogo a quanto già illustrato, in un contesto diverso, nel Cap. 7. Si tratta di modificare opportunamente i flussi numerici sui lati imponendo Hik = H(ui , g(xik ))
se lik ⊂ ΓD .
La Fig. 13.9 illustra la situazione per un volume di controllo cell-centered adiacente al bordo. Spesso tuttavia, nella pratica, la condizione al bordo di Dirichlet per i volumi finiti cell-centered viene implementata utilizzando i cosidetti nodi fantasma. In pratica per ogni lato lik sul bordo si generano dei nodi addizionali, esterni al dominio, a cui vengono attribuiti i valori al bordo corrispondenti. In questo modo il calcolo dei flussi numerici è formalmente identico anche per i lati al bordo.
13.6 Cenni alla discretizzazione delle equazioni di Navier-Stokes
xi
427
lik
Figura 13.9. Il flusso numerico sul lato lik appartenete al bordo di Dirichlet viene calcolato in modo da implementare la condizione al bordo
13.6 Cenni alla discretizzazione delle equazioni di Navier-Stokes Come già accennato, le tecniche sopra descritte si possono estendere al caso vettoriale. Un caso notevole riguarda le equazioni di Navier-Stokes incomprimibili, descritte nel Cap. 10. Qui, infatti, la natura di punto sella del problema rende la scelta dei volumi di controllo critica. La scelta più naturale, con i nodi di velocità e pressione coincidenti, può generare modi spuri di pressione. Il motivo è analogo a quanto già analizzato nel Cap. 10: gli spazi discreti che soggiacciono implicitamente alla scelta dei volumi di controllo devono soddisfare una condizione di compatibilità se vogliamo che il problema sia ben posto. Per questa ragione è d’uso adottare volumi di controllo, e conseguentemente nodi, differenti per velocità e pressione. Un esempio è illustrato in Fig. 13.10, dove si mostra una possibile scelta dei nodi per le componenti della velocità e di quelli per la pressione (sulla griglia sfalsata) nonché i corrispondenti volumi di controllo. I volumi di controllo relativi alla velocità vengono usati per la discretizzazione delle equazioni della quantità di moto, mentre quelli di pressione per l’equazione di continuità. Si rammenta che quest’ultima non contiene il termine di derivata temporale. Alternativamente, si possono adottare tecniche di stabilizzazione analoghe a quelle viste nel Cap. 10, che permettono di collocare i nodi di velocità e pressione nella stessa griglia. Il lettore interessato può consultare, per maggiori dettagli, le monografie [FP02], [Kro97], [Pat80] e [VM96].
u p
Figura 13.10. Una griglia sfalsata per la velocità e la pressione. A sinistra sono tratteggiati i volumi di controllo per l’equazione di continuità, a destra quelli usati per le equazioni del momento
428
13 Il metodo dei volumi finiti
L’approccio a volumi finiti è largamente utilizzato per la risoluzione di problemi descritti da equazioni differenziali, con applicazioni in diversi campi della fisica e dell’ingegneria. In particolare, i codici commerciali più utilizzati in campo fluidodinamico adottano schemi a volumi finiti per la soluzione delle equazioni di Navier-Stokes accoppiate a modelli di turbolenza, transizione, combustione, trasporto e reazione di specie chimiche. Sulla copertina di questo libro è riprodotta un’immagine relativa al flusso incomprimibile attorno a 5 cilindri (si tratta dello stesso problema descritto nell’esempio 10.1) con un numero di Reynolds di 200. L’immagine mostra il campo di vorticità ottenuto risolvendo le equazioni di Navier-Stokes con una discretizzazione a volumi finiti di tipo cell-centered. La griglia di calcolo utilizzata contiene 103932 elementi ed un passo temporale Δt = 0.001. È inoltre qui riportata, sempre a titolo di esempio, una simulazione del flusso idrodinamico attorno ad una barca a vela da competizione in navigazione di bolina, finalizzata allo studio dell’efficienza delle appendici (bulbo, chiglia e alette) (si veda la Fig. 13.11 a sinistra). La griglia di calcolo utilizzata in questo caso è di tipo ibrido, con elementi superficiali di forma triangolare e quadrangolare, ed elementi di volume di forma tetraedrica, esaedrica, prismatica e piramidale (si veda la Fig. 13.11 a destra). Il flusso idrodinamico intorno allo scafo è stato simulato risolvendo le equazioni di Navier–Stokes per fluidi a superficie libera (si veda la Sez. 10.9) accoppiate ad un modello di turbolenza k − [MP94], tramite un approccio di tipo RANS (Reynolds Averaged Navier–Stokes). Le incognite del problema sono i valori delle variabili (velocità, pressione e quantità turbolente) al centro dei volumi di controllo, che in questo caso corrispondono agli elementi di volume della griglia. Le equazioni di Navier–Stokes sono risolte utilizzando uno schema a passi frazionari come descritto in Sez. 10.7.3. Come precedentemente ricordato in questa sezione, la scelta di collocare pressione e velocità negli stessi punti rende necessario adottare una opportuna stabilizzazione delle equazioni [RC83]. Per il calcolo della superficie libera si sono usati sia il metodo Volume-of-Fluid sia quello basato sulla tecnica Level Set, descritti nelle Sezioni 10.9.5 e 10.9.6, quest’ultimo essendo più costoso dal punto di vista computazionale ma meno dissipativo. Simulazioni di questo tipo possono richiedere griglie di dimensioni molto elevate, nei casi in cui si vogliano riprodurre fenomeni fluidodinamici complessi come il flusso turbolento su geometrie composite o la presenza di regioni di separazione di flusso. La griglia utilizzata in questo caso è composta da 5 milioni di celle e dà origine ad un sistema algebrico con 30 milioni di incognite. Problemi di questa taglia vengono in genere risolti ricorrendo a tecniche di calcolo parallelo basate su schemi di decomposizione di domini visti nel Cap. 14 in modo da poter distribuire il calcolo su più processori. L’analisi delle distribuzioni di pressione e di sforzi tangenziali a parete, nonché la visualizzazione del flusso tridimensionale attraverso l’utilizzo di linee di flusso (si vedano le Figg. 13.12 e 13.13) risultano molto utili nella fase del progetto idrodinamico finalizzato all’ottimizzazione delle prestazioni dell’imbarcazione (si veda ad esempio [PQ05],[PQ07]).
13.6 Cenni alla discretizzazione delle equazioni di Navier-Stokes
429
Figura 13.11. Geometria dello scafo e delle appendici (a sinistra) e dettaglio della griglia superficiale all’intersezione chiglia-bulbo (a destra)
Figura 13.12. Distribuzione superficiale di pressione (a sinistra) e linee di corrente attorno alle appendici dello scafo (a destra)
Figura 13.13. Linee di corrente attorno alle vele in navigazione di poppa (a sinistra) e linee di corrente attorno alle appendici dello scafo (a destra)
14 Il metodo di decomposizione dei domini
14.1 Introduzione In questo capitolo faremo un’introduzione elementare del metodo di decomposizione dei domini (DD, per brevità). Nella sua versione più comune, questo metodo si può usare nell’ambito di un qualunque metodo di discretizzazione (come, ad esempio, quello agli elementi finiti, ai volumi finiti, alle differenze finite o agli elementi spettrali) per renderne più efficace la risoluzione algebrica su piattaforme di calcolo parallelo. Il metodo DD consente di riformulare un problema ai limiti assegnato su una partizione in sotto-domini del dominio di calcolo. Come tale ben si presta anche alla risoluzione di problemi eterogenei (o di multifisica), governati da equazioni differenziali di tipo diverso in diverse sotto-regioni del dominio computazionale. Sia Ω un dominio di dimensione d = 2, 3, con frontiera Lipschitziana ∂Ω e su di esso si consideri un problema differenziale come, ad esempio, quelli incontrati nei capitoli 2 e 5: ⎧ Lu = f in Ω, ⎪ ⎪ ⎪ ⎨ u=ϕ su ΓD , (14.1) ⎪ ⎪ ⎪ ∂u ⎩ = ψ su ΓN . ∂n L è un operatore ellittico su Ω (ad esempio, il Laplaciano o l’operatore di diffusione e trasporto), mentre ϕ, ψ sono due funzioni assegnate su ΓD e ΓN , rispettivamente, con ◦
◦
ΓD ∪ ΓN = ∂Ω, Γ D ∩ Γ N = ∅. L’idea alla base dei metodi DD è quella di suddividere il dominio globale Ω in due o più sotto-domini su cui risolvere dei problemi discretizzati di dimensione minore rispetto a quello iniziale, utilizzando possibilmente degli algoritmi paralleli. In particolare, esistono due modi differenti con cui fare una decomposizione del dominio Ω, a seconda che si usino sotto-domini con o senza sovrapposizione (si veda la Figura 14.1). Tale scelta individuerà metodi differenti per la risoluzione del problema assegnato. A. Quarteroni: Modellistica numerica per problemi differenziali, 4a edizione c Springer-Verlag Italia, Milano 2008
432
14 Il metodo di decomposizione dei domini Ω1 Γ2 Γ1
Γ12
Ω1 Ω
Γ Ω2
Ω2
Figura 14.1. Esempi di partizione del dominio Ω con e senza sovrapposizione
Come lettura di riferimento per le tecniche di decomposizione di domini, rimandiamo, ad esempio, a [QV99, TW05, BGS96, MQ89].
14.2 Tre classici metodi iterativi basati su DD Introduciamo in questa sezione tre diversi schemi iterativi partendo dal problema modello (14.1), operate per comodità le scelte ϕ = 0 e ΓN = ∅: trovare u : Ω → R tale che Lu = f in Ω, (14.2) u=0 su ∂Ω, L essendo un generico operatore ellittico del second’ordine. La sua formulazione debole è (14.3) trovare u ∈ V = H01 (Ω) : a(u, v) = (f, v) ∀v ∈ V, essendo a(·, ·) la forma bilineare associata a L. 14.2.1 Il metodo di Schwarz Consideriamo una decomposizione del dominio Ω in due sotto-domini Ω1 e Ω2 tali che Ω = Ω 1 ∪ Ω 2 , Ω1 ∩ Ω2 = Γ12 = ∅ (si veda la Figura 14.1) e sia Γi = ∂Ωi \ (∂Ω ∩ ∂Ωi ). (0) Consideriamo il seguente metodo iterativo: dato u2 su Γ1 , si risolvano i seguenti problemi per k ≥ 1: ⎧ ⎪ Lu(k) in Ω1 , ⎪ 1 = f ⎪ ⎨ (k) (k−1) (14.4) u1 = u2 su Γ1 , ⎪ ⎪ ⎪ ⎩ (k) u1 = 0 su ∂Ω1 \ Γ1 , ⎧ (k) Lu2 = f ⎪ ⎪ ⎪ ⎧ ⎪ ⎪ ⎨ ⎨ u(k) 1 (k) u = 2 ⎪ (k−1) ⎩ ⎪ ⎪ u1 ⎪ ⎪ ⎩ (k) u2 = 0
in Ω2 , su Γ2 , su ∂Ω2 \ Γ2 .
(14.5)
14.2 Tre classici metodi iterativi basati su DD
433
(k)
Nel caso in cui in (14.5) si scelga u1 su Γ2 il metodo è detto di Schwarz moltiplica(k−1) tivo, mentre quello in cui si scelga u1 si dice di Schwarz additivo. Ne capiremo la ragione più avanti, nella Sez. 14.7. Abbiamo così due problemi ellittici con condizioni al bordo di Dirichlet per i due sotto-domini Ω1 e Ω2 , e vogliamo che le due succes(k) (k) sioni {u1 } e {u2 } tendano alle rispettive restrizioni della soluzione u del problema (14.2), ovvero (k) (k) lim u1 = u|Ω1 e lim u2 = u|Ω2 . k→∞
k→∞
Si può dimostrare che il metodo di Schwarz applicato al problema (14.2) converge sempre alla soluzione del problema di partenza, con una velocità che aumenta all’aumentare della misura |Γ12| di Γ12 . Mostriamo questo risultato in un semplice caso monodimensionale. Esempio 14.1 Sia Ω = (a, b) e siano γ1 , γ2 ∈ (a, b) tali che a < γ2 < γ1 < b (si veda la Figura 14.2). I due problemi (14.4) e (14.5) diventano
(0)
u2 (1)
u1
Ω2 a
γ2
(1)
γ1
(2) u1
b
Ω1
a
γ2
u2
(2)
u2 γ1
b
Figura 14.2. Esempio di decomposizione con sovrapposizione in dimensione 1 (a sinistra). Alcune iterazioni del metodo di Schwarz moltiplicativo per il problema (14.8) (a destra) ⎧ (k) ⎪ Lu1 = f, ⎪ ⎪ ⎨ ⎪ ⎪ ⎪ ⎩
(k) u1
=
a < x < γ1 ,
(k−1) u2 ,
x = γ1 ,
(k)
u1 = 0, ⎧ (k) ⎪ ⎪ ⎪ Lu2 = f, ⎨ ⎪ ⎪ ⎪ ⎩
(k)
(k)
(14.6)
x = a, γ2 < x < b,
u2
= u1 ,
x = γ2 ,
(k) u2
= 0,
x = b.
Per dimostrare la convergenza di tale schema, consideriamo il problema semplificato −u (x) = 0, a < x < b,
(14.7)
(14.8)
u(a) = u(b) = 0, ovvero il problema modello (14.2) con L = −d2 /dx2 e f = 0, la cui soluzione è evidentemente (k) (k) u = 0 in (a, b). Ciò non è restrittivo in quanto l’errore u − u1 , u − u2 ad ogni passo verifica
434
14 Il metodo di decomposizione dei domini
un problema come (14.6)-(14.7) con termine forzante nullo. (1) (1) Sia k = 1; dal momento che (u1 ) = 0, u1 (x) è una funzione lineare e, in particolare, (0) coincide con la retta che assume il valore zero in x = a e u2 in x = γ1 . Conoscendo dunque (1) il valore di u1 in γ2 si può risolvere il problema (14.7) che, a sua volta, è caratterizzato da una soluzione lineare. Si procede poi in modo analogo. Mostriamo in Figura 14.2 alcune iterazioni: si vede chiaramente che il metodo converge e che la velocità di convergenza si riduce al ridursi della lunghezza dell’intervallo (γ2 , γ1 ).
Osserviamo che il metodo iterativo di Schwarz (14.4)-(14.5) richiede, ad ogni passo, la risoluzione di due sotto-problemi con condizioni al bordo dello stesso tipo di quelle del problema di partenza: infatti si parte da un problema con condizioni di Dirichlet omogenee in Ω e si risolvono due problemi con condizioni al bordo ancora di Dirichlet su Ω1 e Ω2 . Se il problema differenziale (14.2) fosse stato completato invece da una condizione di Neumann su tutto il bordo ∂Ω, ci si sarebbe ricondotti alla risoluzione di un problema misto (di tipo Dirichlet-Neumann) su ciascuno dei sotto-domini Ω1 e Ω2 . 14.2.2 Il metodo di Dirichlet-Neumann Decomponiamo ora il dominio Ω in due sotto-domini senza sovrapposizione (si veda la Figura 14.1): siano dunque Ω1 , Ω2 ⊂ Ω, tali che Ω 1 ∪ Ω 2 = Ω, Ω 1 ∩ Ω 2 = Γ e Ω1 ∩ Ω2 = ∅. Nel seguito indicheremo con ni la normale esterna al dominio Ωi , e utilizzeremo la seguente convenzione: n = n1 = −n2 . Si può dimostrare il seguente risultato (si veda [QV99]): Teorema 14.1 (d’equivalenza) La soluzione u del problema (14.2) è tale che u|Ωi = ui per i = 1, 2, dove ui è la soluzione del problema
Lui = f
in Ωi ,
ui = 0
su ∂Ωi \ Γ,
(14.9)
con condizioni di interfaccia e
u1 = u2
(14.10)
∂u1 ∂u2 = ∂nL ∂nL
(14.11)
su Γ , avendo indicato con ∂/∂nL la derivata conormale (si veda (2.34)). Grazie a questo risultato, si può scomporre il problema (14.2) attribuendo alle condizioni di accoppiamento (14.10)-(14.11) il ruolo di “condizioni al bordo” sull’interfaccia Γ per i due sottoproblemi. In particolare si può costruire il seguente metodo iterativo, detto di Dirichlet-Neumann:
14.2 Tre classici metodi iterativi basati su DD
435
(0)
assegnato u2 su Γ , si risolvano per k ≥ 1 i problemi ⎧ (k) ⎪ in Ω1 , ⎪ ⎪ Lu1 = f ⎨ ⎪ ⎪ ⎪ ⎩
(k)
(k−1)
u1 = u2 (k)
u1 = 0
⎧ (k) ⎪ Lu2 = f ⎪ ⎪ ⎪ ⎨ (k) (k) ∂u2 ∂u1 = ⎪ ⎪ ∂n ⎪ ∂n ⎪ ⎩ (k) u2 = 0
su Γ,
(14.12)
su ∂Ω1 \ Γ, in Ω2 , su Γ,
(14.13)
su ∂Ω2 \ Γ.
Si è utilizzata la (14.10) come condizione di Dirichlet su Γ per il sotto-problema associato a Ω1 e la (14.11) come condizione di Neumann su Γ per il problema assegnato su Ω2 . Si nota dunque che, a differenza del metodo di Schwarz, il metodo di DirichletNeumann introduce un problema di Neumann sul secondo sotto-dominio Ω2 . La soluzione del problema di partenza è dunque ottenuta risolvendo, successivamente, un problema di Dirichlet e un problema misto sui due sotto-domini. Inoltre il teorema (k) (k) di equivalenza 14.1 garantisce che, quando le successioni {u1 } e {u2 } convergono, allora convergono sempre alla soluzione esatta del problema (14.2). Il metodo di Dirichlet-Neumann è dunque consistente. Tuttavia la convergenza di tale metodo non è sempre garantita. Andiamo a verificarlo con l’aiuto di un semplice esempio. Esempio 14.2 Sia Ω = (a, b), γ ∈ (a, b), L = −d2 /dx2 e f = 0. Si hanno dunque i due seguenti sotto-problemi: ⎧ (k) ⎪ ⎪ ⎪ −(u1 ) = 0, a < x < γ, ⎨ (k) (k−1) (14.14) , x = γ, u1 = u2 ⎪ ⎪ ⎪ ⎩ (k) x = a, u1 = 0, ⎧ (k) ⎪ −(u2 ) = 0, γ < x < b, ⎪ ⎪ ⎨ (k) (k) (14.15) (u2 ) = (u1 ) , x = γ, ⎪ ⎪ ⎪ ⎩ (k) x = b. u2 = 0, Procedendo come nell’Esempio 14.1, si può dimostrare che le successioni ottenute convergono solamente se γ > (a + b)/2, come mostrato graficamente in Figura 14.3.
In generale, per i problemi di dimensione generica d > 1, si deve avere che la misura del sotto-dominio Ω1 sia più grande di quella del dominio Ω2 al fine di garantire la convergenza del metodo (14.12)-(14.13). Tuttavia questo rappresenta un vincolo molto forte e difficile da soddisfare, soprattutto nel momento in cui si debbano utilizzare parecchi sotto-domini. Tale limitazione viene superata introducendo una variante del metodo iterativo DirichletNeumann, rimpiazzando la condizione di Dirichlet (14.12)2 nel primo sotto-problema
436
14 Il metodo di decomposizione dei domini
(0)
u2
(0)
u2
(2)
u2
a
a+b 2
γ
a
γ
a+b 2
b
b
(1)
(1)
u2
u2
Figura 14.3. Esempio di iterazioni convergenti (a sinistra), e divergenti (a destra) per il metodo di Dirichlet-Neumann in 1D
con la seguente (k)
(k−1)
u1 = θu2
(k−1)
+ (1 − θ)u1
su Γ,
(14.16)
introducendo cioè un rilassamento che dipende da un parametro positivo θ. Si osservi che in questo modo è sempre possibile ridurre l’errore fra un’iterata e la successiva. Nel caso rappresentato in Figura 14.3 si può facilmente dimostrare che, se si sceglie (k−1)
θopt = −
u1 (k−1)
u2
(k−1)
− u1
,
(14.17)
il metodo converge in una sola iterazione. Più in generale si può dimostrare che, in dimensione d ≥ 1, esiste un intervallo in cui scegliere il parametro θ in modo da garantire la convergenza del metodo di Dirichlet-Neumann e, in particolare, è possibile determinare un valore massimo θmax < 1 per il parametro di rilassamento tale che l’intervallo di cui sopra sia (0, θmax ). 14.2.3 Il metodo di Neumann-Neumann Si consideri ancora una partizione del dominio Ω senza sovrapposizione e indichiamo con λ il valore (incognito) della soluzione u in corrispondenza dell’interfaccia Γ . Introduciamo lo schema iterativo seguente: dato λ(0) su Γ , si risolvano i seguenti problemi per k ≥ 0 e i = 1, 2: ⎧ (k+1) ⎪ −ui = f in Ωi , ⎪ ⎪ ⎨ (k+1) (14.18) ui = λ(k) su Γ, ⎪ ⎪ ⎪ ⎩ (k+1) ui =0 su ∂Ωi \ Γ,
14.3 Formulazione multi-dominio
⎧ (k+1) ⎪ −ψi =0 ⎪ ⎪ ⎪ ⎨ (k+1) (k+1) (k+1) ∂ψi ∂u1 ∂u2 = − ⎪ ⎪ ∂n ∂n ∂n ⎪ ⎪ ⎩ (k+1) =0 ψi
in Ωi , su Γ,
(14.19)
su ∂Ωi \ Γ,
(k+1) (k+1) , λ(k+1) = λ(k) − θ σ1 ψ1|Γ − σ2 ψ2|Γ
con
437
(14.20)
essendo θ un parametro d’accelerazione positivo, σ1 e σ2 due coefficienti positivi. Questo metodo iterativo è detto di Neumann-Neumann. Si osservi che nella fase (k+1) (k+1) (14.18) ci si preoccupa di raccordare su Γ solo le funzioni u1 e u2 ma non le loro derivate normali. Quest’ultimo requisito viene soddisfatto nella fase (14.19), (k+1) (k+1) (14.20) attraverso le funzioni di correzione ψ1 e ψ2 . 14.2.4 Il metodo di Robin-Robin Consideriamo infine il seguente metodo iterativo, detto di Robin-Robin. Per ogni k ≥ 0 risolviamo i seguenti problemi: ⎧ (k+1) =f in Ω1 , ⎪ ⎪ −u1 ⎪ ⎪ ⎨ (k+1) u1 =0 su ∂Ω1 ∩ ∂Ω, (14.21) ⎪ ⎪ (k+1) (k) ⎪ ⎪ ∂u2 (k+1) (k) ⎩ ∂u1 + γ1 u1 + γ1 u2 = su Γ, ∂n ∂n quindi ⎧ (k+1) −u2 =f ⎪ ⎪ ⎪ ⎪ ⎨ (k+1) u2 =0 ⎪ ⎪ (k+1) (k+1) ⎪ ⎪ ∂u1 (k+1) (k+1) ⎩ ∂u2 + γ2 u2 + γ2 u1 = ∂n ∂n
in Ω2 , su ∂Ω2 ∩ ∂Ω,
(14.22)
su Γ,
dove u0 è assegnato e γ1 , γ2 sono parametri di accelerazione non negativi che soddisfano γ1 + γ2 > 0. Avendo a cuore la parallelizzazione, in (14.22) possiamo conside(k) (k+1) rare u1 in luogo di u1 , pur di assegnare in tal caso un valore iniziale anche per u01 .
14.3 Formulazione multi-dominio del problema di Poisson ed equazioni di interfaccia In questa sezione scegliamo L = − e consideriamo il problema di Poisson con condizioni al bordo di Dirichlet omogenee (2.13).
438
14 Il metodo di decomposizione dei domini
Nel caso di un dominio partizionato in due sotto-domini disgiunti considerato nella Sez. 14.2.2, il Teorema di equivalenza 14.1 ci permette di riscrivere questo problema nella seguente formulazione multi-dominio, in cui ui = uΩi , i = 1, 2: ⎧ −u1 = f ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ u1 = 0 ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ −u2 = f u2 = 0 ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ u1 = u2 ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ ∂u1 = ∂u2 ∂n ∂n
in Ω1 , su ∂Ω1 \ Γ, in Ω2 , su ∂Ω2 \ Γ,
(14.23)
su Γ, su Γ.
14.3.1 L’operatore di Steklov-Poincaré Indichiamo ora con λ il valore incognito della soluzione u del problema (2.13) sull’interfaccia Γ , cioè λ = u|Γ . Se si conoscesse a priori il valore di λ su Γ , si potrebbero risolvere (indipendentemente) i due problemi seguenti con condizioni al bordo di Dirichlet su Γ (i = 1, 2): ⎧ −wi = f in Ωi , ⎪ ⎪ ⎨ (14.24) su ∂Ωi \ Γ, wi = 0 ⎪ ⎪ ⎩ su Γ. wi = λ Al fine di ottenere il valore di λ su Γ , scomponiamo le funzioni wi nel seguente modo wi = wi∗ + u0i , dove a loro volta wi∗ e u0i sono le soluzioni dei due problemi (i = 1, 2): ⎧ −wi∗ = f in Ωi , ⎪ ⎪ ⎨ su ∂Ωi ∩ ∂Ω, wi∗ = 0 ⎪ ⎪ ⎩ ∗ su Γ, wi = 0 e
⎧ −u0i = 0 in Ωi , ⎪ ⎪ ⎨ su ∂Ωi ∩ ∂Ω, u0i = 0 ⎪ ⎪ ⎩ 0 su Γ, ui = λ
(14.25)
(14.26)
rispettivamente. Osserviamo che le funzioni wi∗ dipendono solamente dal dato f, u0i soltanto dal valore λ su Γ , pertanto possiamo scrivere wi∗ = Gi f e u0i = Hi λ. Entrambi gli operatori Gi e Hi sono lineari; Hi è detto operatore d’estensione armonica di λ sul dominio Ωi .
14.3 Formulazione multi-dominio
439
Ora, confrontando formalmente il problema (14.23) con (14.24), si osserva che l’uguaglianza ui = wi∗ + u0i , i = 1, 2 , vale se e solamente se le funzioni wi soddisfano la condizione (14.23)6 sulle derivate normali su Γ , ovvero se e solamente se ∂w1 ∂w2 = su Γ. ∂n ∂n Utilizzando le notazioni introdotte sopra, possiamo riscrivere quest’ultima condizione come ∂ ∂ (G1 f + H1 λ) = (G2 f + H2 λ) ∂n ∂n e quindi ∂G2 ∂H1 ∂H2 ∂G1 λ= f su Γ. − − ∂n ∂n ∂n ∂n Abbiamo ottenuto in tal modo un’equazione sull’interfaccia Γ per l’incognita λ, nota come equazione di Steklov-Poincaré. In forma compatta possiamo riscriverla come Sλ = χ
su Γ.
(14.27)
S è l’operatore pseudo-differenziale di Steklov-Poincaré definito formalmente come Sμ =
" ∂ " ∂ ∂ Hi μ = Si μ, H1 μ − H2 μ = ∂n ∂n ∂ni 2
2
i=1
i=1
(14.28)
mentre χ è un funzionale lineare dipendente dai dati del problema " ∂ ∂ ∂ Gi f. G2 f − G1 f = − ∂n ∂n ∂ni 2
χ=
(14.29)
i=1
Ricordiamo che ni è la normale esterna al sotto-dominio Ωi , per i = 1, 2. L’operatore , ∂ + i = 1, 2, (14.30) Hi μ Si : μ → Si μ = ∂ni Γ è detto operatore locale di Steklov-Poincaré. Osserviamo che S (ed ognuno degli Si ) opera tra lo spazio delle tracce Λ = {μ | ∃v ∈ V : μ = vΓ } (14.31) (ovvero H00 (Γ ), si veda [QV99]), e il suo duale Λ , mentre χ ∈ Λ . 1/2
Esempio 14.3 Consideriamo un semplice caso monodimensionale per fornire un esempio di operatore S. Sia Ω = (a, b) ⊂ R come illustrato in Figura 14.4 e Lu = −u . Se suddividiamo Ω in due sotto-domini senza sovrapposione, l’interfaccia Γ si riduce ad un punto solo γ ∈ (a, b), e l’operatore di Steklov-Poincaré S diventa dH1 1 1 dH2 Sλ = + − λ= λ, dx dx l1 l2 con l1 = γ − a e l2 = b − γ.
440
14 Il metodo di decomposizione dei domini λ H1 λ
H2 λ l2
l1 a
γ
Ω1
Ω2
b
Figura 14.4. Estensioni armoniche in una dimensione
14.3.2 Equivalenza tra il metodo di Dirichlet-Neumann e il metodo di Richardson Il metodo di Dirichlet-Neumann introdotto nella Sez. 14.2.2 può essere reinterpretato come un metodo iterativo di Richardson (precondizionato) per risolvere l’equazione d’interfaccia di Steklov-Poincaré. Per verificarlo, consideriamo ancora per semplicità un dominio Ω suddiviso in due sotto-domini Ω1 e Ω2 senza sovrapposizione con interfaccia Γ . Riscriviamo il metodo di Dirichlet-Neumann (14.12), (14.13), (14.16) nel caso dell’operatore di Laplace L = −Δ: dato λ0 , si risolva, per k ≥ 1, ⎧ (k) ⎪ −u1 = f1 in Ω1 , ⎪ ⎪ ⎨ (k) (14.32) u1 = λ(k−1) su Γ, ⎪ ⎪ ⎪ ⎩ (k) u1 = 0 su ∂Ω1 \ Γ, ⎧ (k) ⎪ −u2 = f2 in Ω2 , ⎪ ⎪ ⎪ ⎪ ⎨ (k) (k) ∂u2 ∂u1 (14.33) = su Γ, ⎪ ∂n2 ∂n2 ⎪ ⎪ ⎪ ⎪ ⎩ (k) u2 = 0 su ∂Ω2 \ Γ, (k)
λ(k) = θu2
|Γ
+ (1 − θ)λ(k−1) .
(14.34)
Si ha il risultato seguente: Teorema 14.2 Il metodo di Dirichlet-Neumann (14.32)-(14.34) è equivalente al metodo di Richardson precondizionato PDN (λ(k) − λ(k−1)) = θ(χ − Sλ(k−1) ).
(14.35)
L’operatore di precondizionamento è PDN = S2 = ∂(H2 μ)/∂n2 . (k)
Dimostrazione. La soluzione u1 di (14.32) può essere scritta come (k)
u1 = H1 λ(k−1) + G1 f1 .
(14.36)
14.3 Formulazione multi-dominio
441
Poiché G2 f2 soddisfa il problema differenziale −(G2 f2 ) = f2 in Ω2 , G2 f2 = 0
su ∂Ω2 , (k)
grazie a (14.33) si trova che la funzione u2 − G2 f2 è soluzione del problema differenziale ⎧ (k) ⎪ in Ω2 , ⎪ ⎪ −(u2 − G2 f2 ) = 0 ⎪ ⎪ ⎪ ⎨ (k) ∂ ∂u ∂ (k) (14.37) (u2 − G2 f2 ) = − 1 + (G2 f2 ) su Γ, ⎪ ⎪ ∂n ∂n ∂n ⎪ 2 ⎪ ⎪ ⎪ ⎩ (k) u2 − G2 f2 = 0 su ∂Ω2 \ Γ. (k)
(k)
In particolare u2 |Γ = (u2 − G2 f2 )|Γ . Ora ricordiamo che l’operatore Si (14.30) ci permette di passare da un dato di Dirichlet ad un dato di Neumann su Γ , il suo inverso Si−1 , partendo da un dato di Neumann, ci fornisce invece un dato di Dirichlet su Γ . Altrimenti detto, S2−1 η = w2|Γ se w2 è la soluzione del seguente problema ⎧ −w2 = 0 in Ω2 , ⎪ ⎪ ⎨ ∂w2 =η su Γ, ⎪ ⎪ ⎩ ∂n su ∂Ω2 \ Γ. w2 = 0
(14.38)
Allora, se si pone (k)
∂ ∂u1 + (G2 f2 ), ∂n ∂n e se si confronta la (14.37) con la (14.38), si può concludere che # $ (k) ∂u1 ∂ (k) (k) −1 − + (G2 f2 ) . u2 |Γ = (u2 − G2 f2 )|Γ = S2 ∂n ∂n η=−
Ma, grazie alla (14.36), si ottiene ∂ ∂ ∂ (k) −1 (k−1) u2 |Γ = S2 − (H1 λ )− (G1 f1 ) + (G2 f2 ) ∂n ∂n ∂n =
S2−1 (−S1 λ(k−1) + χ),
grazie alla definizione (14.29) di χ. Utilizzando la (14.34), possiamo dunque scrivere che λ(k) = θ S2−1 (−S1 λ(k−1) + χ) + (1 − θ)λ(k−1) , ovvero
λ(k) − λ(k−1) = θ S2−1 (−S1 λ(k−1) + χ) − λ(k−1) .
442
14 Il metodo di decomposizione dei domini
Ma −S1 = S2 − S, dunque otteniamo λ(k) − λ(k−1) = θ S2−1 ((S2 − S)λ(k−1) + χ) − λ(k−1) =
θS2−1 (χ − Sλ(k−1) ),
ovvero la relazione (14.35).
Seguendo un procedimento analogo alla dimostrazione del Teorema 14.2, anche il metodo di Neumann-Neumann (14.18) - (14.20) può essere interpretato come uno schema di Richardson precondizionato PNN (λ(k) − λ(k−1)) = θ(χ − Sλ(k−1)) , questa volta il precondizionatore essendo PNN = (σ1 S1−1 + σ2 S2−1 )−1 . Consideriamo infine il metodo di Robin-Robin (14.21) - (14.22). Indichiamo con (k) (k) μi ∈ Λ l’approssimazione al passo k della traccia di ui sull’interfaccia Γ , i = 1, 2. Allora, si può mostrare che (14.21) - (14.22) è equivalente al seguente metodo delle direzioni alternate (ADI): (k)
= χ + (γ1 iΛ + S2 )μ2
(k)
= χ + (γ2 iΛ + S1 )μ1
(γ1 iΛ + S1 )μ1 (γ2 iΛ + S2 )μ2
(k−1)
,
(k−1)
,
dove iΛ : Λ → Λ qui denota l’operatore di identificazione fra uno spazio di Hilbert e il suo duale (si veda (A.5), Appendice A). Se, per un’opportuna scelta dei parametri γ1 e γ2 , il metodo converge a due funzioni limite μ1 e μ2 , allora μ1 = μ2 = λ essendo λ, come al solito, la soluzione dell’equazione di Steklov-Poincaré (14.27).
14.4 Approssimazione con elementi finiti del problema di Poisson e formulazione per sotto-domini Naturalmente quanto visto fino ad ora si può considerare come propedeutico alla risoluzione numerica dei problemi ai limiti. Più precisamente, vediamo ora come le idee formulate nelle precedenti sezioni possano coniugarsi con un metodo di discretizzazione ad elementi finiti. Ciò tuttavia non è limitativo. Riferiamo ad esempio a [CHQZ07] per la generalizzazione al caso di approssimazioni basate su metodi spettrali o agli elementi spettrali. Consideriamo il problema di Poisson (2.13), la sua formulazione debole (2.17) e la sua approssimazione (3.30) con il metodo di Galerkin agli elementi finiti relativamente * ◦r ad una triangolazione Th . Ricordiamo che Vh =X h = vh ∈ Xhr : vh |∂Ω = 0 è lo h spazio degli elementi finiti di grado r che si annullano su ∂Ω, con base {ϕj }N j=1 (si veda la Sez. 3.4.1). (1)
Introduciamo la partizione seguente dei nodi del dominio Ω: siano {xj , 1 ≤ (2)
j ≤ N1 } i nodi ubicati dentro il sotto-dominio Ω1 , {xj , 1 ≤ j ≤ N2 } quelli in Ω2
14.4 Approssimazione con elementi finiti
443
(Γ )
e, infine, {xj , 1 ≤ j ≤ NΓ } quelli posizionati sull’interfaccia Γ . Ripartiamo in (1)
modo analogo anche le funzioni di base: indicheremo dunque con ϕj base associate ai nodi relative ai nodi
(1) xj ,
con
(2) ϕj
quelle associate ai nodi
(2) xj ,
le funzioni di (Γ )
e con ϕj
quelle
(Γ ) xj
di interfaccia. Ciò significa che δij , 1 ≤ i, j ≤ Nα , se α = β, (α) (β) ϕj (xj ) = 0 se α = β,
con α, β = 1, 2, Γ , essendo δij il simbolo di Kronecker. Scelto ora in (3.30) vh coincidente con una funzione test, possiamo dare la seguente formulazione equivalente della (3.30): trovare uh ∈ Vh tale che ⎧ (1) (1) ⎪ a(uh , ϕi ) = F (ϕi ) ∀i = 1, . . . , N1 , ⎪ ⎪ ⎨ (2) (2) (14.39) a(uh , ϕj ) = F (ϕj ) ∀j = 1, . . . , N2 , ⎪ ⎪ ⎪ ⎩ (Γ ) (Γ ) a(uh , ϕk ) = F (ϕk ) ∀k = 1, . . . , NΓ , avendo posto F (v) = Ω fv dΩ. Sia ora ∇v · ∇w dΩ ∀v, w ∈ V, i = 1, 2 ai (v, w) = Ωi
la restrizione della forma bilineare a(., .) al sotto-dominio Ωi e Vi,h = {v ∈ H 1 (Ωi ) | v = 0 su ∂Ωi \ Γ } (i = 1, 2). Analogamente poniamo Fi (v) = Ωi fv dΩ (i)
ed indichiamo infine con uh = uh|Ωi la restrizione di uh al sotto-dominio Ωi , con i = 1, 2. Il problema (14.39) può essere riscritto nella forma equivalente: trovare (1) (2) uh ∈ V1,h , uh ∈ V2,h tali che ⎧ (1) (1) (1) ⎪ a1 (uh , ϕi ) = F1 (ϕi ) ∀i = 1, . . . , N1 , ⎪ ⎪ ⎪ ⎪ ⎨ (2) (2) (2) a2 (uh , ϕj ) = F2 (ϕj ) ∀j = 1, . . . , N2 (14.40) ⎪ (1) (Γ ) (2) (Γ ) ⎪ ⎪ a1 (uh , ϕk |Ω1 ) + a2 (uh , ϕk |Ω2 ) ⎪ ⎪ ⎩ (Γ ) (Γ ) = F1 (ϕk |Ω1 ) + F2 (ϕk |Ω2 ) ∀k = 1, . . . , NΓ . Si osservi che la condizione (14.23)5 di continuità della soluzione all’interfaccia è (i) automaticamente verificata grazie alla continuità delle funzioni uh . Osserviamo inoltre che le equazioni (14.40)1 -(14.40)3 corrispondono alla discretizzazione ad elementi finiti delle (14.23)1 -(14.23)6 , rispettivamente. In particolare, la terza delle (14.40) traduce nel discreto la condizione (14.23)6 di continuità delle derivate normali sull’interfaccia Γ . Rappresentiamo la funzione uh come una somma rispetto alla base dello spazio Vh uh (x)
=
N1 "
(1)
(1)
uh (xj )ϕj (x) +
j=1
+
NΓ " j=1
N2 "
(2)
(2)
uh (xj )ϕj (x)
j=1 (Γ )
(Γ )
uh (xj )ϕj (x).
(14.41)
444
14 Il metodo di decomposizione dei domini (α)
I valori nodali uh (xj ), j = 1, . . . , Nα e α = 1, 2, Γ , sono i coefficienti della combi(α)
nazione lineare, e verranno indicati d’ora in avanti con la notazione semplificata uj . Utilizzando la relazione (14.41), possiamo riscrivere il problema (14.40) nel seguente modo: ⎧ N1 NΓ " " ⎪ ⎪ (1) (1) (1) (Γ ) (Γ ) (1) (1) ⎪ ⎪ u a (ϕ , ϕ ) + uj a1 (ϕj , ϕi ) = F1 (ϕi ) ∀i = 1, . . . , N1 , 1 ⎪ j j i ⎪ ⎪ j=1 ⎪ j=1 ⎪ ⎪ N2 NΓ ⎪ " " ⎪ ⎪ (2) (2) (2) (Γ ) (Γ ) (2) (2) ⎪ uj a2 (ϕj , ϕi ) + uj a2 (ϕj , ϕi ) = F2 (ϕi ) ∀i = 1, . . . , N2 , ⎪ ⎪ ⎪ ⎪ j=1 ⎨ j=1 NΓ " (Γ ) (Γ ) (Γ ) (Γ ) (Γ ) ⎪ a u (ϕ , ϕ ) + a (ϕ , ϕ ) ⎪ 1 2 j j i j i ⎪ ⎪ ⎪ j=1 ⎪ ⎪ ⎪ N1 N2 ⎪ " " ⎪ (1) (1) (Γ ) (2) (2) (Γ ) ⎪ ⎪ + u a (ϕ , ϕ ) + uj a2 (ϕj , ϕi ) ⎪ 1 j j i ⎪ ⎪ ⎪ j=1 j=1 ⎪ ⎪ ⎩ (Γ ) (Γ ) = F1 (ϕi |Ω1 ) + F2 (ϕi |Ω2 ) ∀i = 1, . . . , NΓ . (14.42) Introduciamo le seguenti matrici e vettori: (1)
(1)
(2)
(2)
(A11 )ij = a1 (ϕj , ϕi ),
(Γ )
(1)
(Γ )
(2)
(2)
(Γ )
(A1Γ )ij = a1 (ϕj , ϕi ),
(A22 )ij = a2 (ϕj , ϕi ), (A2Γ )ij = a2 (ϕj , ϕi ), + 1 , , + (Γ ) (Γ ) (Γ ) (Γ ) AΓ Γ ij = a1 (ϕj , ϕi ), A2Γ Γ ij = a2 (ϕj , ϕi ), (1)
(Γ )
(AΓ 1 )ij = a1 (ϕj , ϕi ), (1)
(AΓ 2 )ij = a2 (ϕj , ϕi ), (2)
(f1 )i = F1 (ϕi ), + Γ, (Γ ) f1 i = F1 (ϕi ),
(f2 )i = F2 (ϕi ), + Γ, (Γ ) (1) f2 i = F2 (ϕi , ϕi ).
Poniamo infine
(1) (2) (Γ ) e λ = uj . u = (u1 , u2, λ)T , con u1 = uj , u2 = uj
(14.43)
Il problema (14.42) può essere scritto in forma algebrica nel seguente modo ⎧ A11 u1 + A1Γ λ = f1 , ⎪ ⎪ ⎪ ⎨ A22 u2 + A2Γ λ = f2 , (14.44) ⎪ ⎪ ⎪ ⎩ AΓ 1 u1 + AΓ 2 u2 + A(1) + A(2) λ = f1Γ + f2Γ , ΓΓ ΓΓ o, in forma matriciale, come ⎡
A11 Au = f , ovvero ⎣ 0 AΓ 1
0 A22 AΓ 2
⎤ ⎡ ⎤⎡ ⎤ A1Γ f1 u1 A2Γ ⎦ ⎣ u2 ⎦ = ⎣ f2 ⎦ , AΓ Γ λ fΓ
(14.45)
14.4 Approssimazione con elementi finiti
445
(1) (2) avendo posto AΓ Γ = AΓ Γ + AΓ Γ e fΓ = f1Γ + f2Γ . La (14.45) altro non è che la riscrittura del sistema algebrico (3.35) “a blocchi”, i blocchi essendo individuati dalla partizione del vettore delle incognite evidenziata in (14.43). 14.4.1 Il complemento di Schur Consideriamo ora l’equazione all’interfaccia di Steklov-Poincaré (14.27). Vogliamo trovare la sua corrispondente nell’ambito dell’approssimazione ad elementi finiti. Poiché λ rappresenta il valore incognito di u su Γ , essa avrà come corrispondente, in dimensione finita, il vettore λ dei valori di uh sull’interfaccia. Applicando il metodo di eliminazione gaussiana al sistema (14.45), possiamo pervenire ad un sistema algebrico per la sola incognita λ. Le matrici A11 e A22 sono invertibili in quanto associate a due problemi di Dirichlet omogenei per l’equazione di Laplace, pertanto u1 = A−1 11 (f1 − A1Γ λ) ,
e
u2 = A−1 22 (f2 − A2Γ λ) .
Dalla terza equazione in (14.44), otteniamo (1) (2) −1 λ= AΓ Γ − AΓ 1 A−1 11 A1Γ + AΓ Γ − AΓ 2 A22 A2Γ
(14.46)
(14.47)
−1 fΓ − AΓ 1 A−1 11 f1 − AΓ 2 A22 f2 .
Introducendo le seguenti definizioni: Σ = Σ1 + Σ2 ,
Σi = AΓ Γ − AΓ i A−1 ii AiΓ , (i)
i = 1, 2,
(14.48)
e −1 χΓ = fΓ − AΓ 1 A−1 11 f1 − AΓ 2 A22 f2 ,
(14.49)
Σλ = χΓ .
(14.50)
la (14.47) diventa Poiché Σ e χΓ sono approssimazioni di S e χ, rispettivamente, la (14.50) può considerarsi come l’approssimazione ad elementi finiti per l’equazione di Steklov-Poincaré (14.27). La matrice Σ è il cosiddetto complemento di Schur della matrice A rispetto alle incognite vettoriali u1 e u2 , mentre le matrici Σi sono i complementi di Schur relativi ai sotto-domini Ωi (i = 1, 2). Una volta risolto il sistema (14.50) rispetto all’incognita λ, in virtù delle (14.46), possiamo calcolare u1 e u2 . Tale calcolo equivale a risolvere numericamente due problemi di Poisson in corrispondenza dei due sotto-domini Ω1 e Ω2 , con condizione al (i) bordo di Dirichlet uh |Γ = λh (i = 1, 2), sull’interfaccia Γ . Per quanto concerne le proprietà del complemento di Schur Σ rispetto alla matrice A, si può dimostrare il risultato seguente:
446
14 Il metodo di decomposizione dei domini
Lemma 14.1 La matrice Σ soddisfa le proprietà seguenti: 1. se A è una matrice singolare, allora Σ è singolare; 2. se A (rispettivamente, Aii ) è simmetrica, allora Σ (rispettivamente, Σi ) è simmetrica; 3. se A è definita positiva, allora Σ è definita positiva. Ricordiamo che il numero di condizionamento di A è dato da K2 (A) C h−2 (si veda la (3.39)). Quanto alla matrice Σ, si può invece dimostrare che K2 (Σ) C h−1 .
(14.51)
Nel caso specifico preso in considerazione, la matrice A (e dunque la matrice Σ, grazie al Lemma 14.1) è una matrice simmetrica e definita positiva. È possibile dunque utilizzare il metodo del gradiente coniugato per risolvere il sistema (14.50), previa opportuno precondizionamento. Ad ogni passo, il calcolo del residuo richiederà la risoluzione con il metodo degli elementi finiti di due problemi di Dirichlet indipendenti sui sotto-domini Ωi . 14.4.2 L’operatore di Steklov-Poincaré discreto Ci proponiamo di trovare l’operatore discreto associato al complemento di Schur. A 0 tal fine definiamo, oltre allo spazio Vi,h introdotto in precedenza, quello Vi,h generato (i)
dalle funzioni {ϕj } associate ai soli nodi interni al dominio Ωi , e lo spazio Λh ge (Γ ) }. Osserviamo che Λh = {μh | ∃vh ∈ Vh : vh = μh }. nerato dall’insieme {ϕ j
|Γ
Γ
Pertanto Λh rappresenta un sottospazio di elementi finiti dello spazio di tracce Λ definito in (14.31). Consideriamo adesso il seguente problema: trovare Hi,hηh ∈ Vi,h , con Hi,h ηh = ηh su Γ , tale che 0 ∇(Hi,h ηh ) · ∇vh dΩi = 0 ∀vh ∈ Vi,h . (14.52) Ωi
Evidentemente Hi,h ηh rappresenta un’approssimazione ad elementi finiti dell’estensione armonica Hi ηh , e l’operatore Hi,h : ηh → Hi,hηh un’approssimazione dell’operatore Hi . Riscriviamo la soluzione Hi,h ηh come combinazione lineare delle funzioni di base Ni NΓ " " (i) (i) (Γ ) uj ϕj + ηk ϕk |Ω , Hi,h ηh = j=1
k=1
i
arrivando così a riscrivere la (14.52) sotto forma matriciale come Aii u(i) = −AiΓ η.
(14.53)
Vale il seguente risultato, detto teorema d’estensione uniforme nel caso discreto:
14.4 Approssimazione con elementi finiti
447
Teorema 14.3 Esistono due costanti Cˆ1 , Cˆ2 > 0, independenti da h, tali che Cˆ1 ηh Λ ≤ Hi,hηh H 1 (Ωi ) ≤ Cˆ2 ηh Λ , i = 1, 2,
∀ηh ∈ Λh . (14.54)
Come conseguenza esistono due costanti K1 , K2 > 0, independenti da h, tali che K1 H1,hηh H 1 (Ω1 ) ≤ H2,hηh H 1 (Ω2) ≤ K2 H1,hηh H 1 (Ω1 )
∀ηh ∈ Λh . (14.55)
Per la dimostrazione rimandiamo a [QV99]. Definiamo ora, per i = 1, 2, l’operatore Si,h : Λh → Λh , detto operatore locale di Steklov-Poincaré discreto, come segue Si,h ηh , μh = ∇(Hi,hηh ) · ∇(Hi,h μh ) ∀ηh , μh ∈ Λh , (14.56) Ωi
indi poniamo Sh = S1,h + S2,h . Lemma 14.2 L’operatore locale di Steklov-Poincaré discreto può essere espresso in funzione del complemento di Schur locale come Si,h ηh , μh = μT Σi η dove ηh =
NΓ "
(Γ )
ηk ϕk
|Γ ,
∀ηh , μh ∈ Λh ,
μh =
k=1
NΓ "
(Γ )
μk ϕk
(14.57)
|Γ
k=1
e η = (η1 , . . . , ηNΓ )T ,
μ = (μ1 , . . . , μNΓ )T .
Pertanto, l’operatore globale di Steklov-Poincaré discreto Sh = S1,h + S2,h verifica la relazione Sh ηh , μh = μT Σ η
∀ηh , μh ∈ Λh .
(14.58)
Dimostrazione. Per i = 1, 2 abbiamo Si,h ηh , μh
= ai (Hi,h ηh , Hi,hμh ) = ai
NΓ " j=1
(i)
uj ϕj +
NΓ " k=1
(Γ )
ηk ϕk
|Ωi
,
NΓ " l=1
(i)
wl ϕl +
NΓ " m=1
) μm ϕ(Γ m |Ω
i
448
14 Il metodo di decomposizione dei domini
=
NΓ "
(i)
NΓ "
(Γ )
wl ai (ϕk
k,l=1
=
(i)
) μm ai (ϕj , ϕ(Γ m |Ω )uj i
j,m=1
j,l=1
+
NΓ "
(i)
wl ai (ϕj , ϕl )uj +
|Ωi
(i)
, ϕl )ηk +
NΓ "
(Γ )
μm ai (ϕk
k,m=1
|Ωi
) , ϕ(Γ m |Ω )ηk i
(i)
wT Aii u + μT AΓ i u + wT AiΓ η + μT AΓ Γ η.
Grazie alla (14.53) si ottiene Si,h ηh , μh
=
T T −wT AiΓ η − μT AΓ i A−1 ii AiΓ η + w AiΓ η + μ AΓ Γ η (i) μT AΓ Γ − AΓ i A−1 ii AiΓ η
=
μT Σi η.
=
(i)
Grazie al Teorema 14.3 ed alla caratterizzazione (14.56), deduciamo che esistono ˆ 2 > 0, indipendenti da h, tali che ˆ 1, K due costanti K ˆ 2 S1,h μh , μh ˆ 1 S1,h μh , μh ≤ S2,h μh , μh ≤ K K
∀μh ∈ Λh .
(14.59)
˜ 1, K ˜ 2 > 0, Grazie alla (14.57), possiamo concludere che esistono due costanti K indipendenti da h, tali che + + , , ˜ 1 μT Σ1 μ ≤ μT Σ2 μ ≤ K ˜ 2 μT Σ1 μ K ∀μ ∈ RNΓ . (14.60) In altri termini, le matrici Σ1 e Σ2 sono spettralmente equivalenti, ovvero il loro numero di condizionamento spettrale ha lo stesso comportamento asintotico rispetto a h. Pertanto sia Σ1 che Σ2 forniscono un precondizionatore ottimale del complemento di Schur Σ, ovvero esiste una costante C, indipendente da h, tale che K2 (Σi−1 Σ) ≤ C,
i = 1, 2.
(14.61)
Come si vedrà nella Sez. 14.4.3, questa proprietà permette di dimostrare che la versione discreta del metodo di Dirichlet-Neumann converge con una velocità indipendente da h. Stesso risultato vale per il metodo di Neumann-Neumann. 14.4.3 Equivalenza tra il metodo di Dirichlet-Neumann e il metodo di Richardson precondizionato: il caso algebrico Dimostriamo ora il risultato di equivalenza del Teorema 14.2 nel caso algebrico. L’approssimazione con elementi finiti del problema di Dirichlet (14.32) si scrive in forma matriciale come (k) A11 u1 = f1 − A1Γ λ(k−1), (14.62)
14.4 Approssimazione con elementi finiti
mentre quella del problema di Neumann (14.33) dà luogo al sistema (k) A22 A2Γ f2 u2 = . (2) (k) (1) AΓ 2 AΓ Γ fΓ − AΓ 1 u1 − AΓ Γ λ(k−1) λ(k−1/2)
449
(14.63)
A sua volta, la (14.34) diventa λ(k) = θλ(k−1/2) + (1 − θ)λ(k−1) .
(14.64)
(k)
Eliminando u2 dalla (14.63) otteniamo (2) (k) (1) AΓ Γ − AΓ 2 A−1 λ(k−1/2) = fΓ − AΓ 1 u1 − AΓ Γ λ(k−1) − AΓ 2 A−1 A 2Γ 22 22 f2 . Grazie alla definizione (14.48) di Σ2 ed alla (14.62), si ha (1) −1 −1 (k−1) Σ2 λ(k−1/2) = fΓ − AΓ 1 A−1 f − A A f − A − A A A , Γ 2 22 2 Γ 1 11 1Γ λ 11 1 ΓΓ ovvero, usando la definizione (14.48) di Σ1 e la (14.49), λ(k−1/2) = Σ2−1 χΓ − Σ1 λ(k−1) . Ora, in virtù della (14.64), ricaviamo λ(k) = θΣ2−1 χΓ − Σ1 λ(k−1) + (1 − θ)λ(k−1) , cioè, poiché −Σ1 = −Σ + Σ2 , λ(k) = θΣ2−1 χΓ − Σλ(k−1) + Σ2 λ(k−1) + (1 − θ)λ(k−1) e quindi Σ2 (λ(k) − λ(k−1)) = θ(χΓ − Σλ(k−1)). Quest’ultima relazione altro non è che un’iterazione di Richardson sul sistema (14.50) usando come precondizionatore il complemento di Schur locale Σ2 . Osservazione 14.1 Il precondizionatore del metodo di Dirichlet-Neumann è sempre il complemento di Schur locale associato al sotto-dominio su cui si risolve il problema di Neumann. Qualora si risolvesse il problema di Dirichlet su Ω2 e quello di Neumann su Ω1 , il precondizionatore per il metodo di Richardson sarebbe Σ1 anziché Σ2 . • Osservazione 14.2 Per quel che concerne la versione discreta del metodo di NeumannNeumann introdotto nella Sez. 14.2.3, si può dimostrare un risultato dello stesso tipo di quello appena dimostrato per il metodo di Dirichlet-Neumann. Precisamente, questo metodo è equivalente al metodo di Richardson per il sistema (14.50) con un precondizionatore il cui inverso è dato da Ph−1 = σ1 Σ1−1 + σ2 Σ2−1 , essendo σ1 e σ2 i
450
14 Il metodo di decomposizione dei domini
coefficienti usati nella relazione di interfaccia (discreta) corrispondente alla (14.20). Si può inoltre dimostrare che esiste una costante C > 0, indipendente da h, tale che K2 ((σ1 Σ1−1 + σ2 Σ2−1 )Σ) ≤ C . Procedendo in modo analogo si verifica che la versione discreta del metodo di RobinRobin (14.21)-(14.22) equivale anch’essa ad iterare con il metodo di Richardson sul sistema (14.50), usando tuttavia questa volta come precondizionatore la matrice (γ1 + γ2 )−1 (γ1 I + Σ1 )(γ2 I + Σ2 ). • Ricordiamo che una matrice Ph fornisce un precondizionatore ottimale per Σ se il numero di condizionamento di Ph−1 Σ è uniformemente limitato rispetto alla dimensione N della matrice Σ (e quindi da h nel caso in cui Σ derivi da un’approssimazione agli elementi finiti). Possiamo allora concludere che, per la risoluzione del sistema Σλ = χΓ , si può ricorrere ai seguenti precondizionatori, tutti ottimali:
Ph =
⎧ Σ2 ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ Σ1
per il metodo di Dirichlet-Neumann, per il metodo di Neumann-Dirichlet,
⎪ per il metodo di Neumann-Neumann, (σ1 Σ1−1 + σ2 Σ2−1 )−1 ⎪ ⎪ ⎪ ⎪ ⎩ −1 (γ1 + γ2 ) (γ1 I + Σ1 )(γ2 I + Σ2 ) per il metodo di Robin-Robin. (14.65) Anticipiamo il fatto che nel caso si usino partizioni del dominio computazionale Ω con molti sotto-domini, tale risultato non risulta più essere valido. Ora, dalla teoria della convergenza del metodo iterativo di Richardson, sappiamo che, nel caso in cui sia Σ che Ph siano simmetriche e definite positive, la velocità di convergenza ottimale è data da ρ=
K2 (Ph−1 Σ) − 1 , K2 (Ph−1 Σ) + 1
nel senso che λn − λΣ ≤ ρn λ0 − λΣ , n ≥ 0, essendo vΣ = (v T Σv)1/2 . Pertanto tale velocità è indipendente da h.
14.5 Generalizzazione al caso di più sotto-domini Vogliamo ora generalizzare i risultati ottenuti nelle sezioni precedenti al caso in cui il dominio Ω sia suddiviso in un numero M > 2 arbitrario di sotto-domini (vedremo svariati esempi nel seguito).
14.5 Generalizzazione al caso di più sotto-domini
451
Indichiamo con Ωi , con i = 1, . . . , M , dei sotto-domini senza sovrapposizione tali che ∪Ωi = Ω, Γi = ∂Ωi \ ∂Ω e Γ = ∪Γi . Nel caso del problema di Poisson (2.13), la formulazione multidomini (14.23) si può generalizzare nel modo seguente ⎧ −ui = f ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ ui = uk
in Ωi , su Γik , ∀k ∈ A(i),
∂ui ∂uk ⎪ ⎪ = ⎪ ⎪ ∂ni ⎪ ⎩ ∂ni ui = 0
su Γik , ∀k ∈ A(i),
(14.66)
su ∂Ωi ∩ ∂Ω,
essendo i = 1, . . . , M , Γik = ∂Ωi ∩ ∂Ωk = ∅ , A(i) l’insieme degli indici k t.c. Ωk è adiacente a Ωi , e dove ni indica la normale esterna al sotto-dominio Ωi . A livello discreto, possiamo supporre di aver approssimato il problema (2.13) con il metodo agli elementi finiti. Seguendo le idee presentate nella Sez. 14.4 ed indicando T con u = (uI , uΓ ) il vettore delle incognite scomposto in quelle relative ai nodi interni (uI ) e a quelli sull’interfaccia Γ (uΓ ), si può pervenire alla formulazione algebrica seguente AII AIΓ uI fI = , (14.67) AΓ I AΓ Γ uΓ fΓ essendo AΓ I = ATIΓ . Osserviamo che AII è una matrice diagonale a blocchi ⎡ ⎢ ⎢ AII = ⎢ ⎢ ⎣
A11 0 .. .
0 .. .
...
0 .. .
..
0
...
. 0
0
⎤ ⎥ ⎥ ⎥, ⎥ ⎦
(14.68)
AM M
mentre AIΓ è una matrice a banda, essendoci solo intersezioni fra interfacce Γi appartenenti allo stesso sotto-dominio. Le notazioni sono le seguenti: 1 ≤ l, j ≤ Ni ,
(Aii )lj = ai (ϕj , ϕl ), (i) (AΓ Γ )sr
= ai (ψr , ψs ), 1 ≤ r, s ≤ NΓi , 1 ≤ r ≤ NΓi
(AiΓ )lr = ai (ψr , ϕl ),
1 ≤ l ≤ Ni ,
essendo Ni il numero di nodi interni di Ωi , NΓi quello dei nodi sull’interfaccia Γi , ϕj e ψr le funzioni di base associate ai nodi interni e di interfaccia, rispettivamente. Osserviamo che su ciascun sotto-dominio Ωi la matrice seguente Ai =
Aii AΓ i
AiΓ (i) AΓ Γ
(14.69)
452
14 Il metodo di decomposizione dei domini
è quella che si otterrebbe risolvendo un problema di Neumann locale in Ωi . La matrice AII è non singolare, e dunque dalla (14.67) possiamo ricavare uI = A−1 II (fI − AIΓ uΓ ).
(14.70)
Eliminando l’incognita uI del sistema (14.67), si ha AΓ Γ uΓ = fΓ − AΓ I A−1 II (fI − AIΓ uΓ ), ovvero
+ , −1 AΓ Γ − AΓ I A−1 II AIΓ uΓ = fΓ − AΓ I AII fI .
(14.71)
Ora ponendo −1 Σ = AΓ Γ − AΓ I A−1 II AIΓ e χΓ = fΓ − AΓ I AII fI ,
ed introducendo λ = uΓ , la (14.71) diviene Σλ = χΓ .
(14.72)
Σ è il complemento di Schur della matrice (14.67) ottenuto rispetto alle incognite di interfaccia. Il sistema (14.72) può dunque considerarsi l’approssimazione agli elementi finiti del problema all’interfaccia di Steklov-Poincaré nel caso di M sotto-domini. Notiamo che, definiti i complementi di Schur locali, Σi = AΓ Γ − AΓi A−1 ii AiΓ , i = 1, . . . M , (i)
si ha Σ = Σ1 + . . . + ΣM . Un algoritmo generale per risolvere il problema di Poisson su Ω potrà dunque essere così formulato: 1. calcolare la soluzione di (14.72) per ottenere il valore di λ sull’interfaccia Γ ; 2. risolvere (14.70) e, poiché AII è una matrice diagonale a blocchi, ciò comporta la risoluzione di M problemi indipendenti di dimensione ridotta su ciascun sottodominio, ovvero Aii uiI = gi , i = 1, . . . , M . Questa fase può evidentemente dar luogo ad un algoritmo parallelo. Si può dimostrare che vale la seguente stima per il numero di condizionamento di Σ: esiste una costante C > 0, indipendente da h e H, tale che K2 (Σ) ≤ C
H , 2 hHmin
essendo H il diametro massimo dei sotto-domini e Hmin quello minimo.
(14.73)
14.5 Generalizzazione al caso di più sotto-domini
453
14.5.1 Alcuni risultati numerici Consideriamo il problema di Poisson (2.13) sul dominio Ω = (0, 1)2 la cui formulazione ad elementi finiti è data dalla (3.30). Decomponiamo il dominio Ω in M regioni quadrate Ωi , di dimensione caratteristica H, tali che ∪M i=1 Ωi = Ω. Un esempio di tale decomposizione basata su 4 sotto-domini è riportato in Figura 14.5 (sulla sinistra). In Tabella 14.1 riportiamo i valori numerici di K2 (Σ) relativi al problema in esame; esso cresce linearmente con 1/h e con 1/H, come indicato dalla formula (14.73) per Hmin = H. In Figura 14.5 (sulla destra) riportiamo il pattern della matrice Σ associata alle scelte h = 1/8 e H = 1/2. La matrice ha una struttura a blocchi, che tiene conto delle interfacce Γ1 , Γ2 , Γ3 e Γ4 , più il contributo dovuto al punto di intersezione Γc delle quattro interfacce. Si osservi che Σ è densa. Per questo motivo, quando si utilizzano metodi iterativi per risolvere il sistema (14.72), non è conveniente, dal punto di vista dell’occupazione di memoria, calcolare in modo esplicito gli elementi di Σ. Al contrario, usando l’Algoritmo 14.1 è possibile calcolare il prodotto ΣxΓ , per ogni vettore xΓ . Abbiamo indicato con RΓi : Γ → Γi = ∂Ωi \ ∂Ω un opportuno operatore di restrizione, mentre x ← y indica l’operazione x = x + y.
Tabella 14.1. Numero di condizionamento del complemento di Schur Σ K2 (Σ) H = 1/2 H = 1/4 H = 1/8 h=1/8 9.77 14.83 25.27 h=1/16 21.49 35.25 58.60 h=1/32 44.09 75.10 137.73 h=1/64 91.98 155.19 290.43
0
Γ1 5
Γ4
Γ
10
2
Γ2
Γ3 Γc Γ1
Γ
15
c
Γ
3
20
Γ4
25
30
0
5
10
15 nz = 597
20
25
30
Figura 14.5. Esempio di decomposizione del dominio Ω = (0, 1)2 in quattro sotto-domini quadrati (a sinistra). Pattern di sparsità del complemento di Schur Σ (sulla destra) associato alla decomposizione di domini riportata sulla sinistra
454
14 Il metodo di decomposizione dei domini
Algoritmo 14.1 (applicazione del complemento di Schur) Dato xΓ , calcolare yΓ = ΣxΓ nel modo seguente: a. Porre yΓ = 0 b. For i = 1, . . . , M Do in parallelo: c.
xi = RΓi xΓ
d.
zi = AiΓi xi
e.
zi ← A−1 ii zi
f.
sommare nel vettore locale yΓi ← AΓi Γi xi − AΓi i zi
g.
sommare nel vettore globale yΓ ← RTΓi yΓi
h. EndFor
Si osservi che tale algoritmo è completamente parallelo, non essendo richiesta alcuna comunicazione tra i vari sotto-domini. Prima di utilizzare per la prima volta il complemento di Schur, è necessario avviare una fase di startup descritta nell’Algoritmo 14.2. Questo è un calcolo off-line. Algoritmo 14.2 (fase di startup per la risoluzione del sistema associato al complemento di Schur) Dato xΓ , calcolare yΓ = ΣxΓ nel modo seguente: a. For i = 1, . . . , M Do in parallelo: b.
Costruire la matrice Ai
c.
Riordinare Ai come Ai =
Aii AΓi i
AiΓi AΓi Γi
ed estrarre le sotto-matrici Aii , AiΓi , AΓi i e AΓi Γi d.
Calcolare una fattorizzazione (di tipo LU o Cholesky) di Aii
e. EndFor
14.6 Precondizionatori nel caso di più sotto-domini Prima di introdurre precondizionatori del complemento di Schur nel caso in cui il dominio Ω sia partizionato in più sotto-domini, ricordiamo la seguente definizione:
Definizione 14.1 Si definisce scalabile un precondizionatore di Σ che permette di ottenere una matrice precondizionata Ph−1 Σ con un numero di condizionamento indipendente dal numero di sotto-domini.
14.6 Precondizionatori nel caso di più sotto-domini
455
I metodi iterativi con precondizionatori scalabili consentono di ottenere velocità di convergenza indipendenti dal numero dei sotto-domini. Tale proprietà è senza dubbio auspicabile nel momento in cui si ricorra ad un calcolo parallelo su molti processori. Definiamo un operatore di restrizione Ri che associa ad un vettore vh del dominio globale Ω la sua restrizione al sotto-dominio Ωi i Ri : vh|Ω → vh| Ω
i ∪Γi
Sia inoltre RTi
i RTi : vh| Ω
i ∪Γi
.
→ vh|Ω
l’operatore di estensione (o prolungamento) a zero di vhi . In forma algebrica Ri può essere rappresentato da una matrice che coincide con la matrice identità in corrispondenza del sotto-dominio Ωi a cui essa è associata: ⎡ ⎤ 0 ... 0 1 0 ... 0 ⎢ . ⎥ .. . . .. Ri = ⎣ ... . . . ... . .. ⎦ . . . 0 ... 0
0
12 Ωi
1 3
0 ... 0
Un possibile precondizionatore per Σ è Ph =
M "
RTΓi Σi RΓi .
i=1
Esso agisce sui vettori i cui valori sono associati ai soli nodi della griglia che “vivono” sull’unione delle interfacce. Più in generale, l’idea seguita per costruire un precondizionatore è di combinare opportunamente i contributi dovuti ai precondizionatori locali, ovvero che si possono costruire sui singoli sotto-domini, con uno globale ottenuto a partire da una griglia più grossolana (coarse) di Ω, ad esempio quella i cui elementi sono i sotto-domini stessi di Ω. Possiamo formalizzare questa idea attraverso la seguente definizione (Ph )−1 =
M "
−1 −1 RTΓi Pi,h RΓi + RTΓ PH RΓ .
i=1
Come al solito, abbiamo indicato con H la massima ampiezza dei diametri Hi dei sotto-domini Ωi , mentre RΓ e PH si riferiscono a operatori che agiscono sulla scala globale (la griglia coarse). Esistono diverse scelte possibili per il precondizionatore locale Pi,h di Σi che daranno luogo ad andamenti differenti per quel che concerne la convergenza dell’algoritmo adottato per risolvere il problema. 14.6.1 Il precondizionatore di Jacobi Sia {e1 , . . . , em } l’insieme dei lati e {v1 , . . . , vn } l’insieme dei vertici di una partizione del dominio Ω (si veda per un esempio la Figura 14.6).
456
14 Il metodo di decomposizione dei domini Ω e3
e2 e1 v 1
e4
v2 e5
e6
e7
e8 v3 Ωi
v4 e10
e9 e11
e12
Figura 14.6. A sinistra, esempio di decomposizione in più sotto-domini. A destra, esempio di griglia fine (quella dei triangoli) e griglia coarse (quella dei 9 quadrilateri) su Ω
Per la matrice Σ possiamo fornire la seguente rappresentazione a blocchi ⎡ ⎢ Σ=⎢ ⎣
Σee
Σev
T Σev
Σvv
⎤ ⎥ ⎥, ⎦
essendo ⎡
Σee
e
Σe1 e1 ⎢ .. =⎣ . Σem e1
⎤ . . . Σe1 em ⎥ .. .. ⎦, . . . . . Σem em ⎡ ⎢ ⎢ Σvv = ⎢ ⎢ ⎣
Σv1 v1 0 .. . 0
0 .. .
⎡
Σev
... ..
...
Σe1 v1 ⎢ .. =⎣ . Σem v1
. 0
0 .. . 0 Σvn vn
⎤ . . . Σe1 vn ⎥ .. .. ⎦ . . . . . Σem vn
⎤ ⎥ ⎥ ⎥. ⎥ ⎦
Il precondizionatore di Jacobi del complemento di Schur Σ è una matrice diagonale a blocchi definita da ˆee 0 Σ PhJ = 0 Σvv ˆee coincide con la stessa Σee oppure è una sua opportuna approssimazione. dove Σ Esso non tiene conto in alcun modo delle interazioni tra le funzioni di base associate ˆ ee è diagonale a blocchi essendo ai lati e quelle associate ai vertici. Anche la matrice Σ
14.6 Precondizionatori nel caso di più sotto-domini
data da
⎡
ˆe1 e1 Σ
⎢ ⎢ ˆ Σee = ⎢ ⎢ ⎣
0 .. . 0
0 .. .
... ..
...
. 0
0 .. . 0 ˆ Σem em
457
⎤ ⎥ ⎥ ⎥. ⎥ ⎦
ˆe e coincide con Σe e o con una sua opportuna approssimazione. Σ k k k k Il precondizionatore PhJ può essere anche espresso in funzione degli operatori di restrizione e di prolungamento nel seguente modo +
PhJ
,−1
=
m "
ˆ −1 Rek + RT Σ −1 Rv , RTek Σ ek ek v vv
(14.74)
k=1
dove Rek e Rv sono gli operatori di restrizione sui lati e sui vertici, rispettivamente. Si può dimostrare il risultato seguente sul numero di condizionamento: esiste una costante C > 0, indipendente da h e H, tale che 2 + J −1 , H −2 1 + log . K2 (Ph ) Σ ≤ CH h Se si usasse il metodo del gradiente coniugato per risolvere il sistema di Schur (14.72) con precondizionatore PhJ , il numero di iterazioni necessarie per la convergenza (nei limiti di tolleranza stabilita) sarebbe proporzionale a H −1 . La presenza di H indica che questo precondizionatore non è scalabile. Osserviamo inoltre che la presenza del termine log(H/h) introduce un legame tra la dimensione di ciascun sotto-dominio e quella degli elementi della griglia computazionale Th . Ciò genera una propagazione dell’informazione tra i vari sotto-domini caratterizzata da una velocità finita anziché infinita. 14.6.2 Il precondizionatore di Bramble-Pasciak-Schatz Per accelerare la velocità di propagazione delle informazioni all’interno del dominio Ω, bisogna ricorrere ad un accoppiamento globale. Dopo aver partizionato Ω in sottodomini, si può considerare questa stessa decomposizione come una griglia coarse TH del dominio. In Figura 14.6, per esempio, la griglia TH è composta da 9 elementi e 4 nodi interni. Ad essa si può associare una matrice di rigidezza AH di dimensione 4 × 4 che garantisce un accoppiamento globale all’interno del dominio Ω. Possiamo inoltre introdurre un operatore di restrizione RH : Γh → ΓH , definito sui nodi delle interfacce Γh a valori sui nodi interni della griglia grossolana. Il suo trasposto RTH è sempre l’operatore di estensione. La matrice PhBP S , la cui inversa è definita da (PhBP S )−1 =
m " k=1
ˆ −1 Re + RT A−1 RH , RTek Σ ek ek H H k
(14.75)
458
14 Il metodo di decomposizione dei domini
è il cosiddetto precondizionatore di Bramble-Pasciak-Schatz. A differenza di quello di Jacobi (14.74), nel secondo addendo non compare più una matrice legata ai vertici (che non fornisce alcun accoppiamento interno, dal momento che ciascun vertice comunica soltanto con se stesso rendendo Σvv diagonale), bensì la matrice di rigidezza globale AH . Valgono i seguenti risultati: 2 , + H K2 (PhBP S )−1 Σ ≤ C 1 + log in 2D, h + , H K2 (PhBP S )−1 Σ ≤ C in 3D. h Come si può osservare non compare più il fattore H −2 . Il numero di iterazioni del gradiente coniugato precondizionato con PhBP S è proporzionale a log(H/h) in 2D, a (H/h)1/2 in 3D. 14.6.3 Il precondizionatore di Neumann-Neumann Il precondizionatore di Bramble-Pasciak-Schatz introduce un miglioramento sul numero di condizionamento della matrice associata al problema di Schur precondizionato, tuttavia nel caso 3D si ha ancora una dipendenza lineare da H/h. Si consideri allora il precondizionatore, detto di Neumann-Neumann, il cui inverso è definito da M " (PhNN )−1 = RTΓi Di Σi−1 Di RΓi , (14.76) i=1
dove RΓi designa ancora l’operatore di restrizione di Γ ai valori sulle interfacce locali Γi , ⎡ ⎤ d1 ⎢ ⎥ .. Di = ⎣ ⎦ . dn è una matrice diagonale di pesi positivi dj > 0, per j = 1, . . . , n, essendo n il numero di nodi su Γi ; per la precisione, dj coincide con l’inverso del numero di sotto-domini che condividono lo stesso nodo j-esimo. Ad esempio, se si considerano i quattro nodi interni in Figura 14.6, si avrà dj = 1/4, per j = 1, . . . , 4. Per il precondizionatore (14.76) vale la seguente stima: esiste una costante C > 0, indipendente da h e H, tale che 2 + , H K2 (PhNN )−1 Σ ≤ CH −2 1 + log . h La presenza di Di e RΓi in (14.76) comporta solo l’effettuazione di prodotti tra matrici. D’altro canto, l’applicazione di Σi−1 ad un vettore noto si può ricondurre a quella delle inverse locali A−1 i . In effetti, sia q un vettore le cui componenti sono i valori nodali sull’interfaccia locale Γi ; allora T Σi−1 q = [0, I]A−1 i [0, I] q.
14.6 Precondizionatori nel caso di più sotto-domini
459
In particolare, [0, I]T q = [0, q]T , e il prodotto matrice vettore ⎡ ⎤ ⎤⎡ nodi 0 ⎢ ⎥ ⎢ .. ⎥ interni ⎢ ⎥⎢ . ⎥ ⎢ ⎥ ⎥⎢ ⎣ ⎦⎣ 0 ⎦ bordo q 0 12 3 A−1 i corrisponde alla risoluzione sul sotto-dominio Ωi del problema di Neumann ⎧ ⎨ −wi = 0 in Ωi , (14.77)
⎩ ∂wi = q ∂n
su Γi .
Algoritmo 14.3 (precondizionatore Neumann-Neumann)
Dato il vettore rΓ , calcolare zΓ = (PhN N )−1 rΓ nel modo seguente: a. Porre zΓ = 0 b. For i = 1, . . . , M Do in parallelo: c.
restringere il residuo su Ωi : ri = RΓi rΓ
d.
T zi = [0, I]A−1 i [0, ri ]
e.
Aggiungere nel residuo globale: zΓ ← RTΓi zi
f. EndFor
Anche in questo caso è richiesta una fase di startup: questa consiste semplicemente nel preparare il codice per la risoluzione del sistema lineare con matrice dei coefficienti Ai . Si osservi che, nel caso del nostro problema modello (2.13), la matrice Ai è singolare se Ωi è un dominio interno, ovvero se ∂Ωi \ ∂Ω = ∅. Una delle seguenti strategie deve essere dunque adottata: 1. calcolare la fattorizzazione LU di Ai + I, con > 0 opportunamente piccolo ed assegnato; 1 2. calcolare la fattorizzazione LU di Ai + 2 Mi , dove Mi è la matrice di massa i H cui coefficienti sono dati da ϕk ϕj dΩi ; (Mi )k,j = Ωi
3. calcolare la decomposizione ai valori singolari di Ai ; 4. utilizzare un solutore iterativo per calcolare A−1 i ri , per un certo ri . Per i nostri risultati numerici abbiamo adottato il terzo approccio. La storia di convergenza per il metodo del gradiente coniugato precondizionato con la matrice PhNN in corrispondenza della scelta h = 1/32 è riportata in Figura 14.7. In Tabella 14.2 riportiamo infine i valori del numero di condizionamento per la matrice precondizionata (PhNN )−1 Σ in corrispondenza di scelte differenti per H.
460
14 Il metodo di decomposizione dei domini Storia di convergenza con matrice P NN
0
10
−1
10
−2
residuo scalato
10
−3
10
H=1/8 −4
10
H=1/4 −5
10
H=1/2 −6
10
−7
10
0
2
4
6 8 10 Iterazioni di gradiente coniugato
12
14
16
Figura 14.7. Storia di convergenza per il metodo del gradiente coniugato precondizionato con la matrice PhN N e per h = 1/32
Osserviamo che il precondizionatore di Neumann-Neumann non è scalabile. Al fine di introdurre un meccanismo di griglia coarse, il precondizionatore definito dalla (14.76) si può modificare come segue +
PhBNN
,−1
−1 −1 −1 = (I − ΣH Σ)(PhNN )−1 (I − ΣΣH ) + ΣH
(14.78)
−1 dove si è indicato, per semplicità di notazione, ΣH = RTΓ A−1 H RΓ . BNN La matrice Ph costituisce il cosiddetto precondizionatore di Neumann-Neumann con bilanciamento. Dato un residuo r(k) = χΓ −Σλ(k) , il vettore z(k) = (PhBNN )−1 r(k) si calcola come −1 (k,3/4) z(k) = z(k,1/4) + (PhNN )−1 z(k,1/2) + ΣH z ,
Tabella 14.2. Numero di condizionamento per la matrice precondizionata (PhN N )−1 Σ K2 ((PhN N )−1 Σ) H = 1/2 H = 1/4 H = 1/8 H = 1/16 h = 1/16 2.55 15.20 47.60 h = 1/32 3.45 20.67 76.46 194.65 h = 1/64 4.53 26.25 105.38 316.54 h = 1/128 5.79 31.95 134.02 438.02
14.6 Precondizionatori nel caso di più sotto-domini
461
dove si è definito z(k,1/4) = ΣH r(k), poi z(k,1/2) = r(k) − Σz(k,1/4) e infine z(k,3/4) = −Σ(PhNN )−1 z(k,1/2). Sia in 2D che in 3D si ha che esiste una costante C > 0, indipendente da h e H, tale che 2 + BNN −1 , H K2 (Ph ) Σ ≤ C 1 + log . h Si è dunque migliorato il numero di condizionamento rispetto al precondizionatore di Bramble-Pasciak-Schatz per il quale, nel caso 3D, si aveva ancora una dipendenza da H. Il precondizionatore di Neumann-Neumann con bilanciamento garantisce la scalabilità ottimale a meno di una dipendenza logaritmica da H e h. Il precondizionatore di Neumann-Neumann con bilanciamento aggiunge una matrice coarse AH alle correzioni locali introdotte dal precondizionatore di NeumannNeumann. La matrice AH viene costruita utilizzando l’Algoritmo 14.4: Algoritmo 14.4 (costruzione della matrice coarse per PhBNN ) ¯0 che restituisce, a. Costruire l’operatore di restrizione R per ogni sotto-dominio, la somma pesata dei valori in tutti i nodi sul bordo di quel sotto-dominio. I pesi sono determinati dall’inverso del numero di sottodomini che contengono ogni nodo i ¯0ΣR ¯ T0 b. Costruire la matrice AH = R
Il passo a. di tale Algoritmo è computazionalmente molto economico. Al contrario il passo b. richiede molti (ad esempio, ) prodotti matrice-vettore con il complemento di Schur Σ. Poiché Σ non è costruita esplicitamente, ciò significa dover risolvere × M problemi di Dirichlet per generare la matrice AH . Osserviamo inoltre che l’operatore di restrizione introdotto al passo a. definisce uno spazio coarse le cui funzioni di base sono costanti a tratti su ciascun Γi . Per questo motivo, il precondizionatore di Neumann-Neumann con bilanciamento è spesso una scelta obbligata quando la griglia di discretizzazione, la decomposizione in sotto-domini, o entrambe, siano non strutturate (si veda, ad esempio, la Figura 14.8). Tabella 14.3. Numero di condizionamento di (PhBN N )−1 Σ al variare di H K2 ((PhBN N )−1 Σ) H = 1/2 H = 1/4 H = 1/8 H = 1/16 h = 1/16 1.67 1.48 1.27 h = 1/32 2.17 2.03 1.47 1.29 h = 1/64 2.78 2.76 2.08 1.55 h = 1/128 3.51 3.67 2.81 2.07
Confrontando i risultati numerici ottenuti per il complemento di Schur e il precondizionatore di Neumann-Neumann, con e senza bilanciamento, possiamo trarre le seguenti conclusioni:
462
14 Il metodo di decomposizione dei domini Plotmesh 1 0.8
0.6
0.6
0.4
0.4
0.2
0.2 Y − Axis
Y − Axis
Plotmesh 1
0.8
0
0
−0.2
−0.2
−0.4
−0.4
−0.6
−0.6 −0.8
−0.8
−1
−1 −1
−0.5
0 X − Axis
0.5
1
−1
−0.5
0 X − Axis
0.5
1
Figura 14.8. Esempio di decomposizione non strutturata in 8 sotto-domini, per una griglia strutturata (a sinistra) e non strutturata (a destra)
• anche se meglio condizionata rispetto ad A, Σ è mal-condizionata, e perciò è comunque necessario ricorrere ad un opportuno precondizionatore; • il precondizionatore di Neumann-Neumann può essere applicato in modo soddisfacente solo quando si usi un numero relativamente piccolo di sotto-domini; • il precondizionatore di Neumann-Neumann con bilanciamento è quasi ottimale e scalabile e dunque consigliabile nel caso in cui il numero dei sotto-domini sia grande.
14.7 I metodi iterativi di Schwarz Il metodo di Schwarz, nella forma originaria descritta in Sez. 14.2.1, è stato proposto da H. Schwarz [Sch69] come schema iterativo per dimostrare l’esistenza della soluzione delle equazioni ellittiche definite su domini la cui forma non si presta ad un uso diretto della serie di Fourier. Due esempi elementari sono riportati in Figura 14.9. Sebbene venga ancora utilizzato come metodo di soluzione per tali equazioni su domini di forma generica, oggi esso è più comunemente impiegato come precondizionatore di tipo DD per schemi iterativi quali il gradiente coniugato o i metodi di Krylov nella risoluzione dei sistemi algebrici derivanti dalla discretizzazione di problemi differenziali alle derivate parziali, quale ad esempio (14.2). Riprendiamo per il momento l’idea generale già esposta nella Sez. 14.2.1. Una caratteristica distintiva del metodo di Schwarz è che esso si basa su di una suddivisione del dominio computazionale in sotto-domini con sovrapposizione. Indichiamo ancora con {Ωm } tali sotto-domini. Per incominciare, nella prossima sezione mostreremo come formulare il metodo di Schwarz direttamente come metodo iterativo per la risoluzione del sistema algebrico associato alla discretizzazione del problema (14.2) con il metodo degli elementi finiti.
14.7 I metodi iterativi di Schwarz Γ12
Ω1
Ω1
Γ12
463
Ω2
Ω2
Figura 14.9. Esempio di due domini a cui si può applicare il metodo di Schwarz nella sua forma classica
14.7.1 Forma algebrica dei metodi di Schwarz per una discretizzazione ad elementi finiti Si consideri la solita triangolazione Th di un dominio Ω in elementi finiti. Supponiamo inoltre che il dominio Ω sia decomposto in due sotto-domini, Ω1 ed Ω2 , con sovrapposizione come mostrato in Figura 14.1 (a sinistra). Indichiamo con Nh il numero totale dei nodi della triangolazione interni a Ω, e, come fatto in Sez. 14.4, con N1 e N2 , rispettivamente, i nodi interni a Ω1 e Ω2 . Osserviamo che Nh ≤ N1 +N2 e che l’uguaglianza vale soltanto se la sovrapposizione si riduce ad una singola striscia di elementi. In effetti, indicato con I = {1, . . . , Nh } l’insieme degli indici dei nodi di Ω, con I1 e I2 quelli associati, rispettivamente, ad Ω1 ed Ω2 , si ha che I = I1 ∪ I2 , mentre I1 ∩ I2 = ∅ a meno che la sovrapposizione non si riduca ad una singola fascia di elementi. Ordiniamo i nodi nei tre blocchi in modo tale che il primo blocco corrisponda ai nodi di Ω1 \ Ω2 , il secondo a Ω1 ∩ Ω2 , e il terzo a Ω2 \ Ω1 . La matrice di rigidezza A dell’approssimazione ad elementi finiti contiene due sotto-matrici, A1 ed A2 , che corrispondono, rispettivamente, alle matrici di rigidezza locali associate ai problemi di Dirichlet in Ω1 e Ω2 (si veda la Figura 14.10). Esse sono legate ad A dalle seguenti N1 A1 Nh
A A2 N2
Figura 14.10. Le sotto-matrici A1 ed A2 della matrice di rigidezza A
464
14 Il metodo di decomposizione dei domini
espressioni A1 = R1 ART1 ∈ RN1 ×N1
e
A2 = R2 ART2 ∈ RN2 ×N2 ,
essendo Ri ed RTi , con i = 1, 2, operatori di restrizione rispettivamente, la cui rappresentazione matriciale è data da ⎤ ⎡ ⎡ 1 ... 0 ⎢ .. . . ⎢ . ⎥ 0 ⎢ . ⎢ . .. ⎥ ⎥ ⎢ ⎢ ⎥ ⎢ ⎢ RT1 = ⎢ 0 . . . 1 ⎥ ∈ RNh ×N1 , RT2 = ⎢ 1 . . . ⎥ ⎢ ⎢ ⎥ ⎢ ⎢ .. . . ⎦ ⎣ ⎣ . . 0 0 ...
(14.79)
e di prolungamento, ⎤
0 .. .
⎥ ⎥ ⎥ ⎥ ⎥ ∈ RNh ×N2 . ⎥ ⎥ ⎦
1
(14.80) Se v è un vettore di RNh , allora R1 v è un vettore di RN1 le cui componenti coincidono con le prime N1 componenti di v. Se v è invece un vettore di RN1 , allora RT1 v è un vettore di dimensione Nh le cui ultime Nh − N1 componenti sono nulle. Sfruttando tali definizioni, possiamo rappresentare un’iterazione del metodo di Schwarz moltiplicativo applicato al sistema Au = f nel seguente modo: (k) u(k+1/2) = u(k) + RT1 A−1 ), 1 R1 (f − Au
(14.81)
(k+1/2) u(k+1) = u(k+1/2) + RT2 A−1 ). 2 R2 (f − Au
(14.82)
Equivalentemente, posto Pi = RTi A−1 i Ri A , i = 1, 2,
(14.83)
abbiamo u(k+1/2) = (I − P1 )u(k) + P1 u, u(k+1) = (I − P2 )u(k+1/2) + P2 u = (I − P2 )(I − P1 )u(k) + (P1 + P2 − P2 P1 )u. In modo analogo, un’iterazione del metodo di Schwarz additivo diventa T −1 (k) ), u(k+1) = u(k) + (RT1 A−1 1 R1 + R2 A2 R2 )(f − Au
(14.84)
ovvero u(k+1) = (I − P1 − P2 )u(k) + (P1 + P2 )u.
(14.85)
Se ora introduciamo le matrici −1 , i = 1, 2, Qi = RTi A−1 i R i = Pi A
allora dalle (14.81) e (14.82) deriviamo che u(k+1)
=
u(k) + Q1 (f − Au(k)) + Q2 [f − A(u(k) + Q1 (f − Au(k)))]
=
u(k) + (Q1 + Q2 − Q2 AQ1 )(f − Au(k))
14.7 I metodi iterativi di Schwarz
465
per il metodo di Schwarz moltiplicativo, mentre, per il caso additivo, ricaviamo dalla (14.84) che u(k+1) = u(k) + (Q1 + Q2 )(f − Au(k)). (14.86) Quest’ultima formula può essere facilmente estesa al caso di una decomposizione di Ω in M ≥ 2 sotto-domini {Ωi } con sovrapposizione (si veda per un esempio la Figura 14.11). In tal caso si ha u(k+1) = u(k) +
M "
Qi (f − Au(k)).
(14.87)
i=1
14.7.2 Il metodo di Schwarz come precondizionatore Indicato con Pas =
M "
Qi
−1
,
(14.88)
i=1
segue dalla (14.87) che un’iterazione del metodo di Schwarz additivo corrisponde ad un’iterazione dello schema di Richardson precondizionato applicato alla risoluzione del sistema lineare Au = f . Per questo motivo, la matrice Pas è detta precondizionatore di Schwarz additivo. Analogamente, se introduciamo la matrice precondizionata −1 Qa = Pas A=
M "
Pi ,
i=1
un’iterazione del metodo di Schwarz additivo corrisponde ad un’iterazione dello −1 schema di Richardson applicato al sistema Qa u = ga , con ga = Pas f. Lemma 14.3 Le matrici Pi definite in (14.83) sono simmetriche e non negative rispetto al prodotto scalare indotto da A , (w, v)A = (Aw, v)
∀w, v ∈ RNh .
Dimostrazione. Abbiamo, per i = 1, 2, (Pi w, v)A
T −1 = (APi w, v) = (RTi A−1 i Ri Aw, Av) = (Aw, Ri Ai Ri Av)
= (w, Pi v)A ,
∀v, w ∈ RNh .
Inoltre, ∀v ∈ RNh , −1 (Pi v, v)A = (APi v, v) = (RTi A−1 i Ri Av, Av) = (Ai Ri Av, Ri Av) ≥ 0.
466
14 Il metodo di decomposizione dei domini
Lemma 14.4 La matrice precondizionata Qa del metodo di Schwarz additivo è simmetrica e definita positiva rispetto al prodotto scalare indotto da A.
Dimostrazione. Dimostriamo dapprima la simmetria: per ogni u, v ∈ RNh , in virtù della simmetria di A e Pi , otteniamo " (Pi u, Av) (Qa u, v)A = (AQa u, v) = (Qa u, Av) = =
"
(Pi u, v)A =
i
"
i
(u, Pi v)A = (u, Qav)A .
i
Per quel che riguarda la positività, scegliendo nelle precedenti identità u = v, otteniamo " " " (Qa v, v)A = (Pi v, v)A = (RTi A−1 R Av, Av) = (A−1 i i i qi , qi ) ≥ 0 i
i
i
con qi = Ri Av. Segue che (Qa v, v)A = 0 se e solo se qi = 0, per ogni i, ovvero se e solo se Av = 0; poiché A è definita positiva, ciò si verifica se e solo se v = 0. Si può dunque ottenere un metodo iterativo più efficiente per risolvere il sistema lineare Au = f utilizzando il metodo del gradiente coniugato (anzichè quello di Richardson) precondizionato con il precondizionatore di Schwarz additivo Pas . Tale precondizionatore non è tuttavia scalabile poiché il numero di condizionamento della matrice precondizionata Qa cresce al ridursi della misura dei sotto-domini. Infatti si ha 1 −1 K2 (Pas , (14.89) A) ≤ C δH essendo C una costante indipendente da h, H e δ, ed essendo, come al solito, H = maxi=1,...,M {diam(Ωi )}, mentre δ esprime una misura caratteristica dell’ampiezza della sovrapposizione fra sottodomini (come vedremo oltre). Ciò è dovuto al fatto che lo scambio di informazione avviene soltanto tra sotto-domini vicini, in quanto l’applicazione di (Pas )−1 coinvolge soltanto risolutori locali. Tale limite può essere superato introducendo anche in questo contesto un problema globale coarse definito sull’intero dominio Ω e in grado di garantire una comunicazione globale tra tutti i sotto-domini. Questa correzione ci porterà a considerare nella Sez. 14.7.3 una strategia generale di tipo multi-livello. Vediamo ora alcuni aspetti algoritmici. Introduciamo M sotto-domini {Ωi }M i=1 tali che ∪M i=1 Ω i = Ω, e supponiamo che gli Ωi condividano una sovrapposizione di ampiezza almeno pari a δ = ξh, con ξ ∈ N. In particolare, ξ = 1 corrisponde alla sovrapposizione minimale, cioè al caso in cui essa si riduca ad una sola striscia di elementi. Allo scopo può essere usato il seguente algoritmo.
14.7 I metodi iterativi di Schwarz ˆ1 Ω
ˆ4 Ω
ˆ7 Ω
ˆ2 Ω
ˆ5 Ω
ˆ8 Ω
ˆ3 Ω
ˆ6 Ω
ˆ9 Ω
467
Ω5
ˆi Figura 14.11. Partizione di una regione rettangolare Ω in 9 regioni senza sovrapposizione Ω (sulla sinistra), e un esempio di sotto-dominio esteso Ω5 (sulla destra)
Algoritmo 14.5 (definizione di sotto-domini con sovrapposizione) a. Costruire una triangolazione Th del dominio computazionale Ω ˆi }M b. Suddividere la griglia Th in M sotto-domini {Ω i=1 ˆ senza sovrapposizione tali che ∪M i=1 Ω i = Ω ˆ i aggiungendo tutte le c. Estendere ogni sotto-dominio Ω ˆ i . Sono strisce di elementi di Ω entro una certa distanza δ da Ω così individuati i domini Ωi
Riferiamo alla Figura 14.11 per una rappresentazione di una regione bidimensioˆ i senza sovrapposizione (sulla sinistra) ed un nale rettangolare suddivisa in 9 regioni Ω esempio di sotto-dominio esteso (sulla destra). Per applicare il precondizionatore di Schwarz (14.88), procediamo come indicato nell’Algoritmo 14.5. Ricordiamo che Ni indica il numero dei nodi contenuti in Ωi , RTi e Ri sono le matrici di prolungamento e restrizione, rispettivamente, introdotte in (14.80) e Ai le matrici locali introdotte in (14.79). Riportiamo in Figura 14.12 un esempio di pattern di sparsità per la matrice Ri . 0 5 10 15 20 25 0
10
20
30
40 nz = 27
50
60
70
80
Figura 14.12. Esempio di pattern di sparsità della matrice Ri per una partizione del dominio in 4 sotto-domini
468
14 Il metodo di decomposizione dei domini
Algoritmo 14.6 (fase di startup per applicare Pas ) a. Su ogni sotto-dominio Ωi , costruire Ri ed RTi b. Costruire la matrice A corrispondente alla discretizzazione ad elementi finiti sulla griglia Th c. Su ogni Ωi , costruire le sotto-matrici locali Ai = Ri ARTi d. Su ogni Ωi , predisporre il codice alla risoluzione di un sistema lineare con matrice associata Ai . Per esempio, si può calcolare la fattorizzazione LU (esatta o incompleta) di Ai
Alcuni commenti generali sull’Algoritmo 14.5 e l’Algoritmo 14.6 sono d’obbligo: • i passi a. e b. dell’algoritmo 14.5 possono essere effettuati in ordine inverso, ovvero si può prima suddividere il dominio computazionale (utilizzando, ad esempio, informazioni tratte dal problema fisico in esame), e poi triangolare; • a seconda di quella che è la struttura generale del codice, si potrebbe pensare di unire i passi b. e c. dell’algoritmo 14.6 al fine di ottimizzare sia le risorse di memoria che i tempi di CPU; • nel passo d. dell’algoritmo 14.6, la fattorizzazione esatta potrebbe essere rimpiazzata da una fattorizzazione incompleta. In altre situazioni si potrebbero scambiare i passi b. e c., ovvero costruire prima le matrici locali Ai (ad opera dei singoli processori) e poi assemblarle per ottenere la matrice globale A. In effetti, il fattore cruciale per un uso efficiente di un sistema a processori paralleli o di una rete di computer è quello di mantenere la località dei dati, in quanto nella maggior parte delle architetture di calcolo parallelo il tempo necessario a muovere i dati è di gran lunga maggiore del tempo impiegato a svolgere i calcoli. Altri codici (ad es. AztecOO, Trilinos, IFPACK) partono invece dalla matrice globale distribuita per righe e ricavano poi le Ai senza prodotti matrice-matrice ma semplicemente usando gli indici di colonna. In MATLAB sembra tuttavia più sensato costruire prima A, poi le Ri , e poi calcolare le Ri ARTi . In Tabella 14.4 analizziamo il caso di una sovrapposizione minimale (δ = h) considerando diversi valori per il numero M di sotto-domini. Per quel che riguarda la decomposizione di domini, consideriamo dei quadrati Ωi , con sovrapposizione, ciascuno di area H 2 . Si noti che la stima teorica (14.89) è qui verificata sperimentalmente.
−1 Tabella 14.4. Numero di condizionamento di Pas A al variare di h e H −1 K2 (Pas A) H = 1/2 H = 1/4 h = 1/16 15.95 27.09 h = 1/32 31.69 54.52 h = 1/64 63.98 109.22 h = 1/128 127.99 218.48
H = 1/8 H = 1/16 52.08 104.85 207.67 210.07 416.09 420.04 832.57
14.7 I metodi iterativi di Schwarz
469
14.7.3 Metodi di Schwarz a due livelli Come anticipato in Sez. 14.7.2, il limite principale del metodo di Schwarz è di propagare l’informazione soltanto tra i sotto-domini adiacenti. Per ovviarvi, come già precedentemente fatto per il metodo di Neumann-Neumann, si può introdurre un termine di scambio di informazioni globale all’interno del dominio Ω. L’idea è sempre quella di considerare i sotto-domini Ωi come dei macro-elementi su Ω costituenti una griglia coarse TH a cui si può associare la matrice AH . Si può dunque introdurre l’operatore QH associato alla soluzione ad elementi finiti globale QH = RTH A−1 H RH , dove RH denota l’operatore di restrizione sulla griglia coarse. Posto per convenienza Q0 = QH , possiamo allora definire una nuova matrice di precondizionamento Pcas t.c. M " −1 = Qi (14.90) Pcas i=0
per la quale è possibile dimostrare il risultato seguente: esiste una costante C > 0, indipendente da h ed H, tale che −1 A) ≤ C K2 (Pcas
H . δ
Se il ricoprimento è “generoso”, ovvero se δ è una frazione di H, il precondizionatore Pcas è scalabile, pertanto il metodo iterativo del gradiente coniugato per la risoluzione del sistema degli elementi finiti, precondizionato con Pcas converge con una velocità indipendente da h e dal numero di sotto-domini. Inoltre, per via della struttura additiva (14.90), il passo di precondizionamento è completamente parallelizzabile in quanto comporta la risoluzione di M sistemi indipendenti, uno per ogni matrice locale Ai . L’uso di Pcas richiede le stesse operazioni necessarie per l’utilizzo di Pas , più quelle previste nel seguente algoritmo. Algoritmo 14.7 (fase di startup per l’uso di Pcas ) a. Eseguire l’Algoritmo 14.6 b. Definire una triangolazione grossolana (coarse) TH i cui elementi sono dell’ordine di H, e porre n0 = dim(V0 ). Supponiamo che Th sia annidata in TH (si veda, per esempio, la Figura 14.13) a destra c. Costruire la matrice di restrizione R0 ∈ Rn0 ×Nh . I suoi elementi sono dati da R0 (i, j) = Φi (xj ), dove Φi è la funzione di base associata al nodo i della griglia coarse mentre con xj indichiamo le coordinate del nodo j sulla griglia fine
470
14 Il metodo di decomposizione dei domini
d. Costruire la matrice coarse AH . Ciò può esser fatto discretizzando il problema variazionale originale su TH , ovvero calcolando AH come d ∂Φi ∂Φj AH (i, j) = a(Φj , Φi ) = , ∂x ∂x Ω =1
oppure come AH = RH ARTH .
Figura 14.13. A sinistra, esempio di griglia coarse per un dominio 2D basata su una mesh strutturata. I triangoli della griglia fine sono in linea sottile mentre le linee spesse identificano i triangoli associati alla mesh coarse A destra, esempio di griglia coarse per un dominio 2D basata su una mesh non strutturata. I triangoli della griglia fine sono in linea sottile mentre le linee spesse identificano i triangoli associati alla mesh coarse
Se il dominio computazionale ha una forma “semplice” (come nel caso del problema che stiamo considerando), viene solitamente costruita prima la griglia grossolana TH e poi, raffinandola un certo numero di volte, si genera la griglia fine Th . In presenza invece di domini caratterizzati da una forma complessa o di griglie fini Th non uniformi, la generazione della griglia coarse costituisce l’aspetto più problematico degli algoritmi a due livelli. Una possibilità è di costruire prima una griglia fine Th e poi, deraffinandola opportunamente, si genera la griglia grossolana TH . Operativamente ciò significa che i nodi di TH sono un sotto-insieme dei nodi di Th . Gli elementi costituenti TH verranno quindi costruiti a partire da tale insieme di nodi, operazione questa abbastanza semplice nel caso bi-dimensionale, meno banale nel caso 3D. Come alternativa si potrebbero generare le due griglie Th e TH indipendentemente una dall’altra e poi costruire gli operatori RH ed RTH (si osservi che, in tal caso, le due griglie potrebbero non essere annidate). L’implementazione finale di Pcas può dunque essere realizzata nel seguente modo: Algoritmo 14.8 (applicazione di Pcas )
−1 Dato un vettore r, calcolare z = Pcas r nel modo seguente:
a. Porre z = 0 b. For i = 1, . . . , M Do in parallelo:
14.7 I metodi iterativi di Schwarz
471
−1 A al variare di h e H Tabella 14.5. Numero di condizionamento di Pcas −1 K2 (Pcas A) H = 1/4 H = 1/8 H = 1/16 H = 1/32 h = 1/32 7.03 4.94 h = 1/64 12.73 7.59 4.98 h = 1/128 23.62 13.17 7.66 4.99 h = 1/256 45.33 24.34 13.28 -
c.
restringere il residuo su Ωi: ri = Ri r
d.
calcolare zi : Ai zi = ri
e.
sommare nel residuo globale: z ← RTi zi
f. EndFor g. Calcolare il contributo coarse grid zH : AH zH = RH r h. Sommare nel residuo globale: z ← RTH zH −1 In Tabella 14.5 riportiamo il numero di condizionamento di Pcas A. La sovrapposizione è identificata da δ = h. Osserviamo che il numero di condizionamento è pressoché costante per valori fissati del rapporto H/δ. È possibile definire lo spazio coarse in modo alternativo a quanto fatto fino ad ora. Supponiamo che gli elementi identificanti l’operatore di restrizione siano dati da 1 se il nodo j ∈ Ωi , ˆ H (i, j) = R 0 altrimenti.
ˆ H AR ˆ T . Questa procedura è detta di aggregazione, poiché gli elePoniamo AˆH = R H ˆ menti di AH sono costruiti semplicemente sommando gli elementi di A. Tale procedimento non richiede l’introduzione di una griglia coarse. Il precondizionatore risultante è dato da −1 ˆ TH Aˆ−1 R ˆ H + Pas . Paggre =R H Si può dimostrare che −1 K2 (Paggre A)
H ≤C 1+ δ
.
Riportiamo in Tabella 14.6 alcuni risultati numerici associati a tale precondizionatore. −1 Tabella 14.6. Numero di condizionamento di Paggre A al variare di h e H −1 Paggre A H = 1/4 H = 1/8 H = 1/16 h = 1/16 13.37 8.87 h = 1/32 26.93 17.71 9.82 h = 1/64 54.33 35.21 19.70 h = 1/128 109.39 70.22 39.07
472
14 Il metodo di decomposizione dei domini
In base ai risultati presentati e alle proprietà teoriche enunciate, possiamo concludere che: – per decomposizioni in un ridotto numero di sotto-domini, il precondizionatore additivo di Schwarz Pas fornisce risultati soddisfacenti; – quando il numero M di sotto-domini è grande, è fondamentale utilizzare metodi a due livelli basati sull’uso di una griglia coarse, oppure, in alternativa, tecniche di aggregazione nel caso in cui la costruzione di quest’ultima risulti difficile o computazionalmente onerosa.
14.8 Condizioni all’interfaccia per altri problemi differenziali Grazie al Teorema 14.1 in Sez. 14.2.2 abbiamo visto come un problema ai limiti ellittico (14.2) si possa riformulare nella sua versione DD grazie alle condizioni di interfaccia (14.10) e (14.11). Tale riformulazione è peraltro alla base dei metodi DD che fanno uso di partizioni in sotto-domini senza sovrapposizione. Si pensi ai metodi iterativi di Dirichlet-Neumann, Neumann-Neumann, Robin-Robin e, più in generale, a tutti i metodi che si esprimono attraverso algoritmi iterativi precondizionati dell’equazione di Steklov-Poincaré (14.27) e, nel discreto, del sistema del complemento di Schur (14.50). Introduciamo in questa sezione la formulazione DD con relative condizioni di interfaccia di alcuni problemi interessanti per le applicazioni. La Tabella 14.7 riassume le condizioni da imporsi sull’interfaccia Γ per alcuni tra i più diffusi problemi differenziali. Per maggiori dettagli, analisi e generalizzazioni rinviamo a [QV99]. Qui ci limitiamo a fornire qualche spiegazione supplementare riguardo ai problemi di trasporto e di Stokes. Problemi di trasporto. Consideriamo il problema Lu = ∇ · (bu) + a0 u = f
in Ω,
(14.91)
completato su ∂Ω da condizioni al bordo opportune. Introduciamo una partizione dell’interfaccia Γ (si veda la Figura 14.14): Γ = Γin ∪ Γout , dove Γin = {x ∈ Γ | b(x) · n(x) > 0 } e Γout = Γ \ Γin . Esempio 14.4 Il metodo di Dirichlet-Neumann per il problema in esame si potrebbe generaliz(0) (0) zare come segue: assegnate due funzioni u1 , u2 su Γ , ∀k ≥ 0: ⎧ ⎨ Lu(k+1) =f in Ω1 , 1 ⎩ (b · n)u(k+1) = (b · n)u(k) 1 2
su Γout ,
⎧ ⎨ Lu(k+1) =f 2
in Ω2 ,
⎩ (b · n)u(k+1) = θ(b · n)u(k) + (1 − θ)(b · n)u(k) 2 1 2
su Γin .
14.8 Condizioni all’interfaccia per altri problemi differenziali
473
Ω1
Ω
n
Γin
Γ Γout Ω2
Figura 14.14. Decomposizione del dominio e dell’interfaccia per il problema di trasporto (14.91)
Il problema di Stokes. Ricordiamo che per il problema di Stokes (10.11) ci sono due incognite: la velocità e la pressione del fluido. Tuttavia all’interfaccia si impone la continuità della velocità e non quella della pressione, essendo quest’ultima una funzione “solo” di L2 . Sull’interfaccia Γ va invece imposta in modo debole la continuità del tensore di Cauchy ∂u ν − pn. ∂n Esempio 14.5 Se si usa un metodo di tipo Dirichlet-Neumann si è ricondotti alla risoluzione dei due seguenti problemi (per abbreviare indichiamo con S l’operatore di Stokes): ⎧ (k+1) (k+1) ⎪ S(u2 , p2 )=f in Ω2 , ⎪ ⎪ ⎪ ⎪ ⎨ (k+1) (k) ∂u ∂u (k+1) (k) (14.92) − p2 = ν 1 − p1 su Γ, ν 2 ⎪ ∂n ∂n ⎪ ⎪ ⎪ ⎪ ⎩ (k+1) =0 su ∂Ω2 \ Γ, u2 ⎧ (k+1) (k+1) ⎪ S(u1 , p1 )=f in Ω1 , ⎪ ⎪ ⎨ (k+1) (k+1) (k) (14.93) = θu2 + (1 − θ)u1 su Γ, u1 ⎪ ⎪ ⎪ ⎩ (k+1) u1 =0 su ∂Ω1 \ Γ. Osserviamo che, se si considera come condizione al bordo per la velocità u = 0, la pressione p non è univocamente determinata, ovvero è definita a meno di una costante additiva. Bisogna dunque fissare tale costante, imponendo, ad esempio, che Ω p = 0. Per rispettare tale vincolo procediamo come segue. Quando si risolve il problema di Neumann (k+1) (k+1) (14.92) sul sotto-dominio Ω2, la velocità u2 e la pressione p2 sono determinate univocamente. Successivamente si risolve il problema di Dirichlet (14.93) su Ω1 , ma, poiché la pressione è definita a meno di una costante additiva, si deve aggiungere la condizione (k+1) (k+1) p1 dΩ1 = − p2 dΩ2 . Ω1
(k) successioni {u1 },
Ω2
(k)
(k)
(k)
{u2 }, p1 e p2 convergono, la condizione Ora è evidente che quando le sulla media nulla per la pressione è automaticamente verificata.
474
14 Il metodo di decomposizione dei domini
Esempio 14.6 Se si usa il metodo iterativo di Schwarz per il problema di Stokes, ad ogni passo si devono risolvere i seguenti problemi (consideriamo, per semplicità, la suddivisione con sovrapposizione di Figura 14.1, a sinistra): ⎧ (k+1) (k+1) ⎪ S(u1 , p1 ) = f in Ω1 , ⎪ ⎪ ⎨ (k+1) (k) (14.94) = u2 su Γ1 , u1 ⎪ ⎪ ⎪ ⎩ (k+1) =0 su ∂Ω1 \ Γ1 , u1 ⎧ (k+1) (k+1) ⎪ S(u2 , p2 ) = f in Ω2 , ⎪ ⎪ ⎨ (k+1) (k+1) (14.95) = u1 su Γ2 , u2 ⎪ ⎪ ⎪ ⎩ (k+1) =0 su ∂Ω2 \ Γ2 . u2 Nessuna condizione di continuità è ora richiesta per la pressione. La velocità del fluido deve avere divergenza nulla in Ω. Quando si risolve (14.94), si ha (k+1) divu1 = 0 in Ω1 e, grazie alla formula di Green, ne segue che (k+1) u1 · n dγ = 0. ∂Ω1
(k)
Questa relazione ne impone implicitamente una per u2 in (14.94)2 ; infatti (k+1) (k+1) (k) u1 · n dγ = u1 · n dγ = u2 · n dγ. 0= ∂Ω1
Γ1
(14.96)
Γ1
(k)
Alla prima iterazione si può scegliere u2 in modo tale che la condizione di compatibilità (14.96) sia soddisfatta, ma successivamente si perde del tutto il controllo su tale quantità. Inoltre, per lo stesso motivo, la risoluzione di (14.95) forza la condizione di compatibilità (k+1) u1 · n dγ = 0. (14.97) Γ2
Fortunatamente, il metodo di Schwarz garantisce automaticamente tale condizione. Sia infatti (k+1) (k+1) Γ12 = Ω1 ∩ Ω2 ; ora in Γ12 si ha divu1 = 0, ma su Γ12 \ (Γ1 ∪ Γ2 ) u1 è nulla in virtù delle condizioni al bordo. Allora ne segue che (k+1) (k+1) (k+1) 0= u1 · n dγ = u1 · n dγ + u1 · n dγ. ∂Γ12
Γ1
Γ2
Essendo nullo il primo integrale del termine di destra a causa della (14.96), anche il secondo dovrà esserlo, pertanto la (14.97) è verificata.
14.8 Condizioni all’interfaccia per altri problemi differenziali
475
Tabella 14.7. Condizioni di interfaccia per diversi tipi di operatori differenziali Operatore
Problema
Continuità (D)
Laplace
−u = f
u
Elasticità
−∇ · (σ(u)) = f
Continuità (N) ∂u ∂n
con
Diffusione-trasporto
ˆ σkj = μ(D ˆ k uj + Dj uk ) + λdivuδ kj ,
u
σ(u) · n
u spostamento della membrana nel piano − kj Dk (Akj Dj u) + div(bu) + a0 u = f
u
∂u = akj Dj u · nk ∂nL k
Trasporto Stokes (fluidi viscosi incomprimibili)
b ·nu
div(bu) + a0 u = f −divT(u, p) + (u∗ · ∇)u = f divu = 0 con Tkj =⎧ ν(Dk uj ⎪ 0 ⎪ ⎨ u∗ = u∞ ⎪ ⎪ ⎩ u
Stokes (fluidi viscosi comprimibili)
+ Dj uk ) − pδkj ,
u
T(u, p) · n
u
ˆ T(u, σ) · n
σ
(Stokes) (Oseen)
(Navier-Stokes) ˆ αu − divT(u, σ) = f ασ + divu = g
con ˆ kj = ν(Dk uj + Dj uk ), T
−βσδkj + g − 2ν divuδkj , d ρ = densità del fluido = log σ Stokes (fluidi non viscosi
αu + β∇σ = f
comprimibili)
ασ + divu = 0 1 rot rotE μ
u·n
−α2εE + iασE = f
n×E
Maxwell (regime armonico)
n×
1 rotE μ
15 Introduzione al controllo ottimale per equazioni a derivate parziali
In questo capitolo vengono presentati i concetti di base della teoria del controllo ottimale per equazioni differenziali alle derivate parziali (EDP), quindi vengono affrontati gli aspetti legati alla loro risoluzione numerica. Presenteremo dapprima l’impostazione classica basata sulla teoria sviluppata da J.L. Lions in [Lio71] e [Lio72]; particolare attenzione è dedicata a problemi retti da problemi ai limiti lineari ellittici. Indi considereremo la metodologia basata sul formalismo della Lagrangiana (si vedano ad esempio [BKR00] e [Jam88]). Mostreremo poi due diverse strategie per risolvere numericamente i problemi di controllo ottimale mediante il metodo di Galerkin-Elementi Finiti. Per approfondimenti sugli aspetti teorici del controllo ottimale presentati in questo capitolo si può fare riferimento a [Lio71], [AWB71], [ATF87], [Ago03], [BKR00], [Gun03], [Jam88]; per i richiami di analisi funzionale si veda l’Appendice A ed inoltre [Ada75], [BG87], [Bre86], [Rud91], [Sal08] e [TL58].
15.1 Definizione del problema di controllo ottimale In generale, possiamo schematizzare un problema di controllo attraverso il paradigma illustrato in Figura 15.1. Il sistema può essere espresso da un problema algebrico, differenziale alle derivate ordinarie o differenziale alle derivate parziali. La soluzione, che indicheremo genericamente con y, dipende da una variabile u che rappresenta il controllo che si può esercitare in input del sistema. Obiettivo di un problema di controllo è determinare u affinché una certa variabile in output, indicata genericamente con z (funzione di u attraverso la y), detta osservata, assuma un “valore” desiderato zd (l’osservazione). Il problema si dirà controllabile se è possibile trovare u tale che la variabile osservata z raggiunga esattamente il valore desiderato zd . Naturalmente non tutti i sistemi sono controllabili. Si pensi a titolo di esempio al semplice caso in cui il problema di stato sia un sistema algebrico della forma Ay = b, dove A è una matrice n × n non singolare assegnata e b un vettore di Rn assegnato. Supponiamo che l’osservazione sia A. Quarteroni: Modellistica numerica per problemi differenziali, 4a edizione c Springer-Verlag Italia, Milano 2008
478
15 Introduzione al controllo ottimale per equazioni a derivate parziali Input Controllo
Sistema Stato
Output Osservazione
Figura 15.1. Gli elementi essenziali di un problema di controllo
rappresentata da una componente della soluzione, diciamo la prima, e che il controllo sia una delle componenti del termine noto, diciamo l’ultima. La questione pertanto è “Determinare u ∈ R t.c. la soluzione del sistema lineare Ay = b + [0, ..., 0, u]T verifichi y1 = y1∗ ”, essendo y1∗ un valore desiderato. È evidente che tale problema non avrà soluzione, in generale. Per questa ragione spesso si preferisce sostituire il problema della controllabilità con un problema di ottimizzazione: non si pretende che la variabile da osservare z sia esattamente uguale alla variabile desiderata zd , ma che la differenza tra z e zd (in senso opportuno) sia “minima”. Dunque, controllo e ottimizzazione sono due concetti intimamente legati, come vedremo nel seguito. Come precedentemente osservato, noi ci limiteremo al caso di sistemi rappresentati da problemi alle derivate parziali di tipo ellittico. A tal fine, iniziamo con l’introdurre gli enti matematici che entrano in gioco nella teoria: • La funzione di controllo u, appartenente a uno spazio funzionale Uad , detto spazio dei controlli ammissibili, scelto opportunamente a seconda del ruolo che il controllo occupa all’interno delle equazioni (controllo sul dominio o sul bordo) e degli eventuali vincoli imposti su u. Si osservi che Uad ⊆ U, essendo U lo spazio funzionale più adeguato a descrivere il ruolo che la funzione di controllo u assume nelle equazioni. Se Uad = U il problema di controllo si dirà non vincolato; se invece Uad ⊂ U stiamo trattando un problema vincolato. • Lo stato del sistema y(u) ∈ V (un opportuno spazio funzionale), dipendente dal valore assunto dal controllo u, che soddisfa l’equazione di stato del tipo Ay(u) = f,
(15.1)
dove A : V → V è un operatore differenziale (lineare o non). Tale problema descrive il sistema fisico soggetto al controllo, da corredarsi con opportune condizioni al contorno; l’operatore A rappresenta il problema e ne definisce la tipologia. • La funzione di osservazione, indicata con z(u) a sua volta dipendente, tramite y e un opportuno operatore C, dal controllo u: z(u) = Cy(u). Tale funzione, che appartiene allo spazio delle funzioni osservate Z, va confrontata con la funzione di osservazione desiderata che indicheremo con zd e che rappresenta l’obiettivo da raggiungere. Ottimizzare il sistema (15.1) significa trovare la funzione u tale che la funzione di osservazione z(u) sia “la più vicina possibile” alla funzione desiderata zd , attraverso un processo di minimizzazione, come descriviamo nel seguito.
15.2 Un problema di controllo per sistemi lineari
479
• Definiamo un funzionale costo J(u), definito sullo spazio Uad u ∈ Uad → J(u) ∈ R
con J(u) ≥ 0.
In generale, J dipenderà da u (anche) attraverso z(u). Il problema di controllo ottimale può essere sintetizzato in uno dei due seguenti modi: i) trovare u ∈ Uad tale che J(u) = inf J(v)
∀v ∈ Uad ;
(15.2)
ii) trovare u ∈ Uad tale che valga la seguente disequazione J(u) ≤ J(v)
∀v ∈ Uad .
(15.3)
La funzione u che soddisfa (15.2) (o (15.3)) si chiama controllo ottimale (o controllo ottimo) del sistema (15.1). Prima di fornire condizioni necessarie e sufficienti a garantire l’esistenza e l’unicità della soluzione del problema di controllo, nonché osservare più in dettaglio la struttura e le proprietà delle equazioni che governano il problema, vediamo un semplice esempio in dimensione finita.
15.2 Un problema di controllo per sistemi lineari Supponiamo che A sia una matrice invertibile di dimensione n × n e B una matrice di dimensione n × q. Sia inoltre f un vettore di Rn , u il vettore di Rq che rappresenta il controllo, y = y(u) ∈ Rn il vettore che rappresenta lo stato, ed è soluzione del sistema lineare Ay = f + Bu (15.4) Il controllo u andrà scelto in modo da minimizzare il seguente funzionale J(u) = z(u) − zd 2Rm + u2N ,
(15.5)
dove zd è un vettore dato di Rm (il cosiddetto obiettivo), z(u) = Cy(u) è il vettore che rappresenta l’osservazione, ove C è una matrice data di dimensione m × n, e 1/2 uN = (N u, u)Rq è la norma N del vettore u, essendo N una matrice data di dimensione q × q simmetrica e definita positiva. Interpretando il termine u2N come energia associata al controllo, il problema è dunque quello di scegliere il controllo in modo tale che l’osservazione sia vicino all’obbiettivo e la sua energia non sia troppo grande. Osserviamo che J(u) = (CA−1 (f + Bu) − zd , CA−1 (f + Bu) − zd )Rm + (N u, u)Rq . (15.6) Si tratta dunque di una funzione quadratica di u che ha un minimo globale su Rq. Quest’ultimo è caratterizzato dalla condizione J (u)h = 0
∀ h ∈ Rq
(15.7)
480
15 Introduzione al controllo ottimale per equazioni a derivate parziali
dove J (u)h è la derivata direzionale nella direzione h calcolata nel “punto” u, ovvero J(u + th) − J(u) . t (Si veda la Definizione A.7 dell’Appendice A.) Osservando che Ay (u)h = Bh e z (u)h = Cy (u)h J (u)h = lim
t→0
per ogni u e h, dalla (15.6) troviamo J (u)h = =
2[(z (u)h, z(u) − zd )Rm + (N u, h)Rq ] 2[(CA−1 Bh, Cy(u) − zd )Rm + (N u, h)Rq ] .
(15.8) (15.9)
Introduciamo la soluzione p = p(u) ∈ Rn del sistema seguente, detto stato aggiunto del sistema di partenza (15.4): AT p(u) = C T (Cy(u) − zd ) .
(15.10)
Allora dalla (15.8) deduciamo che J (u)h = 2[(Bh, p(u))Rn + (N u, h)Rq ] ovvero che
J (u) = 2[B T p(u) + N u].
(15.11)
Poiché il minimo di J si trova in corrispondenza del suo punto u per il quale J (u) = 0, possiamo concludere che il sistema a tre campi ⎧ ⎨ Ay = f + Bu, AT p = C T (Cy − zd ), (15.12) ⎩ T B p + N u = 0, ammette un’unica soluzione (u, y, p) ∈ Rq × Rn × Rn , e u è l’unico controllo ottimale. Nella prossima sezione introdurremo degli esempi di problemi di controllo per equazioni alle derivate parziali di tipo ellittico.
15.3 Alcuni esempi di problemi di controllo ottimale per problemi ellittici Si consideri il caso in cui l’operatore ellittico A sia il Laplaciano; si può dunque definire la seguente famiglia di problemi: • Controllo distribuito. Dato il problema di stato −Δy = f + u in Ω, y=0 su Γ = ∂Ω,
(15.13)
dove Ω è un aperto in Rn , y ∈ V = H01 (Ω) è la variabile di stato, f ∈ L2 (Ω) è il termine sorgente e u ∈ Uad = L2 (Ω) è la funzione di controllo, si possono considerare due tipi di funzionali da minimizzare:
15.4 Alcuni risultati per minimi di funzionali
– sul dominio, per esempio
481
(y(u) − zd )2 dΩ;
J(u) =
(15.14)
Ω
– sul bordo, per esempio (nel caso y(u) sia sufficientemente regolare) ∂y(u) J(u) = ( − zdΓ )2 dΓ, ∂n Γ essendo n la normale uscente dal bordo del dominio. Le funzioni zd e zdΓ sono dette funzioni di osservazione. • Controllo sulla frontiera. Dato il problema di stato ⎧ −Δy = f in Ω, ⎪ ⎪ ⎪ ⎪ ⎨ y=u su ΓD , ⎪ ⎪ ⎪ ⎪ ⎩ ∂y =0 su ΓN , ∂n ◦
◦
(15.15)
1
con ΓD ∪ ΓN = ∂Ω e Γ D ∩ Γ N = ∅, con controllo u ∈ H 2 (ΓD ) definito sul bordo di Dirichlet, si possono considerare due tipi di funzionale costo: – sul dominio, come in (15.14); – sul bordo J(u) = (y(u) − zdΓN )2 dΓN . ΓN
Anche zdΓN è una funzione di osservazione.
15.4 Alcuni risultati per minimi di funzionali In questa sezione ricordiamo alcuni risultati di esistenza e unicità per minimi di funzionali, con particolare attenzione a quelli più strettamente utili alla teoria del controllo; per approfondimenti si vedano ad esempio [Lio71], [BG87], [Bre86] e [TL58]. Si consideri uno spazio di Hilbert U (dotato di prodotto scalare (·, ·)), su cui è definita una forma bilineare π del tipo u, v → π(u, v) ∀u, v ∈ U. (15.16) Si assuma che tale forma sia simmetrica, continua e coerciva. Indicheremo con w = (w, w) la norma in U indotta dal prodotto scalare. Si consideri ora un funzionale su U v → F (v) ∀v ∈ U, (15.17) che si supporrà lineare e continuo. Si consideri uno spazio di funzioni Uad contenuto in U, che diremo spazio delle funzioni ammissibili, e si consideri il funzionale costo J della forma seguente J(v) = π(v, v) − 2F (v)
∀v ∈ Uad .
(15.18)
Ricordiamo i seguenti risultati, per la cui dimostrazione rinviamo a [Lio71, Thm 1.1].
482
15 Introduzione al controllo ottimale per equazioni a derivate parziali
Teorema 15.1 Sia π(·, ·) una forma bilineare continua, coerciva e simmetrica su U. Allora esiste ed è unico u ∈ Uad tale che J(u) = inf J(v)
∀v ∈ Uad .
(15.19)
Tale elemento si chiama controllo ottimale (o controllo ottimo).
Teorema 15.2 Nelle ipotesi del teorema precedente: (i) Il controllo ottimale u ∈ Uad soddisfa la seguente disequazione variazionale π(u, v − u) ≥ F (v − u)
∀v ∈ Uad .
(15.20)
(ii) Nel caso particolare in cui Uad ≡ U (ovvero si consideri un problema di ottimizzazione non vincolata) e π(u, v) è una forma bilineare continua e coerciva (ma non necessariamente simmetrica), allora, grazie al Lemma di Lax–Milgram 2.1, u soddisfa la seguente equazione di Eulero associata a (15.19): π(u, w) = F (w) ∀w ∈ U. (15.21) (iii) Nel caso particolare in cui Uad sia un cono chiuso e convesso con vertice nell’origine 0a la soluzione u verifica π(u, v) ≥ F (v)
∀v ∈ Uad
e
π(u, u) = F (u).
(15.22)
(iv) Nel caso in cui J non sia necessariamente quadratico, ma si supponga che la funzione v → F (v) sia strettamente convessa e differenziabile e soddisfi la condizione: J(v) → ∞ con ||v|| → ∞ ∀v ∈ Uad , allora l’unico elemento u ∈ Uad che soddisfa la condizione (15.19) è caratterizzato dalla seguente disequazione variazionale J (u)[v − u] ≥ 0
∀v ∈ Uad
(15.23)
J (v)[v − u] ≥ 0
∀u ∈ Uad .
(15.24)
o, equivalentemente,
(Il simbolo J indica la derivata di Fréchet di J, si veda la Definizione A.6 dell’Appendice A.) a
Uno spazio metrico lineare W si dice cono convesso chiuso con vertice nell’origine 0 se: (1) 0 ∈ W , (2) ∀x ∈ W ⇒ kx ∈ W ∀k ≥ 0, (3) ∀x, y ∈ W ⇒ x + y ∈ W , (4) W chiuso.
15.4 Alcuni risultati per minimi di funzionali
483
Dimostrazione. Dimostriamo dapprima la (15.20). In effetti, se u è l’elemento minimizzante di (15.19), per ogni v ∈ Uad ed ogni 0 < ϑ < 1, J(u) ≤ J((1 − ϑ)u + ϑv), pertanto ϑ1 [J(u + ϑ(v − u)) − J(u)] ≥ 0. La disequazione rimane valida al limite, per ϑ → 0 (purché tale limite esista), pertanto J (u)[v − u] ≥ 0
∀v ∈ Uad .
(15.25)
Essendo J definito dalla (15.18), la (15.20) segue dalla disequazione (15.25). Vale anche il viceversa (pertanto (15.19) e (15.20) sono equivalenti). Infatti, se u soddisfa (15.20), e dunque (15.25), essendo la funzione v → J(v) convessa, per ogni 0 < ϑ < 1 si ha J(v) − J(w) ≥
1 [J((1 − ϑ)w + v) − J(w)] ϑ
∀v, w.
Passando al limite per ϑ → 0 si ottiene J(v) − J(w) ≥ J (w)[v − w]. Posto w = u si ottiene, grazie alla (15.25), che J(v) ≥ J(u), ovvero la (15.19). Per dimostrare la (15.21) basta scegliere in (15.20) v = u ± w ∈ U. Dimostriamo ora la (15.22). La prima disequazione si ottiene sostituendo v con v + u in (15.20). Ponendo ora v = 0 in (15.20) otteniamo π(u, u) ≤ F (u) che combinata con la prima delle (15.22) fornisce la seconda equazione delle (15.22). Il viceversa (che (15.22) implichi (15.20)) è evidente. Per la dimostrazione di (15.23) e (15.24) si veda [Lio71, Thm 1.4]. Osservazione 15.1 Se J(v) ∈ C 1 ∀v ∈ U, allora per ogni elemento minimizzante u ∈ U (se esiste) si ha J (u) = 0. Se inoltre valgono le ipotesi del Teorema 15.2 (punto (iv)), allora esiste almeno un elemento minimizzante u ∈ U. • Riassumendo abbiamo ottenuto che la soluzione u ∈ Uad del problema di minimizzazione soddisfa le seguenti condizioni, tra loro equivalenti: i) ii) iii) iv)
J(u) = inf J(v) J(u) ≤ J(v) J (u)[v − u] ≥ 0 J (v)[v − u] ≥ 0
∀v ∈ Uad , ∀v ∈ Uad , ∀v ∈ Uad , ∀u ∈ Uad .
Prima di concludere, consideriamo in astratto il problema di trovare u ∈ Uad soddisfacente la disequazione variazionale (15.20) (se π(·, ·) non è simmetrica questo problema non corrisponde ad un problema di calcolo delle variazioni, ovvero ad un problema di minimo).
484
15 Introduzione al controllo ottimale per equazioni a derivate parziali
Teorema 15.3 Se esiste una costante c > 0 tale che π(v1 − v2 , v1 − v2 ) ≥ cv1 − v2 2
∀v1 , v2 ∈ Uad ,
(15.26)
allora esiste un’unica funzione u ∈ Uad soddisfacente (15.20).
Per la dimostrazione si veda [Lio71, Thm 2.1].
15.5 La teoria del controllo ottimale per problemi ellittici In questa sezione riportiamo alcuni risultati di esistenza e unicità della soluzione del problema del controllo ottimale retto da equazioni alle derivate parziali di tipo lineare ellittico. Per semplicità ci limiteremo a trattare il caso di un problema di controllo distribuito (si veda ad esempio la Sez. 15.3); analoghi risultati valgono per problemi con controllo al bordo [Lio71]. Siano V e H due spazi di Hilbert, V il duale di V, H quello di H, con V denso in H. Ricordiamo che in tale caso vale la proprietà (A.10) dell’Appendice A. Siano inoltre: • a(u, v): una forma bilineare, continua su V e coerciva (ma non necessariamente simmetrica); • F (v) = V f, vV , con f ∈ V , un funzionale lineare e limitato su V. Se f ∈ H allora F (v) = V f, vV ≡ (f, v)H (il prodotto scalare su H). Nelle ipotesi precedenti il lemma di Lax–Milgram assicura che esiste una unica soluzione y ∈ V del problema ∀ψ ∈ V.
a(y, ψ) = (f, ψ)
(15.27)
Definito l’operatore A A ∈ L(V, V ) :
V Aϕ, ψV
= a(ϕ, ψ)
∀ϕ, ψ ∈ V,
il problema (15.27) diventa (in forma operatoriale) Ay = f
in V .
(15.28)
L’equazione precedente, che rappresenta un “sistema fisico” retto dall’operatore A, va completata con l’aggiunta del termine di controllo, che assumeremo come controllo distribuito. Siano U lo spazio di Hilbert delle funzioni di controllo e B un operatore appartenente allo spazio L(U, V ). Per ogni controllo u l’equazione di stato del sistema è Ay(u) = f + Bu
y ∈ V,
(15.29)
15.5 La teoria del controllo ottimale per problemi ellittici
485
o, in forma debole, y ∈ V : a(y, ϕ) = (f, ϕ) + b(u, ϕ)
∀ϕ ∈ V,
(15.30)
essendo b(·, ·) la forma bilineare associata all’operatore B, ovvero b(u, ϕ) = V Bu, ϕV
∀u ∈ U, ∀ϕ ∈ V.
(15.31)
Indichiamo con Z lo spazio di Hilbert delle funzioni di osservazione e introduciamo l’operatore C ∈ L(V, Z) e l’equazione di osservazione z(u) = Cy(u).
(15.32)
Infine definiamo il funzionale costo J(u) = J(y(u)) = Cy(u) − zd 2Z +(N u, u)U ,
(15.33)
dove N ∈ L(U, U) è una forma simmetrica definita positiva tale che (N u, u)U ≥ νu2U
∀u ∈ U,
(15.34)
con ν > 0, e zd ∈ Z è la funzione di osservazione desiderata (l’obiettivo del problema di controllo). Il problema di controllo ottimale consiste nel trovare u ∈ Uad ⊆ U tale per cui J(u) = inf J(v)
∀v ∈ Uad .
(15.35)
Osservazione 15.2 Quando si minimizza (15.33), si minimizza di fatto un bilancio tra due addendi. Il primo richiede che l’osservata z(u) sia vicina al valore desiderato zd . Il secondo penalizza l’uso di un controllo u “troppo costoso”. In termini euristici, si sta cercando di condurre z(u) verso zd con uno sforzo ridotto. Si osservi che la teoria vale anche per il caso in cui la forma N sia nulla, anche se in questo caso si dimostra solo l’esistenza del controllo ottimale, ma non la sua unicità. • Si vogliono ora applicare i risultati dei teoremi enunciati nella Sez. 15.4; a questo scopo, osservando che la mappa u → y(u) da U in V è affine, riscriviamo la (15.33) nel seguente modo J(u) = C[y(u) − y(0)] + Cy(0) − zd 2Z + (N u, u)U .
(15.36)
Definiamo ora la forma bilineare π(u, v) continua in U e il funzionale F (v) (con u, v ∈ U), rispettivamente, come: π(u, v) = (C[y(u) − y(0)], C[y(v) − y(0)])Z + (N u, v)U , F (v) = (zd − Cy(0), C[y(v) − y(0)])Z .
486
15 Introduzione al controllo ottimale per equazioni a derivate parziali
Grazie a queste definizioni si ottiene J(v) = π(v, v) − 2F (v) + ||zd − Cy(0)||2Z . Essendo ||Cy(u) − y(0)||2Z ≥ 0, grazie alla (15.34) si ottiene π(v, v) ≥ ν||v||2U
∀v ∈ U.
Abbiamo dunque ricondotto il problema alla forma vista nella Sez. 15.4: pertanto il Teorema 15.1 garantisce l’esistenza e unicità del controllo u ∈ Uad . A questo punto dobbiamo studiare la struttura delle equazioni utili alla risoluzione del problema di controllo. Essendo (grazie al Teorema 15.1) A un isomorfismo tra V e V (si veda la Definizione A.4 dell’Appendice A), abbiamo y(u) = A−1 (f + Bu), da cui y (u) · ψ = A−1 Bψ e pertanto y (u) · (v − u) = A−1 B(v − u) = y(v) − y(u). Allora, dovendo il controllo ottimale soddisfare la (15.23), dividendo per 2 la (15.23) si ottiene, grazie a (15.36) (Cy(u) − zd , C[y(v) − y(u)])Z + (N u, v − u)U ≥ 0
∀v ∈ Uad .
(15.37)
Sia ora C ∈ L(Z , V ) l’operatore aggiunto dell’operatore C ∈ L(V, Z) (si veda (3.99)) ∀y ∈ V, ∀v ∈ Z . Z Cy, vZ = V y, C vV Allora la (15.37) diventa V C
Λ(Cy(u) − zd ), y(v) − y(u)V + (N u, v − u)U ≥ 0
∀v ∈ Uad ,
dove Λ (=ΛZ ) indica qui l’isomorfismo canonico di Riesz di Z in Z (si veda la (A.5)). Usando il Teorema A.1 di rappresentazione di Riesz (si veda la Sez. A.1 dell’Appendice A) la precedente disequazione diventa (C Λ(Cy(u) − zd ), y(v) − y(u))H + (N u, v − u)U ≥ 0
∀v ∈ Uad . (15.38)
Introduciamo ora l’operatore aggiunto di A, A∗ ∈ L(V, V ) (si veda la definizione (3.101)). Esso è un isomorfismo da V in V e soddisfa l’equazione (si veda la (3.106)) a(ψ, φ) = (A∗ φ, ψ)V = (φ, Aψ)V
∀φ, ψ ∈ V.
Definiamo stato aggiunto (o variabile aggiunta) p(u) ∈ V la soluzione dell’equazione aggiunta A∗ p(u) = C Λ[Cy(u) − zd ], (15.39) con u ∈ U; definiamo inoltre l’operatore aggiunto di B, B ∈ L(V, U ) (si veda (3.99)). Osserviamo che, grazie a (15.39),
15.5 La teoria del controllo ottimale per problemi ellittici V C
487
Λ(Cy(u) − zd ), y(v) − y(u)V =
(C Λ(Cy(u) − zd ), y(v) − y(u))H = (A∗ p(u), y(v) − y(u))V = (grazie alla definizione di A∗ ) = (p(u), A(y(v) − y(u)))V = (grazie alla (15.29)) = (p(u), B(v − u))V = U B p(u), v − uU . Introducendo l’isomorfismo canonico ΛU di Riesz di U in U (si veda di nuovo la (A.5)), si ha che la (15.38) può essere scritta come (Λ−1 U B p(u) + N u, v − u)U ≥ 0
∀v ∈ Uad .
(15.40)
Nel caso in cui Uad = U (controllo non vincolato), questa condizione diventa B p(u) + ΛU N u = 0,
(15.41)
come si deduce pur di prendere in (15.40) v = u − (Λ−1 U )B p(u) + N u). Il risultato finale è riportato nel seguente teorema ([Lio71, Thm 1.4]).
Teorema 15.4 Condizione necessaria e sufficiente per l’esistenza del controllo ottimale u ∈ Uad è che valgano le seguenti equazioni e disequazioni (si vedano (15.29),(15.39),(15.40)): ⎧ y = y(u) ∈ V, Ay(u) = f + Bu, ⎪ ⎪ ⎪ ⎪ ⎨ p = p(u) ∈ V, A∗ p(u) = C Λ[Cy(u) − zd ], ⎪ ⎪ ⎪ ⎪ ⎩ u ∈ Uad , (Λ−1 ∀v ∈ Uad , U B p(u) + N u, v − u)U ≥ 0 (15.42) oppure, in forma debole: ⎧ y = y(u) ∈ V, a(y(u), ϕ) = (f, ϕ) + b(u, ϕ) ∀ϕ ∈ V, ⎪ ⎪ ⎪ ⎪ ⎨ p = p(u) ∈ V, a(ψ, p(u)) = (Cy(u) − zd , Cψ) ∀ψ ∈ V, ⎪ ⎪ ⎪ ⎪ ⎩ u ∈ Uad , (Λ−1 ∀v ∈ Uad . U B p(u) + N u, v − u)U ≥ 0 (15.43) Se la forma N è simmetrica e definita positiva, allora il controllo u è anche unico; se invece N = 0 e Uad è limitato, allora esiste almeno una soluzione ed inoltre la famiglia di controlli ottimi forma un sottoinsieme chiuso e convesso X di Uad .
488
15 Introduzione al controllo ottimale per equazioni a derivate parziali
La terza condizione di (15.42) può essere espressa nel seguente modo −1 (Λ−1 U B p(u) + N u, u)U = inf (ΛU B p(u) + N u, v)U . v∈Uad
(15.44)
La derivata del funzionale costo può essere espressa in funzione dello stato aggiunto p(u) come segue 1 J (u) = B p(u) + ΛU N u. 2
(15.45)
Osservazione 15.3 A meno del termine dipendente dalla forma N , J si ottiene dalla variabile aggiunta p tramite l’operatore B . Tale risultato sarà alla base dei metodi numerici utili al conseguimento del controllo ottimale, previa discretizzazione delle equazioni. Se Uad = U il controllo ottimo soddisfa pertanto N u = −Λ−1 U B p(u) .
(15.46) •
15.6 Alcuni esempi di problemi di controllo 15.6.1 Un problema di Dirichlet con controllo distribuito Riprendiamo l’esempio del problema di controllo distribuito (15.13) e consideriamo il seguente funzionale da minimizzare 1 1 J(v) = (y(v) − zd )2 dx + (N v, v), (15.47) 2 Ω 2 dove, ad esempio, si potrebbe prendere N = νI, ν > 0. In questo caso V = H01 (Ω), H = L2 (Ω), U = H (dunque (N v, v) = (N v, v)U ) pertanto ΛU è l’operatore identità. Inoltre, B è l’operatore identità, C è l’operatore di iniezione di V in H, Z = H e dunque Λ è l’operatore identità. Infine a(u, v) = Ω ∇u · ∇v dx. Grazie al Teorema 15.4 otteniamo ⎧ y(u) ∈ H01 (Ω) : Ay(u) = f + u in Ω, ⎪ ⎪ ⎪ ⎪ ⎪ ⎨ p(u) ∈ H01 (Ω) : A∗ p(u) = y(u) − zd in Ω, (15.48) ⎪ ⎪ ⎪ ⎪ ⎪ ⎩ u ∈ Uad : (p(u) + N u)(v − u) dx ≥ 0 ∀v ∈ Uad . Ω
Nel caso (non vincolato) in cui Uad = U (= L2 (Ω)), l’ultima disequazione implica p(u) + N u = 0, (basta prendere v = u − (p(u) + N u)).
15.6 Alcuni esempi di problemi di controllo
489
Le prime due equazioni di (15.48) forniscono allora un sistema per le variabili y e p ⎧ y = 0 su ∂Ω, ⎨ Ay + N −1 p = f in Ω, ⎩
A∗ p − y = −zd
in Ω,
p=0
su ∂Ω,
la cui soluzione fornisce il controllo ottimale: u = −N −1 p. In questo problema, se Ω è regolare, per la proprietà di regolarità ellittica sia y che p sono funzioni di H 2 (Ω). Poiché N −1 trasforma H 2 (Ω) in se stesso, anche il controllo ottimale u ∈ H 2 (Ω). Non sempre, tuttavia, il controllo ottimale è una funzione regolare. Più in generale, se Uad = U, la condizione (15.40) si riduce a Λ−1 U B p(u) + N u = 0.
Eliminando u il sistema (15.42) diventa pertanto ⎧ ⎨ Ay + BN −1 Λ−1 U B p = f, ⎩
A∗ p − C Cy = −C zd ,
e il controllo ottimale si ottiene allora risolvendo l’equazione (15.46). 15.6.2 Un problema di Neumann con controllo distribuito Consideriamo ora il problema ⎧ ⎪ Ay(u) = f + u ⎪ ⎨
in Ω, (15.49)
∂y(u) ⎪ ⎪ ⎩ =g ∂nA
su ∂Ω,
∂ è la derivata conormale associata ad A (per la ∂nA sua definizione si veda la (2.34)). Il funzionale da minimizzare è lo stesso introdotto in (15.47). In questo caso V = H 1 (Ω), H = L2 (Ω), U = H, B è l’identità, C è la mappa di iniezione di V in H, a(v, w) = V Av, wV , F (v) = fv dx + gv dγ, dove A è un operatore ellittico e
Ω
∂Ω
−1/2
con f ∈ L (Ω) e g ∈ H (∂Ω). Se Av = −Δv + βv, allora a(v, w) = ∇v · ∇w dx + βvw dx. 2
Ω
Ω
La forma variazionale del problema di stato (15.49) è y(u) ∈ H 1 (Ω) : a(y(u), v) = F (v)
∀v ∈ H 1 (Ω).
(15.50)
490
15 Introduzione al controllo ottimale per equazioni a derivate parziali
Il problema aggiunto è un problema di Neumann della forma ⎧ ⎪ A∗ p(u) = y(u) − zd in Ω, ⎪ ⎨ (15.51)
∂p(u) ⎪ ⎪ ⎩ =0 ∂nA∗
su ∂Ω.
Il controllo ottimale si ottiene risolvendo il sistema formato da (15.49), (15.51) e u ∈ Uad : (p(u) + N u)(v − u) dx ≥ 0 ∀v ∈ Uad . (15.52) Ω
15.6.3 Un problema di Neumann con controllo di frontiera Consideriamo il problema ⎧ ⎪ Ay(u) = f ⎪ ⎨
in Ω, (15.53)
∂y(u) ⎪ ⎪ =g+u ⎩ ∂nA
su ∂Ω,
con lo stesso operatore introdotto nell’esempio precedente e lo stesso funzionale costo (15.47). In questo caso, U = H −1/2 (∂Ω). Per ogni u ∈ U, Bu ∈ V è dato da V Bu, ψV = ∂Ω uψ dγ, C è la mappa di iniezione di V in H. La forma debole di (15.53) è y(u) ∈ H1 (Ω) : a(y(u), v) = fv dx + (g + u)v dγ ∀v ∈ H1 (Ω). V = H 1 (Ω),
H = L2 (Ω),
Ω
∂Ω
Il problema aggiunto è ancora dato da (15.51), mentre la disequazione del controllo ottimale è la terza di (15.42). L’interpretazione di questa disequazione non è banale. Scegliendo come prodotto scalare in U (u, v)U = (−Δ∂Ω )−1/4 u (−Δ∂Ω )−1/4 v dγ = (−Δ∂Ω )−1/2 u v dγ, ∂Ω
∂Ω
essendo −Δ∂Ω l’operatore di Laplace–Beltrami (si veda ad esempio [QV94]), si dimostra che la terza disequazione di (15.42) equivale a (p(u)|∂Ω + (−Δ∂Ω )−1/2 N u)(v − u) dγ ≥ 0 ∀v ∈ Uad ; ∂Ω
si veda [Lio71, Sect 2.4]. Nelle Tabelle 15.1 e 15.2 è riportato un riepilogo di possibili problemi di controllo ottimale di tipo Dirichlet e Neumann.
15.7 Risoluzione di problemi inversi come problemi di controllo ottimale
491
Tabella 15.1. Riepilogo di possibili problemi di controllo di tipo Dirichlet Condizioni di Dirichlet
Osservazione Distribuita ⎧ ⎨ Ay = f + u in Ω A∗ p = y − zd in Ω ⎩ y = 0, p = 0 su ∂Ω
⎧ ⎨ Ay = f + u in Ω A∗p = 0 in Ω ⎩ y = 0, p = y − zd
su ∂Ω
⎧ ⎨ Ay = f in Ω A∗ p = y − zd in Ω ⎩ y = u, p = 0 su ∂Ω
⎧ ⎨ Ay = f in Ω A∗ p = 0 in Ω ⎩ y = u, p = y − zd
su ∂Ω
Controllo Distribuito
Controllo al Bordo
Osservazione al Bordo
Tabella 15.2. Riepilogo di possibili problemi di controllo di tipo Neumann Condizioni di Neumann
Osservazione Distribuita
Osservazione al Bordo
Controllo Distribuito
⎧ Ay = f + u in Ω ⎪ ⎪ ⎪ ∗ ⎪ ⎪ ⎨ A p = y − zd in Ω ∂y = g su ∂Ω ⎪ ∂nA ⎪ ⎪ ⎪ ⎪ ⎩ ∂p = 0 su ∂Ω ∂nA∗
⎧ Ay = f + u in Ω ⎪ ⎪ ⎪ ∗ ⎪ ⎪ ⎨ A p = 0 in Ω ∂y = g su ∂Ω ⎪ ∂nA ⎪ ⎪ ⎪ ⎪ ⎩ ∂p = y − zd su ∂Ω ∂nA∗
Controllo al Bordo
⎧ Ay = f in Ω ⎪ ⎪ ⎪ ∗ ⎪ A p = y − zd in Ω ⎪ ⎨ ∂y = g + u su ∂Ω ⎪ ∂nA ⎪ ⎪ ⎪ ∂p ⎪ ⎩ = 0 su ∂Ω ∂nA∗
⎧ Ay = f in Ω ⎪ ⎪ ⎪ ∗ ⎪ ⎪ ⎨ A p = 0 in Ω ∂y = g + u su ∂Ω ⎪ ∂nA ⎪ ⎪ ⎪ ∂p ⎪ ⎩ = y − zd su ∂Ω ∂nA∗
15.7 Risoluzione di problemi inversi come problemi di controllo ottimale La teoria del controllo ottimale può essere convenientemente impiegata per la risoluzione di problemi inversi, riconducendo la formulazione di questi ultimi alle equazioni tipiche di un problema di controllo. Nel seguito vengono presentati alcuni aspetti su cui si basa questa teoria, con particolare attenzione a EDP lineari di tipo ellittico; per una trattazione più approfondita e rigorosa si rimanda a [Ago03], dove peraltro la teoria è estesa a problemi parabolici e iperbolici e a sistemi di equazioni.
492
15 Introduzione al controllo ottimale per equazioni a derivate parziali
Per individuare la categoria di problemi a cui ci si interessa si consideri di nuovo l’equazione (15.29) Ay = f + Bu con y ∈ V. Per fissare le idee con un esempio si prenda il caso particolare seguente: ⎧ y = 0 su Γ = ∂Ω, ⎨ −Δy = u in Ω, ⎩
(15.54) y = yd
su Ω,
dove y ∈ H01 (Ω), A = −Δ, B = I : L2 (Ω) → L2 (Ω). Se dato un termine sorgente u si misura y ≡ yd ∈ H01 (Ω) e si vuole ricostruire u tale per cui la precedente relazione viene soddisfatta, allora il problema si dice problema inverso; si osservi che per tale tipo di problemi è fondamentale definire le condizioni di unicità della soluzione. Si consideri il precedente problema inverso, allora una procedura conveniente sembrerebbe quella di risolvere la seguente equazione: A−1 u = yd . Tuttavia, nel caso in questione il dominio di A−1 è L2 (Ω), fatto che rende l’operatore non limitato e il problema mal-posto (si veda la sezione seguente). 15.7.1 La teoria del controllo ottimale per problemi inversi Applicando l’operatore C all’equazione di stato Ay = f,
(15.55)
si ottiene l’equazione CAy = Cf. Essa è equivalente a (15.55) purché Ker(C) = {0} e R(A) ⊂ D(C). Consideriamo il caso particolare in cui C = A∗ Definizione 15.1 Le soluzioni del problema A∗ Ay = A∗ f,
(15.56)
si dicono quasi soluzioni (o soluzioni nel senso dei minimi quadrati) dell’equazione originaria Ay = f.
Le quasi soluzioni sono tali da minimizzare il funzionale J0 (y) = ||Ay − f||2 , che in un problema di controllo rappresenta il funzionale costo, mentre, se riferito all’equazione di stato, indica il soddisfacimento dell’equazione da parte della soluzione.
15.7 Risoluzione di problemi inversi come problemi di controllo ottimale
493
Introducendo il parametro di regolarizzazione α > 0 per aver un problema ben posto e considerando l’equazione Aα yα = αyα + A∗ Ayα = A∗ f,
(15.57)
le quasi soluzioni yα corrispondono ora alla minimizzazione del funzionale: Jα (yα ) = inf Jα (φ) φ
con Jα (φ) = α||φ||2 + ||Aφ − f||2 .
La quasi soluzione yα converge alla soluzione reale y se per α → 0 ||yα − y||V → 0. L’aspetto fondamentale è costituito dal fatto che la (15.57) rappresenta un problema ben posto. Risultati analoghi si ottengono per problemi in cui sia definita la funzione di controllo u (in cui il termine f di Eq.(15.55) viene sostituito da f + Bu come in Eq.(15.29)); nel seguito sono elencate le espressioni per le equazioni che concorrono a risolvere il problema regolarizzato: • • • •
l’equazione di stato Ayα = f + Buα ; l’equazione aggiunta A∗ pα = C (Cyα − Cyd ); il funzionale costo Jα (uα ) = α||uα||2U + ||Cyα − Cyd ||2Z ; la condizione di raggiungimento dell’ottimo espressa da Aα uα = αΛuα + (B A∗−1 C )(BA−1 C)uα = (B A∗−1 C )(zd − CA−1 f),
ove l’ultima delle precedenti fornisce la quasi soluzione uα del problema di controllo e gli operatori sono gli stessi della Sez. 15.6. Si osservi infine che si è tenuto conto della presenza del parametro α al fine di poter avere un problema ben posto; si noti inoltre che il ruolo giocato dal termine α||uα||2 del funzionale costo Jα è del tutto analogo a quello della forma simmetrica n(·, ·) della (15.33). Dal Teorema di Lions (15.4) consegue l’esistenza e l’unicità della soluzione del problema di controllo, non garantite per il problema inverso originario; vale inoltre la seguente proprietà di convergenza sul problema di controllo regolarizzato: Proprietà 15.1 Se α ∈ (0, ε), con ε 1 e f ∈ Y ∗ , il problema di controllo Ayα = f + Buα è tale per cui Cyα Cyd , ne consegue che ||uα − u|| → 0
se α → 0.
Si osservi che la precedente si basa sull’osservazione che il problema di controllo è densamente risolubile (si veda la sezione seguente). Applicando la Definizione 15.3
494
15 Introduzione al controllo ottimale per equazioni a derivate parziali
ciò equivale a
Ker(B A∗−1 C ) = {0}
ovvero che la sola soluzione ammissibile del sistema ∗ A q = C w, B q = 0, sia q = w = 0. Si conclude così che se il problema originario non è ben posto, ci si può ricondurre a un problema di controllo ottimale, ben posto, e risolubile con le tecniche comuni per questo tipo di problemi. Per ulteriori approfondimenti e per un’analisi dell’influenza del parametro di regolarizzazione si veda sempre [Ago03].
15.7.2 Risolubilità dell’equazione di stato e dell’equazione aggiunta Vengono ora fornite ulteriori definizioni e proprietà inerenti gli operatori, i loro aggiunti e le equazioni che governano il problema; per maggiori approfondimenti, oltre a [Ago03], si vedano [Ada75] e [Sal08].
Definizione 15.2 Detto D(A) il dominio di A, l’operatore limitato A è chiuso se vale D(A) = D(A).
Si consideri ora la definizione di operatore aggiunto data nella (15.39), per la quale oltre alle proprietà riportate nella Sez. A.1 dell’Appendice A, vale la seguente a riguardo della scrittura dell’operatore aggiunto in forma esplicita: Proprietà 15.7.1 Dato A un operatore lineare limitato, e indicato con A∗ l’operatore aggiunto (si veda la (3.101)), è possibile scrivere in forma esplicita A∗ su una restrizione del suo dominio A˜∗ = A∗ |D=D( ˜ A˜∗ )
˜ ⊂ D(A∗ ). con D
Ricordiamo che il problema Ay = f, con A : X → Y si dice ben-posto se la soluzione y ∈ D(A) esiste, è unica, e dipende con continuità da f. Se una delle condizioni precedenti non è soddisfatta il problema si dice mal-posto. Ragioni per cui il problema può essere mal-posto sono: la non esistenza dell’operatore A−1 , il fatto che possa non essere definito sul codominio Y di A e la non limitatezza di tale operatore. Si osservi che rientra in questo ambito il problema inverso e di controllabilità esatta definito nella (15.54).
15.8 Formulazione di problemi di controllo mediante lagrangiana
495
Definizione 15.3 Si consideri l’equazione Ay = f, con A : X → Y e D(A) = X. Tale equazione si dice: • univocamente risolubile se Ker(A) = {0}; • correttamente risolubile se k||y||X ≤ ||Ay||Y ∀y ∈ D(A), con k > 0; • normalmente risolubile se R(A) = R(A), con R(A) il range (immagine) dell’operatore A (R(A) = {Ax, x ∈ X}); • densamente risolubile se R(A) = Y ; • ovunque risolubile se R(A) = Y . Ora, nelle ipotesi che A sia lineare e limitato, D(A) = X e definendo l’equazione aggiunta A∗ y∗ = g, con y∗ la soluzione aggiunta e g termine noto, si hanno le seguenti proprietà di corrispondenza tra equazione di stato ed equazione aggiunta: Ay = f A∗ y∗ = g unicamente risolubile ⇐= densamente risolubile densamente risolubile ⇐⇒ unicamente risolubile correttamente risolubile ⇐⇒ ovunque risolubile ovunque risolubile ⇐= correttamente risolubile Se oltre alle ipotesi già fatte si assume A chiuso e X riflessivo (cioè (X ) = X), allora anche l’ultima implicazione diventa un’equivalenza.
15.8 Formulazione di problemi di controllo mediante lagrangiana In questa sezione si forniscono le basi per un approccio alla risoluzione dei problemi di controllo mediante la tecnica dei moltiplicatori di Lagrange; in particolare con il formalismo della Lagrangiana risulta più immediatamente evidente il ruolo della variabile aggiunta all’interno dei problemi di controllo ottimale. 15.8.1 Ottimizzazione vincolata per funzioni in Rn Consideriamo un caso semplice di ottimizzazione vincolata: date f, g ∈ C 1 (X), essendo X un aperto di Rn , si vogliono trovare gli estremi della funzione f sottoposta al vincolo di appartenenza dei punti estremi all’insieme E0 = {x ∈ Rn : g(x) = 0}. Per semplicità di trattazione si è scelto il caso in cui il vincolo g sia una funzione scalare; per maggiori approfondimenti a riguardo si veda ad esempio [PS91]. Si considerino le seguenti definizioni di punto regolare e punto critico vincolato:
496
15 Introduzione al controllo ottimale per equazioni a derivate parziali
Definizione 15.4 Un punto x0 è detto punto regolare di E0 se g(x0 ) = 0 e
∇g(x0 ) = 0.
Definizione 15.5 Dati f, g e E0 precedentemente definiti, si dice che x0 ∈ X è un punto critico condizionato al vincolo g(x) = 0 (o, in breve, un punto critico vincolato) se: i) il punto x0 è regolare per E0 ; ii) la derivata di f in direzione tangente al vincolo g è nulla in x0 . Sulla base di queste definizioni vale il seguente risultato: Teorema 15.5 Un punto regolare x0 di E0 è un punto critico vincolato se e solo se esiste λ0 ∈ R tale che valga ∇f(x0 ) = λ0 ∇g(x0 ). Introduciamo la funzione L : X × R → R, detta Lagrangiana L(x, λ) = f(x) − λg(x). Dal Teorema 15.5, deduciamo che x0 è un punto critico vincolato se e solo se (x0 , λ0 ) è un punto critico libero per la funzione L. Il numero λ0 si dice moltiplicatore di Lagrange e si ricava, insieme a x0 , dalla risoluzione del sistema ∇L(x, λ) = 0, ovvero
⎧ ⎨ Lx = ∇f − λ∇g = 0, ⎩
Lλ = −g = 0.
15.8.2 L’approccio mediante Lagrangiana In questa sezione si vuole estendere la teoria degli estremi vincolati richiamata in Sez. 15.8.1 ai problemi di controllo ottimale. L’approccio della Lagrangiana è diffuso anche in questo ambito (si veda ad esempio [BKR00]) come alternativo all’approccio “alla Lions”; esso è convenientemente utilizzato per integrare le tecniche di adattività di griglia basate su stime a posteriori dell’errore con i problemi di controllo ottimale (si vedano [BKR00] e [Ded04]). L’approccio mediante moltiplicatori di Lagrange è diffusamente impiegato anche in problemi di ottimizzazione di forma, dove il controllo è costituito dalla forma del dominio su cui sono definite le equazioni che descrivono
15.8 Formulazione di problemi di controllo mediante lagrangiana
497
il modello fisico. La funzione u del problema di controllo ottimale diventa cioè una funzione, definita sul bordo (o parte di esso) che descrive lo scostamento della forma ottimale, da quella originale su cui è definito il problema. A questo proposito si vedano ad esempio le referenze [Jam88], [MP01], [JS91]. L’impiego del formalismo della Lagrangiana nella Sez. 15.8.1 consente di determinare i punti di estremo x di una certa funzione f sottoposta al vincolo espresso dalla funzione g. Nel problema di controllo si vuole trovare una funzione u ∈ U soddisfacente il problema di minimo (15.35), essendo y(u) la soluzione dell’equazione di stato (15.29). Al solito, A è un operatore differenziale ellittico applicato alla variabile di stato e B un operatore che introduce il controllo nell’equazione di stato. Tale problema può essere visto come un problema di estremo vincolato, osservando la corrispondenza dei ruoli giocati tra il funzionale costo J e la funzione f (di Sez. 15.8.1), tra l’equazione di stato e il vincolo g = 0 e infine tra il controllo u e il punto di estremo x. La soluzione del problema di controllo ottimale può così essere ricondotta a ricercare i “punti” critici liberi del funzionale Lagrangiano definito nel modo seguente L(y, p, u) = J(u) + p, f + Bu − Ay(u) ,
(15.58)
dove p è il moltiplicatore di Lagrange e il simbolo ·, · denota la dualità tra V e V . Si osservi che, in quest’ambito, i punti critici liberi sono da intendersi come le funzioni y, u e p in corrispondenza dell’ottimo. Il problema diventa dunque trovare (y, p, u) : ∇L(y, p, u) = 0, ⎧ Ly = 0, ⎪ ⎪ ⎪ ⎪ ⎨ Lp = 0, ⎪ ⎪ ⎪ ⎪ ⎩ Lu = 0.
ovvero
(15.59)
(15.60)
Si è usata la notazione abbreviata Ly per indicare la derivata di Gâteaux di L rispetto a y (introdotta nella Sez. A.2 dell’Appendice A). Analogo significato hanno le notazioni Lp e Lu . Si consideri ora come esempio un’equazione di stato ellittica con operatori A e B lineari e la si riscriva nella forma debole (15.30); dati u ∈ U ed f ∈ H, si trovi y = y(u) ∈ V : a(y, ϕ) = (f, ϕ) + b(u, ϕ)
∀ϕ ∈ V.
(15.61)
Ricordiamo che la forma bilineare a(·, ·) è associata all’operatore lineare ellittico A, la forma bilineare b(·, ·) all’operatore B; quest’ultima introduce nella forma debole il termine di controllo. Il funzionale costo da minimizzare può essere così espresso J(y(u)) =
1 1 ||Cy(u) − zd ||2 + n(u, u), 2 2
(15.62)
dove C è l’operatore che porta la variabile di stato nello spazio Z delle funzioni osservate, zd è la funzione osservazione e n(·, ·) rappresenta la forma simmetrica. Si
498
15 Introduzione al controllo ottimale per equazioni a derivate parziali
osservi che non sono state introdotte ipotesi sulla scelta delle condizioni al contorno, sul tipo di problema di controllo (distribuito o sul bordo) e sull’osservazione del sistema; questo al fine di poter considerare delle espressioni generali per le equazioni. In forma debole, la (15.58) diventa L(y, p, u) = J(u) + b(u, p) + (f, p) − a(y, p), e, come nella (15.59), si ha trovare (y, p, u) ∈ V×V×U : ∇L(y, p, u)[(ϕ, φ, ψ)] = 0 Usando la definizione di derivata di Gâteaux si ottiene ⎧ Ly [ϕ] = (Cy − zd , Cϕ) − a(ϕ, p) = 0 ⎪ ⎪ ⎪ ⎪ ⎨ Lp [φ] = (f, φ) + b(u, φ) − a(y, φ) = 0 ⎪ ⎪ ⎪ ⎪ ⎩ Lu [ψ] = b(ψ, p) + n(u, ψ) = 0 che riarrangiata diventa ⎧ p ∈ V : a(ϕ, p) = (Cy − zd , Cϕ) ⎪ ⎪ ⎪ ⎪ ⎨ y ∈ V : a(y, φ) = b(u, φ) + (f, φ) ⎪ ⎪ ⎪ ⎪ ⎩ u ∈ U : n(u, ψ) + b(ψ, p) = 0
∀(ϕ, φ, ψ) ∈ V×V×U.
∀ϕ ∈ V, ∀φ ∈ V,
(15.63)
∀ψ ∈ U,
∀ϕ ∈ V, ∀φ ∈ V,
(15.64)
∀ψ ∈ U.
Si osservi che al termine Lp corrisponde l’equazione di stato in forma debole, a Ly l’equazione per il moltiplicatore di Lagrange (identificabile come la equazione aggiunta) e a Lu l’equazione che esprime il vincolo di raggiungimento dell’ottimo. La variabile aggiunta, vista come moltiplicatore di Lagrange, consente di affermare che essa è legata alla sensitività del funzionale costo J alle variazioni della funzione di osservazione, e quindi, in ultima analisi, della funzione di controllo u. Risulta molto conveniente esprimere la derivata di Gâteaux della Lagrangiana, Lu , in funzione della derivata del funzionale costo, J (u), (15.64), secondo quanto indicato nella Sez. A.2 dell’Appendice A. La corrispondenza è garantita dal Teorema di Rappresentazione di Riesz (si veda la Sez. A.1 della stessa Appendice A). In effetti, essendo il funzionale Lu [ψ] lineare e limitato e ψ appartenente allo spazio di Hilbert U, caso per caso, si può ricavare J , ovvero, dalla terza di (15.63) Lu [ψ] = (J (u), ψ)U . Un aspetto rilevante da considerare è il modo in cui vengono ricavate le equazioni aggiunte. Nella teoria di Lions l’equazione aggiunta è basata sull’impiego degli operatori aggiunti (si veda l’eq.(15.39)), mentre nell’approccio alla Lagrangiana si ricava mediante derivazione di L rispetto alla variabile di stato, dove la variabile aggiunta
15.9 Risoluzione del problema di controllo: il metodo iterativo
499
corrisponde, all’ottimo, al moltiplicatore di Lagrange. Il metodo alla Lions e l’approccio della Lagrangiana non conducono in generale alla stessa definizione del problema aggiunto, tuttavia uno può risultare più o meno conveniente dell’altro, in relazione a un dato problema di controllo, quando questo viene risolto in modo numerico. Per una corretta risoluzione del problema dell’ottimo è dunque fondamentale essere coerenti con la teoria che si sta considerando. Un altro aspetto molto importante consiste nel ricavare le condizioni al contorno per il problema aggiunto; anche in questo contesto gli approcci di Lions e della Lagrangiana possono condurre a condizioni al contorno diverse.
15.9 Risoluzione del problema di controllo: il metodo iterativo In questa sezione viene illustrato un metodo iterativo per la ricerca dell’ottimo del problema (15.29). Una volta definito l’algoritmo iterativo, si rende necessario operare una scelta sul tipo di approssimazione numerica da adottare per la risoluzione delle EDP. Sia che si consideri un approccio alla sua risoluzione alla Lions, piuttosto che mediante Lagrangiana, in corrispondenza dell’ottimo devono essere soddisfatte le tre equazioni del sistema (15.42) o (15.63), e cioè: i) l’equazione di stato; ii) l’equazione aggiunta; iii) l’equazione che esprime il raggiungimento dell’ottimo. Si ricordi in particolare che quest’ultima equazione è legata alla variazione del funzionale costo, in maniera esplicita nell’approccio alla Lions, tramite il Teorema di Rappresentazione di Riesz con il formalismo della Lagrangiana. Nel caso di equazioni lineari ellittiche esaminato in precedenza, si ottiene infatti: • 12 J (u) = B p(u) + ΛU N (u); • Lu [ψ] = n(u, ψ) + b(ψ, p)
∀ψ ∈ U.
Si noti che in seguito la derivata del funzionale costo J indicherà anche quella ricavata dal differenziale debole della Lu [ψ]. La valutazione di J in un dato punto del dominio di controllo (Ω, Γ , o un loro sottoinsieme) fornisce un’indicazione della sensitività del funzionale costo J, in quel punto, alle variazioni del controllo u; in altri termini si può dire che una variazione infinitesimale del controllo δu, attorno ad un certo valore del controllo u, genera, a meno di infinitesimi di ordine superiore, un δJ proporzionale a J (u). Questa valutazione suggerisce di usare il seguente algoritmo iterativo di discesa più ripida. Detta uk la funzione di controllo al passo k, la funzione al passo successivo, k + 1, può essere ottenuta nel modo seguente: uk+1 = uk − τ k J (uk ),
(15.65)
dove J rappresenta la direzione di discesa, e τ k il parametro di accelerazione. La scelta (15.65) non è necessariamente la più efficiente, ma è pedagogicamente utile a
500
15 Introduzione al controllo ottimale per equazioni a derivate parziali
far comprendere il ruolo giocato da J e quindi dalla variabile aggiunta p. Un metodo per la ricerca dell’ottimo può dunque essere schematizzato con il seguente algoritmo iterativo: 1. Si ricavano le espressioni dell’equazione aggiunta e della derivata J , mediante uno dei due metodi alla Lions o basato sulla Lagrangiana); 2. Si fornisce un valore iniziale u0 del controllo u; 3. Sulla base di questa informazione si risolve l’equazione di stato in y; 4. Nota la variabile di stato e la funzione di osservazione zd si ricava il valore del funzionale costo J; 5. Si risolve l’equazione aggiunta in p, note y e zd ; 6. Si ricava, nota la variabile aggiunta, la funzione J ; 7. Si applica un criterio di convergenza all’ottimo nell’ambito di una data tolleranza; se tale criterio viene soddisfatto si salta al punto 10; 8. Si ricavano i parametri per la convergenza del metodo iterativo (ad esempio τ k ); 9. Si ricava il controllo al passo successivo, per esempio mediante la (15.65), e si torna al punto 3; 10. Si esegue un post-processing sull’ottimo ottenuto (visualizzazione delle soluzioni y, p, del controllo u, ecc.). Nello schema di Figura 15.2 è rappresentato il diagramma di flusso che illustra la procedura sopra indicata. Osservazione 15.4 Un criterio d’arresto può essere quello di fissare una tolleranza T ol sulla distanza, in un’opportuna norma, tra la z osservata e la zd desiderata ||z k − zd ||Z ≤ T ol. In generale però non è detto che in un processo iterativo convergente ciò comporti J(uk ) → 0 per k → ∞, ovvero la distanza tra la funzione osservata e quella desiderata può portare a un valore non nullo di J. In questo caso si rende necessario l’impiego di un criterio di arresto basato sulla valutazione della norma della derivata del funzionale costo ||J (uk )||U ≤ T ol. Tale approccio è del tutto generale. Il valore della tolleranza viene scelto sufficientemente piccolo in relazione al valore iniziale di ||J || e al livello di vicinanza all’ottimo reale che si vuole ottenere. • Osservazione 15.5 La variabile aggiunta è definita su tutto il dominio di calcolo. Per la valutazione di J (u), sarà necessario operare una restrizione della variabile aggiunta p sulla parte di dominio, o contorno, su cui prende valori u. • L’impiego del metodo di discesa ripida comporta la valutazione di un appropriato valore del parametro di accelerazione τ k . La scelta di τ k deve essere in grado di garantire la convergenza monotona del funzionale costo al minimo, deve cioè valere ad ogni passo dell’algoritmo iterativo J(uk − τ k J (uk )) < J(uk ).
15.9 Risoluzione del problema di controllo: il metodo iterativo
501
Equazione di Stato Definizione del Problema di Controllo
Osservazione Controllo
u
Equazione di Stato
y
Equazione Aggiunta
Passo Iterativo su u
p zd
J’
J
Tol
???
Post−Processing
Figura 15.2. Schema di un possibile metodo iterativo per la risoluzione di un problema di controllo
Nel caso si conosca il valore finito del funzionale costo in corrispondenza dell’ottimo J∗ J∗ = inf J(u) ≥ 0, u∈U
allora si può prendere il parametro di accelerazione, come (si veda ad esempio [Ago03] e [Vas81]) (J(uk ) − J∗ ) τk = . (15.66) ||J (uk )||2 A titolo di esempio, si consideri il seguente problema di controllo ⎧ ⎨ Ay = f + Bu, ⎩
inf J(u),
dove J(u) = α||u||2U + ||Cy − zd ||2Z
α ≥ 0,
502
15 Introduzione al controllo ottimale per equazioni a derivate parziali
Il metodo iterativo precedente diventa ⎧ Ayk = f + Buk , ⎪ ⎪ ⎪ ⎪ ⎨ A∗ pk = C (Cyk − zd ), ⎪ ⎪ ⎪ ⎪ ⎩ k+1 u = uk − τ k (αuk + B pk ). Se Ker(B A∗−1 C ) = {0} il problema è risolubile ed inoltre J(u) → 0 per α → 0. Pertanto, se α 0+ si può assumere che J∗ 0, e pertanto, grazie a (15.66), τk =
J(uk ) α||uk ||2U + ||Cyk − zd ||2Z = . k 2 ||J (u )|| 2||αuk + B ∗ pk ||2
(15.67)
Supponiamo ora di considerare il problema di controllo discretizzato (per esempio con il metodo di Galerkin–Elementi Finiti). Invece di cercare il minimo di J(u), con J : U → R, si cerca quello di J(u), con J : Rn → R, dove u ∈ Rn è il vettore corrispondente alla discretizzazione del controllo ottimale u ∈ U. Nel seguito di questa sezione faremo riferimento alla ricerca del minimo di J associato al problema di controllo discretizzato. Come precedentemente osservato, il metodo di discesa più ripida (15.65) è solo uno tra i possibili metodi iterativi per la risoluzione di un problema di controllo ottimale. In effetti, giova ricordare che il metodo di discesa più ripida è un caso particolare di un metodo di tipo gradiente uk+1 = uk + τ k dk , dove dk rappresenta la direzione di discesa, cioè tale per cui T
dk · J (uk ) < 0 se ∇J(uk ) = 0. A seconda delle possibili scelte di dk otteniamo i seguenti casi particolari: • metodo di Newton, per cui dk = −H(uk )−1 ∇J(uk ), dove H(uk ) è la matrice Hessiana di J(u) calcolata per u = uk ; • metodi quasi–Newton, per cui dk = −Bk−1 ∇J(uk ), dove Bk è un’approssimazione di H(uk );
(15.68)
15.9 Risoluzione del problema di controllo: il metodo iterativo
503
• metodo del gradiente coniugato, per il quale dk = −∇J(uk ) + βk dk−1, T
essendo βk uno scalare da scegliere in modo che dk · dk−1 = 0. Per definire completamente un metodo di discesa è necessario definire, oltre a dk , il parametro τ k (in maniera analoga a quanto visto per il metodo di discesa più ripida), in modo tale che, oltre a garantire il soddisfacimento della condizione J(uk + τ k dk ) < J(uk ),
(15.69)
sia possibile raggiungere la convergenza il più rapidamente possibile. A questo proposito, un metodo per il calcolo di τ k consiste nel risolvere il seguente problema di minimizzazione in una dimensione trovare τ k : φ(τ k ) = J(uk + τ k dk ) minimo; ciò garantisce la validità del seguente risultato di ortogonalità T
dk · ∇J(uk ) = 0. Spesso per il calcolo di τ k si ricorre a metodi approssimati. Il problema è introdurre un criterio per decidere come aggiornare la soluzione ed ottenere un metodo globalmente convergente, e quindi un modo per calcolare τ k , fissata una direzione di discesa dk . A tal fine, un procedimento euristico è il seguente: stabilito un valore di tentativo del passo τ k , possibilmente grande, si continua a dimezzare tale valore sino a quando la (15.69) non risulti verificata. Questo modo di procedere, pur essendo ragionevole, può però condurre a risultati del tutto scorretti. Si tratta dunque di introdurre criteri più severi della (15.69) nella scelta dei valori possibili per τ k , cercando di evitare due tipi diversi di difficoltà: una velocità di decrescita troppo bassa e l’uso di passi troppo piccoli. La prima difficoltà si può superare richiedendo che T
J(uk ) − J(uk + τ k dk ) ≥ −στ k dk · ∇J(uk ),
(15.70)
con σ ∈ (0, 1/2). Ciò equivale a richiedere che la velocità media di decrescita lungo dk di J sia in uk+1 almeno pari ad una frazione assegnata della velocità di decrescita iniziale in uk . Il rischio di generare passi troppo piccoli viene superato richiedendo che la velocità di decrescita in uk+1 non sia inferiore ad una frazione assegnata della velocità di decrescita in uk T
T
|dk · ∇J(uk + τ k dk )| ≤ β|dk · ∇J(uk )|,
(15.71)
con β ∈ (σ, 1), in modo da garantire che valga anche la (15.70). In pratica si scelgono σ ∈ [10−5 , 10−1 ] e β ∈ [10−1 , 1/2]. Compatibilmente con il rispetto delle condizioni (15.70) e (15.71), sono possibili diverse scelte di τ k . Tra le più usate, ricordiamo le formule di Armijo (si veda [MP01]). Fissati σ ∈ (0, 1/2), β ∈ (0, 1) e τ¯ > 0, si prende τ k = β mk τ¯, essendo mk il primo intero non negativo per il quale sia verificata la (15.70). Infine, si può addirittura pensare di scegliere τ k = τ¯ per ogni k, scelta evidentemente conveniente soprattutto quando J sia una funzione costosa da valutare. Per approfondimenti si vedano [KPTZ00], [MP01] e [Roz02].
504
15 Introduzione al controllo ottimale per equazioni a derivate parziali
15.10 Alcune considerazioni su osservabilità e controllabilità Possiamo abbozzare alcune conclusioni in merito al comportamento dei metodi iterativi in rapporto a cosa si decide di osservare (quale variable z, su quale parte del dominio) e come si decide di operare il controllo (quale variabile u usare, a quale parte del dominio associarla). In breve, sul rapporto tra osservabilità e controllabilità. Le considerazioni che seguono sono di carattere euristico, ovvero dedotte dall’esperienza. In generale, non sono suffragate da una teoria generale, valida per ogni tipo di problema di controllo e ogni possibile strategia di risoluzione numerica (ovvero scelta del metodo iterativo e del metodo di approssimazione numerica scelto per l’equazione di stato e quella aggiunta). • Dove si osserva. I problemi di controllo ottimale basati su una osservazione distribuita nel dominio dei vari parametri hanno una velocità di convergenza maggiore rispetto ai problemi che effettuano solo un’osservazione sul bordo e, di fatto, a parità di precisione sull’errore, convergono in meno iterate (almeno un ordine di grandezza in meno). • Dove si controlla. Il processo di ottimizzazione si mostra più robusto se anche il termine di controllo risulta essere distribuito nel dominio e, quindi, compare come termine sorgente o come coefficiente nelle equazioni di stato. Più precisamente, a parità di altri parametri, la convergenza risulta più veloce e la storia di convergenza meno sensibile alla scelta dei vari parametri che intervengono nel problema, tra cui il già citato parametro di accelerazione o quello che amplifica o riduce il peso dell’osservazione sul sistema. • Cosa si osserva. Anche la scelta della variabile che si osserva influenza il comportamento del processo iterativo. In effetti, osservare la soluzione è meglio che osservare, per esempio, il gradiente della soluzione o una derivata di ordine superiore al primo. Problemi di quest’ultimo tipo sono molto diffusi, soprattutto in fluidodinamica, quando si studiano problemi di flussi a potenziale e si osserva il campo di moto, oppure quando si considerano problemi con flussi viscosi e si osservano gli sforzi oppure la vorticità stessa. • Come si osserva e controlla. Sempre riguardo osservabilità e controllabilità sul problema si può concludere che anche quanto si osserva e quanto si riesce a controllare assume un ruolo non del tutto trascurabile: da questo dipende se il problema è ben posto o meno. Per poter intervenire e controllare un sistema si deve garantire sempre una buona osservabilità e una buona controllabilità: questo permette di avere un algoritmo con una buona velocità di convergenza e con una storia di convergenza indipendente dai vari parametri in gioco. • Ottimizzazione di forma. I problemi di ottimizzazione di forma sono una classe particolare di problemi di controllo ottimale: infatti, in questo contesto, il temine di controllo non è solo sul bordo ma risulta essere il bordo stesso. Di tutti i problemi di controllo, questo è sicuramente il più complesso e delicato in quanto, nella fase di risoluzione numerica, esso comporta la modifica della griglia di calcolo ad ogni iterazione, e possono intervenire problemi di consistenza che si risolvono
15.11 Due paradigmi di risoluzione
505
imponendo opportuni vincoli geometrici che scartino tutte le eventuali configurazioni non ammissibili. Inoltre su problemi particolarmente complessi è necessaria una procedura di stabilizzazione e regolarizzazione dei risultati per evitare di avere forme che presentino oscillazioni. Questo tipo di problema rimane più sensibile alla variazione dei vari parametri che caratterizzano lo studio del problema stesso. • Problema aggiunto e problema di stato. Nell’approccio alla Lions la formulazione del problema aggiunto mediante operatore aggiunto (per avere la stima del gradiente del funzionale costo) genera un problema con una struttura simile a quella del problema di stato con risparmi in termini di costi di implementazione rispetto ad esempio agli approcci basati sulla differenziazione automatica del funzionale costo. Per problemi di ottimizzazione di forma il problema aggiunto comporta anche un risparmio computazionale rispetto al metodo basato sull’analisi di sensitività della forma in quanto i costi computazionali sono indipendenti dal numero (proibitivo) di parametri che si utilizzano per la definizione della forma stessa (i punti di controllo). Si veda in proposito [SK02].
15.11 Due paradigmi di risoluzione: “discretizzare-poi-ottimizzare” oppure “ottimizzare–poi–discretizzare” In questa sezione discutiamo alcuni concetti inerenti due diversi paradigmi di risoluzione dei problemi di controllo ottimale: “Discretizzare–poi–Ottimizzare”, oppure “Ottimizzare–poi–Discretizzare”. Per approfondimenti si vedano, ad esempio, [EFC03] e [Gun03]. L’interazione delle varie componenti di un sistema complesso costituisce un aspetto saliente in problemi di controllo ottimale. Per problemi di controllo ispirati dalla vita reale dobbiamo per prima cosa scegliere un modello appropriato che descriva il sistema in questione e, in secondo luogo, fare una scelta delle proprietà del controllo. Alla fine è però necessario introdurre algoritmi di discretizzazione numerica per risolvere numericamente il problema di controllo. Dobbiamo infatti essere in grado di calcolare un’approssimazione della soluzione del problema di controllo che sia sufficientemente accurata; questo succede solo se risolviamo un problema di controllo ottimale discretizzato. Consideriamo un semplice esempio al fine di illustrare alcune difficoltà aggiuntive, in qualche modo inattese, che la discretizzazione può introdurre nel processo di controllo. Consideriamo nuovamente l’equazione di stato (15.1). Per fissare le idee, assumeremo che il nostro problema di controllo sia il seguente: “cercare u ∈ Uad t.c. J(u) ≤ J(v)
∀v ∈ Uad ,
dove J è una funzione data”. Da qui nasce la seguente cruciale questione: “Come discretizzare il problema di controllo in maniera appropriata?”
(15.72)
506
15 Introduzione al controllo ottimale per equazioni a derivate parziali
Ci sono almeno due possibili risposte adeguate alla questione precedente: 1) “Discretizzare–poi–Ottimizzare” Per prima cosa discretizziamo lo spazio Uad e l’equazione di stato (15.1), da cui otteniamo rispettivamente lo spazio discreto Uad,h e la nuova equazione di stato (discreta) Ah yh (uh ) = fh . (15.73) Abbiamo indicato con h la dimensione degli elementi della griglia; quando h → 0 supporremo che si abbia la convergenza del problema discreto a quello continuo. Se Uad,h e (15.73) sono introdotti in maniera corretta, ci aspettiamo di ottenere uno “stato discreto” yh (vh ) per ogni “controllo discreto ammissibile” vh ∈ Uad,h . A questo punto, cerchiamo un controllo ottimale nel discreto, ovvero un controllo uh ∈ Uad,h tale che J(uh ) ≤ J(vh )
∀vh ∈ Uad,h ,
(15.74)
ovvero, più precisamente, J(yh (uh )) ≤ J(yh (vh ))
∀vh ∈ Uad,h .
(15.75)
Ciò corrisponde al seguente schema: MODELLO −→ DISCRETIZZAZIONE −→ CONTROLLO,
altrimenti detto “discretizzare–poi–ottimizzare”: partendo dal problema di controllo continuo, per prima cosa discretizziamo l’equazione di stato e, successivamente, calcoliamo il controllo ottimale del modello discretizzato. 2) “Ottimizzare–poi–Discretizzare” Alternativamente possiamo procedere nel modo seguente. Analizziamo il problema di controllo (15.1), (15.72) e caratterizziamo la soluzione ottimale e il controllo in termini del sistema di ottimalità. Ciò consiste, in pratica, nello scrivere le equazioni di Eulero–Lagrange associate al problema di minimizzazione in considerazione: Ay(u) = f, (15.76) A∗ p = g(u, y), più un’equazione addizionale che lega le variabili y, p e u. Per semplificare l’esposizione indicheremo l’ultima equazione come: Q(y, p, u) = 0.
(15.77)
Ora potremmo discretizzare e risolvere numericamente il sistema (15.76), (15.77). Ciò corrisponde al seguente approccio: MODELLO −→ CONTROLLO −→ DISCRETIZZAZIONE,
detto anche “ottimizzare–poi–discretizzare”. In questo secondo approccio, abbiamo, rispetto al primo, scambiato i passi di controllo e discretizzazione del problema: prima si formula il problema di controllo continuo e, solo dopo, si procede alla discretizzazione numerica delle relative equazioni.
15.12 Approssimazione numerica di un problema di controllo ottimale
507
Non sempre i due approcci conducono agli stessi risultati. Per esempio, in [JI99] si mostra che, con un’approssimazione agli elementi finiti, il primo approccio può fornire risultati errati in problemi di vibrazioni. Ciò è dovuto alla mancanza di accuratezza della soluzione degli elementi finiti per il calcolo delle soluzioni ad alta frequenza delle equazioni delle onde (si veda [Zie00]). D’altra parte, è stato osservato che, per la soluzione di molti problemi di progetto ottimale (optimal design), la prima strategia è quella da preferire; si vedano ad esempio [MP01] e [Pir84]. Ad oggi la scelta dello schema di discretizzazione/ottimizzazione costituisce un argomento non ancora del tutto compreso e richiede ulteriori approfondimenti. Certamente la scelta del metodo dipende fortemente dalla natura del modello in considerazione. In questo senso, i problemi di controllo ottimale per EDP ellittiche e paraboliche sono più facilmente trattabili, a causa della loro natura dissipativa, di quelli per EDP iperboliche; per un’ampia trattazione di questo argomento rinviamo a [Zua03]. Ci si attende tuttavia che in futuro molti progressi verranno compiuti in questo ambito.
15.12 Approssimazione numerica di un problema di controllo ottimale per equazioni di diffusione–trasporto In questa sezione, tratta da [QRDQ06], discutiamo un esempio di un problema di controllo ottimale applicato a equazioni di diffusione–trasporto; in particolare consideriamo due diversi approcci di risoluzione del problema di controllo ottimale, mediante l’impiego del metodo del funzionale Lagrangiano: “discretizzare–poi–ottimizzare” e ”ottimizzare–poi–discretizzare”. A tal proposito si vedano le Sezioni 15.8 e 15.11. Consideriamo un problema di diffusione–trasporto lineare in un dominio bidimensionale Ω ⎧ L(y) = −∇ · (ν∇y) + V · ∇y = u in Ω, ⎪ ⎨ y=0 su ΓD , (15.78) ∂y ⎪ ⎩ ν =0 su ΓN , ∂n ΓD e ΓN sono due tratti disgiunti del contorno del dominio ∂Ω tali che ΓD ∪ ΓN = ∂Ω, u ∈ L2 (Ω) è la variabile di controllo, mentre ν e V sono funzioni date. Consideriamo condizioni al contorno omogenee di Dirichlet sul bordo di ingresso del campo di trasporto ΓD = {x ∈ ∂Ω : V(x) · n(x) < 0}, essendo n(x) il versore uscente e normale al contorno, e condizioni omogenee di Neumann sul bordo di uscita del campo di trasporto ΓN = ∂Ω \ ΓD . Supporremo che l’osservazione sia ristretta ad un sottodominio D ⊆ Ω e il problema di controllo ottimale si scriva 1 2 trovare u : J(y, u) = J(u) = (g(y(u)) − zd ) dD minimo, (15.79) 2 D dove la funzione g ∈ C ∞ (Ω) “porta” la variabile y nello spazio di osservazione e zd è la funzione di osservazione desiderata. Adottando l’approccio del funzionale
508
15 Introduzione al controllo ottimale per equazioni a derivate parziali
Lagrangiano di Sez. 15.8 e assumendo V = HΓ1D = {v ∈ H 1 (Ω) : v|ΓD = 0} e U = L2 (Ω), il funzionale Lagrangiano diventa L(y, p, u) = J(u) + F (p; u) − a(y, p), dove:
(15.80)
ν∇w · ∇ϕ dΩ +
a(w, ϕ) = Ω
V · ∇w ϕ dΩ,
(15.81)
Ω
uϕ dΩ.
F (ϕ; u) =
(15.82)
Ω
Differenziando L rispetto alla variabile di stato y, otteniamo l’equazione aggiunta in forma debole ∀φ ∈ V,
trovare p ∈ V : aad (p, φ) = F ad (φ; w) dove:
ν∇p · ∇φ dΩ +
aad (p, φ) =
(15.83)
Ω
V · ∇φ p dΩ,
(15.84)
Ω
F
ad
(g y − zd ) g φ dD.
(φ; y) =
(15.85)
D
Essa corrisponde a ⎧ ad ⎪ ⎨ L (p) = −∇ · (ν∇p + Vp) = χD g (g y − zd ) p=0 ⎪ ⎩ ν ∂p + V · n p = 0 ∂n
in Ω, su ΓD ,
(15.86)
su ΓN ,
essendo χD la funzione caratteristica nella regione D. Differenziando L rispetto alla funzione di controllo u, otteniamo l’equazione che esprime il vincolo di raggiungimento dell’ottimo ψ p dΩ = 0 ∀ψ ∈ L2 (Ω), (15.87) Ω
a partire dalla quale definiamo la sensitività del funzionale costo J (u) rispetto alla variabile di controllo, che in questa sezione indichiamo come δu. In questo caso otteniamo δu = p(u) = p. Infine, differenziando L rispetto alla variabile aggiunta p, otteniamo, come al solito, l’equazione di stato in forma debole trovare y ∈ V : a(y, ϕ) = F (ϕ; u)
∀ϕ ∈ V.
(15.88)
15.12 Approssimazione numerica di un problema di controllo ottimale
509
15.12.1 Gli approcci: “ottimizzare–poi–discretizzare” e “discretizzare–poi–ottimizzare” Da un punto di vista numerico, l’algoritmo iterativo di ottimizzazione presentato in Sez. 15.9 richiede, ad ogni passo, l’approssimazione numerica delle equazioni di stato e aggiunta. Tale approssimazione può essere realizzata, ad esempio, considerando il sottospazio degli elementi finiti lineari Vh ⊂ V e il metodo GLS (Galerkin–Least– Squares), introdotto in Sez. 5.8.6, ottenendo, rispettivamente, le equazioni di stato e aggiunta stabilizzate: trovare yh ∈ Vh : a(yh , ϕh ) + sh (yh , ϕh ) = F (ϕh ; uh ) ∀ϕh ∈ Vh , (15.89) " sh (yh , ϕh ) = δK R(yh ; uh) L(ϕh ) dK, (15.90) K
K∈Th
ad ∀φh ∈ Vh , trovare ph ∈ Vh : aad (ph , φh) + sad h (ph , φh) = F (φh ; yh ) (15.91) " ad ad ad sh (ph , φh ) = δK R (ph ; yh ) L (φh ) dK, (15.92) K
K∈Th
dove δK è un parametro di stabilizzazione, R(y; u) = L(y) − u, Rad (p; y) = Lad (p) − G(y), con G(y) = χD g (g y − zd ). Questo è il paradigma “ottimizzare–poi– discretizzare”; si vedano la Sez. 15.11 e, ad esempio, [Bec01], [SC01], [Gun03]. Nel paradigma “discretizzare–poi–ottimizzare” che seguiremo nel seguito, prima discretizziamo e stabilizziamo l’equazione di stato, per esempio nuovamente con il metodo GLS (Eq.(15.89) e (15.90)), poi definiamo il funzionale Lagrangiano discreto Lh (yh , ph, uh ) = J(yh , uh) + F (ph ; uh ) − a(yh , ph ) − sh (yh , ph ),
(15.93)
da cui, differenziando rispetto a yh , otteniamo l’equazione aggiunta discreta (15.91), anche se con il seguente termine di stabilizzazione " ad sh (ph , φh) = δK L(φh ) L(ph ) dK. (15.94) K
K∈Th
Inoltre, differenziando Lh rispetto a uh e applicando il Teorema di rappresentazione di Riesz (Sez. A.1 dell’Appendice A), essendo uh ∈ Xh , otteniamo " δK L(ph ) dK. δuh = ph + K
K∈Th
In particolare, consideriamo una stabilizzazione sul funzionale Lagrangiano [LD05] che diventa Lsh (yh , ph, uh ) = L(yh , ph , uh ) + Sh (yh , ph , uh), (15.95) con Sh (y, p, u) =
" K∈Th
R(y; u) Rad (p; y) dK.
δK K
(15.96)
510
15 Introduzione al controllo ottimale per equazioni a derivate parziali
Questo approccio è a tutti gli effetti un caso particolare del paradigma “ottimizzare– poi–discretizzare”, una volta identificato il termine sh (wh , ph ) con −Sh (wh , ph , uh). Differenziando Lsh otteniamo le equazioni di stato e aggiunta (stabilizzate) che possono nuovamente essere riscritte, rispettivamente, nelle formulazioni (15.89) e (15.91), dopo aver posto: " sh (yh , ϕh ) = sh (yh , ϕh ; uh ) = − δK R(yh ; uh ) Lad (ϕh ) dK, (15.97) K∈Th
K
sad h (ph , φh; yh ) = , + (15.98) ! − K∈Th δK K Rad (ph ; yh ) L(φh ) − R(yh ; uh ) G (φh ) dK, essendo G (ϕ) = χD g2 ϕ. Infine, la sensitività del funzionale costo è " δuh (ph , yh ) = ph − δK Rad (ph ; yh ).
(15.99)
K∈Th
15.12.2 Stima a posteriori dell’errore Al fine di ottenere un’appropriata stima a posteriori dell’errore per il problema di controllo ottimale, scegliamo di identificare l’errore associato al problema di controllo, come errore sul funzionale costo, in maniera analoga a quanto fatto in [BKR00]. Inoltre, proponiamo di separare in due contributi l’errore, che indentificheremo come errore di iterazione ed errore di discretizzazione. In particolare, per l’errore di discretizzazione definiremo una stima a posteriori facendo uso di principi di dualità [BKR00], che adotteremo per l’adattività di griglia. Errore di iterazione ed errore di discretizzazione Ad ogni passo iterativo j della procedura di ottimizzazione consideriamo il seguente errore ε(j) = J(y∗ , u∗) − J(yhj , ujh ), (15.100) dove l’apice ∗ indentifica le variabili all’ottimo, mentre yhj indica la variabile di stato discreta al passo j (in maniera analoga si definiscono le variabili yhj e ujh ). Definia(j) mo errore di discretizzazione εD [LD05] la componente dell’errore complessivo ε(j) legata all’approssimazione numerica al passo j; chiamiamo invece errore di itera(j) zione εIT [LD05] la componente di ε(j) che esprime la differenza tra il funzionale costo calcolato sulle variabili continue al passo j e il funzionale costo all’ottimo J ∗ = J(y∗ , u∗ ). Concludendo, l’errore complessivo ε(j) si può scrivere, partendo dall’Eq.(15.100), come + , (j) (j) ε(j) = J(y∗ , u∗) − J(yj , uj ) + J(yj , uj ) − J(yhj , ujh) = εIT + εD . (15.101) (j)
Nel seguito definiremo una stima a posteriori dell’errore solo per εD , ovvero la parte di ε(j) che può essere ridotta mediante raffinamento di griglia. Dato che ∇L(x) è
15.12 Approssimazione numerica di un problema di controllo ottimale
511
lineare in x, l’errore di iterazione εIT diventa εIT = 12 ( δu(pj , uj ) , u∗ − uj ), che, nel caso del nostro problema di controllo per equazioni di diffusione–trasporto, può essere scritto come ([LD05]) (j)
(j)
∞ 1 1 " (j) εIT = − τ pj 2L2 (Ω) − τ ( pj , pr )L2 (Ω) . 2 2
(15.102)
r=j+1
Dal momento che l’errore di iterazione non può essere completamente valutato per (j) mezzo di questa espressione, approssimiamo εIT come (j)
|εIT | ≈
1 τ pj 2L2 (Ω) , 2
o, più semplicemente (j)
|εIT | ≈ pj 2L2 (Ω) , che porta al solito criterio (j)
|εIT | ≈ δu(pj ),
(15.103)
dove · è la norma L2 . (j) Osserviamo che, nella pratica, l’errore di iterazione εIT viene valutato nelle variabili (j) j discrete, ovvero come |εIT | ≈ δuh (ph ). Supponiamo che ad un certo passo iterativo j venga raffinata la griglia, per esempio mediante adattività, e indichiamo con xh le variabili calcolate con la vecchia griglia Th , mentre con x∗ le variabili calcolate con la nuova griglia adattata T ∗ . Allora, in generale, al passo j l’errore di discretizzazione associato a T ∗ è inferiore a quello associato a Th . Non è detto tuttavia che l’errore di (j) discretizzazione εIT valutato in x∗ , sia inferiore all’errore di iterazione valutato in xh . Stima a posteriori dell’errore e strategia adattiva (j)
Definiamo ora la stima a posteriori per l’errore di discretizzazione εD , basandoci sul seguente teorema ([LD05]). Teorema 15.6 Per un problema di controllo lineare con Lagrangiana stabilizzata Lsh (Eq.(15.95) e Eq.(15.96)), l’errore di discretizzazione al passo j dell’algoritmo iterativo di ottimizzazione si può scrivere come (j)
εD =
1 1 ( δu(pj , uj ), uj − ujh ) + ∇Lsh(xjh ) · (xj − xjh ) + Λh (xjh ), (15.104) 2 2
dove xjh = (yhj , pjh, ujh ) è l’approssimazione di Galerkin–elementi finiti lineari e Λh (xjh ) = Sh (xjh ) + sh (yhj , pjh; ujh ), essendo sh (whj , pjh ; ujh) il termine di stabilizzazione (15.97).
512
15 Introduzione al controllo ottimale per equazioni a derivate parziali
Applicando la (15.104) al nostro problema di controllo per le equazioni di diffusione– trasporto ed evidenziando i contributi sui singoli elementi della griglia K ∈ Th ([BKR00]), otteniamo la seguente stima 1 " (j) (j) p y y p u u |εD | ≤ ηD = { (ωK ρK + ωK ρK + ωK ρK ) + λK } , (15.105) 2 K∈Th
dove: −1
ρyK = R(yhj ; ujh )K + hK 2 r(yhj )∂K , 1
p 2 = (pj − pjh ) − δK Lad (pj − pjh ) + δK G (yj − yhj )K + hK pj − pjh ∂K , ωK −1
ρpK = Rad (pjh ; yhj )K + hK 2 r ad (pjh )∂K , 1
y 2 = (yj − yhj ) − δK L(yj − yhj )K + hK yj − yhj ∂K , ωK
ρuK = δuh (pjh , yhj ) + δu(pj )K = pj + pjh − δK Rad (pjh ; yhj )K , u ωK = uj − ujh K ,
λK = 2δK R(yhj ; ujh )K G(yhj )K , ⎧ j ⎪ 1 ∂y ⎪ h ⎪ − ν ⎨ , su ∂K\∂Ω, 2 ∂n r(yhj ) = ⎪ ⎪ ∂yj ⎪ ⎩ −ν h , su ∂K ∈ ΓN , ∂n ⎧ j ⎪ ∂p 1 ⎪ j h ⎪ ⎪ ⎨ − 2 ν ∂n + V · n ph , su ∂K\∂Ω, ad j # $ r (ph ) = ⎪ ∂pjh ⎪ j ⎪ ⎪ ⎩ − ν ∂n + V · n ph , su ∂K ∈ ΓN ; (15.106) ∂K rappresenta il bordo degli elementi K ∈ Th , mentre [·] indica il salto della quantità indicata tra le parentesi attraverso ∂K. Per utilizzare la stima (15.105) è necessario valutare yj , pj e uj . A tale scopo, sostituiamo yj e pj con le rispettive ricostruzioni quadratiche, (yhj )q e (pjh )q , mentre uj con (ujh )q = ujh −τ (δuh ((pjh )q , (yhj )q )−δuh (pjh , yhj )), secondo il metodo iterativo di discesa più ripida con τ j = τ . Consideriamo la seguente strategia adattiva integrata nell’algoritmo iterativo di ottimizzazione: 1. adottiamo il metodo di ottimizzazione iterativo fino a raggiungimento della tolleranza T olIT sull’errore di iterazione, utilizzando una griglia lasca; 2. adattiamo la griglia, bilanciando l’errore sugli elementi della griglia K ∈ Th , (j) secondo la stima ηD (15.105), fino a convergenza alla tolleranza dell’errore di discretizzazione T olD ; (j) (j) 3. rivalutiamo le variabili e εIT sulla nuova griglia adattata: se εIT ≥ T olIT , ritor(j) niamo al punto 1 e ripetiamo la procedura, mentre se εIT < T olIT , arrestiamo l’algoritmo.
15.12 Approssimazione numerica di un problema di controllo ottimale
y [km]
4
0
513
ΓN ΓD
1
U2 U3
−4 −5
D
U
Ω ΓN 0 x [km]
ΓN 5
Figura 15.3. Dominio per il problema di controllo della diffusione di un inquinante.
15.12.3 Un problema test: controllo delle emissioni di inquinanti (j)
Applichiamo la stima a posteriori dell’errore di discretizzazione ηD (15.105) e la strategia descritta in Sez. 15.12.2 ad un caso test numerico, con applicazione ad un problema di controllo delle emissioni inquinanti in atmosfera. Vorremmo poter regolare le emissioni di camini industriali al fine di mantenere la concentrazione di un determinato inquinante al disotto di una certa soglia in una determinata area di osservazione, per esempio una città. A questo scopo consideriamo un semplice modello di diffusione–trasporto [LD05], che rappresenta un modello quasi–3D: la concentrazione dell’inquinante y alla quota di emissione H è descritta dall’equazione di diffusione–trasporto (15.78), mentre la concentrazione al suolo è ottenuta mediante la funzione di proiezione g(x, y). I valori assunti dal coefficiente di diffusione ν(x, y) e dalla funzione g(x, y) dipendono dalla distanza dalla fonte inquinante e dalla specifica classe di stabilità atmosferica (per esempio stabile, neutra o instabile). In particolare, consideriamo il caso di condizioni atmosferiche neutre e, riferendoci al dominio riportato in Fig.15.3, assumiamo π π V = Vxˆ x + Vy ˆ y, con Vx = V cos( 30 ) e Vy = V sin( 30 ), essendo V = 2.5 m/s. Inoltre assumiamo che la portata massima di emissione dai camini sia umax = 800 g/s alla quota di emissione H = 100 m, per cui la concentrazione di inquinante (per esempio consideriamo SO2 ) nella zona di osservazione è più alta del livello desiderato zd = 100 μg/m3 . In (15.78) abbiamo considerato il caso di un controllo u distribuito !N su tutto il dominio Ω, mentre ora trattiamo il caso particolare per cui u = i=1 ui χi , dove χi è la funzione caratteristica del sottodominio Ui in cui è collocato il camino i–esimo. In Fig.15.4a riportiamo la concentrazione di inquinate al suolo corrispondente alla portata massima di emissione dai tre camini; in Fig.15.4b è rappresentata la concentrazione al suolo alla fine della procedura di ottimizzazione; osserviamo che i ratei di emissione “ottimali” diventano u1 = 0.0837 · umax , u2 = 0.0908 · umax e
514
15 Introduzione al controllo ottimale per equazioni a derivate parziali
0
500
1000
(a)
1500
0
500
1000
1500
(b)
Figura 15.4. Concentrazione di inquinante [μg/m3 ] al suolo prima (a) e dopo (b) la regolazione delle emissioni
(a)
(b) (j)
Figura 15.5. Griglie adattate (circa 14000 elementi) ottenute mediante ηD Eq.(15.105) (a) e wpu (j) (ηE ) (b) (analoga griglia per (ηE )(j) )
u3 = 1.00 · umax. In Fig.15.5 riportiamo un confronto tra griglie adattate; in Fig.15.5a (j) è presentata la griglia ottenuta mediante la precedente stima a posteriori di ηD , mentre in Fig.15.5b quelle ottenute mediante le seguenti stime [LD05] (che portano a risultati analoghi): ! 1. la stima in norma dell’energia (ηE )(j) = K∈Th hK ρyK ; * -1 ! ypu (j) 2. l’indicatore (ηE ) = K∈Th hK (ρyK )2 + (ρpK )2 + (ρuK )2 2 . Per la definizione dei simboli si veda l’equazione (15.106); i risultati sono confrontati con quelli ottenuti con una griglia molto fine di 80000 elementi. L’adattività guida(j) ta dall’indicatore dell’errore ηD tende a collocare elementi di griglia in quelle aree che sono più rilevanti per il problema di controllo ottimale. Questo fatto è confermato confrontando gli errori sul funzionale costo ed altre quantità rilevanti, per le griglie ottenute con diversi indicatori dell’errore, ma con lo stesso numero di elementi. Ad (j) esempio, l’indicatore ηD garantisce un errore sul funzionale costo di circa il 20% wpu (j) contro il 55% ottenuto con gli indicatori (ηE )(j) e (ηE ) con griglie con circa
15.12 Approssimazione numerica di un problema di controllo ottimale
515
4000 elementi, e del 6% contro il 15% con circa 14000 elementi. L’adattività guida(j) ta dall’indicatore dell’errore ηD consente grandi risparmi, a pari errore, in termini di numero di elementi di griglia, ovvero una risoluzione efficiente del problema di controllo.
Appendice A Richiami di analisi funzionale
In questa Appendice richiamiamo alcuni concetti usati estensivamente nel testo: funzionali e forme bilineari, distribuzioni, spazi di Sobolev, spazi Lp . Per una lettura più approfondita il lettore può riferirsi ad esempio a [Sal08],[Yos74], [Bre86], [LM68], [Ada75].
A.1 Funzionali e forme bilineari
Definizione A.1 Dato uno spazio funzionale V si dice funzionale su V un operatore che associa ad ogni elemento di V un numero reale: F : V → R. Spesso il funzionale si indica con la notazione F (v) = F, v, detta crochet. Un funzionale si dice lineare se è lineare rispetto all’argomento, ossia se F (λv + μw) = λF (v) + μF (w) ∀λ, μ ∈ R, ∀v, w ∈ V . Un funzionale lineare è limitato se ∃C > 0 tale che |F (v)| ≤ CvV
∀v ∈ V.
(A.1)
Un funzionale lineare e limitato su uno spazio di Banach (ovvero uno spazio normato e completo) è anche continuo. Definiamo quindi lo spazio V , detto duale di V , come l’insieme dei funzionali lineari e limitati su V ovvero V ={F : V → R t.c. F è lineare e limitato }, e lo equipaggiamo della norma · V definita come F V =
|F (v)| . v∈V \{0} vV sup
A. Quarteroni: Modellistica numerica per problemi differenziali, 4a edizione c Springer-Verlag Italia, Milano 2008
(A.2)
518
A Richiami di analisi funzionale
È evidente quindi che la costante C che compare in (A.1) è maggiore o uguale a F V . Vale il seguente teorema, detto di identificazione o di rappresentazione ([Yos74]) Teorema A.1 (di rappresentazione di Riesz) Sia H uno spazio di Hilbert munito di un prodotto scalare (·, ·)H . Per ogni funzionale lineare e limitato f su H esiste un unico elemento xf ∈ H tale che f(y) = (y, xf )H
∀y ∈ H
e
fH = xf H .
(A.3)
Reciprocamente, ogni elemento x ∈ H identifica un funzionale lineare e limitato fx su H tale che fx (y) = (y, x)H
∀y ∈ H
e
fx H = xH .
(A.4)
Se H è uno spazio di Hilbert, la totalità H dei funzionali lineari e limitati su H costituisce anch’esso uno spazio di Hilbert. Inoltre, grazie al Teorema A.1, esiste una trasformazione biiettiva ed isometrica (ovvero che preserva la norma) f ↔ xf tra H e H grazie alla quale H e H possono essere identificati in quanto insiemi (ma non in quanto spazi vettoriali). Possiamo indicare questa trasformazione come segue: ΛH : H → H , Λ−1 H : H → H,
x → fx = ΛH x f → xf = Λ−1 H x
(A.5)
Introduciamo ora la nozione di forma bilineare. Definizione A.2 Dato uno spazio funzionale normato V si dice forma un’applicazione a che associa ad ogni coppia di elementi di V un numero reale a : V × V → R. Una forma si dice: bilineare se è lineare rispetto ad entrambi i suoi argomenti ovvero se a(λu + μw, v) = λa(u, v) + μa(w, v)
∀λ, μ ∈ R, ∀u, v, w ∈ V,
a(u, λw + μv) = λa(u, v) + μa(u, w) ∀λ, μ ∈ R, ∀u, v, w ∈ V ; continua se ∃M > 0 tale che |a(u, v)| ≤ M uV vV
∀u, v ∈ V ;
(A.6)
simmetrica se a(u, v) = a(v, u) ∀u, v ∈ V ;
(A.7)
A.2 Differenziazione in spazi lineari
519
positiva se a(v, v) > 0
∀v ∈ V ;
(A.8)
coerciva se ∃α > 0 tale che a(v, v) ≥ αv2V
∀v ∈ V.
(A.9)
Definizione A.3 Siano X e Y due spazi di Hilbert. Si dice che X è contenuto in Y con iniezione continua se esiste una costante C tale che wY ≤ CwX , ∀w ∈ X . Inoltre X è denso in Y se ogni elemento appartenente a Y può essere ottenuto come limite, nella norma · Y , di una successione di elementi di X . Dati due spazi di Hilbert V e H, tali che V ⊂ H, l’iniezione di V in H sia continua ed inoltre V sia denso in H, si ha che H è sottospazio di V , il duale di V, e vale V ⊂ H H ⊂ V .
(A.10)
Lo spazio H rappresenta tipicamente lo spazio funzionale del termine forzante f dell’equazione di stato (15.1) e, talvolta, quello in cui si cerca il controllo u. Per problemi ellittici, tipicamente gli spazi V e H saranno scelti rispettivamente come H 1 (Ω) (o un suo sottospazio, H01 (Ω) o HΓ1D (Ω)) e L2 (Ω). Definizione A.4 Un operatore lineare e limitato (dunque continuo) T tra due spazi funzionali X e Y, si dice isomorfo se mette in corrispondenza biunivoca gli elementi degli spazi X e Y ed in più esiste il suo inverso T −1 . Se vale anche X ⊂ Y, tale isomorfismo si dice canonico.
Definizione A.5 Una forma n : V × V → R si dice simmetrica definita positiva se valgono: • n(φ, ψ) = n(ψ, φ) ∀φ, ψ ∈ V, • n(φ, φ) > 0 ∀φ ∈ V.
A.2 Differenziazione in spazi lineari In questa sezione sono brevemente riportati i concetti di differenziabilità e derivazione per applicazioni su spazi funzionali lineari; per approfondimenti in materia, così come per l’estensione dei concetti a casi più generali, si veda [KF89].
520
A Richiami di analisi funzionale
Si inizi considerando la nozione di differenziale forte o di Fréchet: Definizione A.6 Siano X e Y due spazi normati e F un’applicazione di X in Y , definita su un insieme aperto E ⊂ X; tale applicazione si dice differenziabile in x ∈ E se esiste un operatore lineare e limitato Lx : X → Y tale per cui: ∀ε > 0, ∃δ > 0 : ||F (x+h)−F (x)−Lxh||Y ≤ ε ||h||X ∀h ∈ X con ||h||X < δ. L’espressione Lx h (oppure Lx [h]), che genera un elemento in Y per ogni h ∈ X, si dice differenziale forte (o di Fréchet) dell’applicazione F in x ∈ E; l’operatore Lx si dice derivata forte dell’applicazione F in x e viene indicata in genere come F (x). Dalla definizione si deduce che un’applicazione differenziabile in x è anche continua in x. Qui di seguito sono riportate alcune proprietà che derivano da questa definizione: • se F (x) = y0 = costante, allora F (x) è l’operatore nullo, ovvero Lx [h] = 0, ∀h ∈ X; • la derivata forte di un’applicazione lineare continua F (x) è l’applicazione stessa, ovvero F (x) = F (x); • date due applicazioni continue F e G di X in Y , se queste sono differenziabili in x0 , lo sono anche le applicazioni F + G e αF , con α ∈ R, e valgono: (F + G) (x0 ) = F (x0 ) + G (x0 ),
(αF ) (x0 ) = αF (x0 ). Si consideri ora la seguente definizione di derivata debole (o di Gâteaux): Definizione A.7 Sia F un’applicazione di X in Y ; si dice differenziale debole (o di Gâteaux) dell’applicazione F in x il limite: DF (x, h) = lim
t→0
F (x + th) − F (x) t
∀h ∈ X,
dove t ∈ R e la convergenza del limite va intesa rispetto alla norma dello spazio Y . Se il differenziale debole DF (x, h) è lineare (in generale non lo è) lo si può esprimere come: DF (x, h) = FG (x)h ∀h ∈ X. L’operatore lineare e limitato FG (x) si dice derivata debole (o di Gâteaux) di F.
A.3 Richiami sulle distribuzioni
521
Vale inoltre: F (x + th) − F (x) = tFG (x)h + o(t)
∀h ∈ X,
che implica: ||F (x + th) − F (x) − tFG (x)h|| = o(t)
∀h ∈ X.
Si osservi che se un’applicazione F ha derivata forte, allora questa ammette derivata debole, coincidente con quella forte; il viceversa invece non è vero in generale. Tuttavia vale il seguente teorema (si veda [KF89]): Teorema A.2 Se in un intorno U (x0 ) di x0 esiste la derivata debole FG (x) dell’applicazione F ed in tale intorno essa è una funzione di x, continua in x0 , allora esiste in x0 la derivata forte F (x0 ) e questa coincide con quella debole, F (x0 ) = FG (x0 ).
A.3 Richiami sulle distribuzioni In questa sezione vogliamo richiamare le principali definizioni relative alla teoria delle distribuzioni e agli spazi di Sobolev, utili per una migliore comprensione degli argomenti introdotti nel testo. Per un approfondimento si vedano le monografie [Bre86], [Ada75] e [LM68]. Sia Ω un insieme aperto di Rn e f : Ω → R. Definizione A.8 Per supporto di una funzione f si intende la chiusura dell’insieme in cui la funzione stessa assume valori diversi da zero supp f = {x : f(x) = 0}. Una funzione f : Ω → R si dirà a supporto compatto in Ω se esiste un insieme compatto1 K ⊂ Ω tale che supp f ⊂ K. Possiamo a questo punto dare la seguente definizione: Definizione A.9 D(Ω) è lo spazio delle funzioni infinitamente derivabili ed a supporto compatto in Ω, ovvero D(Ω)={f ∈ C ∞ (Ω) : ∃K ⊂ Ω, compatto : supp f ⊂ K}. 1
Essendo Ω ⊂ Rn , un compatto è un insieme chiuso e limitato
522
A Richiami di analisi funzionale
Introduciamo la notazione a multi-indice per le derivate. Sia α = (α1 , α2, . . . , αn ) una ennupla di numeri interi non negativi (detta multi-indice) e sia f : Ω → R, con Ω ⊂ Rn , una funzione. Ne indicheremo le derivate con la notazione Dα f(x) =
∂ |α|f(x) , n . . . ∂xα n
α2 1 ∂xα 1 ∂x2
essendo |α| = α1 + α2 + . . . + αn la lunghezza del multi-indice (essa coincide con l’ordine di derivazione). Nello spazio D(Ω) si può introdurre la seguente nozione di convergenza: Definizione A.10 Data una successione {φk } di funzioni di D(Ω) diremo che esse convergono in D(Ω) ad una funzione φ e scriveremo φk −→ φ se: D(Ω)
1. i supporti delle funzioni φk sono tutti contenuti in un compatto fissato K di Ω; 2. si ha convergenza uniforme delle derivate di tutti gli ordini, cioè Dα φk −→ Dα φ
∀α ∈ Nn .
Siamo ora in grado di definire lo spazio delle distribuzioni su Ω: Definizione A.11 Sia T una trasformazione lineare da D(Ω) in R e denotiamo con T, ϕ il valore assunto da T sull’elemento ϕ ∈ D(Ω). Diciamo che T è continua se lim T, ϕk = T, ϕ, k→∞
{ϕk }∞ k=1 ,
dove è una successione arbitraria di D(Ω) che converge verso ϕ ∈ D(Ω). Si chiama distribuzione su Ω una qualunque trasformazione T da D(Ω) in R lineare e continua. Lo spazio delle distribuzioni su Ω è quindi dato dallo spazio D (Ω), duale di D(Ω). L’azione di una distribuzione T ∈ D (Ω) su una funzione φ ∈ D(Ω) verrà sempre indicata attraverso la notazione del crochet: T, φ. Esempio A.1 Sia a un punto dell’insieme Ω. La delta di Dirac relativa al punto a e denotata con δa , è la distribuzione definita dalla relazione seguente δa , φ = φ(a)
∀φ ∈ D(Ω).
Per un altro significativo esempio si veda l’Esercizio 4. Anche in D (Ω) si introduce una nozione di convergenza:
A.3 Richiami sulle distribuzioni
523
Definizione A.12 Una successione di distribuzioni {Tn } converge in D (Ω) ad una distribuzione T se risulta: lim Tn , φ = T, φ
n→∞
∀φ ∈ D(Ω).
A.3.1 Le funzioni a quadrato sommabile Consideriamo lo spazio delle funzioni a quadrato sommabile su Ω ⊂ Rn , L2 (Ω)={f : Ω → R t.c.
f(x)2 dΩ < +∞}. Ω
Esso è uno spazio di Hilbert, il cui prodotto scalare è (f, g)L2 (Ω) = f(x)g(x) dΩ. Ω
La norma in L2 (Ω) è quella associata al prodotto scalare ovvero 9 fL2 (Ω) = (f, g)L2 (Ω) . Ad ogni funzione f ∈ L2 (Ω) si associa una distribuzione Tf ∈ D (Ω) definita nel seguente modo: Tf , φ= f(x)φ(x) dΩ ∀φ ∈ D(Ω). Ω
Vale il seguente risultato: Lemma A.1 Lo spazio D(Ω) è denso in L2 (Ω). Grazie ad esso è possibile dimostrare che la corrispondenza fra f e Tf è iniettiva, e dunque si può identificare L2 (Ω) con un sottoinsieme di D (Ω), scrivendo: L2 (Ω) ⊂ D (Ω). Esempio A.2 Sia Ω = R e si indichi con χ[a,b] (x) la funzione caratteristica dell’intervallo [a, b], così definita: 1 se x ∈ [a, b], χ[a,b] (x) = 0 altrimenti. Si consideri poi la successione di funzioni fn (x) =
n χ (x) 2 [−1/n,1/n]
(si veda la Fig. A.1).
524
A Richiami di analisi funzionale
n
n/2
-1/n
x
1/n
-1/n
1/n
x
Figura A.1. La funzione caratteristica dell’intervallo [−1/n, 1/n] (a sinistra) e la funzione triangolare fn a destra Vogliamo verificare che la successione {Tfn } delle distribuzioni ad esse associate converge alla distribuzione δ0 , ovvero la δ di Dirac relativa all’origine. Infatti, per ogni funzione φ ∈ D(Ω), si ha: Tfn , φ = R
n fn (x)φ(x) dx = 2
1/n
n [Φ(1/n) − Φ(−1/n)], 2
φ(x) dx =
−1/n
essendo Φ una primitiva di φ. Se ora poniamo h = 1/n, possiamo scrivere Φ(h) − Φ(−h) . 2h Quando n → ∞, h → 0 e quindi, per definizione di derivata, si ha Tfn , φ =
Φ(h) − Φ(−h) → Φ (0). 2h Per costruzione Φ = φ e perciò Tfn , φ → φ(0) = δ0 , φ, avendo usato la definizione di δ0 (si veda l’Esempio A.1). Lo stesso limite si ottiene prendendo una successione di funzioni triangolari (si veda la Fig. A.1) o gaussiane, anziché rettangolari (purché siano sempre ad area unitaria). Facciamo infine notare come nelle metriche usuali tali successioni convergano invece ad una funzione quasi ovunque nulla.
A.3.2 Derivazione nel senso delle distribuzioni Sia T ∈ D (Ω) dove Ω ⊂ Rn . Le sue derivate nel senso delle distribuzioni sono definite nel modo seguente
∂T ∂φ , φ = −T, ∂xi ∂xi
∀φ ∈ D(Ω),
i = 1, . . . , n.
In maniera analoga si definiscono le derivate successive. Precisamente, per ogni multiindice α = (α1 , α2, . . . , αn ), si ha: Dα T, φ = (−1)|α| T, Dα φ
∀φ ∈ D(Ω).
A.3 Richiami sulle distribuzioni
525
Figura A.2. La funzione di Heaviside a sinistra. A destra, la funzione dell’Esempio A.6 con k = 1/3. Si noti il punto all’infinito nell’origine Esempio A.3 La funzione di Heaviside su R (si veda la Fig. A.2) è definita come 1 se x > 0, H(x) = 0 se x ≤ 0. La derivata della distribuzione ad essa associata è la distribuzione di Dirac relativa all’origine (si veda l’Esempio A.1); identificando la funzione H con la distribuzione TH ad essa associata scriveremo dunque: dH = δ0 . dx
La derivazione nell’ambito delle distribuzioni gode di alcune proprietà importanti che non risultano valide nell’ambito più ristretto della derivazione in senso classico per le funzioni. Proprietà A.1 L’insieme D (Ω) è chiuso rispetto all’operazione di derivazione (nel senso delle distribuzioni), cioè ogni distribuzione è infinitamente derivabile.
Proprietà A.2 La derivazione in D (Ω) è un’operazione continua, nel senso che se Tn −→ T , per n → ∞, allora risulta anche Dα Tn −→ Dα T , per n → ∞, D (Ω)
per ogni multi-indice α.
D (Ω)
Notiamo infine come la derivazione nel senso delle distribuzioni sia un’estensione della derivazione classica per le funzioni, in quanto se la funzione f è derivabile con continuità (in senso classico) su Ω, allora la derivata della distribuzione Tf ad essa associata coincide con la distribuzione Tf corrispondente alla derivata classica (si veda l’Esercizio 7). In queste note identificheremo le funzioni f di L2 (Ω) con le corrispondenti distribuzioni Tf di D (Ω), scrivendo ancora f in luogo di Tf . Similmente quando parleremo di derivate ci riferiremo sempre alle derivate nel senso delle distribuzioni.
526
A Richiami di analisi funzionale
A.4 Gli spazi di Sobolev Nel paragrafo A.3.1 abbiamo notato che le funzioni di L2 (Ω) sono particolari distribuzioni. Non è detto, però, che anche le loro derivate (nel senso delle distribuzioni) siano ancora delle funzioni di L2 (Ω), come mostra il seguente esempio. Esempio A.4 Sia Ω ⊂ R e sia [a, b] ⊂ Ω. Allora la funzione caratteristica dell’intervallo [a, b] (si veda l’Esempio A.2) appartiene a L2 (Ω), mentre la sua derivata dχ[a,b] /dx = δa − δb (si veda l’Esempio A.3) non vi appartiene.
È, quindi, ragionevole introdurre gli spazi seguenti: Definizione A.13 Sia Ω un aperto di Rn e k un intero positivo. Si chiama spazio di Sobolev di ordine k su Ω lo spazio formato dalla totalità delle funzioni di L2 (Ω) aventi tutte le derivate (distribuzionali) fino all’ordine k appartenenti ad L2 (Ω): Hk (Ω)={f ∈ L2 (Ω) : Dα f ∈ L2 (Ω), ∀α : |α| ≤ k}. Risulta, ovviamente, Hk+1 (Ω) ⊂ Hk (Ω) per ogni k ≥ 0 e questa immersione è continua. Lo spazio L2 (Ω) viene talvolta indicato come H0 (Ω). Gli spazi di Sobolev Hk (Ω) risultano essere spazi di Hilbert rispetto al prodotto scalare seguente: " (f, g)k = (Dαf)(Dαg) dΩ, |α|≤k Ω
da cui discendono le norme fHk (Ω) =
(f, f)k =
"
(Dαf)2 dΩ.
|α|≤k Ω
Si definiscono infine le seminorme |f|Hk (Ω) =
"
(Dαf)2 dΩ,
|α|=k Ω
di modo che la (A.11) diventa fHk (Ω) =
k " m=0
|f|2Hm (Ω) .
(A.11)
A.4 Gli spazi di Sobolev
527
Esempio A.5 Per k = 1 si ha: (f, g)1
=
(f, g)H1 (Ω) =
f g dΩ + Ω
f 1
=
f H1 (Ω) =
Ω
f 2 dΩ +
Ω
|f |1
=
|f |H1(Ω) =
f g dΩ;
2
f dΩ =
! f 2L2 (Ω) + f 2L2 (Ω) ;
Ω
2
f dΩ = f L2 (Ω) .
Ω
A.4.1 Regolarità degli spazi Hk (Ω) Vogliamo ora porre in relazione l’appartenenza di una funzione ad uno spazio Hk (Ω) con le sue proprietà di continuità. Esempio A.6 Sia Ω ⊂ R2 un cerchio centrato nell’origine e di raggio r = 1. Allora la funzione seguente definita su Ω\{0}, rappresentata in Fig. A.2 a destra, " "k " " 1 " " f (x1 , x2 ) = "ln (A.12) " " x21 + x22 " con 0 < k < 1/2 appartiene ad H1 (Ω), ma presenta una singolarità nell’origine e dunque non è continua.
Non tutte le funzioni di H1 (Ω) sono dunque continue se Ω è un insieme aperto di R2 . In generale, vale il seguente risultato: Proprietà A.3 Se Ω è un aperto di Rn dotato di una frontiera “sufficientemente regolare”, allora Hk (Ω) ⊂ C m (Ω)
se k > m +
n . 2
In particolare, in una dimensione spaziale (n = 1) le funzioni di H1 (Ω) sono continue (esse sono in effetti assolutamente continue, si vedano [Sal08] e [Bre86]), mentre in due o tre dimensioni non lo sono necessariamente. Lo sono invece quelle di H2 (Ω). A.4.2 Lo spazio H10 (Ω) Se Ω è limitato, lo spazio D(Ω) non è denso in H1 (Ω). Si può allora dare la seguente definizione:
528
A Richiami di analisi funzionale
Definizione A.14 Si indica con H10 (Ω) la chiusura di D(Ω) nella topologia di H1 (Ω). Le funzioni di H10 (Ω) godono della seguente proprietà: Proprietà A.4 (Disuguaglianza di Poincaré) Sia Ω un insieme limitato di Rn ; allora esiste una costante CΩ tale che: vL2 (Ω) ≤ CΩ |v|H1(Ω)
∀v ∈ H10 (Ω).
(A.13)
Dimostrazione. Essendo Ω limitato possiamo sempre trovare una sfera SD = {x : |x − g| < D} di centro g e raggio D > 0, contenente Ω. Dato che D(Ω) è denso in H10 (Ω) basta dimostrare l’ineguaglianza per una funzione u ∈ D(Ω). Integrando per parti e sfruttando il fatto che div(x − g) = n u2L2 (Ω) = n−1 n · |u(x)|2 dΩ = −n−1 (x − g) · ∇(|u(x)|2 ) dΩ Ω Ω −1 −1 = −2n (x − g) · [u(x)∇u(x)] dΩ ≤ 2n x − gL∞(Ω) uL2 (Ω) uH1 (Ω) Ω
≤ 2n−1 DuL2 (Ω) uH1 (Ω) . Nel caso generale in cui v ∈ H10 (Ω) basterà costruire una successione ui ∈ D(Ω), i = 1, 2, . . . convergente a v nella norma di H1 (Ω), applicare la disuguaglianza ai membri della successione e passare al limite. Come conseguenza immediata si ha che: Proprietà A.5 La seminorma vH 1 (Ω) è sullo spazio H10 (Ω) una norma che risulta equivalente alla norma vH 1 (Ω) . Dimostrazione. Ricordiamo che due norme, · e ||| · |||, si dicono equivalenti se esistono due costanti positive c1 e c2 , tali che c1 |||v||| ≤ v ≤ c2 |||v||| ∀v ∈ V. Poiché v1 = | v |21 +v20 è evidente che | v |1 ≤ v1 . Viceversa, sfruttando la proprietà A.4, 9 9 2 | v |2 ≤ C ∗ | v | , v1 = | v |21 +v20 ≤ | v |21 +CΩ 1 Ω 1
da cui si deduce l’equivalenza delle due norme. In maniera del tutto analoga si definiscono gli spazi D(Ω) nella topologia di Hk (Ω).
Hk0 (Ω)
come la chiusura di
A.4 Gli spazi di Sobolev
529
A.4.3 Gli operatori di traccia Sia v ∈ H1 (Ω): le considerazioni svolte nella Sez. A.4.1 mostrano che non è semplice la definizione di “valore” di v sul bordo di Ω, valore che chiameremo la traccia di v su ∂Ω. Si sfrutta il seguente risultato: Teorema A.3 (di traccia) Sia Ω un aperto limitato di Rn dotato di una frontiera ∂Ω “sufficientemente regolare” e k ≥ 1. Esiste una e una sola applicazione lineare e continua γ0 : Hk (Ω) → L2 (∂Ω), tale per cui γ0 v = v|∂Ω , ∀v ∈ H k ∩ C 0 (Ω). γ0 v è detta traccia di v su ∂Ω. La continuità di γ0 implica che esista una costante C > 0 tale che γ0 vL2 (Γ ) ≤ CvHk (Ω) . Il risultato è ancora valido se si considera l’operatore di traccia γΓ : Hk (Ω) → L2 (Γ ) dove Γ è una porzione sufficientemente regolare ed a misura non nulla della frontiera di Ω. Questo risultato permette di dare un senso alle condizioni al contorno di Dirichlet quando si ricerchino soluzioni v in Hk (Ω), con k ≥ 1, purchè si interpreti il valore al bordo nel senso della traccia. Osservazione A.1 L’ operatore di traccia γΓ non è suriettivo su L2 (Γ ). In particolare, l’insieme delle funzioni di L2 (Γ ) che sono tracce di funzioni di H1 (Ω) costituisce un sottospazio di L2 (Γ ) denotato con H1/2 (Γ ) che risulta caratterizzato da proprietà di regolarità intermedie tra quelle di L2 (Γ ) e quelle di H1 (Γ ). Più in generale, per ogni k ≥ 1 esiste un’unica applicazione lineare e continua γ0 : Hk (Ω) → Hk−1/2 (Γ ) tale che γ0 v = v|Γ per ogni v ∈ Hk (Ω) ∩ C 0 (Ω). • Gli operatori di traccia consentono un’interessante caratterizzazione dello spazio H10 (Ω) definito precedentemente, in virtù della proprietà seguente: Proprietà A.6 Sia Ω un aperto limitato di Rn dotato di una frontiera ∂Ω sufficientemente regolare e sia γ0 l’operatore di traccia da H1 (Ω) in L2 (∂Ω). Si ha allora H10 (Ω) = Ker(γ0 ) = {v ∈ H1 (Ω) : γ0 v = 0} In altre parole, H10 (Ω) è formato dalle funzioni di H1 (Ω) aventi traccia nulla sul bordo. Analogamente definiamo H20 (Ω) come il sottospazio delle funzioni di H2 (Ω) la cui traccia, insieme con la traccia della derivata normale, sono nulle al bordo.
530
A Richiami di analisi funzionale
A.5 Lo spazio L∞(Ω) e gli spazi Lp(Ω) con 1 ≤ p < ∞ Lo spazio L2 (Ω) può essere generalizzato nel modo seguente: per ogni numero reale p con 1 ≤ p < ∞ si possono definire gli spazi Lp (Ω)={v : Ω → R t.c. |v(x)|p dΩ < ∞}. Ω
Essi sono spazi di Banach con norma data da ⎛ ⎞1/p vLp (Ω) = ⎝ |v(x)|p dΩ ⎠ . Ω p
Più precisamente, L (Ω) è lo spazio di classi di equivalenza di funzioni misurabili, essendo la relazione di equivalenza da intendersi nel senso seguente: v è equivalente a w se e solo se v e w sono uguali quasi ovunque ovvero differiscono al più su di un sottoinsieme di Ω di misura nulla. Ricordiamo che la notazione “quasi ovunque in Ω” (in breve, q.o. in Ω) significa esattamente “per tutti gli x ∈ Ω, salvo al più un insieme di punti di misura nulla”. Definiamo inoltre lo spazio L1loc (Ω)={f : Ω → R, f|K ∈ L1 (K) per ogni compatto K ⊂ Ω}. Se 1 ≤ p < ∞, allora D(Ω) è denso in Lp (Ω). Nel caso in cui p = ∞, si definisce L∞ (Ω) lo spazio delle funzioni che sono limitate q.o. in Ω. La sua norma si definisce come segue vL∞ (Ω)
=inf{C ∈ R : |v(x)| ≤ C, q.o. in Ω} = sup{|v(x)|, q.o. in Ω}.
(A.14)
Per 1 ≤ p ≤ ∞, gli spazi Lp (Ω), muniti della norma · Lp (Ω) , sono spazi di Banach (ovvero spazi vettoriali normati e completi). Ricordiamo la disuguaglianza di Hölder: date v ∈ Lp (Ω) e w ∈ Lp (Ω) con 1 ≤ p ≤ ∞ e p1 + p1 = 1, allora vw ∈ L1 (Ω) e |v(x) w(x)|dΩ ≤ vLp (Ω) wLp (Ω) .
(A.15)
Ω
L’indice p si chiama coniugato di p. Se 1 < p < ∞, allora Lp (Ω) è uno spazio riflessivo: una forma lineare e continua ϕ : Lp (Ω) → R può essere identificata ad un elemento di Lp (Ω), ovvero esiste un unico g ∈ Lp (Ω) tale che ϕ(f) = f(x)g(x) dΩ ∀ f ∈ Lp (Ω). Ω
A.6 Esercizi
531
Se p = 2, allora p = 2. Pertanto L2 (Ω) è uno spazio di Hilbert (ovvero uno spazio di Banach munito di prodotto scalare f(x)g(x)dΩ). In particolare la disuguaglianza Ω
di Hölder diventa: (v, w)L2 (Ω) ≤ vL2 (Ω) wL2(Ω)
∀ v, w ∈ L2 (Ω) ,
(A.16)
ed è nota come disuguaglianza di Cauchy-Schwarz. Vale inoltre la disuguaglianza vwL2 (Ω) ≤ vL4 (Ω) wL4(Ω)
∀v, w ∈ L4 (Ω).
(A.17)
Se Ω ⊂ Rn è un dominio limitato, se 1 ≤ p ≤ q ≤ ∞ Lq (Ω) ⊂ Lp (Ω) ⊂ L1 (Ω) ⊂ L1loc (Ω) . Se Ω non è limitato, si ha sempre Lp (Ω) ⊂ L1loc (Ω)
∀p≥1.
Infine, se Ω ⊂ Rn e, se n > 1, il bordo ∂Ω è “poligonale” (più in generale, a continuità lipschitziana), abbiamo: se 0 < 2s < n allora Hs (Ω) ⊂ Lq (Ω), ∀q t.c. 1 ≤ q ≤ q ∗ con q ∗ = 2n/(n − 2s); se 2s = n
allora Hs (Ω) ⊂ Lq (Ω), ∀q t.c. 1 ≤ q < ∞;
se 2s > n
allora Hs (Ω) ⊂ C 0 (Ω). (A.18)
Tali inclusioni sono continue.
A.6 Esercizi 1. Sia Ω = (0, 1) e, per α > 0, f(x) = x−α . Per quale α si ha f ∈ Lp (Ω), 1 ≤ p < ∞ ? Esiste un α > 0 per cui f ∈ L∞ (Ω) ? 1 1 2. Sia Ω = (0, ) e f(x) = . Mostrare che f ∈ L1 (Ω). 2 x(ln x)2 3. Si dimostri per quali α ∈ R si ha che f ∈ L1loc (0, 1), essendo f(x) = x−α . 4. Sia u ∈ L1loc (Ω). Si definisca Tu ∈ D (Ω) come segue: Tu , ϕ =
ϕ(x)u(x) dΩ. Ω
Si verifichi che Tu è effettivamente una distribuzione, e che l’applicazione u → Tu è iniettiva. Si può dunque identificare u con Tu , e concludere osservando che L1loc (Ω) ⊂ D (Ω).
532
A Richiami di analisi funzionale
5. Mostrare che la funzione definita come segue: 2
f(x) = e1/(x −1) se x ∈ (−1, 1) f(x) = 0 se x ∈] − ∞, −1] ∪ [1, +∞[ appartiene a D(R). 6. Si dimostri che per la funzione f definita in (A.12) si ha r f2H1 (Ω)
r |logs| s ds + 2π k 2k
= 2π
2 2
0
1 |logs|2k−2 ds s
0
e che dunque sta in H1 (Ω) purché 0 < k < 12 .
dϕ 7. Sia ϕ ∈ C 1 (−1, 1). Si mostri che la derivata fatta in senso classico è uguadx dϕ nel senso delle distribuzioni, dopo aver osservato che C 0 (−1, 1) ⊂ le a dx L1loc (−1, 1) ⊂ D (−1, 1). 8. Si dimostri che, se Ω = (a, b), la disuguaglianza di Poincaré (A.13) è vera con (b − a) CΩ = √ . 2 [Soluzione: osservare che, grazie alla disuguaglianza di Cauchy-Schwarz si ha x v(x) = a
⎛ v (t)dt ≤ ⎝
x a
⎞1/2 ⎛ [v (t)]2 dt⎠
⎝
x a
⎞1/2 1dt⎠
≤
√
x − av L2 (a,b)].
Appendice B Algoritmi di risoluzione di sistemi lineari
Un sistema di m equazioni lineari in n incognite è un insieme di relazioni algebriche della forma n " aij xj = bi , i = 1, . . . , m (B.1) j=1
essendo xj le incognite, aij i coefficienti del sistema e bi i termini noti. Il sistema (B.1) verrà più comunemente scritto nella forma matriciale Ax = b,
(B.2)
avendo indicato con A = (aij ) ∈ R la matrice dei coefficienti, con b=(bi ) ∈ Rm il vettore termine noto e con x=(xi ) ∈ Rn il vettore incognito. Si dice soluzione di (B.2) una qualsiasi n-upla di valori xi che verifichi la (B.1). Nelle prossime sezioni richiamiamo alcune tecniche numeriche per la risoluzione di (B.2) nel caso in cui m = n; supporremo ovviamente che A sia non-singolare, cioè che det(A) = 0. Rimandiamo per ulteriori approfondimenti a [QSS08], Cap. 3 e 4, e a [Saa96]. Facciamo presente che risolvere un sistema lineare con la regola di Cramer richiede un costo computazionale dell’ordine di (n + 1)! operazioni, del tutto inaccettabile in quanto anche su calcolatori in grado di effettuare 109 operazioni aritmetiche (nel seguito indicate con flops, floating point operations) al secondo, si impiegherebbero 9.6 · 1047 anni per risolvere un sistema lineare di sole 50 equazioni. Per questo motivo sono stati sviluppati metodi numerici alternativi alla regola di Cramer, che vengono detti diretti se conducono alla soluzione del sistema con un numero finito di operazioni, od iterativi se ne richiedono (teoricamente) un numero infinito. m×n
B.1 Metodi diretti La risoluzione di un sistema lineare può essere effettuata tramite il metodo di eliminazione di Gauss (MEG) nel quale il sistema di partenza, Ax=b, viene ricondotto in n passi ad un sistema equivalente (avente cioè la stessa soluzione) della forma A. Quarteroni: Modellistica numerica per problemi differenziali, 4a edizione c Springer-Verlag Italia, Milano 2008
534
B Algoritmi di risoluzione di sistemi lineari
A(n)x = b(n) dove A(n) = U è una matrice triangolare superiore non singolare e b(n) è un nuovo termine noto. Quest’ultimo sistema potrà essere risolto, con un costo computazionale dell’ordine di n2 operazioni, con il seguente algoritmo delle sostituzioni all’indietro: (n)
xn =
bn , unn⎛
⎞ n " 1 ⎝ (n) uij xj ⎠ , i = n − 1, . . . , 1. xi = bi − uii
(B.3)
j=i+1
Indicando con A(1) x = b(1) il sistema originario, nel MEG il passaggio dalla matrice A(k) alla matrice A(k+1) si ottiene tramite le seguenti formule (k)
mik = (k+1)
aij
(k+1)
bi
aik
, i = k + 1, . . . , n, (k) akk (k) (k) = aij − mik akj , i, j = k + 1, . . . , n (k)
= bi
(k)
− mik bk ,
(B.4)
i = k + 1, . . . , n. (k+1)
con i = k e j = k + 1, . . ., n Facciamo notare che in questo modo gli elementi aij (k+1) risultano nulli. La matrice A ha pertanto l’aspetto indicato in Fig. B.1. Gli ele(k) menti mik sono detti i moltiplicatori, mentre i denominatori akk sono gli elementi pivotali. Ovviamente il MEG può essere condotto a buon fine solo se gli elementi pivotali risultano tutti non nulli. Matrici per le quali ciò avviene certamente sono, ad esempio, quelle simmetriche definite positive e le matrici a dominanza diagonale stretta. In generale occorrerà ricorrere alla tecnica di pivotazione (pivoting), ovvero alla scambio di righe (e/o colonne) di A(k), in modo da assicurare che l’elemento (k) pivotale akk sia non nullo. Per portare a termine l’eliminazione di Gauss servono 2(n − 1)n(n + 1)/3 + n(n − 1) flops (floating point operations), cui vanno aggiunti n2 flops per risolvere il sistema triangolare U x = b(n) con il metodo delle sostituzioni all’indietro. Servono dunque circa (2n3 /3 + 2n2 ) flops per risolvere il sistema lineare attraverso il MEG. Più semplicemente, trascurando i termini di ordine inferiore rispetto a n, si può dire che il processo di eliminazione gaussiana richiede 2n3 /3 flops. Si può verificare che il MEG equivale a fattorizzare la matrice A ossia a scrivere A come il prodotto LU di due matrici. La matrice U, triangolare superiore, coincide con la matrice A(n) ottenuta al termine del processo di eliminazione. La matrice L è triangolare inferiore, i suoi elementi diagonali sono pari a 1 mentre sono uguali ai moltiplicatori nella restante porzione triangolare inferiore. Una volta note le matrici L ed U, la risoluzione del sistema lineare di partenza comporta semplicemente la risoluzione (in sequenza) dei due sistemi triangolari Ly = b, Ux = y.
B.1 Metodi diretti
k
535
(k)
akk
0
k Figura B.1. La matrice A
(k)
nel metodo di eliminazione di Gauss
Ovviamente il costo computazionale del processo di fattorizzazione è lo stesso di quello richiesto dal MEG. I vantaggi di questa reinterpretazione sono palesi: poiché L ed U dipendono dalla sola A e non dal termine noto, la stessa fattorizzazione può essere utilizzata per risolvere diversi sistemi lineari sempre di matrice A, ma con termine noto b variabile (si pensi ad esempio alla discretizzazione di un problema parabolico lineare nel quale ad ogni passo temporale è necessario risolvere un sistema sempre con la stessa matrice, ma diverso termine noto). Di conseguenza, essendo il costo computazionale concentrato nella procedura di eliminazione (circa 2n3 /3flops), si ha in questo modo una considerevole riduzione del numero di operazioni qualora si vogliano risolvere più sistemi lineari aventi la stessa matrice. Se A è una matrice simmetrica definita positiva, la fattorizzazione LU può essere convenientemente specializzata. Esiste infatti un’unica matrice triangolare superiore H con elementi positivi sulla diagonale tale che A = HT H.
(B.5)
La (B.5) è la cosiddetta fattorizzazione di Cholesky. Gli elementi hij di HT sono dati √ dalle formule seguenti: h11 = a11 e, per i = 2, . . . , n # aij −
hij = # hii =
j−1 "
$ hik hjk /hjj , j = 1, . . . , i − 1,
k=1 i−1 "
aii − h2ik k=1
$1/2 .
Questo algoritmo richiede circa n3 /3 flops con un risparmio, rispetto alla fattorizzazione LU, di un fattore 2 nel tempo di calcolo, e circa metà della memoria.
536
B Algoritmi di risoluzione di sistemi lineari
Consideriamo ora il caso particolare di un sistema lineare con matrice tridiagonale non singolare A della forma ⎤ ⎡ a1 c 1 ⎥ ⎢ ⎥ ⎢ b 2 a2 . . . ⎥ ⎢ A=⎢ ⎥. . .. ⎢ cn−1 ⎥ ⎦ ⎣
0
0
bn
an
In tal caso le matrici L ed U della fattorizzazione LU di A sono due matrici bidiagonali del tipo ⎡ ⎤ ⎡ ⎤ α 1 c1 1 ⎢ ⎥ . ⎢ β2 1 ⎥ ⎢ ⎥ ⎢ α2 . . ⎥ ⎢ ⎥ ⎥ , U=⎢ . . L=⎢ ⎥. .. .. .. ⎢ ⎥ ⎢ . ⎣ ⎦ cn−1 ⎥ ⎣ ⎦ βn 1 αn
0
0
0
0
I coefficienti αi e βi incogniti, possono essere calcolati facilmente tramite le seguenti equazioni: α1 = a1 , βi =
bi , αi = ai − βi ci−1 , i = 2, . . . , n. αi−1
Questo algoritmo prende il nome di algoritmo di Thomas e può essere visto come una particolare forma della fattorizzazione LU senza pivotazione.
B.2 Metodi iterativi I metodi iterativi mirano a costruire la soluzione x di un sistema lineare come limite di una successione {x(n)} di vettori. Per ottenere il singolo elemento della successione è richiesto il calcolo del residuo r(n) = b − Ax(n) del sistema. Nel caso in cui la matrice sia piena e di ordine n, il costo computazionale di un metodo iterativo è dunque dell’ordine di n2 operazioni per ogni iterazione, costo che deve essere confrontato con le 2n3 /3 operazioni richieste approssimativamente da un metodo diretto. Di conseguenza, i metodi iterativi sono competitivi con i metodi diretti soltanto se il numero di iterazioni necessario per raggiungere la convergenza (nell’ambito di una tolleranza fissata) è indipendente da n o dipende da n in modo sublineare. Altre considerazioni nella scelta tra un metodo iterativo ed un metodo diretto entrano in gioco non appena la matrice è sparsa. Una strategia generale per costruire metodi iterativi è basata su una decomposizione additiva, detta splitting, della matrice A della forma A=P−N, dove P e N sono due matrici opportune e P è non singolare. Per ragioni che risulteranno evidenti nel seguito, P è detta anche matrice di precondizionamento o precondizionatore.
B.2 Metodi iterativi
537
Precisamente, assegnato x(0), si ottiene x(k) per k ≥ 1 risolvendo i nuovi sistemi Px(k+1) = Nx(k) + b,
k≥0
(B.6)
o, equivalentemente, x(k+1) = Bx(k) + P−1 b,
k≥0
(B.7)
avendo indicato con B = P−1 N la matrice di iterazione. Siamo interessati a metodi iterativi convergenti ossia tali che lim e(k) = 0 per k→∞
ogni scelta del vettore iniziale x(0) , avendo indicato con e(k) = x(k) − x l’errore. Poiché con un argomento ricorsivo si trova e(k) = Bk e(0) ,
∀k = 0, 1, . . .
(B.8)
Si può concludere che un metodo iterativo della forma (B.6) è convergente se e solo se ρ(B) < 1, essendo ρ(B) il raggio spettrale della matrice di iterazione B, ovvero il massimo modulo degli autovalori di B. La (B.6) può anche essere posta nella forma x(k+1) = x(k) + P−1 r(k),
(B.9)
r(k) = b − Ax(k)
(B.10)
avendo indicato con
il vettore residuo al passo k. La (B.9) esprime dunque il fatto che per aggiornare la soluzione al passo k +1, è necessario risolvere un sistema lineare di matrice P. Dunque P, oltre ad essere non singolare, dovrà essere invertibile con un basso costo computazionale se non si vuole che il costo complessivo dello schema aumenti eccessivamente (evidentemente, nel caso limite in cui P fosse uguale ad A e N=0, il metodo (B.9) convergerebbe in una sola iterazione, ma col costo di un metodo diretto). Vediamo ora come accelerare la convergenza dei metodi iterativi (B.6) sfruttando l’ultima forma introdotta. Indichiamo con RP = I − P−1 A la matrice di iterazione associata al metodo (B.9). La (B.9) può essere generalizzata introducendo un opportuno parametro di rilassamento (o di accelerazione) α. Si ottengono in tal modo i metodi di Richardson stazionari (detti più semplicemente di Richardson), della forma x(k+1) = x(k) + αP−1 r(k),
k ≥ 0.
(B.11)
Più in generale, supponendo α dipendente dall’indice di iterazione, si ottengono i metodi di Richardson non stazionari dati da x(k+1) = x(k) + αk P−1 r(k),
k ≥ 0.
(B.12)
538
B Algoritmi di risoluzione di sistemi lineari
La matrice di iterazione al passo k-esimo per tali metodi è data da R(αk ) = I − αk P−1 A, (si noti che essa dipende da k). Nel caso in cui P=I, i metodi in esame si diranno non precondizionati. Possiamo riscrivere la (B.12) (e quindi anche la (B.11)) in una forma di grande interesse computazionale. Posto infatti z(k) = P−1 r(k) (il cosiddetto residuo precondizionato), si ha che x(k+1) = x(k) +αk z(k) e r(k+1) = b−Ax(k+1) = r(k) −αk Az(k). Riassumendo, un metodo di Richardson non stazionario al passo k + 1-esimo richiede le seguenti operazioni: risolvere il sistema lineare Pz(k) = r(k) , calcolare il parametro di accelerazione αk , aggiornare la soluzione x(k+1) = x(k) + αk z(k),
(B.13)
aggiornare il residuo r(k+1) = r(k) − αk Az(k), Per quanto riguarda la convergenza per il metodo di Richardson stazionario (per il quale αk = α, per ogni k ≥ 0) vale il seguente risultato: Proprietà B.1 Se P è una matrice non singolare, il metodo di Richardson stazionario (B.11) è convergente se e solo se 2Reλi > 1 ∀i = 1, . . . , n, α|λi |2
(B.14)
essendo λi gli autovalori di P−1 A. Se inoltre si suppone che P−1 A abbia autovalori reali positivi, ordinati in modo che λ1 ≥ λ2 ≥ . . . ≥ λn > 0, allora, il metodo stazionario di Richardson (B.11) converge se e solo se 0 < α < 2/λ1 . Posto αopt =
2 λ1 + λn
(B.15)
il raggio spettrale della matrice di iterazione Rα è minimo se α = αopt , con ρopt = min [ρ(Rα )] = α
λ1 − λn . λ1 + λn
(B.16)
Se P−1 A è simmetrica definita positiva, si può dimostrare che la convergenza del metodo di Richardson alle norme vettoriali · 2 e · A . Ricordiamo !n è monotona rispetto! n che v2 = ( i=1 vi2 )1/2 e vA = ( i,j=1 vi aij vj )1/2 .
B.2 Metodi iterativi
539
In tal caso, grazie alla (B.16), possiamo mettere in relazione ρopt con il numero di condizionamento introdotto nella Sez. 3.4.2 nel modo seguente: ρopt =
K2 (P−1 A) − 1 2A−1 P2 = , α . opt K2 (P−1 A) + 1 K2 (P−1 A) + 1
(B.17)
Si comprende dunque quanto sia importante la scelta del precondizionatore P in un metodo di Richardson. Rimandiamo al Cap. 4 di [QSS08] per alcuni esempi di precondizionatori. L’espressione ottimale del parametro di accelerazione α, indicata in (B.15), risulta di scarsa utilità pratica, richiedendo la conoscenza degli autovalori massimo e minimo della matrice P−1 A. Nel caso particolare di matrici simmetriche definite positive, è tuttavia possibile valutare il parametro di accelerazione ottimale in modo dinamico, ossia in funzione di quantità calcolate dal metodo stesso al passo k, come indichiamo nel seguito. Osserviamo anzitutto che, nel caso in cui A sia una matrice simmetrica definita positiva, la risoluzione del sistema (B.2) è equivalente a trovare il punto di minimo x ∈ Rn della forma quadratica Φ(y) =
1 T y Ay − yT b, 2
detta energia del sistema (B.2). Il problema è dunque ricondotto a determinare il punto di minimo x di Φ partendo da un punto x(0) ∈ Rn e, conseguentemente, scegliere opportune direzioni lungo le quali muoversi per avvicinarsi, il più rapidamente possibile, alla soluzione x. La direzione ottimale, congiungente x(0) ed x, non è ovviamente nota a priori: dovremo dunque muoverci a partire da x(0) lungo un’altra direzione d(0) e su questa fissare un nuovo punto x(1) dal quale ripetere il procedimento fino a convergenza. Al generico passo k determineremo dunque x(k+1) come x(k+1) = x(k) + αk d(k),
(B.18)
essendo αk il valore che fissa la lunghezza del passo lungo d(k). L’idea più naturale, che consiste nel prendere come direzione di discesa quella di massima pendenza per Φ, data da r(k) = −∇Φ(x(k) ), conduce al metodo del gradiente o metodo steepest descent. Esso dà luogo al seguente algoritmo: dato x(0) ∈ Rn , posto r(0) = b − Ax(0) , per k = 0, 1, . . . fino a convergenza, si calcola T
αk =
r(k) r(k) T r(k) Ar(k)
,
x(k+1) = x(k) + αk r(k),
r(k+1) = r(k) − αk Ar(k) .
540
B Algoritmi di risoluzione di sistemi lineari
La sua versione precondizionata assume la forma seguente: dato x(0) ∈ Rn , posto r(0) = b − Ax(0) , z(0) = P −1 r(0) , per k = 0, 1, ... fino a convergenza si calcola T
z(k) r(k)
, x(k+1) = x(k) + αk z(k) , T z(k) Az(k) r(k+1) = r(k) − αk Az(k) , P z(k+1) = r(k+1) , αk =
Per quanto riguarda le proprietà di convergenza del metodo del gradiente, vale il seguente risultato: Teorema B.1 Sia A simmetrica e definita positiva, allora il metodo del gradiente converge per ogni valore del dato iniziale x(0) e e(k+1)A ≤
K2 (A) − 1 (k) e A , K2 (A) + 1
k = 0, 1, . . .
(B.19)
dove · A è la norma dell’energia precedentemente definita. Analogo risultato, con K2 (A) sostituito da K2 (P−1 A), vale anche nel caso del metodo del gradiente precondizionato, pur di assumere che anche P sia simmetrica e definita positiva. Un’alternativa ancora più efficace consiste nell’utilizzare il metodo del gradiente coniugato nel quale le direzioni di discesa non coincidono più con quelle del residuo. In particolare, posto p(0) = r(0) , si cercano direzioni della forma p(k+1) = r(k+1) − βk p(k), k = 0, 1, . . .
(B.20)
dove i parametri βk ∈ R sono da determinarsi in modo che (Ap(j))T p(k+1) = 0, j = 0, 1, . . ., k.
(B.21)
Direzioni di questo tipo si dicono A-ortogonali. Il metodo nel caso precondizionato assume allora la forma: dato x(0) ∈ Rn , posto r(0) = b − Ax(0) , z(0) = P−1 r(0) e p(0) = z(0) , la k-esima iterazione, con k = 0, 1 . . . , è T
p(k) r(k) , (Ap(k))T p(k) x(k+1) = x(k) + αk p(k),
αk =
r(k+1) = r(k) − αk Ap(k), Pz(k+1) = r(k+1), βk =
(Ap(k) )T z(k+1)
p(k+1)
, T p(k) Ap(k) = z(k+1) − βk p(k).
B.2 Metodi iterativi
541
Il parametro αk è scelto in modo tale da garantire che l’errore (e)(k+1) A sia minimizzato lungo la direzione di discesa p(k). Il parametro βk , invece, viene scelto in modo che la nuova direzione p(k+1) sia A-coniugata con p(k) ovvero (Ap(k))T p(k+1) = 0. In effetti, si può dimostrare (grazie al principio di induzione) che se quest’ultima relazione è verificata, allora lo sono anche tutte quelle in (B.21) relative a j = 0, ..., k − 1. Per una completa derivazione del metodo, si veda ad esempio [QSS08, Cap. 4] o [Saa96]. Si può dimostrare che il metodo del gradiente coniugato converge in aritmetica esatta al più in n passi e che 2ck e(k)A ≤ e(0)A , (B.22) 1 + c2k con K2 (P−1 A) − 1 c= . (B.23) K2 (P−1 A) + 1 Di conseguenza, in assenza di errori di arrotondamento, il metodo GC può essere visto come un metodo diretto in quanto termina dopo un numero finito di operazioni. D’altra parte, per matrici di grande dimensione, viene usualmente impiegato come un metodo iterativo ed arrestato quando uno stimatore dell’errore (come ad esempio il residuo relativo) è minore di una tolleranza assegnata. Grazie alla (B.23), la dipendenza del fattore di riduzione dell’errore dal numero di condizionamento della matrice è più favorevole di quella del metodo del gradiente (per la presenza della radice quadrata di K2 (P −1 A)). Generalizzazioni del metodo del gradiente nel caso in cui la matrice A non sia simmetrica conducono ai cosiddetti metodi di Krylov (fra i quali esempi notevoli sono costituiti dal metodo GMRES e dal metodo del bigradiente coniugato, BiCG, e alla sua versione stabilizzata, il metodo BiCGSTAB). Rinviamo il lettore interessato a [Com95], [QSS08, Cap. 4], [QV99, Cap. 3], [Saa96] e [vdV03].
Riferimenti bibliografici
[Ada75] Adams R. A. (1975) Sobolev Spaces. Academic Press, New York. [AFG+ 00] Almeida R. C., Feijóo R. A., Galeão A. C., Padra C., and Silva R. S. (2000) Adaptive finite element computational fluid dynamics using an anisotropic error estimator. Comput. Methods Appl. Mech. Engrg. 182: 379–400. [Ago03] Agoshkov V. (2003) Optimal Control Methods and Adjoint Equations in Mathematical Physics Problems. Institute of Numerical Mathematics, Russian Academy of Science, Moscow. [Aki94] Akin J. E. (1994) Finite Elements for Analysis and Design. Academic Press, London. [AO00] Ainsworth M. and Oden J. T. (2000) A posteriori error estimation in finite element analysis. Pure and Applied Mathematics. John Wiley and Sons, New York. [Ape99] Apel T. (1999) Anisotropic Finite Elements: Local Estimates and Applications. Book Series: Advances in Numerical Mathematics. Teubner, Stuttgart. [AS55] Allen D. N. G. and Southwell R. V. (1955) Relaxation methods applied to determine the motion, in two dimensions, of a viscous fluid past a fixed cylinder. Quart. J. Mech. Appl. Math. 8: 129–145. [AS99] Adalsteinsson D. and Sethian J. A. (1999) The fast construction of extension velocities in level set methods. J. Comput. Phys. 148(1): 2–22. [ATF87] Alekseev V., Tikhominov V., and Fomin S. (1987) Optimal Control. Consultants Bureau, New York. [Aub67] Aubin J. P. (1967) Behavior of the error of the approximate solutions of boundary value problems for linear elliptic operators by Galerkin’s and finite difference methods. Ann. Scuola Norm. Sup. Pisa 21: 599–637. [AWB71] Aziz A., Wingate J., and Balas M. (1971) Control Theory of Systems Governed by Partial Differential Equations. Academic Press. [AZT] www.cs.sandia.gov/CRF/aztec1.html. [Bab71] Babuška I. (1971) Error bounds for the finite element method. Numer. Math. 16: 322–333. [BDR92] Babuška I., Durán R., and Rodríguez R. (1992) Analysis of the efficiency of an a posteriori error estimator for linear triangular finite elements. SIAM J. Numer. Anal. 29(4): 947–964. [BE92] Bern M. and Eppstein D. (1992) Mesh generation and optimal triangulation. In Du D.-Z. and Hwang F. (eds) Computing in Euclidean Geometry. World Scientific, Singapore.
544 [Bec01]
Riferimenti bibliografici
Becker R. (2001) Mesh adaptation for stationary flow control. J. Math. Fluid Mech. 3: 317–341. [BF91] Brezzi F. and Fortin M. (1991) Mixed and Hybrid Finite Element Methods. Springer-Verlag, New York. [BFHR97] Brezzi F., Franca L. P., Hughes T. J. R., and Russo A. (1997) b = g. Comput. Methods Appl. Mech. Engrg. 145: 329–339. [BG87] Brezzi F. and Gilardi G. (1987) Functional Analysis and Functional Spaces. McGraw Hill, New York. [BG98] Bernardi C. and Girault V. (1998) A local regularisation operator for triangular and quadrilateral finite elements. SIAM J. Numer. Anal. 35(5): 1893–1916. [BGL05] Benzi M., Golub G. H., and Liesen J. (2005) Numerical solution of saddle-point problems. Acta Numer. 14: 1–137. [BGS96] Bjòrstad P., Gropp P., and Smith B. (1996) Domain Decomposition, Parallel Multilevel Methods for Elliptic Partial Differential Equations. Univ. Cambridge Press, Cambridge. [BIL06] Berselli L. C., Iliescu T., and Layton W. J. (2006) Mathematics of Large Eddy Simulation of Turbulent Flows. Springer, Berlin Heidelberg. [BKR00] Becker R., Kapp H., and Rannacher R. (2000) Adaptive finite element methods for optimal control of partial differential equations: Basic concepts. SIAM, J. Control Opt. 39(1): 113–132. [Bla02] Blanckaert K. (2002) Flow and turbulence in sharp open-channel bends. PhD thesis, École Polytechnique Fédérale de Lausanne. [BM92] Bernardi C. and Maday Y. (1992) Approximations Spectrales de Problèmes aux Limites Elliptiques. Springer-Verlag, Berlin Heidelberg. [BMMP06] Bottasso C. L., Maisano G., Micheletti S., and Perotto S. (2006) On some new recovery based a posteriori error estimators. Comput. Methods Appl. Mech. Engrg. 195(37–40): 4794–4815. [BMS04] Brezzi F., Marini L. D., and Süli E. (2004) Discontinuos Galerkin methods for firstorder hyperbolic problems. Math. Models Methods Appl. Sci. 14: 1893–1903. [Bre74] Brezzi F. (1974) On the existence, uniqueness and approximation of saddle-point problems arising from Lagrange multipliers. R.A.I.R.O. Anal. Numér. 8: 129–151. [Bre86] Brezis H. (1986) Analisi Funzionale. Liguori, Napoli. [Bre00] Bressan A. (2000) Hyperbolic Systems of Conservation Laws: The Onedimensional Cauchy Problem. Oxford Lecture Series in Mathematics and its Applications. The Clarendon Press Oxford University Press, New York. [BS94] Brenner S. C. and Scott L. R. (1994) The Mathematical Theory of Finite Element Methods. Springer-Verlag, New York. [Cab03] Caboussat A. (2003) Analysis and numerical simulation of free surface flows. PhD thesis, École Polytechnique Fédérale de Lausanne. [CHQZ06] Canuto C., Hussaini M., Quarteroni A., and Zang T. A. (2006) Spectral Methods. Fundamentals in Single Domains. Springer-Verlag, Berlin Heidelberg. [CHQZ07] Canuto C., Hussaini M. Y., Quarteroni A., and Zang T. A. (2007) Spectral Methods. Evolution to Complex Geometries and Application to Fluid Dynamics. SpringerVerlag, Berlin Heidelberg. [Cia78] Ciarlet P. G. (1978) The Finite Element Method for Elliptic Problems. North-Holland, Amsterdam. [CJRT01] Cohen G., Joly P., Roberts J. E., and Tordjman N. (2001) Higher order triangular finite elements with mass lumping for the wave equation. SIAM J. Numer. Anal. 38(6): 2047–2078 (electronic).
Riferimenti bibliografici [Clé75] [Coc98]
[Col76] [Com95] [CP00] [CZ87]
[Ded04] [DT80]
[Dub91] [DV02] [DV08]
[EFC03] [EG04] [EJ88] [FMP04]
[FP01] [FP02] [FSV05] [Fun92] [Fun97] [Fur97]
545
Clément P. (1975) Approximation by finite element functions using local regularization. RAIRO, Anal. Numér 2 pages 77–84. Cockburn B. (1998) An introduction to the discontinuous Galerkin method for convection-dominated problems. In Quarteroni A. (ed) Advanced Numerical Approximation of Nonlinesr Hyperbolic Equations, volume 1697 of LNM, pages 151–268. Springer-Verlag, Berlin Heidelberg. Colombo S. (1976) Les Équations aux Dérivées Partielles en Physique et en Mécanique des Milieux Continus. Masson, Paris. Comincioli V. (1995) Analisi Numerica. Metodi Modelli Applicazioni. McGrawHill, Milano. Cremonesi P. and Psaila G. (2000) Introduzione ragionata al C/C++. Progetto Leonardo, Esculapio, Bologna. C.Zienkiewicz O. and Zhu J. Z. (1987) A simple error estimator and adaptive procedure for practical engineering analysis. Int. J. Numer. Meth. Engng. 24: 337–357. Dedé L. (2004) Controllo Ottimale e Adattività per Equazioni alle Derivate Parziali e Applicazioni. Tesi di Laurea, Politecnico di Milano. Dervieux A. and Thomasset F. (1980) Approximation Methods for Navier–Stokes Problems, volume 771 of Lecture Notes in Mathematics, chapter A finite element method for the simulation of Rayleigh-Taylor instability, pages 145–158. SpringerVerlag, Berlin. Dubiner M. (1991) Spectral methods on triangles and other domains. J. Sci. Comput. 6: 345–390. Darmofal D. L. and Venditti D. A. (2002) Grid adaptation for functional outputs: application to two-dimensional inviscid flows. J. Comput. Phys. 176: 40–69. DiPietro D. A. and Veneziani A. (2008) Expression templates implementation of continuous and discontinuous Galerkin methods. Computing and Visualization in Science 12. E. Fernández-Cara E. Z. (2003) Control theory: History, mathematical achievements and perspectives. Bol. Soc. Esp. Mat. Apl. 26: 79–140. Ern A. and Guermond J. L. (2004) Theory and Practice of Finite Elements, volume 159 of Applied Mathematics Sciences. Springer-Verlag, New York. Eriksson E. and Johnson C. (1988) An adaptive method for linear elliptic problems. Math. Comp. 50: 361–383. Formaggia L., Micheletti S., and Perotto S. (2004) Anisotropic mesh adaptation in computational fluid dynamics: application to the advection-diffusion-reaction and the stokes problems. Appl. Numer. Math. 51(4): 511–533. Formaggia L. and Perotto S. (2001) New anisotropic a priori error estimates. Numer. Math. 89: 641–667. Ferziger J. H. and Peric M. (2002) Computational Methods for Fluid Dynamics. Springer, Berlino, III edition. Formaggia L., Saleri F., and Veneziani A. (2005) Applicazioni ed esercizi di modellistica numerica per problemi differenziali. Springer Italia, Milano. Funaro D. (1992) Polynomial Approximation of Differential Equations. SpringerVerlag, Berlin Heidelberg. Funaro D. (1997) Spectral Elements for Transport-Dominated Equations. SpringerVerlag, Berlin Heidelberg. Furnish G. (May/June 1997) Disambiguated glommable expression templates. Compuers in Physics 11(3): 263–269.
546
Riferimenti bibliografici
[GB98] [Ger08] [GR96] [Gri76]
[GRS07] [GSV06]
[Gun03] [HB76] [Hir88] [HN81] [HRT96]
[Hug00] [HVZ97] [HW65]
[Jam88] [JI99] [Joe05] [Joh82] [Joh87] [JS91] [KA00] [KF89]
George P. L. and Borouchaki H. (1998) Delaunay Triangulation and Meshing. Editions Hermes, Paris. Gervasio P. (2008) Convergence analysis of high order algebraic fractional step schemes for timedependent stokes equations. SINUM . Godlewski E. and Raviart P. A. (1996) Hyperbolic Systems of Conservations Laws, volume 118. Springer-Verlag, New York. Grisvard P. (1976) Behaviour of the solutions of an elliptic boundary value problem in a polygonal or polyhedral domain. Numerical Solution of Partial Differential Equations, III. Academic Press, New York. Grossmann C., Ross H., and Stynes M. (2007) Numerical treatment of Partial Differential Equations. Springer, Heidelberg, Heidelberg. Gervasio P., Saleri F., and Veneziani A. (2006) Algebraic fractional-step schemes with spectral methods for the incompressible Navier-Stokes equations. J. Comput. Phys. 214(1): 347–365. Gunzburger M. (2003) Perspectives in Flow Control and Optimization. Advances in Design and Control. SIAM, Philadelphia. Hnat J. and Buckmaster J. (1976) Spherical cap bubbles and skirt formation. Phys. Fluids 19: 162–194. Hirsh C. (1988) Numerical Computation of Internal and External Flows, volume 1. John Wiley and Sons, Chichester. Hirt C. W. and Nichols B. D. (1981) Volume of fluid (VOF) method for the dynamics of free boundaries. J. Comp. Phys. 39: 201–225. Heywood J. G., Rannacher R., and Turek S. (1996) Artificial boundaries and flux and pressure conditions for the incompressible Navier-Stokes equations. Internat. J. Numer. Methods Fluids 22(5): 325–352. Hughes T. J. R. (2000) The Finite Element Method. Linear Static and Dynamic Finite Element Analysis. Dover Publishers, New York. Hamacher V. C., Vranesic Z. G., and Zaky S. G. (1997) Introduzione all’architettura dei calcolatori. Mc Graw Hill Italia, Milano. Harlow F. H. and Welch J. E. (1965) Numerical calculation of time-dependent viscous incompressible flow of fluid with free surface. Physics of Fluids 8(12): 2182–2189. Jamenson A. (1988) Optimum aerodynamic design using cfd and control theory. AIAA Paper 95-1729-CP pages 233–260. J.A. Infante E. Z. (1999) Boundary observability for the space semi–discretizations of the 1–d wave equation. M2AN Math. Model. Numer. Anal. 33(2): 407–438. Joerg M. (2005) Numerical investigations of wall boundary conditions for two-fluid flows. Master’s thesis, École Polytechnique Fédérale de Lausanne. John F. (1982) Partial Differential Equations. Springer-Verlag, New York, IV edition. Johnson C. (1987) Numerical Solution of Partial Differential Equations by the Finite Element Method. Cambridge University Press, Cambridge. J. Sokolowski J. Z. (1991) Introduction to Shape Optimization (Shape Sensitivity Analysis). Springer-Verlag, New York. Knabner P. and Angermann L. (2000) Numerical Methods for Elliptic and Parabolic Partial Differential Equations, volume 44 of TAM. Springer-Verlag, New York. Kolmogorov A. and Fomin S. (1989) Elements of the Theory of Functions and Functional Analysis. V.M. Tikhominov, Nauka - Moscow.
Riferimenti bibliografici
547
[KMI+ 83] Kajitani H., Miyata H., Ikehata M., Tanaka H., Adachi H., Namimatzu M., and Ogiwara S. (1983) Summary of the cooperative experiment on Wigley parabolic model in Japan. In Proc. of the 2nd DTNSRDC Workshop on Ship Wave Resistance Computations (Bethesda, USA), pages 5–35. [KPTZ00] Kawohl B., Pironneau O., Tartar L., and Zolesio J. (2000) Optimal Shape Design. Springer Verlag, Berlin. [Kro97] Kroener D. (1997) Numerical Schemes for Conservation Laws. Wiley-Teubner, Chichester. [KS05] Karniadakis G. E. and Sherwin S. J. (2005) Spectral/hp Element Methods for Computational Fluid Dynamics. Oxford University Press, New York, II edition. [LD05] L. Dedè A. Q. (2005) Optimal control and numerical adaptivity for advection– diffusion equations. M2AN Math. Model. Numer. Anal. 39(5): 1019–1040. [LeV02a] LeVeque R. J. (2002) Finite Volume Methods for Hyperbolic Problems. Cambridge Texts in Applied Mathematics. [LeV02b] LeVeque R. J. (2002) Numerical Methods for Conservation Laws. Birkhäuser Verlag, Basel, II edition. [LeV07] LeVeque R. J. (2007) Finite Difference Methods for Ordinary and Partial Differential Equations: Steady-State and Time-Dependent Problems. SIAM, Philadelphia. [Lio71] Lions J. (1971) Optimal Control of Systems Governed by Partial Differential Equations. Springer-Verlag, New York. [Lio72] Lions J. (1972) Some Aspects of the Optimal Control of Distribuited Parameter Systems. SIAM, Philadelphia. [Lio96] Lions P.-L. (1996) Mathematical topics in fluid mechanics. Vol. 1, volume 3 of Oxford Lecture Series in Mathematics and its Applications. The Clarendon Press Oxford University Press, New York. Incompressible models, Oxford Science Publications. [LL59] Landau L. D. and Lifshitz E. M. (1959) Fluid mechanics. Translated from the Russian by J. B. Sykes and W. H. Reid. Course of Theoretical Physics, Vol. 6. Pergamon Press, London. [LL00] Lippman S. B. and Lajoie J. (2000) C++ Corso di Programmazione. Addison Wesley Longman Italia, Milano, III edition. [LM68] Lions J. L. and Magenes E. (1968) Quelques Méthodes des Résolution des Problémes aux Limites non Linéaires. Dunod, Paris. [LR98] Lin S. P. and Reitz R. D. (1998) Drop and spray formation from a liquid jet. Annu. Rev. Fluid Mech. 30: 85–105. [LW94] Li X. D. and Wiberg N. E. (1994) A posteriori error estimate by element patch postprocessing, adaptive analysis in energy and L2 norms. Comp. Struct. 53: 907–919. [Mar95] Marchuk G. I. (1995) Adjoint Equations and Analysis of Complex Systems. Kluwer Academic Publishers, Dordrecht. [Max76] Maxworthy T. (1976) Experiments on collisions between solitary waves. Journal of Fluid Mechanics 76: 177–185. [MOS92] Mulder W., Osher S., and Sethian J. (1992) Computing interface motion in compressible gas dynamics. Journal of Computational Physics 100(2): 209–228. [MP94] Mohammadi B. and Pironneau O. (1994) Analysis of the K-Epsilon Turbulence Model. John Wiley & Sons. [MP97] Muzaferija S. and Peric M. (1997) Computation of free-surface flows using finite volume method and moving grids. Numer. Heat Trans., Part B 32: 369–384. [MP01] Mohammadi B. and Pironneau O. (2001) Applied Shape Optimization for Fluids. Clarendon Press, Oxford.
548 [MQ89]
Riferimenti bibliografici
Marini L. and Quarteroni A. (1989) A relaxation procedure for domain decomposition methods using finite elements. Numer. Math. 55: 575–598. [Nit68] Nitsche J. A. (1968) Ein kriterium für die quasi-optimalitat des Ritzchen Verfahrens. Numer. Math. 11: 346–348. [NZ04] Naga A. and Zhang Z. (2004) A posteriori error estimates based on the polynomial preserving recovery. SIAM J. Numer. Anal. 42: 1780–1800. [OS88] Osher S. and Sethian J. A. (1988) Fronts propagating with curvature-dependent speed: algorithms based on Hamilton-Jacobi formulations. J. Comput. Phys. 79(1): 12–49. [Pat80] Patankar S. V. (1980) Numerical Heat Transfer and Fluid Flow. Hemisphere, Washington. [Per93] Perot J. B. (1993) An analysis of the fractional step method. J. Comput. Phys. 108(1): 51–58. [Pet] www.mcs.anl.gov/petsc/. [Pir84] Pironneau O. (1984) Optimal Shape Design for Elliptic Systems. Springer-Verlag, New York. [PQ05] Parolini N. and Quarteroni A. (2005) Mathematical models and numerical simulations for the america’s cup. Comput. Methods Appl. Mech. Engrg. 194(9–11): 1001–1026. [PQ07] Parolini N. and Quarteroni A. (2007) Modelling and numerical simulation for yacht engineering. In Proceedings of the 26th Symposium on Naval Hydrodynamics. Strategic Analysis, Inc., Arlington, VA, USA,. [Pro94] Prouse G. (1994) Equazioni Differenziali alle Derivate Parziali. Masson, Milano. [Pro97] Prohl A. (1997) Projection and Quasi-Compressibility Methods for Solving the Incompressible Navier-Stokes Equations. Advances in Numerical Mathematics. B.G. Teubner, Stuttgart. [Pru06] Prud’homme C. (2006) A domain specific embedded language in c++ for automatic differentiation, projection, integration and variational formulations. Scientific Programming 14(2): 81–110. [PS91] Pagani C. D. and Salsa S. (1991) Analisi Matematica, volume II. Masson, Milano. [PWY90] Pawlak T. P., Wheeler M. J., and Yunus S. M. (1990) Application of the Zienkiewicz-Zhu error estimator for plate and shell analysis. Int. J. Numer. Methods Eng. 29: 1281–1298. [QRDQ06] Quarteroni A., Rozza G., Dedé L., and Quaini A. (2006) Numerical approximation of a control problem for advection–diffusion processes. System modeling and optimization. IFIP Int. Fed. Inf. Process. 199: 261–273. [QSS08] Quarteroni A., Sacco R., and Saleri F. (2008) Matematica Numerica. SpringerVerlag, Milano, III edition. [QSV00] Quarteroni A., Saleri F., and Veneziani A. (2000) Factorization methods for the numerical approximation of Navier-Stokes equations. Comput. Methods Appl. Mech. Engrg. 188(1-3): 505–526. [Qu02] Qu Z. (2002) Unsteady open-channel flow over a mobile bed. PhD thesis, École Polytechnique Fédérale de Lausanne. [Qua93] Quartapelle L. (1993) Numerical Solution of the Incompressible Navier-Stokes Equations. Birkhäuser Verlag, Basel. [QV94] Quarteroni A. and Valli A. (1994) Numerical Approximation of Partial Differential Equations. Springer, Berlin Heidelberg. [QV99] Quarteroni A. and Valli A. (1999) Domain Decomposition Methods for Partial Differential Equations. Oxford Science Publications, Oxford.
Riferimenti bibliografici [Ran99]
[RC83] [Rod94] [Roz02] [RR04] [RST96]
[Rud91] [Saa96] [Sag06] [Sal08] [SC01] [Sch69] [Sch98] [SF73] [She] [SK02]
[Smo01] [Spi99] [Str71] [Str89] [Str00] [SV05] [Tan93]
549
Rannacher R. (1999) Error control in finite element computations. An introduction to error estimation and mesh-size adaptation. In Error control and adaptivity in scientific computing (Antalya, 1998), pages 247–278. Kluwer Acad. Publ., Dordrecht. Rhie C. M. and Chow W. L. (1983) Numerical study of the turbulent flow past an airfoil with trailing edge separation. AIAA Journal 21(11): 1525–1532. Rodríguez R. (1994) Some remarks on Zienkiewicz-Zhu estimator. Numer. Methods Part. Diff. Eq. 10: 625–635. Rozza G. (2002) Controllo Ottimale e Ottimizzazione di Forma in Fluidodinamica Computazionale. Tesi di Laurea, Politecnico di Milano. Renardy M. and Rogers R. C. (2004) An Introduction to Partial Differential Equations. Springer-Verlag, New York, II edition. Ross H. G., Stynes M., and Tobiska L. (1996) Numerical Methods for Singularly Perturbed Differential Equations. Convection-Diffusion and Flow Problems. Springer-Verlag, Berlin Heidelberg. Rudin W. (1991) Analyse Rèelle et Complexe. Masson, Paris. Saad Y. (1996) Iterative Methods for Sparse Linear Systems. PWS Publishing Company, Boston. Sagaut P. (2006) Large Eddy Simulation for Incompressible Flows: an Introduction. Springer-Verlag, Berlin Heidelberg, III edition. Salsa S. (2008) Equazioni a Derivate Parziali. Metodi, Modelli e Applicazioni. Springer-Verlag Italia, Milano. S.S. Collis M. H. (2001) Analysis of the streamline upwind/petrov galerkin method applied to the solution of optimal control problems. CAAM report TR02-01. Schwarz H. (1869) Über einige abbildungsdufgaben. J. Reine Agew. Math. 70: 105–120. Schwab C. (1998) p and hp- Finite Element Methods. Oxford Science Publication, Oxford. Strang G. and Fix G. J. (1973) An Analysis of the Finite Element Method. WellesleyCambridge Press, Wellesley, MA. Shewchuk J. R.www.cs.cmu.edu/ quake/triangle.html. S. Kim J.J. Alonso A. J. (2002) Design optimization of hight-lift configurations using a viscous continuos adjoint method. AIAA paper, 40th AIAA Aerospace Sciences Meeting and Exibit, Jan 14-17 2002 0844. Smolianski A. (2001) Numerical Modeling of Two-Fluid Interfacial Flows. PhD thesis, University of Jyväskylä. Spivak M. (1999) A comprehensive introduction to differential geometry. Vol. II. Publish or Perish Inc., Houston, Tex., III edition. Stroud A. H. (1971) Approximate calculation of multiple integrals. Prentice-Hall, Inc., Englewood Cliffs, N.J. Strickwerda J. C. (1989) Finite Difference Schemes and Partial Differential Equations. Wadworth & Brooks/Cole, Pacific Grove. Strostroup B. (2000) C++ Linguaggio, Libreria Standard, Principi di Programmazione. Addison Welsey Longman Italia, Milano, III edition. Saleri F. and Veneziani A. (2005) Pressure correction algebraic splitting methods for the incompressible Navier-Stokes equations. SIAM J. Numer. Anal. 43(1): 174–194. Tanaka N. (1993) Global existence of two phase nonhomogeneous viscous incompressible fluid flow. Comm. Partial Differential Equations 18(1-2): 41–81.
550 [TF88]
Riferimenti bibliografici
Tsuchiya K. and Fan L.-S. (1988) Near-wake structure of a single gas bubble in a two-dimensional liquid-solid fluidized bed: vortex shedding and wake size variation. Chem. Engrg. Sci. 43(5): 1167–1181. [TL58] Taylor A. and Lay D. (1958) Introduction to Functional Analysis. J.Wiley & Sons, New York. [Tor99] Toro E. (1999) Riemann Solvers and Numerical Methods for Fluid Dynamics. Springer-Verlag, Berlin Heidelberg. [Tri] software.sandia.gov/trilinos/. [TSW99] Thompson J. F., Soni B. K., and Weatherill N. P. (eds) (1999) Handook of Grid Generation. CRC Press. [TW05] Toselli A. and Widlund O. (2005) Domain Decomposition Methods - Algorithms and Theory. Springer-Verlag, Berlin Heidelberg. [TWM85] Thompson J. F., Warsi Z. U. A., and Mastin C. W. (1985) Numerical Grid Generation, Foundations and Applications. North Holland. [UMF] www.cise.ufl.edu/research/sparse/umfpack/. [Vas81] Vasiliev F. (1981) Methods for Solving the Extremum Problems. Nauka, Moscow. [vdV03] van der Vorst H. A. (2003) Iterative Krylov Methods for Large Linear Systems. Cambridge University Press, Cambridge. [Vel95] Veldhuizen T. (1995) Expression templates. C++ Report Magazine 7(5): 26–31. see also the web page http://osl.iu.edu/ tveldhui . [Ven98] Veneziani A. (1998) Mathematical and Numerical Modeling of Blood Flow Problems. PhD thesis, Università degli Studi di Milano. [Ver96] Verführth R. (1996) A Review of a Posteriori Error Estimation and Adaptive Mesh Refinement Techniques. Wiley-Teubner, New York. [VM96] Versteeg H. and Malalasekra W. (1996) An Introduction to Computational Fluid Dynamics: the Finite Volume Method Approach. Prentice Hall. [Wes01] Wesseling P. (2001) Principles of Computational Fluid Dynamics. Springer-Verlag, Berlin Heidelberg New York. [Wil98] Wilcox D. C. (1998) Turbulence Modeling in CFD. DCW Industries, La Cañada, CA, II edition. [Win07] Winkelmann C. (2007) Interior penalty finite element approximation of NavierStokes equations and application to free surface flows. PhD thesis, École Polytechnique Fédérale de Lausanne. [Wya00] Wyatt D. C. (2000) Development and assessment of a nonlinear wave prediction methodology for surface vessels. Journal of ship research 44: 96. [Yos74] Yosida K. (1974) Functional Analysis. Springer-Verlag, Berlin Heidelberg. [Zie00] Zienkiewicz O. (2000) Achievements and some unsolved problems of the finite element method. Int. J. Numer. Meth. Eng. 47: 9–28. [ZT00] Zienkiewicz O. C. and Taylor R. L. (2000) The Finite Element Method, Vol. 1, The Basis. Butterworth-Heinemann, Oxford, V edition. [Zua03] Zuazua E. (2003) Propagation, observation, control and numerical approximation of waves. Bol. Soc. Esp. Mat. Apl. 25: 55–126. [ZZ92] Zienkiewicz O. C. and Zhu J. Z. (1992) The superconvergent patch recovery and a posteriori error estimates. I: The recovery technique. Int. J. Numer. Meth. Engng. 33: 1331–1364.
Indice analitico
adattività – a posteriori, 74, 511 – a priori, 71 – di tipo h, 71 – di tipo p, 44, 71 – goal-oriented, 84, 176 algoritmo – di discesa più ripida, 499 – di Lawson, 414 – di regolarizzazione laplaciana, 414 – di scambio delle diagonali, 413 – di Thomas, 536 analisi – all’indietro, 235 – di Von Neumann, 222, 243 angolo di fase, 227, 244 assemblaggio, 352 – element-oriented, 366 – node-oriented, 366 baricentrizzazione, vedi algoritmo di regolarizzazione laplaciana base modale, 135 – boundary adapted, 135, 137 caratteristiche, vedi linee caratteristiche CFL, vedi numero di CFL coefficiente – di amplificazione, 223, 243 – di dispersione, 243 – di dissipazione, 227 complemento di Schur, 445, 454 condizione – CFL, 218–220, 285
– di ammissibilità di Lax, 296 – di entropia, 281 – di incomprimibilità, 300 – di interfaccia cinematica, 341 – di interfaccia dinamica, 341 – di Rankine-Hugoniot, 280 – inf-sup, 309, 320 condizioni al bordo – di Dirichlet, 303 – di Neumann, 303, 331 – di non-scorrimento, 339 – di Robin, 20 – di scorrimento libero, 340 – essenziali, 26 – naturali, 26 – trattamento debole, 426 consistenza, 4, 217 – forte, 4, 38, 163, 165, 167 controllabilità, 504 controllo, 500 – di frontiera, 481, 490 – distribuito, 480, 484, 488, 489 – ottimale, 477, 479, 482 convergenza, 4, 38, 40, 190, 217 – velocità di, 5 coordinate – baricentriche, 358, 422 costo computazionale, 5 curve caratteristiche, vedi linee caratteristiche delta di Dirac, 13, 522 derivata – conormale, 28, 29
552
Indice analitico
– di Fréchet, 482, 520 – di Gâteaux, 497, 498, 520 – di interpolazione, 114, 115, 129, 267, 269 – lagrangiana, 338 – materiale, 329 – nel senso delle distribuzioni, 524 – normale, 12 differenze finite, 114, 148, 212 diffusione – artificiale, 153, 162 – numerica, vedi diffusione artificiale disequazione variazionale, 482 dispersione, 226, 234 dissipazione, 226, 234 distribuzioni, 521 disuguaglianza – di Cauchy-Schwarz, 16, 22, 123 – di Hölder, 302 – di Korn, 34 – di Poincaré, 140, 528 – di Young, 168 – inversa, 57, 112, 156, 166, 195 dominio di dipendenza, 210 – numerico, 218 Donald – diagramma di, 422 elementi finiti, 463 – compatibili, 320 – di Crouzeix-Raviart, 321 – discontinui, 256, 262, 286 – gerarchici, 44 – implementazione, 351 – isoparametrici, 374 – lagrangiani, 41, 46 – lineari, 41, 47 – mini-element, 321 – P1 -isoP2 , 321 – quadratici, 43 – stabilizzati, 158 elemento – di riferimento, 46 – finito – diametro, 52, 400 – sfericità, 53, 401 entropia, 282 – flusso di, 282 equazione – aggiunta, 486, 498, 500
– – – – – – – – – – – – – – – – –
del calore, 2, 3, 5, 184 del potenziale, 2, 5 del trasporto, 1, 3 delle onde, 2, 5, 9, 211 di Burgers, 2, 279–281, 290 di diffusione-trasporto, 5, 330, 507 di Eulero, 482 di Korteveg-de-Vries, 9 di osservazione, 485 di Plateau, 9 di Poisson, 11 di stato, 294, 478, 484, 500 di trasporto e reazione, 225 di viscosità, 283 discriminante di una, 5 ellittica, 5 iperbolica, 5 – non lineare, 284 – level set, 343 – omogenea, 1 – parabolica, 5 – quasi-lineare, 1 – semi-lineare, 1 equazioni – di compatibilità, 275 – di Eulero, 293, 297, 304 – in forma conservativa, 295 – di Eulero–Lagrange, 506 – di Navier-Stokes, 299, 427 – forma ridotta, 305 – formulazione debole, 304 – per fluidi comprimibili, 293 – variabili primitive, 301 – di Stokes, 306 – equivalenti, 228 errore – di amplificazione, 227, 229, 248 – di approssimazione, 39 – stima a posteriori, 75, 78, 82, 84 – stima a priori, 51, 66, 67, 119, 170, 192, 196, 263, 316 – di discretizzazione, 510 – di dispersione, 228, 229, 248 – di interpolazione – stima, 49, 63, 64, 106 – di iterazione, 510 – di troncamento, 163, 217 – stima a posteriori, 510 – stima a priori, 51, 67
Indice analitico fattorizzazione – di Cholesky, 187, 535 – LU, 534 – tridiagonale, 536 flusso – a superficie libera, 337 – numerico, 213, 215, 216, 284, 424, 426 – di Engquist-Osher, 287 – di Gudonov, 286 – di Lax-Friedrichs, 287 – monotono, 286 – turbolento, 304 – viscoso, 295 flux limiters, 291 forma, 518 – bilineare, 518 – autofunzione, 193, 194 – autovalore, 193 – coerciva, 519 – continua, 518 – debolmente coerciva, 184 – definita positiva, 519 – positiva, 519 – quadratica, 8 – definita, 8 – degenere, 8 – indefinita, 8 – quasi-lineare, 295 – simmetrica, 518 formula – di Green, 22, 34, 301 formula di quadratura, 360 – del punto medio composita, 361 – del trapezio composita, 361 formulazione – debole, 14 – forte, 11 formule – di Armijo, 503 funzionale, 517 – norma, 517 – costo, 479, 497 – limitato, 517 – lineare, 517 funzionale costo, 485 funzionale Lagrangiano, 497 funzione – a bolla, 44, 161, 173 – a supporto compatto, 521
– – – – – – – – –
caratteristica, 523, 526 di base, 42, 44 di Bernoulli, 154 di controllo, 478 di Heaviside, 525 di osservazione, 478, 481 di spaziatura, 73, 397, 410 distanza, 345 level set, 343
gradi di libertà, 42, 44 – elemento finito, 46 grado di esattezza, 107, 358 griglia, vedi anche triangolazione – anisotropa, 53, 66 – coarse, 455, 469 – deraffinamento, 73 – di Bakhvâlov, 146 – di Shishkin, 146 – non strutturata, 405 – raffinamento, 73 – strutturata, 401, 402 identità di Lagrange, 87 identità di Parseval, 102 insieme unisolvente, 46 integrale – generale, 3 – particolare, 3 integrazione gaussiana – di Gauss-Legendre, 104 – esattezza, 105 – di Gauss-Legendre-Lobatto, 105, 116 interpolante, 49, 59 interpolazione transfinita, 98 invarianti di Riemann, 211 Lagrangiana, 495 – stabilizzata, 509 legge di conservazione, 279, 295, 417 – dell’entropia, 283 lemma – di Bramble-Hilbert, 62 – di Céa, 38, 142 – di Deny-Lions, 63 – di Gronwall, 189, 192, 209, 251 – di Lax-Milgram, 30, 34, 35, 38 – di regolarità ellittica, 67 – di Strang, 118, 122, 159, 323
553
554
Indice analitico
linee caratteristiche, 7, 205, 206, 210 – dell’equazione di Burgers, 279 mass-lumping, 150, 179, 186, 243 matrice – della derivata d’interpolazione, 115 – di iterazione, 537 – di massa, 186 – di precondizionamento, 59, 536 – di riflessione, 276 – di rigidezza, 36, 55, 186 – condizionamento, 57 – di stiffness, vedi matrice di rigidezza – grafo di, 361 – parte antisimmetrica, 164 – parte simmetrica, 164 – pattern di sparsità, 361 – simmetrica definita positiva, 539 matrici – sparse, formato MSR, 362 metodo – a passi frazionari, 329 – a tracciamento del fronte, 337 – agli elementi spettrali, 98 – BDF, 384 – BiCGSTAB, 541 – consistente, 4, 163, 217 – convergente, 4, 217 – dei volumi finiti, 417 – cell-centered, 419 – griglie-staggered, 419, 427 – nodi fantasma, 426 – stima a priori, 426 – vertex-centered, 419 – del fitting esponenziale, vedi metodo di Scharfetter e Gummel – del gradiente, 502, 539, 540 – coniugato, 503, 540 – delle caratteristiche, 206, 329 – di cattura del fronte, 337 – di Chorin-Temam, 332, 335 – di collocazione, 112 – di Crank-Nicolson, 186 – di decomposizione dei domini, 371, 428, 431 – di Dirichlet-Neumann, 434, 448, 450, 473 – di Douglas-Wang (DW), 165, 166 – di Eulero – all’indietro, 186, 240, 254, 260, 328
– –
– – – – – – – – – – – –
– –
– – –
– – – – – – –
– all’indietro/centrato, 215 – esplicito, vedi metodo di Eulero in avanti – implicito, vedi metodo di Eulero all’indietro – in avanti, 186, 239, 244, 255, 327 – in avanti/centrato, 214 – in avanti/decentrato, vedi metodo upwind di fattorizzazione algebrica, 333 di Galerkin, 35, 37, 142, 144, 308 – convergenza, 40 – generalizzato, 109, 118, 158 – Least Squares (GLS), 165–167, 322, 509 – spettrale, 97, 108 di Lax-Friedrichs, 214, 220, 235 – (FEM), 244 di Lax-Wendroff, 214, 216, 221, 235 – (FEM), 244 di Neumann-Dirichlet, 450 di Neumann-Neumann, 436, 442, 450 di Newmark, 215 di Newton, 502 di Petrov-Galerkin, 158, 161 di proiezione, 331, 332 – ortogonale, 39 di Richardson, 440, 448, 537 di rilassamento, 436 di Robin-Robin, 437, 442, 450 di Runge-Kutta – del 2o ordine, 288 – del 3o ordine, 288 di Scharfetter e Gummel, 154 di Schwarz, 432, 463, 469, 474 – additivo, 433, 464 – moltiplicativo, 433, 465 di Taylor-Galerkin, 246 di Yosida, 335 Discontinuous Galerkin (DG), 256 – -SEM-NI, 269 – stabilizzazione di salto, 264 G-NI, 108, 112, 118, 127, 157, 199, 265 Leap-Frog, 215 level set, 342, 428 MEG, 533 MES, 98, 100 MES-NI, 131 numerico – limitato, 285
Indice analitico – monotono, 285 – stabile, 285 – operator splitting, 330 – di Yanenko, 330 – quasi–Newton, 502 – semi-implicito, 328 – Streamline Upwind Petrov-Galerkin (SUPG), 165, 166, 322 – streamline-diffusion, 161–163 – upwind, 152, 163, 214, 216, 220, 264 – (FEM), 244 – (FV), 425 – volume of fluid, 342, 428 modelli di turbolenza, 304 – RANS, 428 modi spuri di pressione, vedi problema di Stokes, soluzioni spurie moltiplicatore di Lagrange, 496, 497 norma – A, 59 – dell’energia, 39, 50, 59 – discreta, 123 numero – di CFL, 218, 228, 229, 244 – di condizionamento, 57, 446, 448, 452, 457, 466, 471 – di Péclet – di griglia, vedi numero di Péclet locale – globale, 143 – locale, 145, 153, 425 – di Reynolds, 304 operatore – aggiunto, 86, 87, 486 – antisimmetrico, 163 – autoaggiunto, 87, 163 – bilaplaciano, 32 – chiuso, 494 – coniugato, 86 – di estensione, 455 – di interpolazione, 49, 60, 112 – di Clément, 76 – di Laplace, 2 – di Laplace-Beltrami, 490 – di restrizione, 455 – di Steklov-Poincaré, 438, 439, 447 – di traccia, 529 – lagrangiano, 307
555
– normale, 87 – pseudo-spettrale, 114 – simmetrico, 163 osservabilità, 504 osservazione al bordo, 491, 504 osservazione distribuita, 491, 504 ottimizzazione di forma, 504 parametro di regolarizzazione, 493 partizione dell’unità, 151 polinomi – di Jacobi, 135 – di Legendre, 101, 104, 260 precondizionatore, 59, 536 – di Bramble-Pasciak-Schatz, 457 – di Jacobi, 456 – di Neumann-Neumann, 458, 459 – con bilanciamento, 460 – di Schwarz additivo, 465 – SIMPLE, 335 principio – dei lavori virtuali, 18 – di massimo discreto, 221 problema – a superficie libera, 337 – aggiunto, 67, 68, 85 – ben posto, 493, 494 – controllabile, 477 – del calore, 202 – del quart’ordine, 33, 202 – dell’elasticità lineare, 33 – densamente risolubile, 493 – di collocazione, 114 – di controllo, 477 – discreto, 505 – non vincolato, 478 – vincolato, 478 – di diffusione-reazione, 124, 147, 387 – di diffusione-trasporto, 139, 176, 180 – di diffusione-trasporto-reazione, 164, 180, 201, 423 – di Dirichlet, 11, 21, 55, 488 – di Galerkin, vedi metodo di Galerkin – di Neumann, 12, 19, 20, 489 – di ottimizzazione, 478 – di Poisson, 37, 54, 442 – di progetto ottimale, 507 – di Robin, 20 – di Stokes, 473
556
Indice analitico
– approssimazione di Galerkin, 308 – elementi finiti stabili, 320 – elementi finiti stabilizzati, 322 – forma debole, 306 – formulazione algebrica, 318 – generalizzato, 306 – di trasporto, 205, 472 – di trasporto-reazione, 207, 250 – ellittico, 35 – generalizzato agli autovalori, 193 – inverso, 492 – mal posto, 494 – misto, 20 – variazionale, 17, 22 problemi – eterogenei, 431 prodotto – scalare discreto, 108 – tensoriale warped, 135 programmazione – orientata agli oggetti, 355 punto – critico vincolato, 495 – regolare, 495 punto-sella, 307 random walk, 139 residuo, 537 – locale, 78 – precondizionato, 538 ri-inizializzazione, 346 ricostruzione – del gradiente, 72 rilevamento del dato di bordo, 19, 25 – elementi finiti, 56 schema, vedi metodo semi-discretizzazione, 185 seminorma, 528 serie di Legendre, 102 simbolo principale, 8 sistema iperbolico, 209, 212, 215 soluzione – ai minimi quadrati, 492 – classica, 280 – debole, 206, 280 – entropica, 280, 285 – dell’equazione di Burgers, 281
spazio – delle distribuzioni, 522 – di Sobolev, 16 – duale, 517 splitting, 536 stabilità, 4, 38, 217 – assoluta, 193, 199 – forte, 218, 220, 221, 223, 225, 226, 255 stato aggiunto, 480, 486, 488 stimatore dell’errore – di Zienkiewicz e Zhu, 83 – recovery based, 83 strato limite, 139, 144 superficie libera, 337, 428 supporto – compatto, 521 – di una funzione, 55, 521 teorema – dell’immagine chiusa, 312 – della divergenza, 21 – di equivalenza, 5, 219 – di estensione, 446 – di Helmholtz-Weyl, 332 – di Riesz, 30, 518 – di traccia, 529 – di Lax-Richtmyer, vedi teorema di equivalenza termine – di trasporto, 299 – di diffusione, 299 θ-metodo, 186, 192 traccia, 529 trasformazione di Gordon-Hall, 98 triangolazione, 400 – avanzamento del fronte, 410 – conforme, 400 – di Delaunay, 405, 421 – generalizzata, 409 – median dual, 422 – quasi uniforme, 57 – regolare, 53, 401 trucco di Aubin-Nitsche, 69, 82 variabili caratteristiche, 209 velocità caratteristica, 284 verga – sottile, 91 – vibrante, 9
Collana Unitext - La Matematica per il 3+2 a cura di F. Brezzi (Editor-in-Chief) P. Biscari C. Ciliberto A. Quarteroni G. Rinaldi W.J. Runggaldier Volumi pubblicati. A partire dal 2004, i volumi della serie sono contrassegnati da un numero di identificazione. I volumi indicati in grigio si riferiscono a edizioni non più in commercio A. Bernasconi, B. Codenotti Introduzione alla complessità computazionale 1998, X+260 pp. ISBN 88-470-0020-3 A. Bernasconi, B. Codenotti, G. Resta Metodi matematici in complessità computazionale 1999, X+364 pp, ISBN 88-470-0060-2 E. Salinelli, F. Tomarelli Modelli dinamici discreti 2002, XII+354 pp, ISBN 88-470-0187-0 S. Bosch Algebra 2003, VIII+380 pp, ISBN 88-470-0221-4 S. Graffi, M. Degli Esposti Fisica matematica discreta 2003, X+248 pp, ISBN 88-470-0212-5 S. Margarita, E. Salinelli MultiMath - Matematica Multimediale per l’Università 2004, XX+270 pp, ISBN 88-470-0228-1
A. Quarteroni, R. Sacco, F. Saleri Matematica numerica (2a Ed.) 2000, XIV+448 pp, ISBN 88-470-0077-7 2002, 2004 ristampa riveduta e corretta (1a edizione 1998, ISBN 88-470-0010-6) 13. A. Quarteroni, F. Saleri Introduzione al Calcolo Scientifico (2a Ed.) 2004, X+262 pp, ISBN 88-470-0256-7 (1a edizione 2002, ISBN 88-470-0149-8) 14. S. Salsa Equazioni a derivate parziali - Metodi, modelli e applicazioni 2004, XII+426 pp, ISBN 88-470-0259-1 15. G. Riccardi Calcolo differenziale ed integrale 2004, XII+314 pp, ISBN 88-470-0285-0 16. M. Impedovo Matematica generale con il calcolatore 2005, X+526 pp, ISBN 88-470-0258-3 17. L. Formaggia, F. Saleri, A. Veneziani Applicazioni ed esercizi di modellistica numerica per problemi differenziali 2005, VIII+396 pp, ISBN 88-470-0257-5 18. S. Salsa, G. Verzini Equazioni a derivate parziali - Complementi ed esercizi 2005, VIII+406 pp, ISBN 88-470-0260-5 2007, ristampa con modifiche 19. C. Canuto, A. Tabacco Analisi Matematica I (2a Ed.) 2005, XII+448 pp, ISBN 88-470-0337-7 (1a edizione, 2003, XII+376 pp, ISBN 88-470-0220-6) 20. F. Biagini, M. Campanino Elementi di Probabilità e Statistica 2006, XII+236 pp, ISBN 88-470-0330-X
21. S. Leonesi, C. Toffalori Numeri e Crittografia 2006, VIII+178 pp, ISBN 88-470-0331-8 22. A. Quarteroni, F. Saleri Introduzione al Calcolo Scientifico (3a Ed.) 2006, X+306 pp, ISBN 88-470-0480-2 23. S. Leonesi, C. Toffalori Un invito all’Algebra 2006, XVII+432 pp, ISBN 88-470-0313-X 24. W.M. Baldoni, C. Ciliberto, G.M. Piacentini Cattaneo Aritmetica, Crittografia e Codici 2006, XVI+518 pp, ISBN 88-470-0455-1 25. A. Quarteroni Modellistica numerica per problemi differenziali (3a Ed.) 2006, XIV+452 pp, ISBN 88-470-0493-4 (1a edizione 2000, ISBN 88-470-0108-0) (2a edizione 2003, ISBN 88-470-0203-6) 26. M. Abate, F. Tovena Curve e superfici 2006, XIV+394 pp, ISBN 88-470-0535-3 27. L. Giuzzi Codici correttori 2006, XVI+402 pp, ISBN 88-470-0539-6 28. L. Robbiano Algebra lineare 2007, XVI+210 pp, ISBN 88-470-0446-2 29. E. Rosazza Gianin, C. Sgarra Esercizi di finanza matematica 2007, X+184 pp, ISBN 978-88-470-0610-2 30. A. Machì Gruppi - Una introduzione a idee e metodi della Teoria dei Gruppi 2007, XII+349 pp, ISBN 978-88-470-0622-5
31. Y. Biollay, A. Chaabouni, J. Stubbe Matematica si parte! A cura di A. Quarteroni 2007, XII+196 pp, ISBN 978-88-470-0675-1 32. M. Manetti Topologia 2008, XII+298 pp, ISBN 978-88-470-0756-7 33. A. Pascucci Calcolo stocastico per la finanza 2008, XVI+518 pp, ISBN 978-88-470-0600-3 34. A. Quarteroni, R. Sacco, F. Saleri Matematica numerica (3a Ed.) 2008, XVI+510 pp, ISBN 978-88-470-0782-6 35. P. Cannarsa, T. D’Aprile Introduzione alla teoria della misura e all’analisi funzionale 2008, XII+268 pp, ISBN 978-88-470-0701-7 36. A. Quarteroni, F. Saleri Calcolo scientifico (4a Ed.) 2008, XIV+358 pp. ISBN 978-88-470-0837-3 37. C. Canuto, A. Tabacco Analisi Matematica I (3a Ed.) 2008, XIV+452 pp, ISBN 978-88-470-0871-7 38. S. Gabelli Teoria delle Equazioni e Teoria di Galois 2008, XVI+410 pp, ISBN 978-88-470-0618-8 39. A. Quarteroni Modellistica numerica per problemi differenziali (4a Ed.) 2008, XVI+558 pp, ISBN 978-88-470-0841-0