Sei sulla pagina 1di 23

3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 48

3 Risoluzione numerica dell’equazione di Poisson


non lineare
In questa sezione ci occuperemo della risoluzione numerica dell’equazione
di Poisson non lineare, ricavata alla fine del capitolo precedente, per un
semiconduttore estrinseco, drogato non uniformemente, in equilibrio globale:
  


 −∇ · (∇φ) = −qni exp
kB T 





 qφ
 + qni exp − + qNd − qNa , in Ω
kB T (1)
φ = φ , su Γ ,



 bi D

 ∂φ = 0, su ΓN ≡ ∂Ω \ ΓD .



∂ν
Risolvere numericamente un’equazione differenziale significa calcolare
dei valori approssimati delle funzioni incognite in un numero sufficiente-
mente grande di punti dello spazio, in modo da poter visualizzare una
approssimazione della soluzione senza conoscerne i dettagli analitici.
Tipicamente si riconduce il problema differenziale di partenza, in cui
l’incognita ha un numero infinito di “componenti” (una funzione φ(x) può
essere vista come un vettore con infinite “componenti”, individuate da un
“indice” continuo x), ad un problema discreto, in cui l’incognita ha un nu-
mero finito di componenti. Spesso il problema discreto è non lineare, e allora
può essere risolto numericamente mediante la risoluzione di una opportuna
successione di sistemi lineari.
Queste tematiche non hanno applicazione solo per l’equazione di Poisson
non lineare ma valgono per la risoluzione numerica di una generica equazione
differenziale. Qui rinunciamo ad una trattazione generale, ma procediamo
affrontando lo specifico problema che abbiamo posto. Parleremo prima della
riduzione del problema di partenza ad un problema discreto, ovvero del
procedimento di discretizzazione, e quindi della risoluzione numerica del
sistema di equazioni algebriche non lineari risultanti.

3.1 Discretizzazione dell’equazione di Poisson: metodo delle


differenze finite
In questa sezione discretizziamo l’equazione di Poisson, che scriviamo nella
forma sintetica
−∇ · ((x)∇φ) = ρ(x, φ), (2)
3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 49

con le condizioni al bordo descritte precedentemente. Considereremo prima


il caso lineare in cui
ρ = ρ(x)
e solo alla fine, brevemente, mostreremo come estendere le nostre conside-
razioni al caso non lineare, in cui ρ dipende anche da φ.
Discretizzare significa sostituire ad una equazione differenziale per una
funzione incognita di variabile continua, una equazione algebrica per una
incognita di variabile discreta, ovvero un vettore. Seguendo la tecnica di
discretizzazione più intuitiva, il vettore costituisce un’approssimazione del-
la funzione incognita in un insieme finito di punti fissati del suo dominio.
Questi punti costituiscono la griglia (grid, mesh) del metodo di risoluzione
numerica. Sono possibili anche altri metodi di discretizazione che appros-
simano la funzione incognita in uno spazio funzionale a dimensione finita,
opportunamente scelta. Ci occuperemo di questo tipo di metodi più avanti.
Per fissare i concetti, affrontiamo la situazione più semplice, ovvero caso
unidimensionale con discretizzazione alle differenze finite.
Consideriamo quindi l’equazione (2) nel caso unidimensionale,
 
∂ ∂φ
− (x) = ρ(x). (3)
∂x ∂x

In questo caso, Ω si riduce ad un intervallo, [0, L], per cui l’equazione pre-
cedente vale con x ∈ (0, L). Per quanto riguarda le condizioni al bordo, il
bordo ∂Ω si riduce a due punti, {0, L}. Quindi possiamo fare le seguenti
scelte:

1. ΓD = {0, L}, ΓN = ∅;

2. ΓD = {0}, ΓN = {L}, oppure ΓD = {L}, ΓN = {0};

3. ΓD = ∅, ΓN = {0, L}.

Indubbiamente la scelta fisicamente più significativa è la prima, perché


ci aspettiamo che un dispositivo, anche se in equilibrio globale, abbia al-
meno due contatti Ohmici. Inoltre sappiamo che esistono dispositivi che
sono ben descritti da un modello unidimensionale, come certi tipi di diodi
o di tiristori. La seconda scelta è interessante perché ci introduce ad un
tipo di condizione che si presenterà inevitabilmente in un caso realistico bi-
dimensionale o tridimensionale. La terza scelta è molto discutibile per le
applicazioni, e da un punto di vista matematico non aggiunge nulla in più
di quanto possiamo apprendere dal caso precedente.
3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 50

Per quanto detto, considereremo in dettaglio il primo caso, di problema


con condizioni al bordo di Dirichlet (dispositivo unidimensionale in equilibrio
globale con due contatti Ohmici), e alla fine accenneremo al secondo caso.
Dunque, all’equazione (3) aggiungeremo le condizioni al bordo
φ(0) = φD,1 := φbi (0), φ(L) = φD,2 := φbi (L). (4)
Per fissare una griglia numerica, consideriamo una partizione di (0, L)
con m + 1 intervalli ed m nodi interni,
0 ≡ x0 < x1 < · · · < xm < xm+1 ≡ L, (5)
e usiamo la notazione hi := xi+1 −xi , con i = 0, . . . , m. Introduciamo i punti
medi degli intervalli di una partizione, xi− 1 := xi − 21 hi−1 , xi+ 1 := xi + 12 hi .
2 2
L’ampiezza della partizione è definita da
h = max hi . (6)
i

Se i nodi sono equidistanti, cioè hi = h per ogni i, la partizione si dice


uniforme. In questo caso si ha
L
h= .
m+1
Vogliamo ricavare un’equazione discreta per un vettore (φ0 , φ1 , . . . , φm+1 )
che fornisca un’approssimazione del vettore (φ(x0 ), φ(x1 ), . . . , φ(xm+1 )). A
tal fine, utilizziamo il metodo di box integration (integrazione su una cella).
Integriamo quindi l’equazione (3) sulla cella [xi − 21 hi−1 , xi + 21 hi ], centrata
su un nodo interno xi , i = 1, . . . , m, ottenendo
Z x 1   Z x 1
i+ 2 ∂ ∂φ i+ 2
− (x) (x) dx = ρ(x) dx.
x 1 ∂x
i− 2
∂x x 1
i− 2

Indichiamo l’integrale al secondo membro con Ri = hi−12+hi ρi , dove ρi indica


il valore medio di ρ nella cella considerata. Eliminando l’integrale al primo
membro usando il teorema fondamentale del calcolo integrale, l’equazione
precedente si riduce a
!
∂φ ∂φ
− i+ 1 − i− 1 = Ri , (7)
2 ∂x 2 ∂x
i+ 1
2
i− 1
2

dove gli indici i ± 12 si riferiscono a valori in corrispondenza di x = xi± 1 .


2
Questa equazione deve essere considerata per ogni cella centrata su un nodo
interno, per cui l’indice i varia da 1 ad m.
3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 51

Finora non abbiamo fatto alcuna approssimazione, e la (7) è una relazio-


ne esatta. Però non possiamo usarla per calcolare la soluzione approssimata,
perché non possiamo collegare in modo esatto le derivate della funzione sui
bordi delle celle con i valori della funzione sui nodi. Quindi siamo costretti
a fare delle approssimazioni.
Possiamo approssimare le derivate di φ come

∂φ φi+1 − φi ∂φ φi − φi−1
≈ , ≈ , (8)
∂x i+ 1
hi ∂x i− 1
hi−1
2 2

dove φi rappresenta il valore della funzione φ nel nodo xi . Le approssimazioni


(8) delle derivate si dicono approssimazioni alle differenze finite, da cui il
nome del metodo. Usando le (8), la (7) diventa
 
φi+1 − φi φi − φi−1
− i+ 1 − i− 1 = Ri . (9)
2 hi 2 hi−1

In questa equazione, l’indice i varia da 1 a m, quindi al variare dell’indice


si ottengono m equazioni per le m + 2 incognite φ0 , . . . , φm+1 . Per essere
più precisi, si ottengono delle equazioni per queste incognite se riusciamo
ad esprimere Ri in funzione di queste incognite. Ci occuperemo di questo
problema poco più avanti. Alle equazioni (9) dobbiamo aggiungere altre due
equazioni ottenute dalle condizioni al bordo,

φ0 = φD,1 , φm+1 = φD,2 . (10)

Osserviamo che per i = 1, nella (9) compare il valore φ0 della variabile nel
nodo x0 = 0. Usando la condizione al bordo, otteniamo
 
φ2 − φ1 φ1 φD,1
− 3 − 1 = R1 +  1 . (11)
2 h1 2 h0 2 h0

In modo analogo, per i = m compare il valore φm+1 nel nodo xm+1 = L, e


si ottiene
 
−φm φm − φm−1 φD,2
− m+ 1 − m− 1 = Rm + m+ 1 . (12)
2 hm 2 hm−1 2 hm

Quindi le (9), per i = 1, . . . , m, con l’aiuto delle (10), si riducono a m


equazioni per le m incognite φ1 , . . . , φm .
3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 52

Riepiloghiamo i passaggi fatti:


 
∂ ∂φ
− (x) = ρ(x), x ∈ [0, L],
∂x ∂x
Z x 1   Z x 1
i+ 2 ∂ ∂φ i+ 2
=⇒ − (x) (x) dx = ρ(x) dx, i = 1, . . . , m,
xi− 1 ∂x ∂x xi− 1
2 2
!
∂φ
∂φ
=⇒ − i+ 1 − i− 1 = (xi+ 1 − xi− 1 )ρ i ,
2 ∂x 2 ∂x 2 2
i+ 21 i− 12
 
φi+1 − φi φi − φi−1
=⇒ − i+ 1 − i− 1 = (xi+ 1 − xi− 1 )ρ i ,
2 xi+1 − xi 2 xi − xi−1 2 2

i− 1  1
i− 2 i+ 21
 i+ 21
hi + hi−1
=⇒ − 2 φi−1 + + φi − φi+1 = ρ i,
hi−1 hi−1 hi hi 2
i = 1, . . . , m.

Introducendo le grandezze
i+ 1
2
αi = , i = 0, 1, . . . , m,
hi
possiamo scrivere il sistema

 (α0 + α1 ) φ1 − α1 φ2 = R1 + α0 φD,1 ,
−αi−1 φi−1 + (αi−1 + αi ) φi − αi φi+1 = Ri , i = 2, . . . , m − 1, (13)
−αm−1 φm−1 + (αm−1 + αm ) φm = Rm + αm φD,2 .

Per una partizione uniforme si ha


i+ 1
2
αi = ,
h
se invece la costante dielettrica è costante, si ha

αi = .
hi
La matrice del sistema (13) è
 
α0 + α1 −α1 0
 .. 
 −α1 α1 + α2 . 
M :=  
.. ..
.

 . . −αm−1 
0 −αm−1 αm−1 + αm
3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 53

Il determinante di questa matrice è


m m  
X 1 Y 1 1
αi = + ··· + α0 · · · αm+1 > 0,
αk α0 αm
k=0 i=0

per cui la matrice è invertibile. Se introduciamo il vettore delle incognite


 
φ1
 φ2 
φ :=  .  ,
 
 .. 
φm
e i vettori dei termini di sorgente e dei dati al bordo,
 
  α0 φD,1
R1  0 
 R2   
R :=  .  , b :=  ...  ,
   
.
 .   
 0 
Rm
αm φD,2
il sistema (13) si può scrivere nella forma
Mφ = R + b. (14)

Ricordiamo che Ri = hi−12+hi ρi , è l’integrale di ρ sulla cella i-esima. Se ρ


dipende solo da x, questo integrale può essere approssimato numericamente
usando varie tecniche. Ad esempio, alcune semplici approssimazioni sono:
• identificare la media di ρ sulla cella i-esima con il valore di ρ sul nodo
i-esimo: Ri = hi−12+hi ρ(xi );
• usare il metodo dei trapezi
 per integrare ρ numericamente sulla cella
hi−1 +hi
i-esima: Ri = 4 ρ(xi− 1 ) + ρ(xi+ 1 ) .
2 2

In genere, la prima scelta è la più conveniente. Qualunque sia l’approssima-


zione scelta per Ri , in questo caso il vettore R è noto, quindi l’equazione
(14) può essere risolta semplicemente invertendo la matrice M.
Osserviamo, infine, che il sistema (14) si può scrivere in modo da far
comparire esplicitamente il vettore
   
ρ1 ρ(x1 )
 ρ2   ρ(x2 ) 
ρ :=  .  =  .  .
   
 ..   .. 
ρm ρ(xm )
3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 54

Infatti si ha
R = Hρ, (15)
dove  
h0 + h1 h1 + h2 hm−1 + hm
H = diag , ,..., . (16)
2 2 2
Quindi la (14) diventa
Mφ = Hρ + b. (17)
Questa equazione è la versione discretizzata del problema (3)–(4).
La soluzione dell’equazione algebrica (17) fornisce dei valori numerici
per le incognite φ1 , . . . , φm . Nella derivazione della (17) abbiamo sistemati-
camente identificato φi con φ(xi ), adoperando alcune approssimazioni “ra-
gionevoli”, quindi ci aspettiamo che il valore di φi ricavato dall’equazione
discretizzata (17) costituisca una buona approssimazione del valore corretto
di φ(xi ), dove φ(x) è soluzione del problema di Poisson lineare (3)–(4).
Nel caso i cui ρ dipenda anche da φ, in genere si approssima Ri identifi-
cando ρi con il valore di ρ sul nodo i-esimo:
hi−1 + hi
Ri = ρ(xi , φi ). (18)
2
Ne segue che il sistema (14) assume la forma
Mφ = Hρ(φ) + b, (19)
con    
ρ1 (φ1 ) ρ(x1 , φ1 )
 ρ2 (φ2 )   ρ(x2 , φ2 ) 
ρ(φ) :=  = . (20)
   
.. ..
 .   . 
ρm (φm ) ρ(xm , φm )
In generale, se la funzione ρ(φ) è nonlineare il sistema (19) non può essere
risolto semplicemente invertendo una matrice. Esistono però, come vedremo,
dei metodi che possono essere utilizzati per risolvere (19) in modo iterativo,
di cui il prototipo è il metodo di Newton.

3.2 Discretizzazione dell’equazione di Poisson: metodo degli


elementi finiti
Abbiamo accennato all’inizio della sezione precedente al fatto che, oltre
alle differenze finite, sono disponibili altri metodi di discretizazione basa-
ti sull’approssimazione della funzione incognita in uno spazio funzionale a
dimensione finita, opportunamente scelto.
3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 55

Per introdurre questi metodi è necessario indebolire il concetto di soluzio-


ne del nostro problema differenziale. Infatti, nella sua formulazione originale
(2), l’equazione di Poisson soddisfatta da funzioni che hanno almeno una
regolarità fino alla derivata seconda, altrimenti perderebbe di significato il
membro di sinistra. Se poi il termine di sorgente ρ(x, φ) è continuo, allora
la derivata seconda della soluzione φ deve essere continua. Quindi lo spa-
zio naturale delle soluzioni della (2) è costituito dallo spazio delle funzioni
continue e derivabili in Ω fino alla derivata seconda, con derivate continue,
cioè da C 2 (Ω). In questo spazio funzionale, la “distanza” tra due funzioni
f, g ∈ C 2 (Ω) è misurata dalla norma

kf − gkC 2 (Ω) = sup |f (x) − g(x)|.


x∈Ω

Questo tipo di regolarità e questo tipo di norma possono essere eccessivi se,
ad esempio, vogliamo approssimare, una soluzione del nostro problema dif-
ferenziale con una funzione continua a tratti, senza discretizzare l’operatore
differenziale.
Come fatto nella sezione precedente, occupiamoci prima del caso lineare
in cui ρ = ρ(x), nel caso unidimensionale, ovvero (3). Consideriamo allora
una funzione arbitraria regolare ψ(x), detta funzione test, e moltiplichiamo
per essa ambo i membri dell’equazione (3), ed integriamo su Ω, ottenendo:
Z   Z
∂ ∂φ(x)
− ψ(x) (x) dx = ψ(x)ρ(x) dx.
Ω ∂x ∂x Ω

Integrando per parti il primo integrale, si ricava


Z
∂ψ(x) ∂φ(x)
(x) dx
Ω ∂x ∂x
Z
∂φ(L) ∂φ(0)
+ψ(L)(L) − ψ(0)(0) = ψ(x)ρ(x) dx.
∂x ∂x Ω

Assumendo inoltre che la funzione test si annulli al bordo, ovvero ψ(0) =


ψ(L) = 0, si arriva all’equazione
Z Z
∂ψ(x) ∂φ(x)
(x) dx = ψ(x)ρ(x) dx, (21)
Ω ∂x ∂x Ω

che deve essere valida per ogni funzione test ψ che si annulla sul bordo del
dominio Ω. Osserviamo che questa equazione può essere soddisfatte anche da
una funzione che non abbia una derivata prima continua, purché la funzione
3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 56

derivata sia a quadrato sommabile, cioè

∂φ(x) 2
Z
∂x dx < +∞.

Ovviamente questa condizione è sufficiente se, ad esempio, anche la ψ ha


una derivata a quadrato sommabile, e se il coefficiente (x) è limitato in Ω.
In ogni caso, è chiaro che l’equazione (22) ammette soluzioni meno regolari
che C 2 (Ω).
Ci stiamo avvicinando alla formulazione di un’equazione che indeboli-
sca il concetto di soluzione. Rimane solo da chiarire quali sono gli spazi
funzionali in gioco. Consideriamo quindi i seguenti spazi funzionali:
( )
Z  1/2
L2 (Ω) = ψ : → R | kψkL2 (Ω) := |ψ(x)|2 dx < +∞ ,

 
1 2 ∂ψ 2
H (Ω) = ψ ∈ L (Ω) | ∈ L (Ω) ,
∂x
H01 (Ω) = ψ ∈ H 1 (Ω) | ψ = 0 su ∂Ω .


La distanza tra due funzioni f , g ∈ L2 (Ω) è misurata dalla norma


Z 1/2
2
kf − gkL2 (Ω) := |f (x) − g(x)| dx ,

mentre la distanza tra due funzioni f , g ∈ H 1 (Ω), ovvero in H01 (Ω), è


misurata dalla norma
2 !1/2
2
∂f ∂g
kf − gkH 1 (Ω) := kf − gkL2 (Ω) +
∂x − ∂x 2
.
L (Ω)

In base alle osservazioni fatte precedentemente, possiamo già accorgerci


che la funzione test generica ψ appartiene allo spazio H01 (Ω).
Per quanto riguarda la soluzione φ, dobbiamo considerare un altro spazio
funzionale, che tenga conto delle condizioni al bordo:

W = ψ ∈ H 1 (Ω) | ψ = φD su ∂Ω .


Nel nostro caso, in cui Ω = (0, L), la condizione che definisce V si traduce
semplicemente in:
ψ(0) = φD,1 , ψ(L) = φD,2 .
3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 57

A questo punto possiamo formulare il nostro problema in forma debole.


Diciamo che φ è una soluzione debole del problema (3)–(4) se φ ∈ W soddisfa
il problema
Z Z
∂ψ(x) ∂φ(x)
(x) dx = ψ(x)ρ(x) dx ∀ψ ∈ V, (22)
Ω ∂x ∂x Ω

con V = H01 (Ω).


Come si nota, è presente una certa asimmetria tra lo spazio delle soluzio-
ni, W , e lo spazio delle funzioni test, V . È possibile formulare il problema
in modo che i due spazi coincidano. A tal fine, si considera una funzione
sufficientemente regolare RφD : Ω̄ → R, detta rilevamento del dato del
bordo, tale che
RφD = φD , su ∂Ω.
Con questa condizione soddisfatta, presa una qualunque funzione φ ∈ W ,
possiamo porre
φ̊ = φ − RφD ∈ V.
Allora la formulazione (22) si può scrivere nella seguente modo: φ si dice
una soluzione debole del problema (3)–(4) se φ = φ̊ + RφD e φ̊ ∈ V = H01 (Ω)
soddisfa il problema
Z Z
∂ψ(x) ∂ φ̊(x)
(x) dx = ψ(x)ρ̃(x) dx ∀ψ ∈ V, (23)
Ω ∂x ∂x Ω
con  
∂ ∂RφD
ρ̃ = ρ(x) + (x) .
∂x ∂x
In conclusione siamo passati dal problema di cercare φ ∈ C 2 [Ω] tale che
  
∂ ∂φ
− (x) = ρ(x) in Ω

∂x ∂x (24)
φ = φD , su ΓD ,

al problema di cercare φ̊ ∈ H01 (Ω) = V tale che sia verificata la (23).


Avendo ricavato la forma debole del problema procediamo alla discre-
tizzazione del problema stesso, ”discretizzando lo spazio funzionale” V . Per
fare questo è necessario che esista una successione di spazi funzionali Vm ,
con m ∈ N, tali che V1 $ V2 $ Vm $ · · · $ V con dim(Vm ) finita con
la successione {Vm }m∈N densa in V . In questo modo fissato m possiamo
considerare il problema approssimato di trovare φ̊ ∈ V tale che
Z Z
∂ψm (x) ∂ φ̊(x)
(x) dx = ψm (x)ρ̃(x) dx ∀ψm ∈ Vm . (25)
Ω ∂x ∂x Ω
3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 58

Infine se ci limitiamo a trovare φ̊m ∈ Vm tale che


Z Z
∂ψm (x) ∂ φ̊m (x)
(x) dx = ψm (x)ρ̃(x) dx ∀ψm ∈ Vm , (26)
Ω ∂x ∂x Ω

otteniamo il metodo di Galerkin.


Per mostrare come risolvere questo problema approssimato, fissiamo una
1 , . . . v m di V . Allora il problema (26), è equivalente a trovare φ̊ ∈
base vm m m m
Vm tale che

∂v i (x) ∂ φ̊m (x)


Z Z
(x) m dx = i
vm (x)ρ̃(x) dx per i = 1, . . . , m, (27)
Ω ∂x ∂x Ω

in quanto, per linearità, la condizione in (26) è soddisfatta per ogni funzione


ψm di Vm se essa vale per ogni elemento di una base di Vm .
Se decomponiamo φ̊m rispetto alla base fissata,
m
X
i
φ̊m (x) = φm,i vm (x),
i=1

possiamo ricavare delle equazioni per i coefficienti φm,i . Al variare di i =


1, . . . , m, le equazioni (27) diventano
m
∂v i (x) ∂ X
Z Z
(x) m j
φm,j vm (x) dx = i
vm (x)ρ̃(x) dx,
Ω ∂x ∂x Ω
j=1

che equivalgono a
m
!
j
∂v i (x) ∂vm
Z Z
X (x)
(x) m dx φm,j = i
vm (x)ρ̃(x) dx, (28)
Ω ∂x ∂x Ω
j=1

ovvero ad una equazione del tipo

Mφ = R, (29)

con
 
φm,1
φ =  ...  , M = (Mij ), R = (Ri ),
 

φm,m
j
∂v i (x) ∂vm
Z Z
(x)
Mij = (x) m dx, Ri = i
vm (x)ρ̃(x) dx.
Ω ∂x ∂x Ω
3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 59

Si noti che in questa formulazione le condizioni al bordo sono contenute nel


termine R, tramite il rilevamento RφD . Questo problema lineare è risolvibile
se la matrice M è invertibile. Si dimostra che se l’operatore dell’equazione
differenziale è ellittico allora la matrice M è invertibile. Nel nostro caso
∂ ∂

l’operatore ∂x  ∂x è ellittico se (x) ≥  > 0.
Questo metodo è generale, per applicarlo in un caso specifico bisogna
scegliere gli spazi Vm ed una loro base. Si ottiene il metodo degli elementi
finiti se, scelta una partizione di Ω composta da m sottoinsiemi Ωi , per i =
1, . . . , m, con ∪i Ωi = Ω, si scelgono delle funzioni vm i tali che supp v i ⊂ Ω .
m i
i
Una coppia (vm , Ωi ) si dice ”elemento finito”. Tipicamente le funzioni vm i

sono polinomi a tratti. L’ordine dell’elemento finito coincide con l’ordine


del polinomio.
Vediamo nello specifico il caso unidimensionale. Gli elementi finiti di
ordine 1 sono le seguenti funzioni
0 ≡ x0 < x ≤ xi−1

 0 per

x−x

i−1
per xi−1 < x ≤ xi


i hi−1
vm (x) = xi+1 −x
(30)


 h i
per xi < x ≤ xi+1


0 per xi+1 < x ≤ xm+1 ≡ L,
in cui abbiamo considerato Ω = [0, L]. Si può verificare che la matrice M in
questo caso è simile a quella che si ottiene con le differenza finite, e coincide
con essa per  costante. In dimensione maggiore di 1 le cose possono essere
molto diverse.
Come nella sezione precedente, occupiamoci brevemente del caso non
lineare. Ripercorrendo tutti i passaggi fatti, ci accorgiamo che l’unica modi-
fica è nel termine di sorgente, e il problema (28), viene sostituito da: trovare
i coefficienti φm,1 , . . . , φm,m tali che
m
!
Z
∂vm i (x) ∂v j (x) Z
m
X
i
(x) dx φm,j = vm (x)ρ̃(x, φ̊m ) dx, (31)
Ω ∂x ∂x Ω
j=1
Pm j
con i = 1, . . . , m, φ̊m = j=1 φm,j vm ∈ Vm . Queste equazioni possono
essere scritte nella forma
Mφ = R(φ), (32)
analoga a (29), con M invariata e
Z
i
R(φ) = (Ri (φ)), Ri (φ) = vm (x)ρ̃(x, φ̊m ) dx. (33)

Vedremo più avanti come trattare questo problema non lineare.
3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 60

3.3 Risoluzione numerica di sistemi di equazioni non lineari


Abbiamo visto che l’equazione di Poisson non lineare discretizzata si ricon-
duce ad un sistema di equazioni non lineari. In questa sezione mostriamo
come risolvere numericamente un tale tipo di problema.
Per semplicità consideriamo una singola equazione

g(y) = 0. (34)

Mostriamo come risolvere questa equazione usando il metodo di Raphson-


Newton. L’idea è che in un intorno della soluzione vera, possiamo risolvere
l’equazione linearizzata anziché quella non lineare sperando di ottenere una
approssimazione migliore.
Supponiamo quindi di sapere che y (0) è abbastanza vicino ad una so-
luzione esatta y di (34). Linearizzando intorno a y = y (0) (espansione di
Taylor) otteniamo

g(y (0) ) + g 0 (y (0) )(ȳ − y (0) ) ≈ g(ȳ) = 0.

Se g 0 (y (0) ) 6= 0, possiamo risolvere questa equazione per ȳ ottenendo la


soluzione ȳ = y (1) , con

y (1) = y (0) − [g 0 (y (0) )]−1 g(y (0) ).

Questo procedimento può essere iterato. Se supponiamo di aver calcolato


l’approssimazione k-esima, y (k) , allora l’approssimazione successiva è data
da
y (k+1) = y (k) − [g 0 (y (k) )]−1 g(y (k) ). (35)
Questo metodo può essere descritto in modo più conveniente nella se-
guente forma:  0 (k) (k)
g (y )δy = −g(y (k) ),
(36)
y (k+1) = y (k) + δy (k) ,
a partire da un guess iniziale y (0) . In questa forma si vede chiaramente che
ad ogni passo bisogna risolvere un’equazione lineare e aggiornare il valore
della variabile.
È possibile dare anche un’interpretazione geometrica del procedimento
descritto. Ad ogni passo, a partire dall’approssimazione y (k) , si considera
sul piano (y, z) la retta tangente alla curva z = g(y), passante per il pun-
to (y (k) , g(y (k) )). L’intersezione di questa retta con l’asse delle y fornisce
l’approssimazione successiva y (k+1) .
3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 61

In generale, il metodo iterativo di Raphson-Newton, sopra descritto, non


conduce mai ad una soluzione esatta ma ad una approssimazione di una
soluzione esatta a meno di una tolleranza fissata. Se siamo interessati ad
una precisione della soluzione ȳ a meno di εy , concluderemo le iterazioni
quando si verificherà che
|δy (k) | ≤ εy . (37)
La soluzione sarà allora ben approssimata da y (k) . Osserviamo però che se
g 0 (y (k) ) è molto grande, allora può verificarsi una situazione in cui |δy (k) | è
piccolo ma |g(y (k) | è grande, e distante da zero. Per questo motivo possiamo
introdurre anche il controllo

|g(y (k) | ≤ εg , (38)

per una certa tolleranza εg fissata. In genere questi due controlli vengono
usati in combinazione l’uno con l’altro.
Potrebbe anche verificarsi che dopo un numero consistente di passi il me-
todo non arrivi a convergere. In questo caso, occorre fermarsi e ricominciare
a partire da un guess iniziale diverso.
Quello descritto è il metodo di Raphson-Newton di base. Esistono però
delle varianti che permettono di migliorare le sue caratteristiche di conver-
genza, anche per guess iniziali non accurati. Possiamo scrivere questi metodi
modificati nella forma generale

M (k) δy (k) = −g(y (k) ),



(39)
y (k+1) = y (k) + tk δy (k) ,

dove tipicamente M (k) è una approssimazione di g 0 (y (k) ), spesso scelta nella


forma M (k) = g 0 (y (k) ) + sk (ma sono possibili espressioni più generali), e tk è
un coefficiente di rilassamento. I coefficienti sk , tk dipendono di solito dalle
correzioni δy (k−1) , δy (k−2) , fatte nei passi precedenti.
Per capire perché queste modifiche possono migliorare il metodo di Raph-
son-Newton, dobbiamo dire brevemente perché questo metodo converge, e
sotto quali condizioni converge. A tal fine conviene scrivere il problema non
lineare di partenza (34) sotto forma di problema del punto fisso:

y = G(y). (40)

È chiaro che questo problema è equivalente a (34) se scegliamo, ad esempio,


G(y) = y + g(y). Il vantaggio di questa forma è che possiamo studiare
l’esistenza di soluzioni mediante alcune proprietà molto blande della funzione
G. Richiedendo qualcosina in più, possiamo anche garantire che la soluzione
3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 62

sia unica, e fornire una stima della velocità di convergenza di un algoritmo


iterativo.
Supponiamo che G sia una contrazione, cioè che goda della proprietà che
le immagini tramite G di due valori distinti siano più vicine tra di loro dei
valori di partenza:

|G(y1 ) − G(y2 )| ≤ LG |y1 − y2 |, (41)

con 0 < LG < 1. Sotto questa ipotesi, osserviamo subito che il problema
del punto fisso (40) ammette un’unica soluzione. Infatti, se y 0 , y 00 sono due
punti fissi per una contrazione G, allora y 0 = G(y 0 ), y 00 = G(y 00 ), e si ha

|y 0 − y 00 | = |G(y 0 ) − G(y 00 )| ≤ LG |y 0 − y 00 |.

Dato che 0 < LG < 1, questa disuguaglianza è possibile solo se |y 0 − y 00 | = 0,


da cui y 0 = y 00 .
Nel caso di una contrazione, possiamo costruire un procedimento itera-
tivo molto semplice: a partire da un guess iniziale y (0) , consideriamo i valori
successivi y (1) = G(y (0) , y (2) = G(y (1) ), e cosı̀ via. In generale, noto y (k) ,
calcoliamo
y (k+1) = G(y (k) ). (42)
Osserviamo che se y ∗ = G(y ∗ ) è una soluzione di (40), allora

|y (k) − y ∗ | = |G(y (k−1) ) − G(y ∗ )|


≤ LG |y (k) − y ∗ | ≤ · · · ≤ LkG |y (0) − y ∗ |.

Dato che LG < 1, ne segue che

lim LkG = 0,
k→∞

e quindi
lim y (k) = y ∗ .
k→∞

Questo semplice argomento mostra che il metodo iterativo proposto converge


all’unico punto fisso del problema. Inoltre, la costante LG ci permette di
stimare quanto velocemente si arriva a convergenza. Quindi la domanda
naturale da porsi è: come possiamo determinare la costante LG ?
La risposta è abbastanza semplice se G ammette una derivata continua
e limitata. In questo caso vale l’identità di Taylor

G(y1 ) = G(y2 ) + G0 (ỹ)(y1 − y2 ), con ỹ = y1 + θ(y2 − y1 ), 0 < θ < 1.


3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 63

La precedente identità dipende dalla continuità di G0 . Si ottiene quindi

|G(y1 ) − G(y2 )| ≤ |G0 (ỹ)| |y1 − y2 |. (43)

Se inoltre, per la limitatezza di G0 , si ha

|G0 (y)| ≤ LG , ∀y, (44)

allora si ha anche
|G(y1 ) − G(y2 )| ≤ LG |y1 − y2 |, (45)
e la funzione G è contrattiva se la costante LG risulta essere strettamente
minore di 1. Riassumendo, possiamo verificare se una funzione G possiede la
proprietà di contrattività semplicemente studiando la limitatezza della sua
derivata.
Se non ho informazioni aggiuntive sulle y, devo supporre che la (44) sia
verificata per ogni y ∈ R. In questo caso, un tale stima potrebbe non valere.
Ma se so che la y deve appartenere ad un certo insieme chiuso e limitato,
per esempio ad un intervallo I di R, e se so che la G porta elementi di questo
intervallo dentro lo stesso intervallo, ovvero

y∈I =⇒ G(y) ∈ I, (46)

allora è sufficiente avere una stima della derivata del tipo

|G0 (y)| ≤ LG , ∀y ∈ I. (47)

Una tale stima è sempre verificata, con

LG = max |G0 (y)| ∈ R, (48)


y∈I

perché una funzione continua in un insieme chiuso e limitato (in generale, in


un insieme compatto) ammette sempre un massimo assoluto, per il teorema
di Weierstrass.
Bene. Adesso applichiamo le precedenti osservazioni teoriche al metodo
di Raphson-Newton, per studiarne la convergenza. Ricordando la formula
di iterazione (35), ci accorgiamo che se il metodo converge, allora il valore
a cui converge è un punto fisso per la funzione

G(y) = y − [g 0 (y)]−1 g(y).

Possiamo calcolare facilmente la derivata di questa funzione,

G0 (y) = 1 − [g 0 (y)]−1 g 0 (y) − (−1)[g 0 (y)]−2 g 00 (y)g(y)


= [g 0 (y)]−2 g 00 (y)g(y).
3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 64

Se y ∗ è uno zero di g(y), allora è un punto fisso di G(y), come si verifica


facilmente. Vogliamo mostrare che esiste un intorno di y ∗ tale che G0 (y) è
minore di 1 per ogni y in quell’intorno. A tal fine dobbiamo assumere che
g 00 (y) sia continua in un intorno di y ∗ , e che valga
g 0 (y ∗ ) 6= 0.
Se vale questa condizione, essendo g(y ∗ ) = 0, si ha anche G0 (y ∗ ) = 0. Allora,
per continuità, esiste un intorno I di y ∗ tale che
|G0 (y)| ≡ |G0 (y) − G0 (y ∗ )| < 1, ∀y ∈ I.
Quindi se il guess iniziale y (0) è scelto in questo intorno allora il metodo
iterativo di Raphson-Newton converge allo zero y ∗ .
Nel caso del metodo di Raphson-Newton modificato, la discussione è
meno elementare, perché il coefficiente di rilassamento tk e il coefficiente
sk nel termine M (k) = g 0 (y (k) + sk sono aggiornati ad ogni passo in base
alle informazioni dei passi precedenti. Per dare un’idea di come funziona il
metodo, supponiamo di tenere tk e sk fissati per ogni k. Allora il metodo di
Raphson-Newton modificato si traduce in un problema al punto fisso per la
funzione
G(y) = y − t[M (y)]−1 g(y),
dove M (y) dipende anche dal parametro s. Si ricava facilmente
G0 (y) = 1 − t[M (y)]−1 g 0 (y) + t[M (y)]−2 M 0 (y)g(y).
In questo caso, se y ∗ è uno zero di g(y), e quindi un punto fisso di G(y), si
ha
G0 (y ∗ ) = 1 − t[M (y ∗ )]−1 g 0 (y ∗ ).
Osserviamo quindi due cose: innanzitutto non abbiamo bisogno di richiedere
che sia g 0 (y ∗ ) 6= 0, perché possiamo scegliere s in modo che M (y ∗ ) 6= 0 anche
se fosse g 0 (y ∗ ) = 0; in secondo luogo, anche se G0 (y ∗ ) risulta essere diverso da
zero, possiamo scegliere t in modo che questa quantità sia sufficientemente
piccola, e quindi poter determinare un intorno di y ∗ in cui G0 (y) sia mino-
re di 1. Riassumendo queste considerazioni semplificate, il parametro s ci
permette di risolvere i problemi che si verificano quando g 0 (y ∗ ) è vicino allo
zero, mentre il parametro t permette di “allargare” l’intorno di convergenza
in cui per ogni guess iniziale il metodo converge a y ∗ .
Le considerazioni fatte per una sola equazione si estendono facilmente a
sistemi di equazione del tipo
g1 (y1 , . . . , ym ) = 0, ..., gm (y1 , . . . , ym ) = 0, (49)
3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 65

che sinteticamente scriviamo come

g(y) = 0, (50)

con    
y1 g1
y =  ...  , g =  ...  .
   

ym gm
Il metodo è formalmente identico al caso scalare: a partire da un guess
iniziale y(0) , per ogni passo successivo si trova

y(k+1) = y(k) − [∇y g(y(k) )]−1 g(y(k) ). (51)

In questo caso, il simbolo ∇y g rappresenta la matrice jacobiana rispetto alla


variabile y,
 ∂g1 ∂g1 
∂y1 · · · ∂y m

∇y g =  ... .. ..  .

. . 
∂gm ∂gm
∂y1 · · · ∂ym
Questo metodo può essere descritto in modo più conveniente nella se-
guente forma:
∇y g(y(k) )δy(k) = −g(y(k) ),

(52)
y(k+1) = y(k) + δy(k) .
Infine osserviamo che anche nel caso di sistemi il metodo di Raphson-Newton
può essere modificato per migliorarne la convergenza:

M(k) δy(k) = −g(y(k) ),



(53)
y(k+1) = y(k) + tk δy(k) ,

dove M(k) è una approssimazione di ∇y g(y(k) ), spesso scelta nella forma


M(k) = ∇y g(y(k) ) + sk I, e tk è un coefficiente di rilassamento.
L’analisi di convergenza è leggermente più complicata che nel caso di
una singola equazione, e verrà omessa.

3.4 Risoluzione dell’equazione di Poisson non lineare


Vediamo ora di applicare il metodo presentato nella sezione precedente all’e-
quazione di Poisson non lineare discretizzata. Consideriamo prima l’equa-
zione ottenuta mediante differenze finite:

Mφ = Hρ(φ) + b, (54)
3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 66

con ρ(φ) definito nella (20)


Per applicare il metodo di Raphson-Newton, riscriviamo queste equazioni
nella forma (50), con

g(φ) = Mφ − Hρ(φ) − b. (55)

Calcoliamo la matrice jacobiana pezzo per pezzo. Scriviamo quindi

g(φ) = glin (φ) + gnonlin (φ)

con
glin (φ) = Mφ − b e glin (φ) = −Hρ(φ).
Per quanto riguarda la parte lineare si ricava facilmente

∇φ glin (φ) = M.

Per quanto riguarda la parte non lineare, scriviamo

ρ(φ) = q(N − n(φ) + p(φ)),

dove
     
N (x1 ) n(φ1 ) p(φ1 )
N =  ...  , n(φ) =  ...  , p(φ) =  ...  , (56)
     

N (xm ) n(φm ) p(φm )


con    
φ −φ
n(φ) = ni exp , p(φ) = ni exp .
Vth Vth
Si ha
1
∇φ n(φ) = diag(n(φ1 ), . . . , n(φm )),
Vth
1
∇φ p(φ) = − diag(p(φ1 ), . . . , p(φm )).
Vth
In conlusione
q
∇φ gnonlin (φ) = H diag(n(φ) + p(φ)).
Vth
Essendo il prodotto di una matrice diagonale questa matrice è diagonale.
Mettendo insieme i vari pezzi, otteniamo:

∇φ g(φ) = ∇φ glin (φ) + ∇φ gnonlin (φ)


q
= M+ H diag(n(φ) + p(φ)).
Vth
3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 67

Possiamo quindi scrivere esplicitamente il metodo di Raphson-Newton ap-


plicato alle equazioni di Poisson non lineari discretizzate.
Passo 0. Si sceglie un guess iniziale φ(0) .
Passo k-esimo. Noto φ(k) si calcola
  q

(k) (k)

 M + Vth H diag(n(φ ) + p(φ ) δφ(k)
  
= −Mφ (k)
+ qH N − n(φ (k)
) + p(φ (k)
) +b (57)


 (k+1)
φ = φ(k) + δφ(k) .

Criterio di stop. Se kδφ(k) k∞ ≤ φ , kg(φ(k+1) )k∞ ≤ g , allora ci si


ferma e si accetta φ(k) come soluzione. In caso contrario si itera il pro-
cedimento. Se il numero di iterazioni è superiore ad un massimo fissato,
si ricomincia dal passo 0, scegliendo un nuovo guess iniziale, o riducendo
l’ampiezza della griglia.
Per concludere il discorso rimane da chiarire come scegliere il guess ini-
ziale. La scelta più semplice consiste nel prolungare i dati al bordo. Nel
nostro caso si ha

φ(0) = φD,1 ≡ φbi (0), φ(L) = φD,2 ≡ φbi (L).

Quindi la scelta più ovvia è


 
φbi (x1 )
φ(0) =  ..
. (58)
 
.
φbi (xm )

È anche possibile usare altre informazioni fisiche aggiuntive. Ad esempio,


nel caso di una giunzione p-n in equilibrio globale, è noto che si formerà
una regione di svuotamento intorno alla giunzione, e possiamo scegliere φ(0)
prolungando i dati al bordo da ambo i lati fino all’inizio della regione di
svuotamento, raccordando i due pezzi in modo lineare. In questo modo si
evita un salto brusco per il guess in corrispondenza delle componenti vicine
alla giunzione.
Passiamo adesso a considerare l’equazione di Poisson non lineare discre-
tizzata con il metodo degli elementi finiti:

Mφ = R(φ). (59)

Anche in questo caso scriviamo il problema nella forma (50), con

g(φ) = Mφ − R(φ).
3 RISOLUZIONE NUMERICA DI POISSON NON LINEARE 68

La funzione vettoriale R(φ) è definita in (33), e può essere scritta nella


forma  1
Z vm
 .. 
R(φ) = vm (x)ρ̃(x, φ̊m (x)) dx, vm =  .  .
Ω m
vm
Ricordiamo che la funzione ρ̃ è data da
 
∂ ∂RφD
ρ̃(x, φ) =  + q(N (x) − n(φ) + p(φ)),
∂x ∂x

con RφD rilevamento dei dati al bordo, come definito nella sezione 3.2, ed
n(φ) e p(φ) dati da
   
φ φ kB TL
n(φ) = ni exp , p(φ) = ni exp − , Vth = .
Vth Vth q

Scriviamo
ρ̃(x, φ) = ρ(x) − qn(φ) + qp(φ),
con  
∂ ∂RφD
ρ(x) =  + qN (x).
∂x ∂x
Allora possiamo decomporre g(φ) nella forma

g(φ) = glin (φ) + gnonlin (φ)

con
Z
glin (φ) = Mφ − vm ρ(x)dx

Z   m
X
j
gnonlin (φ) = q vm n(φ̊m ) − p(φ̊m ) dx, φ̊m = φ̊m,j vm .
Ω j=1

Per il pezzo lineare si ricava facilmente

∇φ glin (φ) = M.

Per il pezzo non lineare si trova


Z
q
∇φ gnonlin (φ) = vm ⊗ vm (n(φ̊m ) + p(φ̊m ))dx,
Vth Ω
RIFERIMENTI BIBLIOGRAFICI 69

dove il simbolo ⊗ indica prodotto tensoriale, ovvero


 1 1 1 vm

vm vm · · · vm m
vm ⊗ vm =  ... .. ..  .

. . 
m 1 m
vm vm · · · vm vm m

Quindi il metodo di Raphson-Newton per l’equazione di Poisson non lineare


discretizzata con il metodo degli elementi finiti si può scrivere nel modo
seguente:
Passo 0. Si sceglie un guess iniziale φ(0) .
Passo k-esimo. Noto φ(k) si calcola
  Z 
q
M+ (n(φ̊m ) + p(φ̊m ))vm ⊗ vm dx δφ(k)
(k) (k)


V



 th Ω Z Z
(k)
= −Mφ + q ρvm dx − q (n(φ̊m (k) (k)
) − p(φ̊m ))vm dx, (60)

Ω Ω



 (k+1)
= φ(k) + δφ(k) ,

φ
con
m
(k)
X
φ̊(k)
m =
j
φm,j vm . (61)
j=1

Criterio di stop. Come nel caso precedente.


Per chiudere la sezione, osserviamo che il procedimento appena descritto
è equivalente a fissare un guess iniziale
m
(0)
X
φ̊(0)
m =
j
φm,j vm ,
j=1

e, nota la funzione φ̊(k) in (61), risolvere mediante elementi finiti il problema


ellittico linearizzato
!
∂ ∂ φ̊(k+1) ∂ ρ̃
− (x) = ρ̃(x, φ̊(k) ) + (x, φ̊(k) )δ φ̊(k) in Ω, (62)
∂x ∂x ∂φ

dove
δ φ̊(k) (k+1)
m = φ̊m − φ̊(k)
m .

Riferimenti bibliografici
[1] Hänsch, W., The drift-diffusion equation and its application in
MOSFET modeling, Springer-Verlag, Wien, 1991.
RIFERIMENTI BIBLIOGRAFICI 70

[2] Markowich, P., The stationary semiconductor equations, Springer.

[3] S. Selberherr, Analysis and Simulation of Semiconductor Devices,


Springer, 1984.

Potrebbero piacerti anche