Sei sulla pagina 1di 59

Modelli e Metodi Numerici

Stefano Berrone
Dipartimento di Scienze Matematiche
Politecnico di Torino
stefano.berrone@polito.it
http://calvino.polito.it/˜sberrone
slides tratte dalle presentazioni del Prof. Claudio Canuto

() 1 / 218
IL MODELLO DI MEMBRANA ELASTICA

Il modello dellla membrana elastica estende alle due dimensioni spaziali quello del filo
elastico; la sua deduzione è analoga.

Consideriamo una membrana elastica sottile, la cui sezione mediana occupi in assenza di
forze esterne una regione limitata Ω del piano x1 x2 .
Supponiamo che la membrana sia fissata lungo tutto il suo bordo ∂Ω.
Una (piccola) densità volumica di forza f = 0e1 + 0e2 + f3 e3 , diretta normalmente alla
sezione mediana della membrana induce un (piccolo) spostamento
u = u1 e1 + u2 e2 + u3 e3 a partire dalla posizione di riferimento.
In prima approssimazione le componenti u1 e u2 saranno trascurabili rispetto alla
componente u3 che descrive lo spostamento nella direzione della forza.

Poniamo f = f3 , u = u3 e sia τ = (τ31 , τ32 ) il vettore delle componenti verticali dello


sforzo di taglio, e µ > 0 il modulo di taglio del materiale.

() 68 / 218
La condizione di equilibrio della membrana si esprime come
„ «
∂τ31 ∂τ32
f+ + =0 ossia f +∇·τ =0,
∂x ∂y

mentre le equazioni costitutive (approssimate) sono date da


∂u ∂u
τ31 = µ , τ32 = µ , ossia τ = µ∇u .
∂x ∂y
Esse valgono all’interno di Ω, mentre sul bordo ∂Ω vale la condizione

u=0,

che esprime il fatto che la membrana è fissata lungo tutto il bordo.

Otteniamo quindi il sistema


8
>∇ · τ + f = 0 in Ω ,
>
>
>
>
<
τ = µ∇u in Ω ,
>
>
>
>
>
:u = 0 su ∂Ω .

() 69 / 218
Sostituendo nella prima equazione l’espressione di τ data dalla seconda equazione,
otteniamo il problema ai valori al bordo di Dirichlet
8
<−∇ · (µ∇u) = f in Ω ,
:u = 0 su ∂Ω .

nell’incognita u. Notiamo che l’equazione in Ω si esplicita come


„ « „ «
∂ ∂u ∂ ∂u
− µ − µ =f .
∂x ∂x ∂y ∂y

Nel caso in cui il coefficiente µ sia costante in Ω, otteniamo l’equazione di Poisson

−µ ∆u = f in Ω ,

dove l’espressione
∂2u ∂2u
∆u = 2
+
∂x ∂y 2
indica il Laplaciano della funzione u.

() 70 / 218
DISCRETIZZAZIONE MEDIANTE DIFFERENZE FINITE

yN +1 = L

(xℓ , ym )
ym (xN +1 , ym )

x0 = y0 = 0 xℓ xN +1 = L

Supponiamo che µ sia costante e che Ω = (0, L) × (0, L) sia il quadrato di lato L.
L
Fissiamo un passo di discretizzazione spaziale h = (con N ≥ 1), uguale in
N +1
ciascuna direzione.
Consideriamo la griglia equispaziata Gh in Ω = [0, L]2 formata dai nodi (x` , ym ) con
x` = `h per 0 ≤ ` ≤ N + 1, e ym = mh per 0 ≤ m ≤ N + 1.
Notiamo che i nodi interni al quadrato hanno indici `, m soddisfacenti 1 ≤ `, m ≤ N ; al
contrario, i nodi di bordo sono caratterizzati dall’avere almeno uno dei due indici uguale a
0 oppure a N + 1.
() 71 / 218
Indichiamo con u`m ' u(x` , ym ) una approssimazione dello spostamento u nel nodo
(x` , ym ); poniamo inoltre f`m = f (x` , ym ). Nei nodi di bordo lo spostamento è nullo,
dunque definiamo

u`m = 0 se ` ∈ {0, N + 1} oppure m ∈ {0, N + 1} .

I restanti valori di u`m , relativi ai nodi interni, sono definiti imponendo in ciascuno di tali
nodi un’approssimazione dell’equazione di Poisson, ottenuta sostituendo i rapporti
incrementali secondi centrati alle derivate parziali seconde di u che compaiono
nell’equazione.
Precisamente, osservando che x` ± h = x`±1 e che ym ± h = ym±1 , si ha

∂2u u(x`−1 , ym ) − 2u(x` , ym ) + u(x`+1 , ym ) u`−1,m − 2u`m + u`+1,m


(x` , ym ) ' '
∂x2 h2 h2
e
∂2u u(x` , ym−1 ) − 2u(x` , ym ) + u(x` , ym+1 ) u`,m−1 − 2u`m + u`,m+1
(x` , ym ) ' ' .
∂y 2 h2 h2
Pertanto, nei nodi interni imponiamo le seguenti equazioni:
µ
(−u`,m−1 − u`−1,m + 4u`m − u`+1,m − u`,m+1 ) = f`m , 1 ≤ `, m ≤ N .
h2

() 72 / 218
N

(ℓ, m + 1)

(ℓ − 1, m) (ℓ, m) (ℓ + 1, m)
O E

(ℓ, m − 1)

Dunque, in ogni nodo interno imponiamo la seguente equazione:


µ
(−u`,m−1 − u`−1,m + 4u`m − u`+1,m − u`,m+1 ) = f`m , 1 ≤ `, m ≤ N ,
h2
che fa intervenire i nodi di una molecola computazionale centrata in (x` , ym ).
Abbiamo dunque N 2 equazioni nelle N 2 incognite date dai valori u`m nei nodi interni.
() 73 / 218
yN +1 = L

(xℓ , ym )
ym (xN +1 , ym )

x0 = y0 = 0 xℓ xN +1 = L

Quando uno o più nodi della molecola si trova sul bordo ∂Ω, facciamo intervenire i valori
al bordo
u`m = 0 se ` ∈ {0, N + 1} oppure m ∈ {0, N + 1} .

Distinguiamo tra
nodi interni forti: tutti i nodi della loro molecola computazionale sono nodi interni.
nodi interni deboli: uno o più nodi della loro molecola sono nodi di bordo.

() 74 / 218
yN +1 = L

(xℓ , ym )
ym (xN +1 , ym )

x0 = y0 = 0 xℓ xN +1 = L

Ciascuna equazione
µ
(−u`,m−1 − u`−1,m + 4u`m − u`+1,m − u`,m+1 ) = f`m
h2
fa dunque intervenire
cinque incognite effettive, se è relativa a un nodo interno forte,
quattro o tre incognite effettive, se è relativa a un nodo interno debole.

() 75 / 218
Esempi

yN +1 = L

(xℓ , ym )
ym (xN +1 , ym )

x0 = y0 = 0 xℓ xN +1 = L

L’equazione relativa al nodo debole (1, 1) diventa


µ
(4u11 − u21 − u12 ) = f11 ;
h2
quella relativa a un nodo debole (`, 1) con 2 ≤ ` ≤ N − 2 assume la forma
µ
(−u`−1,1 + 4u`1 − u`+1,1 − u`2 ) = f`1 ;
h2
quella relativa a un nodo debole (N, m) con 2 ≤ m ≤ N − 2 diventa
µ
(−uN,m−1 − uN −1,m + 4uN m − uN,m+1 ) = fN m .
h2
() 76 / 218
Ordinamento a un indice (lessicografico) delle incognite

yN +1 = L j+N

(xℓ , ym )
ym (xN +1 , ym )

j−1 j j+1

x0 = y0 = 0 xℓ xN +1 = L j−N

Per tradurre il sistema di equazioni algebriche nella forma Au = f , è necessario passare


dalla numerazione a due indici delle incognite associate ai nodi interni, ad una
numerazione ad un solo indice:

(`, m) ←→ j.

Ciò viene realizzato adottando l’ordinamento lessicografico, in cui sono elencati


dapprima gli N nodi della prima riga dal basso (m = 1), poi quelli della seconda riga
(m = 2), e cosı̀ via; all’interno di ogni riga la numerazione procede da sinistra verso
destra.
() 77 / 218
Si vede facilmente che

j = ` + (m − 1)N per 1 ≤ `, m ≤ N ,

e si ha ovviamente
1 ≤ j ≤ N2 .

Poniamo poi uj = u`m e fj = f`m . Con tali notazioni, l’equazione relativa a un nodo
interno forte
µ
(−u`,m−1 − u`−1,m + 4u`m − u`+1,m − u`,m+1 ) = f`m
h2
diventa
µ
(−uj−N − uj−1 + 4uj − uj+1 − uj+N ) = fj .
h2

Gli elementi della corrispondente riga (la j-esima) della matrice A sono dati da
8
< 4 se k = j ,
>
µ
ajk = 2 −1 se k = j ± 1 oppure k = j ± N ,
h >
0 altrimenti .
:

() 78 / 218
Le equazioni relative ai nodi interni deboli contengono soltanto le incognite (in numero
di 3 oppure 4) associate ai nodi interni della molecola computazionale.
Le corrispondenti righe della matrice differiscono da quella di un nodo interno forte per
avere soltanto 2 oppure 3 elementi non nulli fuori dalla diagonale principale.
Ad esempio, l’equazione relativa al nodo debole (1, 1)
µ
(4u11 − u21 − u12 ) = f11 ;
h2
si esprime come
µ
(4u1 − u2 − u1+N ) = f1 ;
h2
l’equazione relativa a un nodo debole (`, 1) con 2 ≤ ` ≤ N − 2
µ
(−u`−1,1 + 4u`1 − u`+1,1 − u`2 ) = f`1 ;
h2
si esprime come
µ
(−uj−1 + 4uj − uj+1 − uj+N ) = fj
h2
con j = `;

() 79 / 218
l’equazione relativa a un nodo debole (N, m) con 2 ≤ m ≤ N − 2
µ
(−uN,m−1 − uN −1,m + 4uN m − uN,m+1 ) = fN m .
h2
si esprime come
µ
(−uj−N − uj−1 + 4uj − uj+N ) = fj
h2
con j = mN .

() 80 / 218
Struttura della matrice A
0

10

15

20

25

0 5 10 15 20 25
nz = 105

Gli elementi nella parte superiore sono dati da


8
>
> 4 se k = j ,
>
µ −1 se k = j + 1 con j 6= pN ,
<
ajk = 2
h > > −1 se k = j + N ,
>
:
0 altrimenti .

() 81 / 218
La matrice è simmetrica e pentadiagonale.
È evidente la struttura tridiagonale a blocchi della matrice, ottenuta suddividendo il
vettore u delle incognite in blocchi um di N elementi, corrispondenti ai nodi che stanno
su una stessa riga della griglia, cioè ai nodi di indici `, m con m fissato.
Introdotte le matrici di odine N
µ µ
D = 2 tridiag [−1 4 − 1] e C=− I,
h h2
abbiamo infatti
0 1
D C
B C D C C
B C
A=B
B C D C C ,
C
@ C D C A
C D
ossia

A = tridiag [C D C] .

() 82 / 218
Proprietà della discretizzazione

Il teorema di Gerschgorin mostra che gli autovalori di A sono tutti contenuti


nell’intervallo „ «

0, 2
h
pertanto, A è una matrice simmetrica e definita-positiva.

Il numero di condizionamento peggiora con il raffinamento della griglia, con la stessa


legge del caso del filo elastico:

cond2 (A) ' ch−2 ' CN 2 .

Lo schema ha convergenza quadratica:


„˛ 4 ˛ ˛ 4 ˛«
˛∂ u˛ ˛∂ u˛
max |u(x` , ym ) − u`,m | ≤ Ch2 max ˛˛ 4 ˛˛ + ˛˛ 4 ˛˛ .
0≤`,m≤N x∈Ω ∂x ∂y

() 83 / 218
FORMULAZIONE VARIAZIONALE DEL PROBLEMA DELLA
MEMBRANA ELASTICA

Ricordiamo l’equazione di equilibrio della membrana e il vincolo di adesione al bordo:


8
<−∇ · (µ∇u) = f in Ω ,
:u = 0 su ∂Ω .

Indichiamo con V l’insieme (spazio vettoriale) degli spostamenti ammissibili della


membrana. Un elemento di V è una funzione definita in Ω = Ω ∪ ∂Ω, soddisfacente
opportune condizioni di continuità e di derivabilità, e nulla su ∂Ω. Gli spostamenti
ammissibili vengono anche detti funzioni di forma, oppure funzioni test.
Notiamo che la soluzione u è un particolare spostamento ammissibile, dunque u ∈ V .

Moltiplichiamo l’equazione di equilibrio per il generico spostamento ammissibile v e


integriamo su Ω: Z Z
− ∇ · (µ∇u)v dx = f v dx .
Ω Ω

Adesso, “integriamo per parti” a primo membro.

() 84 / 218
A tale scopo, poniamo w = µ∇u. Ricordiamo il Teorema della divergenza
Z Z
∇ · g dx = g · n ds ,
Ω ∂Ω

dove g è un campo vettoriale definito in Ω e n è il versore normale al bordo ∂Ω di Ω,


orientato verso l’esterno.
Applichiamo tale risultato al campo vettoriale g = wv, ottenendo
Z Z Z
∇ · (wv) dx = (wv) · n ds = (w · n) v ds .
Ω ∂Ω ∂Ω

Ora, grazie alla regola di derivazione di un prodotto, si ha

∇ · (wv) = (∇ · w) v + w · ∇v .

Pertanto, Z Z Z
(∇ · w) v dx + w · ∇v dx = (w · n) v ds ,
Ω Ω ∂Ω

ossia Z Z Z
− (∇ · w) v dx = w · ∇v dx − (w · n) v ds .
Ω Ω ∂Ω

Ricordando che w = µ∇u, otteniamo

() 85 / 218
Z Z Z
∂u
− ∇ · (µ∇u) v dx = µ∇u · ∇v dx − µ v ds ,
Ω Ω ∂Ω ∂n
dove abbiamo indicato con
∂u
= ∇u · n
∂n
la derivata normale di u su ∂Ω.
A secondo membro, osserviamo che l’integrale di bordo è nullo in quanto gli spostamenti
ammissibili v si annullano su ∂Ω. In definitiva, vale l’uguaglianza
Z Z
− ∇ · (µ∇u) v dx = µ∇u · ∇v dx .
Ω Ω

Siamo quindi giunti alla seguente formulazione integrale, o variazionale, del problema
della membrana elastica:
8
<u ∈ V e soddisfa
>
Z Z (51)
: µ∇u · ∇v dx =
> f v dx per ogni v ∈ V .
Ω Ω

Esso esprime, dal punto di vista fisico, il Principio dei Lavori Virtuali. Si noti la perfetta
analogia formale con la formulazione variazionale del problema monodimensionale del filo
elastico.
() 86 / 218
Formulazione variazionale discreta

La definizione rigorosa dello spazio vettoriale V degli spostamenti ammissibili è data in


modo tale da garantire che il problema (51) ammetta una e una sola soluzione.
Tra le funzioni di V ci sono tutte le funzioni continue con derivate parziali prime continue
in Ω; ma stanno in V anche le funzioni continue in Ω ed ivi derivabili “a pezzi”, ossia per
le quali esista una suddivisione di Ω in un numero finito di regioni chiuse C1 , . . . , Cm tali
che v ammetta derivate parziali prime continue e limitate all’interno di ciascuna regione
Ci .
Ciò rende possibile definire agevolmente una approssimazione numerica del problema,
limitando la scelta degli spostamenti ammissibili a un sottospazio Vh di V di spostamenti
ammissibili discreti, ad esempio dati da funzioni continue e polinomiali “a pezzi”.
Il sottospazio ha dimensione finita, ossia è generato dalle combinazioni lineari di N
spostamenti ammissibili discreti ϕ1 , ϕ2 , . . . , ϕN linearmente indipendenti tra loro:
N
X
vh (x) = vj ϕj (x) per ogni vh ∈ Vh ,
j=1
ossia
Vh = vett {ϕ1 , ϕ2 , . . . , ϕN } .
Le funzioni ϕj sono le funzioni di base di Vh .

() 87 / 218
Sostituendo Vh a V nella formulazione (51), otteniamo la seguente formulazione
variazionale discreta del problema della membrana elastica:
8
<uh ∈ Vh e soddisfa
>
Z Z (52)
: µ∇uh · ∇vh dx =
> f vh dx per ogni vh ∈ Vh .
Ω Ω

Mediante la base {ϕ1 , ϕ2 , . . . , ϕN } di Vh , possiamo ridurre tale problema a un sistema


algebrico
Au = f
di N equazioni in N incognite.
Infatti, scegliendo di volta in volta vh = ϕj in (52), otteniamo immediatamente le N
equazioni soddisfatte da uh :
Z Z
µ∇uh · ∇ϕj dx = f ϕj dx , 1≤j≤N .
Ω Ω

() 88 / 218
N
X
Rappresentando uh rispetto alla base di Vh come uh = uk ϕk e usando la linearità
k=1
della derivazione e dell’integrazione, otteniamo
N
X Z Z
uk µ∇ϕk · ∇ϕj dx = f ϕj dx , 1≤j≤N .
k=1 Ω Ω

Dunque la formulazione (52) si scrive in forma matriciale come

Au = f , (53)

avendo posto

A = (ajk ) ∈ RN ×N , u = (uk ) ∈ RN , f = (fj ) ∈ RN ,

con Z Z
ajk = µ∇ϕk · ∇ϕj dx , fj = f ϕj dx . (54)
Ω Ω

La matrice A prende il nome di matrice di rigidezza del sistema.

() 89 / 218
Proprietà della matrice di rigidezza

Theorem
La matrice Z
A = ( ajk ) , ajk = µ∇ϕk · ∇ϕj dx ,

è simmetrica e definita positiva.

Dimostrazione La matrice è ovviamente simmetrica. Mostriamo che è definita positiva


verificando la condizione equivalente

v T Av > 0 per ogni vettore v 6= 0 .

La componente j-esima del vettore Av è data da


N N Z Z N
!
X X X
(Av)j = ajk vk = vk µ∇ϕk · ∇ϕj dx = µ∇ vk ϕk · ∇ϕj dx ,
k=1 k=1 Ω Ω k=1

per la linearità dell’integrazione e della derivazione. Pertanto

() 90 / 218
N N Z N
!
X X X
v T Av = vj (Av)j = vj µ∇ vk ϕk · ∇ϕj dx
j=1 j=1 Ω k=1
Z N
! N
!
X X
= µ∇ vk ϕk ·∇ v j ϕj dx .
Ω k=1 j=1

Indichiamo con vh ∈ Vh la funzione


N
X N
X
vh = vk ϕk = vj ϕj
k=1 j=1

(le due espressioni coincidono, in quanto k e j sono indici “muti” di somma).


Abbiamo quindi
Z Z
v T Av = µ∇vh · ∇vh dx = µk∇vh k2 dx ≥ 0
Ω Ω

N
per ogni v ∈ R , in quanto il coefficiente elastico µ è strettamente positivo.

() 91 / 218
La verifica è conclusa se facciamo vedere che

v T Av = 0 implica v=0.

Se v T Av = µk∇vh k2 dx = 0, allora necessariamente


R

µk∇vh k2 = 0 in ogni punto di Ω ,

dunque
∇vh = 0 in ogni punto di Ω ,
ossia la funzione
vh è costante in Ω ;
ma essendo vh nulla sul bordo di Ω, necessariamente si ha

vh = 0 in ogni punto di Ω .

Dalla relazione
N
X
vh = vk ϕk = 0
k=1

deduciamo che vk = 0 per ogni k, essendo ϕk funzioni linearmente indipendenti per


ipotesi. Dunque concludiamo che v = 0.

() 92 / 218
DISCRETIZZAZIONE MEDIANTE ELEMENTI FINITI
Supponiamo d’ora in avanti che Ω = Ω ∪ ∂Ω sia un poligono.
Decomponiamo Ω nell’unione di un numero finito di triangoli non degeneri T (gli
elementi geometrici del metodo), soddisfacenti la seguente condizione di ammissibilità:
l’intersezione di due triangoli distinti può soltanto essere
un intero lato comune ad entrambi i triangoli, oppure
un vertice comune ad entrambi i triangoli, oppure
l’insieme vuoto.

Situazioni proibite:

T3

T2

T1 T2 T1

() 93 / 218
Esempio di triangolazione ammissibile di Ω:
4 22 34 6 40 11 3
26 48 2 58 38
27
60
42 18 20 62 6 23
30 42 41 28
23 37
57 41 61 59 10
16 17 19 19
55 39 50 28 12 66
56 49 35
38 8 36 45
52 51 31
16 5 67
24 68 12
8 64 9 46 25 7
30 14 15
17 32
43 63 45 21 3
37 11
33 32 44
47 54
29 15 14 65
1 7
21 46 18 53 20
9 13
35 43
27 26 31 29
25 4 22 24
33 39
36 34 44 40
1 10 5 13 2

Sia T la collezione dei triangoli in cui decomponiamo Ω; diremo che T è una


triangolazione di Ω. Dunque [
Ω= T .
T ∈T

Dato un triangolo T ∈ T , indichiamo con

hT = diam(T )

il suo diametro, ossia la massima distanza tra i suoi punti (che coincide con la lunghezza
del lato maggiore). Poniamo poi
h = max hT ;
T ∈T

tale parametro rappresenta una misura della finezza della triangolazione.


() 94 / 218
4 22 34 6 40 11 3
26 48 2 58 38
27
60
42 18 20 62 6 23
30 42 41 28
23 37
57 41 61 59 10
16 17 19 19
55 39 50 28 12 66
56 49 35
38 8 36 45
52 51 31
16 5 67
24 68 12
8 64 9 46 25 7
30 14 15
17 32
43 63 45 21 3
37 11
33 32 44
47 54
29 15 14 65
1 7
21 46 18 53 20
9 13
35 43
27 26 31 29
25 4 22 24
33 39
36 34 44 40
1 10 5 13 2

I vertici x dei triangoli di T sono detti i nodi della triangolazione.


Distinguiamo tra
nodi interni, appartenenti a Ω, che supponiamo essere in numero di Nhi ,
nodi di bordo, appartenenti a ∂Ω, che supponiamo essere in numero di Nhb .

Il numero totale di nodi della triangolazione sarà dunque

Nh = Nhi + Nhb .

Indichiamo con xj il j-esimo nodo della triangolazione, avente coordinate


(xj1 , xj2 ) = (xj , yj ).
() 95 / 218
xk

T
xl

xj

Sia T ∈ T un qualunque triangolo della triangolazione, e siano xj , xk , xl i suoi tre


vertici.
L’ipotesi che il triangolo non sia degenere equivale alla condizione che i due vettori
xj − xl e xk − xl non siano paralleli, ossia che il loro prodotto vettoriale non sia nullo:
(xj − xl ) × (xk − xl ) 6= 0 .
Posto „ «
xj − xl yj − yl
G= , (55)
xk − xl yk − xl
si ha
(xj − xl ) × (xk − xl ) = (det G) e3
e dunque la condizione di non degenerazione di T equivale alla non singolarità della
matrice G. Si ha inoltre
1
area(T ) = |det G| .
2
() 96 / 218
Gli spostamenti ammissibili discreti

Dato un triangolo T ∈ T , sia

P1 (T ) = {p : T → R | p(x, y) = αx + βy + γ , con α, β, γ ∈ R} ,

l’insieme dei polinomi algebrici di grado complessivo ≤ 1, definiti su T . Esso è uno spazio
vettoriale di dimensione 3.
Gli spostamenti ammissibili vh saranno funzioni continue in Ω, nulle su ∂Ω e tali che su
ogni triangolo T appartengono a P1 (T ). Introduciamo quindi lo spazio delle funzioni
continue e polinomiali a pezzi sulla triangolazione, ossia

Vh = {vh : Ω → R : vh è continua e vh|T ∈ P1 (T ) per ogni T ∈ T } .

Lo spazio degli spostamenti ammissibili discreti sarà allora dato da

Vh = {vh ∈ Vh : vh = 0 su ∂Ω} .

() 97 / 218
Sia vh una funzione di Vh . Sul generico triangolo T ∈ T , il polinomio
p = vh|T ∈ P1 (T ) , p(x, y) = αx + βy + γ ,
è univocamente determinato da 3 condizioni linearmente indipendenti.
Una scelta naturale è costituita dall’assegnazione dei valori che p assume nei tre vertici
del triangolo T , ossia dalle condizioni
p(xj ) = vj , p(xk ) = vk , p(xl ) = vl .
Infatti:
(motivazione geometrica:) per 3 punti non allineati dello spazio passa uno e un solo
piano;
(motivazione algebrica) i coefficienti α, β e γ devono soddisfare
8
< αxj + βyj + γ = vj
αxk + βyk + γ = vk
αxl + βyl + γ = vl
:

ossia 0 10 1 0 1
xj yj 1 α vj
@ xk yk 1 A @ β A = @ vk A .
xl yl 1 γ vl
Il sistema ammette una e una sola soluzione perchè il determinante della matrice
coincide con quello della matrice G definita in (55), che è non singolare.
() 98 / 218
Incollamento di polinomi
L’assegnazione dei valori di vh nei nodi della triangolazione garantisce la continuità
attraverso i lati dei triangoli, e dunque la continuità globale.
xk

T2

T1

xj

Se p1 è un polinomio di primo grado definito in T1 , p2 è un polinomio di primo grado


definito in T2 , e se
p1 (xj ) = p2 (xj ) , p1 (xk ) = p2 (xk ) ,
allora
p1 e p2 coincidono lungo il lato L = [xj , xk ] .

Pertanto la funzione (
p1 (x) se x ∈ T1 ,
vh (x) =
p2 (x) se x ∈ T2 ,
è continua in T1 ∪ T2 .
() 99 / 218
Estendendo tale ragionamento ad ogni coppia di triangoli contigui della triangolazione T ,
si vede che per costruire una funzione vh ∈ Vh è sufficiente assegnare i suoi valori

vj = vh (xj ) , j = 1, . . . , Nh ,

nei nodi della triangolazione. Il ragionamento precedente ci garantisce che vh sarà


automaticamente continua attraverso i lati della triangolazione.
Dunque, una funzione vh ∈ Vh è univocamente determinata dai suoi valori nei nodi della
triangolazione. Possiamo quindi associare ad essa il vettore colonna

v = (vj )1≤j≤Nh ∈ RNh .

Una funzione vh ∈ Vh (ossia una funzione di Vh nulla sul bordo ∂Ω) sarà caratterizzata
dall’avere nulli i valori in tutti i nodi di bordo.
Pertanto, tale funzione sarà determinata dai suoi valori vj = vh (xj ), j = 1, . . . , Nhi , nei
nodi interni della triangolazione. Possiamo quindi associare a vh il vettore colonna
i
v = (vj )1≤j≤N i ∈ RNh .
h

(Per semplicità didattica, assumiamo qui e nel seguito che i nodi di bordo siano numerati
successivamente a quelli interni.)
() 100 / 218
La base di Lagrange
Introduciamo ora delle basi in Vh e in Vh .

È naturale considerare la base di Lagrange in Vh , formata dalle funzioni di tale insieme


che valgono 1 in un nodo della triangolazione e 0 in tutti gli altri. Sia quindi ϕj ∈ Vh la
funzione tale che
ϕj (xk ) = δjk , 1 ≤ j, k ≤ Nh .

Tale funzione è diversa da 0 in tutti e soli i triangoli che hanno xj come vertice, cioè nei
triangoli di T (j), dove
T (j) = {T ∈ T : xj ∈ T } .
() 101 / 218
Il supporto di ϕj è definito come l’unione di tali triangoli, ossia
[
supp ϕj = T .
T ∈T (j)

Le funzioni ϕj formano una base di Vh ,

Vh = vett {ϕj : 1 ≤ j ≤ Nh } ,

in quanto ogni funzione vh ∈ Vh può essere espressa come


Nh
X
vh (x) = vj ϕj (x) , con vj = vh (xj ) . (56)
j=1

Per ottenere una base di Lagrange in Vh , è sufficiente limitarsi alle funzioni ϕj con
1 ≤ j ≤ Nhi . Infatti, se vh ∈ Vh , si ha vj = vh (xj ) = 0 per Nhi + 1 ≤ j ≤ Nh e dunque
la (56) diventa
i
Nh
X
vh (x) = vj ϕj (x) , (57)
j=1

ossia
Vh = vett {ϕj : 1 ≤ j ≤ Nhi } .

() 102 / 218
Struttura della matrice di rigidezza e del termine noto

Ricordiamo la definizione della matrice di rigidezza A = (ajk ) ∈ RN ×N , con


Z XZ
ajk = µ∇ϕk · ∇ϕj dx = µ∇ϕk · ∇ϕj dx ,
Ω T ∈T T

ove abbiamo usato il fatto che Ω è unione dei triangoli di T .


Ricordiamo poi che
[
T (j) = {T ∈ T : xj ∈ T } e supp ϕj = T .
T ∈T (j)

Quindi, se T 6∈ T (j), allora xj 6∈ T . Pertanto, ϕj è identicamente nulla su T e dunque


anche il suo gradiente sarà ivi identicamente nullo. In questo modo, deduciamo che
Z
µ∇ϕk · ∇ϕj dx = 0 se T 6∈ T (j) oppure se T 6∈ T (k) .
T

Concludiamo che Z
X
ajk = µ∇ϕk · ∇ϕj dx . (58)
T ∈T (j)∩T (k) T

() 103 / 218
xk

xj

Supponiamo dapprima che k = j. In tal caso


X Z
ajj = µk∇ϕj k2 dx ;
T ∈T (j) T

gli elementi diagonali sono tutti strettamente positivi e sono ottenuti per integrazione sul
supporto della corrispondente funzione di base.

Sia ora k 6= j. Se esiste un triangolo T appartenente a T (j) ∩ T (k), esso ha i nodi xj e


xk come vertici; ovviamente, ciò è possibile se e solo se i due nodi sono collegati da un
lato della triangolazione.

() 104 / 218
xk

xj

Dunque, se xj e xk stanno su uno stesso lato (necessariamente non di bordo), allora


T (j) ∩ T (k) non è vuoto: esso è formato dai due triangoli T1 e T2 che condividono quel
lato; avremo quindi
Z Z
ajk = µ∇ϕk · ∇ϕj dx + µ∇ϕk · ∇ϕj dx , con T1 , T2 ∈ T (j) ∩ T (k) ,
T1 T2

e tale elemento di matrice è potenzialmente diverso da 0.

() 105 / 218
Viceversa,

T (j) ∩ T (k) è vuoto se xj e xk non stanno su uno stesso lato di T .

In tal caso, si ha necessariamente


ajk = 0 .

Per ogni nodo xj , il numero di nodi xk collegati ad esso da un lato è pari al numero di
triangoli che hanno vertice in xj ; tale numero è in genere piccolo (≤ 10), perchè
altrimenti si avrebbero triangoli con angoli molto piccoli, cosa negativa per il
condizionamento della matrice.

Pertanto, il numero di elementi ajk a priori diversi da 0 presenti sulla generica riga j della
matrice A risulta essere O(1).
Ne segue che il numero totale di elementi ajk a priori diversi da 0 è O(N ), a fronte del
fatto che A possiede N 2 elementi. Pertanto, A è una matrice sparsa.

() 106 / 218
La posizione degli elementi ajk diversi da 0 nella matrice dipende dalla numerazione dei
nodi: se due nodi collegati da un lato hanno numerazione “vicina”, il corrispondente
elemento ajk sarà “vicino” alla diagonale principale; la distanza dalla diagonale principale
è infatti data da |j − k|.
È possibile
√ numerare i nodi in modo che A risulti a banda, con ampiezza di banda
O( N ).
Esistono tecniche automatiche di riordinamento dei nodi (reordering), che ottimizzano il
costo di risoluzione del sistema algebrico mediante un metodo diretto (Gauss, Choleski).

Infine, per quanto riguarda il termine noto, abbiamo


Z XZ X Z
fj = f ϕj dx = f ϕj dx = f ϕj dx .
Ω T ∈T T T ∈T (j) T

() 107 / 218
Assemblaggio

Abbiamo visto che


X Z X Z
ajk = µ∇ϕk · ∇ϕj dx , fj = f ϕj dx .
T ∈T (j)∩T (k) T T ∈T (j) T

In un codice a elementi finiti, la costruzione della matrice di rigidezza e del vettore dei
termini noti può essere logicamente suddivisa in due fasi distinte:
un ciclo sui triangoli di T , in cui per ogni triangolo si calcolano i contributi di quel
triangolo alla matrice di rigidezza e al vettore dei termini noti;
l’assemblaggio della matrice e del vettore, in cui i contributi provenienti dai vari
triangoli vengono sommati opportunamente per dar vita agli elementi di matrice e di
vettore.
In realtà, per motivi di efficienza, la seconda fase si realizza in pratica nel corso
dell’esecuzione della prima: man mano che i contributi di un triangolo si rendono
disponibili, essi sono aggiunti al valore corrente dei corrispondenti elementi di matrice e di
vettore (inizialmente posti a 0); solo al termine del ciclo sui triangoli, tutti gli elementi di
matrice e di vettore avranno assunto il valore corretto.

() 108 / 218
Sia T un generico triangolo della triangolazione, che supponiamo avere vertici

xj1 , xj2 , xj3 , con 1 ≤ j1 , j 2 , j 3 ≤ N h .

Se tutti i vertici di T sono interni (cioè se 1 ≤ j1 , j2 , j3 ≤ Nhi = N ), allora il triangolo dà


contributo agli elementi di matrice

aj1 ,j1 , aj1 ,j2 , aj1 ,j3 , aj2 ,j2 , aj2 ,j3 , aj3 ,j3

e a quelli con indici scambiati, e agli elementi del vettore termine noto

fj1 , fj2 , fj3 .

Se uno o due vertici di T sono di bordo, allora i contributi alla matrice e al termine noto
possono essere diversi, a seconda delle condizioni al bordo imposte. Per il momento,
tralasciamo questo caso.

() 109 / 218
x57 = x[2]

x56 = x[1]
x63 = x[3]

È conveniente passare dalla numerazione globale j1 , j2 , j3 dei nodi alla numerazione


locale che usa gli indici 1, 2, 3. Nel seguito useremo lettere greche (α, β, . . . ) per indicare
gli indici locali.
Dunque
xjα −→ xα , 1≤α≤3;
ϕjα |T −→ ϕα ∈ P1 (T ) , 1≤α≤3;
Z Z
µ∇ϕjβ · ∇ϕjα dx −→ µ∇ϕβ · ∇ϕα dx , 1 ≤ α, β ≤ 3 ;
T T
Z Z
f ϕjα dx −→ f ϕα dx , 1≤α≤3.
T T

() 110 / 218
Possiamo dunque introdurre la matrice di rigidezza dell’elemento, cioè del triangolo,
(detta elemental stiffness matrix nella letteratura anglosassone)
Z
(T ) (T )
A(T ) = (aαβ )1≤α,β≤3 ∈ R3×3 , con aαβ = µ∇ϕβ · ∇ϕα dx ,
T

e il vettore dei termini noti dell’elemento


Z
f (T ) = (fα(T ) )1≤α≤3 ∈ R3 , con fα(T ) = f ϕα dx .
T

(T )
[Non si confonda l’apice con il simbolo di trasposta!]

() 111 / 218
Costruzione della matrice di rigidezza dell’elemento

Osserviamo che ∇ϕα è un vettore costante in T , in quanto ϕα è una funzione affine.


Dunque Z
(T )
aαβ = ∇ϕβ · ∇ϕα µ dx .
T

Introduciamo il valor medio di µ su T


Z
1
µT = µ dx .
area(T ) T

Osserviamo che se µ è costante su T , allora µT = µ, altrimenti µT può essere


approssimato con il valore µ(xb ) nel baricentro xb = 13 (x1 + x2 + x3 ) del triangolo.
Otteniamo quindi
(T )
aαβ = µT area(T ) ∇ϕβ · ∇ϕα .

Dobbiamo dunque calcolare i gradienti delle funzioni di base.

() 112 / 218
Ricordando la formula di Taylor per funzioni di più variabili, osserviamo innanzitutto che
se x e x0 sono punti del triangolo T , la variazione di ϕα tra x0 e x può essere scritta
come
ϕα (x) − ϕα (x0 ) = ∇ϕα · (x − x0 ) ,
in quanto ϕα è affine e quindi tutte le sue derivate di ordine superiore al primo sono
nulle. Si ha dunque, applicando la formula precedente ai vertici del triangolo,

1 = ϕα (xα ) − ϕα (xγ ) = ∇ϕα · (xα − xγ ) , con γ 6= α ,


0 = ϕα (xβ ) − ϕα (xγ ) = ∇ϕα · (xβ − xγ ) , con β 6= α, β 6= γ .

Pertanto le componenti ϕα,x e ϕα,y di ∇ϕα sono le soluzioni del sistema algebrico
„ «„ « „ «
xα − xγ yα − yγ ϕα,x 1
= ,
xβ − xγ yβ − yγ ϕα,y 0

dove β e γ indicano i due indici diversi da α nell’insieme {1, 2, 3}; si noti che la matrice
del sistema è una particolare matrice G come definita in (55). Si ha quindi
yβ − yγ xβ − xγ
ϕα,x = , ϕα,y = − . (59)
det G det G

() 113 / 218
Se i nodi xα , xβ e xγ si susseguono in senso antiorario, si ha det G = 2area(T ) > 0 e
dunque le formule precedenti diventano
yβ − yγ xβ − xγ
ϕα,x = , ϕα,y = − . (60)
2area(T ) 2area(T )

In modo esplicito, considerando i tre casi (α, β, γ) = (1, 2, 3), (α, β, γ) = (2, 3, 1) e
(α, β, γ) = (3, 1, 2), si ha
y2 − y3 x2 − x3
ϕ1,x = , ϕ1,y = − ,
2area(T ) 2area(T )
y3 − y1 x3 − x1
ϕ2,x = , ϕ2,y = − ,
2area(T ) 2area(T )
y1 − y2 x1 − x2
ϕ3,x = , ϕ3,y = − .
2area(T ) 2area(T )

() 114 / 218

∇ϕα


Dal punto di vista geometrico, le formule precedenti traducono i due fatti seguenti:
il vettore ∇ϕα è perpendicolare al lato opposto [xγ , xβ ],

∇ϕα · (xγ − xβ ) = 0 ;

l’incremento di ϕα nella direzione del suo gradiente è 1 passando dal lato [xγ , xβ ] al
vertice xα .

Osservazione pratica. Per calcolare le componenti di ∇ϕα , può essere più agevole
sfruttare il fatto che esse sono costanti in T : è quindi sufficiente individuare due
segmenti, disposti rispettivamente in posizione orizzontale e verticale, alle estremità dei
quali si conoscano i valori di ϕα . I rapporti incrementali di ϕα costruiti sui due segmenti
forniscono le componenti cercate.
() 115 / 218
Un’utile “prova del 9”
È utile osservare che la funzione affine ϕ1 + ϕ2 + ϕ3 vale 1 in ciascuno dei vertici di T ,
dunque è costante:
ϕ1 (x) + ϕ2 (x) + ϕ3 (x) = 1 per ogni x ∈ T .

Applicando il gradiente, si deduce l’identità


∇ϕ1 + ∇ϕ2 + ∇ϕ3 = 0 ,
che permette ad esempio di calcolare il gradiente di una funzione di base, noti gli altri
due.

Una conseguenza di quest’ultima relazione è che la somma gli elementi di ogni riga (o
colonna) della matrice A(T ) è nulla. Infatti, per α = 1, 2, 3, si ha
0 1
X3 X 3 Z Z X 3
(T )
aα,β = µ∇ϕβ · ∇ϕα dx = µ@ ∇ϕβ A · ∇ϕα dx
β=1 β=1 T T β=1
Z
= µ 0 · ∇ϕα dx = 0 .
T

Tale proprietà fornisce la “prova del 9” sulla correttezza del calcolo degli elementi della
matrice di rigidezza di un elemento.
() 116 / 218
Calcolo degli elementi del termine noto su un elemento

Usiamo la seguente formula di integrazione numerica


Z
1` ´
g dx ' g(x1 ) + g(x2 ) + (x3 ) area(T ) , (61)
T 3
che è esatta per funzioni affini e generalizza al caso bidimensionale la formula dei trapezi
su un intervallo reale.
Scegliendo g = f ϕα e ricordando i valori di ϕα nei vertici del triangolo, possiamo definire
il vettore dei termini noti dell’elemento come il vettore f (T ) di componenti
1
fα = f (xα )area(T ) , α = 1, 2, 3 . (62)
3
R
Se f è costante su T , tale espressione coincide con il valore esatto T
f ϕα dx.

Si noti che, assemblando le componenti del vettore dei termini noti provenienti dal vari
triangoli, la definizione precedente porta alla seguente espressione per la componente
j-esima del vettore f dei termini noti:
1 X 1
fj = f (xj ) area(T ) = f (xj ) area(supp ϕj ) . (63)
3 3
T ∈T (j)

() 117 / 218
Risultati teorici

Condizionamento della matrice di rigidezza Si ha

cond2 (A) ' ch−2


min , dove hmin = min hT .
T ∈T

Comportamento dell’errore Misuriamo l’errore u − uh in una delle seguenti


norme: „Z «1/2
2
kvk2 = v dx (norma quadratica)

„Z «1/2
kvkE = µk∇vk2 dx (norma dell’energia)

kvk∞ = max |v(x)| (norma del massimo) .


x∈Ω

Supponiamo che la soluzione esatta u abbia le derivate parziali seconde di norma


quadratica limitata, ossia che
2 ‚
‚ ∂2u ‚

X
kukH,2 = ‚ ∂xi ∂xj ‚ < +∞ .
‚ ‚
i,j=1 2

() 118 / 218
Sotto questa ipotesi, per una triangolazione regolare, si ha che l’errore u − uh tende a
zero
quadraticamente in h se misurato nella norma quadratica, ossia

ku − uh k2 ≤ Ch2 kukH,2 ,

linearmente in h se misurato nella norma dell’energia, ossia

ku − uh kE ≤ ChkukH,2 .

Se in aggiunta u ha le derivate parziali seconde di norma del massimo limitata, ossia se


‚ 2 ‚
‚ ∂ u ‚
kukH,∞ = max ‚ ‚ < +∞ ,
1≤i,j≤2 ‚ ∂xi ∂xj ‚

l’errore tende a zero “quasi” quadraticamente in h se misurato nella norma del


massimo, ossia si ha

ku − uh k∞ ≤ Ch2 | log h|3/2 kukH,∞ .

() 119 / 218
Altre condizioni al bordo

Supponiamo che il bordo ∂Ω sia diviso in una parte non vuota ΓD , su cui imponiamo una
condizione di Dirichlet non omogenea, e nel complementare ΓN , su cui imponiamo una
condizione di Neumann non omogenea. Il problema è quindi
8
>−∇ · (µ∇u) = f in Ω ,
>
>
>
<
u=g su ΓD ,
>
∂u
>
>

>
=ψ su ΓN ,
∂n
con g e ψ funzioni assegnate.
La condizione di Neumann rappresenta l’assegnazione su ΓN della componente normale
dello sforzo di taglio (nel modello elastico), oppure del flusso di calore (nel modello
termico).

Mantenendo il riferimento al modello elastico, l’insieme V (g) degli spostamenti


ammissibili, o funzioni di forma, è ora composto da funzioni che valgono g su ΓD , mentre
assumono valori arbitrari su ΓN .
L’insieme delle variazioni ammissibili, o funzioni di test, sarà V (0).

() 120 / 218
La formulazioni variazionale si basa sulla già nota formula di integrazione per parti
Z Z Z
∂u
− ∇ · (µ∇u) v dx = µ∇u · ∇v dx − µ v ds ,
Ω Ω ∂Ω ∂n

in cui u ∈ V (g) è ora la soluzione del nostro problema mentre v ∈ V (0) è una qualunque
funzione test. L’integrale sul bordo a secondo membro può essere scritto come
Z Z Z Z
∂u ∂u ∂u
µ v ds = µ v ds + µ v ds = 0 + ψ v ds ,
∂Ω ∂n ΓD ∂n ΓN ∂n ΓN

avendo tenuto conto che v si annulla su ΓD e che u soddisfa la condizione di Neumann


su ΓN .

Pertanto, la formulazione variazionale del problema è


8
<u ∈ V (g) e soddisfa
>
(64)
Z Z Z
>
: µ∇u · ∇v dx = f v dx + ψ v ds per ogni v ∈ V (0) .
Ω Ω ΓN

() 121 / 218
Discretizzazione
Supponiamo che ΓD sia unione di lati di triangoli. Supponiamo inoltre (per pura
semplicità espositiva) che i nodi di bordo su ΓN siano numerati per primi rispetto a quelli
su ΓD .
L’insieme degli spostamenti ammissibili discreti, o funzioni di forma discrete, viene
definito come

Vh (g) = {vh ∈ Vh : vh (xj ) = g(xj ) per ogni xj ∈ ΓD } ;

l’insieme delle variazioni ammissibili discrete, o funzioni test discrete, sarà dunque Vh (0).
Le funzioni di Vh (g) e di Vh (0) sono univocamente determinate dai loro valori nei nodi
interni e appartenenti a ΓN della triangolazione. Tali nodi sono dunque quelli che
portano i gradi di libertà; indichiamo ancora con N il loro numero (con Nhi ≤ N < Nh ).
Si avrà pertanto
Vh (0) = vett {ϕj : 1 ≤ j ≤ N } ,
mentre una funzione uh ∈ Vh (g) sarà rappresentabile come
N Nh
X X
uh (x) = uk ϕk (x) + gk ϕk (x) ,
k=1 k=N +1

avendo posto gk = g(xk ).


() 122 / 218
La formulazione variazionale discreta è allora la seguente:
8
<uh ∈ Vh (g) e soddisfa
>
Z Z Z
: µ∇uh · ∇vh dx =
> f vh dx + ψ vh ds per ogni vh ∈ Vh (0) .
Ω Ω ΓN

Scegliendo di volta in volta vh = ϕj , abbiamo immediatamente le N equazioni


soddisfatte da uh :
Z Z Z
µ∇uh · ∇ϕj dx = f ϕj dx + ψ ϕj ds , 1≤j≤N .
Ω Ω ΓN

Sostituiamo l’espressione precedente per uh a primo membro e portiamo a secondo


membro quanto dipende dal dato g. Ponendo, come sempre,
Z
ajk = µ∇ϕk · ∇ϕj dx ,

otteniamo il sistema algebrico


N Z Z Nh
X X
ajk uk = f ϕj dx + ψ ϕj ds − ajk gk , 1≤j≤N ,
k=1 Ω ΓN k=N +1

che scriviamo ancora nella forma


Au = f .
() 123 / 218
Condizione di Robin

La condizione di Neumann può essere generalizzata nella cosiddetta condizione di Robin


∂u
µ + αu = ψ su ΓN ,
∂n
con α ≥ 0 coefficiente assegnato.
Ad esempio, si ottiene una tale condizione imponendo che il flusso di calore sia
proporzionale alla differenza tra una temperatura ū assegnata e la temperatura u della
piastra, ossia
∂u
µ = α(ū − u) su ΓN ;
∂n
in tal caso, si ha ψ = αū.

La condizione di Robin modifica l’espressione del termine di bordo:


Z Z Z Z Z
∂u ∂u
µ v ds = µ v ds = (−αu + ψ) v ds = − αu v ds + ψ v ds .
∂Ω ∂n ΓN ∂n ΓN ΓN ΓN

() 124 / 218
La nuova formulazione variazionale discreta del problema diventa:
8
<uh ∈ Vh (g) e soddisfa
>
Z Z Z Z
: µ∇uh · ∇vh dx +
> αuh vh ds = f vh dx + ψ vh ds per ogni vh ∈ Vh (0) .
Ω ΓN Ω ΓN

L’effetto è di modificare la matrice di rigidezza A, i cui elementi sono ora dati da


Z Z
ajk = µ∇ϕk · ∇ϕj dx + α ϕk ϕj ds .
Ω ΓN

L’integrale su ΓN è però nullo per tutte le funzioni di base associate ai nodi interni.

Poichè α ≥ 0 per ipotesi, non è difficile verificare che la matrice A, simmetrica, risulta
ancora definita positiva.

() 125 / 218