UNIVERSITÀ DEGLI STUDI DI MILANO Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Matematica Metodo degli elementi finiti per l’approssimazione numerica del problema delle correnti parassite Relatore: Dott.ssa Ana M. Alonso Rodriguez Correlatore: Prof. Luca Pavarino Tesi di Laurea di: Gloria Faccanoni Matricola N.561907 Anno Accademico 2001-2002 Indice Introduzione 5 1 Background fisico 9 1.1 1.2 Equazioni di Maxwell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.1.1 Relazioni costitutive . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.1.2 Regime sinusoidale . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Correnti parassite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.2.1 Freni e forni elettromagnetici . . . . . . . . . . . . . . . . . . . . . 15 1.2.2 Approssimazione a “bassa frequenza” . . . . . . . . . . . . . . . . . 16 2 Correnti parassite in regime armonico 19 2.1 Formulazione del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2 Cenni di base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3 Esistenza e unicità della soluzione . . . . . . . . . . . . . . . . . . . . . . . 22 2.4 Formulazione variazionale del problema in H . . . . . . . . . . . . . . . . . 25 3 Approssimazione numerica 31 3.1 Metodo di Galerkin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2 Formulazione debole bidominio . . . . . . . . . . . . . . . . . . . . . . . . 33 3.3 Elementi finiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3.1 Triangolazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.3.2 Sottospazio di funzioni polinomiali a tratti . . . . . . . . . . . . . . 37 3.3.3 Elementi finiti di Lagrange . . . . . . . . . . . . . . . . . . . . . . . 38 3.3.4 Elementi finiti di Nédélec . . . . . . . . . . . . . . . . . . . . . . . . 40 Iterazione per sottodomini . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.4 4 Risultati numerici 4.1 4.2 49 Passaggio del dato nell’interfaccia Γ . . . . . . . . . . . . . . . . . . . . . . 50 4.1.1 Passaggio del dato Dirichlet da ΩI a ΩC . . . . . . . . . . . . . . . 51 4.1.2 Passaggio del dato Neumann da ΩC a ΩI . . . . . . . . . . . . . . . 51 Risultati numerici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.2.1 53 Gradi di libertà . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4.3 I 4.2.2 Dato iniziale in Γ reale . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.2.3 Dato iniziale in Γ complesso . . . . . . . . . . . . . . . . . . . . . . 63 Considerazioni conclusive . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Documentazione 71 I.1 NC,h := elementi finiti lineari di Nédélec . . . . . . . . . . . . . . . . . . . . 72 I.1.1 Costruzione di una base sul cubo di riferimento . . . . . . . . . . . 74 I.1.2 Generalizzazione della base ad un cubo K qualsiasi . . . . . . . . . 77 I.1.3 Costruzione della mesh . . . . . . . . . . . . . . . . . . . . . . . . . 77 I.1.4 Costruzione della matrice di stiffness A globale . . . . . . . . . . . . 81 I.1.5 Costruzione della matrice di massa M globale . . . . . . . . . . . . 83 I.1.6 Costruzione del vettore termine noto TN globale . . . . . . . . . . . 85 VI,h := elementi finiti lineari di Lagrange . . . . . . . . . . . . . . . . . . . 89 I.2.1 Costruzione di una base sul cubo di riferimento . . . . . . . . . . . 89 I.2.2 Generalizzazione della base ad un cubo K qualsiasi . . . . . . . . . 91 I.2.3 Costruzione della mesh . . . . . . . . . . . . . . . . . . . . . . . . . 91 I.2.4 Costruzione della matrice di stiffness A globale . . . . . . . . . . . . 93 I.2.5 Costruzione del vettore termine noto TN globale . . . . . . . . . . . 95 Passaggio del dato nell’interfaccia Γ . . . . . . . . . . . . . . . . . . . . . . 99 I.2 I.3 I.4 I.3.1 Passaggio del dato Neumann da ΩC a ΩI . . . . . . . . . . . . . . . 100 I.3.2 Passaggio del dato Dirichlet da ΩI a ΩC . . . . . . . . . . . . . . . 109 Implementazione della procedura iterativa . . . . . . . . . . . . . . . . . . 111 Bibliografia 115 4 Introduzione biettivo della tesi è lo studio di un algoritmo, basato sul metodo degli elementi O finiti, per l’approssimazione numerica delle correnti parassite indotte dal passaggio di flusso magnetico attraverso un materiale conduttore immerso in un dominio isolante. Le correnti parassite sono indotte in un corpo conduttore da un variazione del campo magnetico. In altre parole, compaiono in tutti i congegni elettromagnetici che sono soggetti a variazioni temporali dei campi (in particolare quando i campi sono in regime sinusoidale) e pertanto hanno un’ampio spettro d’applicazione. Talvolta le correnti parassite sono utili come nel caso dei forni o dei freni elettromagnetici, ma in altri casi la loro presenza è dannosa e sono totalmente indesiderate come nel nucleo dei trasformatori. Il buon funzionamento di molte apparecchiature elettromagnetiche dipende dalla circolazione delle correnti parassite nella zona conduttiva e questo è il motivo per il quale esse sono state oggetto di numerose ricerche. Talvolta, come nel caso di fili elettrici, è sufficiente un’analisi 2D per il calcolo delle correnti parassite. Ma, nel caso generale, la maggior parte dei problemi ingegneristici concreti non è riconducibile ad un problema 2D ed è necessaria un’analisi del problema completo tridimensionale. Esistono ampie ricerche allo scopo di sviluppare tecniche numeriche per la soluzione del problema 3D. La maggior parte delle formulazioni propone l’impiego del metodo degli elementi finiti. Lo scopo di questo lavoro di tesi è lo studio di un metodo, basato su un’iterazione per sottodomini che combina elementi finiti nodali con elementi finiti di spigolo, per il calcolo delle correnti parassite generate in un conduttore da una sorgente in regime armonico. Noi consideriamo un problema magnetico ai valori al bordo, in cui si assume che la componente tangenziale H × n del campo magnetico sparisce su ∂ Ω. Il lavoro è organizzato come segue. Nel primo capitolo viene introdotto il problema delle correnti parassite modellandolo sulle equazioni di Maxwell, assumendo che tutti i campi siano armonici e che si possa trascurare il termine coinvolgente la corrente di spostamento nella Legge di Maxwell-Ampère. Viene quindi presentata una motivazione di tale modello e si perviene alle seguenti equazioni ( rot E = −iωµ H (1) rot H = σ E + Je 5 nelle quali la densità di corrente Je , la conducibilità σ , la permeabilità magnetica µ e la frequenza angolare ω sono assegnate, mentre si vogliono determinare il campo magnetico H e il campo elettrico E. Nel secondo capitolo si considera un dominio Ω limitato composto da un conduttore ΩC non omogeneo ed anisotropo immerso in un isolante perfetto ΩI . Si determinano le condizioni necessarie cui deve soddisfare il dato Je per garantire l’esistenza di una soluzione. Si completa poi il sistema (1) con ulteriori condizioni sul campo elettrico nell’isolante per garantire l’unicità della soluzione. Stabilito il sistema di equazioni che modellizzano il problema, questo si può riformulare esprimendo il campo elettrico E nei termini del campo magnetico H o viceversa. In questo lavoro si considera la formulazione coinvolgente solo il campo magnetico la cui formulazione variazionale è cercare H ∈ V Je,I := {v ∈ H0 (rot; Ω) | rot vI = Je,I in ΩI } tale che ∀ v ∈ V := {v ∈ H0(rot; Ω) | rot vI = 0 in ΩI } Z Ω iωµ H · v + Z ΩC σ −1 rot HC · rot vC = Z ΩC (2) σ −1 Je,C · rot vC dove H0 (rot; Ω) è l’insieme delle funzioni vettoriali (reali o complesse) di [L2 (Ω)]3 aventi il rotore (distribuzionale) appartenente a [L2 (Ω)]3 e con componente tangenziale nulla sul bordo ∂ Ω. Il secondo capitolo si conclude con la dimostrazione di esistenza e unicità della soluzione di questo problema. Nel terzo capitolo si studia l’approssimazione numerica del problema (2) usando il metodo degli elementi finiti. Imponendo l’ipotesi di semplice connessione dell’isolante è possibile introdurre un potenziale scalare magnetico. Infatti in questo caso le funzioni di V ristrette ad ΩI sono gradienti di funzioni di H0,1 ∂ Ω (ΩI ) := φ ∈ H 1 (ΩI ) | φ|∂ Ω = 0 . Se indichiamo con gli indici I e C la restrizione di una funzione rispettivamente a ΩI e ΩC , assumendo di conoscere He ∈ H0 (rot; Ω) tale che rot He,I = Je,I , e chiamando Z = H − He, 6 il problema (2) si può riformulare nel seguente modo. cercare (ZC , ψI ) ∈ W := {(vC , φI ) ∈ H(rot; ΩC ) × H0,1 ∂ Ω (ΩI ) | vC × nC + ∇φI × nI = 0 su Γ} tale che ∀ (vC , ϕI ) ∈ W Z ΩC = Z iωµC ZC · vC + σ −1 rot ZC · rot vC + ΩC Z (3) ΩI [iωµI ∇ψI · ∇ϕ I ] = Z −1 σ (Je,C − rot He,C ) · rotvC − iωµC He,C · vC − [iωµI He,I · ∇ϕ I ] ΩI Con questa formulazione del problema è naturale usare elementi finiti nodali di Lagrange per l’approssimazione del potenziale scalare ψI ∈ H01 (ΩI ) nell’isolante ed elementi finiti di spigolo di Nédélec per l’approssimazione del campo magnetico HC ∈ H(rot; ΩC ) nel conduttore. Dopo l’introduzione di queste due famiglie di elementi finiti siamo ora in condizione di definire uno spazio di elementi finiti Wh ⊂ W e di formulare l’approssimazione di Galerkin di (3). La difficoltà principale nella costruzione di una base di Wh è il dover imporre l’incollamento delle componenti tangenziali sull’interfaccia. Può essere conveniente considerare allora una formulazione bidominio del problema e risolvere il problema accoppiato tramite un’iterazione per sottodomini. La procedura iterativa che proponiamo si basa sulla formulazione forte del problema (3) rot(σ −1 rot HC ) + iωµC HC = rot(σ −1 Je,C ) HC × nC = −∇ψI × nI − He,I × nI div(µI ∇ψI ) = − div(µI He,I ) µI ∇ψI · nI = −µC HC · nC − µI He,I · nI ψ =0 I in ΩC su Γ in ΩI (4) su Γ su ∂ ΩI \ Γ che suggerisce la seguente procedura Dato λ 0 ∈ ϒΓ (spazio della traccia di H(rot; ΩC ) su Γ), per ogni k ≥ 0 calcolare HCk soluzione di ( rot(σ −1 rot HCk ) + iωµC HCk = rot(σ −1 Je,C ) in ΩC HCk × nC = −λ − He,I × nI su Γ , k 7 (5) quindi calcolare ψIk soluzione di k div(µI ∇ψI ) = − div(µI He,I ) µI ∇ψIk · nI = −µC HCk · nC − µI He,I · nI ψk = 0 I in ΩI su Γ (6) su ∂ ΩI \ Γ Infine porre λ k+1 = (1 − ϑ )λ k + ϑ (∇ψIk × nI ) su Γ , (7) dove ϑ > 0 è un parametro d’accelerazione. Il capitolo si conclude con la formulazione dell’analogo discreto di questo processo iterativo. Nel quarto capitolo sono riportati alcuni risultati di una serie di prove numeriche che intendono verificare le proprietà di convergenza di questa iterazione per sottodomini. Sono state effettuate in una geometria semplificata e con coefficienti costanti. Per le prove numeriche effettuate il processo iterativo risulta essere convergente con velocità indipendente dalla dimensione della griglia di calcolo e dalla posizione dell’interfaccia. Infine nell’appendice vengono presentati gli aspetti implementativi degli elementi finiti di Nédélec e di Lagrange e commentati i programmi MATLABTM scritti per realizzare le prove numeriche presentate nel quarto capitolo. 8 1 Background fisico copo di questo capitolo è quello di richiamare i concetti di base relativi alle equazioni S che governano l’elettromagnetismo e formulare un modello per il problema delle correnti parassite. Per una più ampia trattazione si vedano ad esempio (7), (8), (10), (12), (14), (15). Contenuto 1.1 1.2 Equazioni di Maxwell 1.1.1 Relazioni costitutive 1.1.2 Regime sinusoidale Correnti parassite 1.2.1 Freni e forni elettromagnetici 1.2.2 Approssimazione a “bassa frequenza” Sezione 1.1 Equazioni di Maxwell ed equazione di continuità Il campo elettromagnetico viene descritto mediante i seguenti campi vettoriali dipendenti dalla posizione x e dal tempo t: ? D = D(x,t) induzione elettrica ? E = E(x,t) campo elettrico [C/m2 ] [V/m] 9 Cap.1 Background fisico ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ [Wb/m2 ] ? B = B(x,t) induzione magnetica ? H = H(x,t) campo magnetico [A/m] Richiamiamo le quattro equazioni che governano l’elettromagnetismo: ? il teorema di Gauss dell’elettrostatica per una distribuzione continua di cariche elettriche con densità ρ può scriversi nella seguente forma differenziale: divD = ρ ; (1.1) ? il teorema di Gauss per la magnetostatica: divB = 0; (1.2) ? il teorema di Ampère per una distribuzione continua di correnti di densità J: rot H = ∂D + J; ∂t (1.3) ? la legge dell’induzione elettromagnetica di Faraday: rot E = − ∂B . ∂t (1.4) Esse si possono riunire nel seguente sistema di equazioni differenziali: ∂D +J ∂t ∂B rot E = − ∂t div D = ρ (1.7) div B = 0 (1.8) (1.5) rot H = (1.6) dove [A/m2 ] ? J = J(x,t) rappresenta la densità di corrente, ? e ρ = ρ (x,t) la densità di carica elettrica. ✧ 10 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ [C/m3 ] ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 1.1 Equazioni di Maxwell ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ∂D , aggiunto da Maxwell, rende del tutto simmetriche le rela∂t zioni tra campo elettrico e campo magnetico: infatti, cosı̀ come le variazioni temporali del Osserviamo che il termine campo elettrico inducono un campo di induzione magnetica in base alla relazione rot H = ∂D ∂t (nell’ipotesi, ovviamente, che J = 0), allo stesso modo, in base alla prima equazione di Maxwell, le variazioni temporali del campo di induzione magnetica inducono un campo elettrico secondo la relazione rot E = − ∂B . ∂t Le equazioni di Maxwell sono insufficienti per studiare il campo elettromagnetico, anche nei problemi in cui le densità di carica e di corrente sono grandezze impresse (cioè note a priori). In effetti, per determinare il campo è necessario associare alle equazioni di Maxwell ulteriori equazioni dipendenti dalla natura del mezzo. Tuttavia le sole equazioni di Maxwell, grazie alla loro assoluta generalità, permettono di dedurre ulteriori relazioni che — opportunamente interpretate — rappresentano leggi altrettanto generali come, ad esempio, quella di conservazione della carica. La legge di conservazione della carica si può dedurre dalle equazioni di Maxwell considerando la divergenza della (1.5) ed eliminando D mediante la (1.7): div rot H = ∂ (div D) + div J. ∂t (1.9) Si ottiene la cosiddetta equazione di continuità che esprime, in forma differenziale, la condizione di conservazione della carica div J + ∂ρ = 0. ∂t (1.10) Poiché essa è conseguenza delle equazioni di Maxwell, tali equazioni non ammetterebbero soluzione se si cercasse di determinare il campo prodotto da densità di carica e corrente assegnate arbitrariamente, in contrasto con l’equazione di continuità. Osserviamo che, in condizioni stazionarie, la (1.10) diviene div J = 0 ossia il vettore densità di corrente J è solenoidale in tutto lo spazio. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 11 Cap.1 Background fisico ✧ ✧ ✧ 1.1. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Relazioni costitutive È doveroso osservare che nelle equazioni di Maxwell non compaiono, in modo esplicito, le proprietà del mezzo in cui ci si trova. D’altro canto sotto l’azione del campo il mezzo si polarizza e — se è conduttore — viene attraversato da correnti di conduzione. Questi effetti influenzano il campo e devono essere tenuti in conto attraverso ulteriori equazioni, dette relazioni costitutive. Poiché i meccanismi microscopici che determinano la polarizzazione e la conduzione dei materiali sono molteplici, la forma delle relazioni costitutive non è unica e deve essere dedotta caso per caso. Nel caso particolare del vuoto, che non si polarizza né conduce, le equazioni costitutive non riflettono alcun fenomeno fisico e dipendono solo dalla scelta del sistema di unità di misura. Nel sistema MKSA si ha: D = ε0 E B = µ0 H dove µ0 = 4π · 10−7 H/m, ε0 ≈ 1/(36π ) · 10−9 F/m. Si ha: √ 1 = c ≈ 3 · 108m/s (velocità della luce) . ε0 µ0 Quando i campi sono “sufficientemente deboli” e quando le loro variazioni spaziali e temporali sono “sufficientemente lente”, le proprietà del mezzo sono rappresentate dai parametri σ conducibilità [S/m], ε permeabilità elettrica e µ permeabilità magnetica. Questi parametri legano tra loro E, D, B, H e la densità totale di corrente J tramite le seguenti relazioni: J = σE , (1.11) D = εE , (1.12) B = µH . (1.13) Un mezzo anisotropo è tale quando ε , µ e/o σ sono dei tensori, per cui il campo E non è parallelo al campo D oppure il campo B non è parallelo ad H oppure J non è parallela ad E. Esempio tipico sono le ferriti. Un mezzo non lineare si ha invece quando D è una funzione non lineare dell’ampiezza di E, quando B è una funzione non lineare di H e/o quando J è una funzione non lineare di E. Un esempio di mezzo non lineare è dato da un materiale ferromagnetico in cui il modulo di B è legato al modulo di H tramite la curva di isteresi, che è tipicamente una curva non lineare. Un mezzo non omogeneo è tale quando i parametri del ✧ 12 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 1.1 Equazioni di Maxwell ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ mezzo sono funzione della posizione: si ha cioè ε = ε (x), µ = µ (x) e/o σ = σ (x). Esempi di mezzi non omogenei sono i circuiti stampati nei quali il campo elettrico che si genera si trova in parte in aria (dove ε = ε0 ) ed in parte nel materiale isolante (dove ε 6= ε0 ). Infine un mezzo per il quale i parametri σ , ε e µ sono delle costanti di valore noto si dice mezzo lineare, omogeneo ed isotropo. Osserviamo che la (1.11) è la ben nota legge di Ohm: i corpi conduttori (metalli, ...) sono quelli in cui esistono delle cariche elettriche libere (non legate agli atomi) e poiché la densità di corrente dovuta a questo tipo di cariche è funzione della loro velocità, si ha una relazione funzionale tra il vettore densità di corrente J ed il campo elettrico E che, in via del tutto generale, è del tipo: J = f (E). Laddove, come molto spesso accade, tali proprietà di conduzione non dipendono dalla direzione del campo elettrico che muove i portatori nel conduttore, si dice che il mezzo è conduttivamente isotropo (oltre che lineare). Se il mezzo è isolante si pone invece σ =0 per cui J = 0. I generatori sono dei mezzi in cui la densità di corrente (indicata con Je , e per esterna) è fissata indipendentemente dal campo elettrico. Possiamo supporre σ = 0 in questi mezzi e scrivere la cosiddetta Legge di Ohm generalizzata: J = σ E + Je . (1.14) Si noti che l’equazione costitutiva che collega la corrente di conduzione al campo (1.11) è richiesta solo quando J è una densità di corrente di conduzione incognita. Essa invece non deve essere considerata se J è una corrente impressa, dato che in questo caso J interviene nelle equazioni di Maxwell come una funzione nota, che ricopre il ruolo di “sorgente” del campo. Le equazioni di Maxwell e le relazioni costitutive sono sufficienti per affrontare lo studio del campo in una regione in cui il mezzo è continuo. Nel caso che porzioni diverse dello spazio siano riempite con materiali diversi, il problema viene trattato risolvendo le (1.5)-(1.6) all’interno di ciascun materiale e imponendo ai campi, sulle superfici di separazione fra materiali diversi, le condizioni di raccordo: ( E1 × n1 ( + E2 × n2 = 0 ε1 E1 · n1 + ε2 E2 · n2 = 0 µ1−1 B1 × n1 + µ2−1 B2 × n2 = 0 B1 · n1 (1.15) + B2 · n2 = 0 con gli indici 1, 2 a indicare i due diversi materiali. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 13 Cap.1 Background fisico ✧ ✧ ✧ 1.1. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Regime sinusoidale Generalmente si lavora con sorgenti di corrente alternata. In questi casi Je (x,t) = ℜ[Je (x) exp(iω t)] (1.16) dove ω 6= 0 è una frequenza angolare assegnata e le equazioni di Maxwell possono essere espresse, senza perdere di generalità, con riferimento a campi la cui variazione temporale è di tipo sinusoidale: E(x,t) = E(x) exp(iω t) H(x,t) = H(x) exp(iω t) dove E(x) ed H(x) sono campi vettoriali tridimensionali a valori complessi. In tal caso le (1.5)-(1.6) diventano ( rot E = −iωµ H (1.17) rot H = iωε E + Je + σ E Nella teoria dei campi in regime armonico queste equazioni sono comunemente dette “equazioni di Maxwell”, anche se, in realtà, esse derivano sia dalle equazioni di Maxwell che dalle relazioni costitutive. Sezione 1.2 Correnti parassite Supponiamo che, internamente a un materiale conduttore, sia presente un campo di induzione magnetica B variabile nel tempo (o per variazione dell’induzione stessa, o per spostamento del conduttore). In tal caso si ha una variazione del flusso del campo magnetico Φ(B) ad esso concatenato e, secondo la legge di Faraday-Neumann, si genera una forze elettromotrice fi (detta forza elettromotrice indotta) data da: fi = − dΦ(B) . dt (1.18) È opportuno sottolineare il segno negativo che compare a secondo membro che esprime la cosiddetta legge di Lenz: la forza elettromotrice indotta ha verso tale da generare una corrente indotta il cui flusso magnetico tende ad opporsi a qualsiasi cambiamento del flusso magnetico originale. Tali correnti indotte sono dette eddy current (o correnti di ✧ 14 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 1.2 Correnti parassite ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Foucault), sono anche chiamate parassite perché causano una perdita di energia per effetto Joule. Se poi il conduttore è metallico il campo elettrico indotto dà origine a correnti concatenate alle linee di B che possono essere molto intense dato che la resistività del metallo è piccola. Se il materiale, oltre ad essere conduttore, è anche ferromagnetico, alle perdite dovute alle correnti parassite vanno sommate quelle dovute all’isteresi magnetica. Per evitare quindi notevoli dissipazioni di energia nei nuclei magnetici sottoposti a campi d’induzione magnetica variabili si può ricorrere alla cosiddetta laminatura: laminare la massa del conduttore in fogli paralleli alle linee di B e separarli con strati di vernice isolante, di modo che le correnti debbano attraversare tali strati. Concretamente si realizza il nucleo con sottilissimi fili, reciprocamente isolati da vernici o fogli di sostanze isolanti. 1.2. Freni e forni elettromagnetici Le correnti parassite si generano in qualsiasi massa metallica che ruoti o si sposti comunque entro un campo magnetico. Per la legge di Lenz, queste correnti hanno l’effetto di frenare il movimento che le induce (attrito elettromagnetico) e l’energia corrispondente a questa azione frenante si traduce integralmente in calore in seno alla massa, la quale pertanto si riscalda. Tale azione frenante viene direttamente utilizzata nella costruzione dei freni elettromagnetici. Questi vengono realizzati prevalentemente in forma di un disco metallico che si muove nel traferro di un elettromagnete (o eventualmente di un magnete permanente). In questo modo, lungo i raggi del disco che tagliano le linee di forza del campo si inducono tante forze elettromotrici che fanno circolare nella massa del disco delle correnti. Su ogni filetto di corrente agisce cosı̀ una forza elettromagnetica diretta in verso opposto al moto. L’effetto risultante di tutte queste forze viene a costituire l’azione frenante che si contrappone alla rotazione del disco. Un esempio di utilizzo è il freno elettromagnetico impiegato in molte metropolitane: elettromagneti posti sotto una vettura in vicinanza delle rotaie vengono accesi e il fatto genera correnti parassite nelle rotaie esercitando un’azione frenate sulle ruote del treno in arrivo e causandone la frenata. Lo stesso accorgimento è applicato per smorzare le oscillazioni, ad esempio in alcuni modelli di bilance. Il fenomeno del riscaldamento, se da un lato è fonte di gravi problemi in quanto può causare notevoli perdite di energia, può d’altra parte essere sfruttato per diverse applicazioni come nei forni ad induzione in cui si fondono metalli sottoponendoli a campi magnetici variabili. Questo calore viene utilizzato per elevare la temperatura dei corpi. Si fa variare ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 15 Cap.1 Background fisico ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ il flusso d’induzione nel conduttore immobile ponendolo all’interno di un campo magnetico alternato prodotto, per esempio, da un solenoide. Se il corpo ha la forma di un cilindro con l’asse parallelo a quello del solenoide, le correnti indotte circolano secondo le sue sezioni normali e, per la legge di Lenz, si oppongono alle variazioni dell’induzione magnetica all’interno del cilindro. Il dispositivo presenta i seguenti vantaggi: • il calore viene sviluppato nel corpo stesso che si vuole riscaldare: ciò riduce le perdite termiche e permette di raggiungere temperature molto alte senza riscaldare troppo gli involucri interposti; • il corpo da riscaldare può essere un mediocre conduttore, può trovarsi ridotto in pezzetti od anche in polvere, e può essere mantenuto al sicuro dalle cause d’alterazione chimica, specialmente d’ossidazione. Finché la frequenza è abbastanza bassa da implicare che la profondità di penetrazione sia superiore al raggio del cilindro, si dimostra che la potenza P dissipata per effetto Joule aumenta rapidamente con la frequenza. Alle frequenze elevate, invece, la corrente resta localizzata in una pellicola superficiale e P è proporzionale alla superficie (effetto pelle). Esiste quindi la possibilità di produrre riscaldamenti in superficie od in profondità, variando la frequenza secondo le dimensioni del campione. Un forno ad alta frequenza è formato da un generatore di corrente ad oscillazioni smorzate, il cui circuito oscillante è accoppiato al circuito di riscaldamento. La frequenza varia, secondo i casi, da 20 a 106 Hz; la potenza sviluppata raggiunge talvolta i 106 W. Le installazioni di riscaldamento ad alta frequenza, benché assai costose, sono usate per fusioni ed i trattamenti termici dei metalli e delle leghe di alta qualità. Noi vogliamo studiare questo fenomeno quando l’effetto pelle è trascurabile. In tal caso allora si deve lavorare con frequenza “basse” benché, come vedremo tra poco, questo termine sia molto relativo. 1.2. Approssimazione a “bassa frequenza” Introduciamo ora una semplificazione, spesso descritta come “approssimazione a bassa frequenza”, che consiste nel trascurare il termine della corrente di spostamento iω D in (1.17). Riscrivendo (1.17) nella forma rot H = iωε E+ σ E+J e , si vede che questo termine è ✧ 16 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 1.2 Correnti parassite ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ trascurabile nel conduttore quando il rapporto εω/σ può essere considerato piccolo. Nell’isolante, dove σ = 0, si può immaginare che questa corrente di spostamento sia stata aggiunta alla corrente impressa Je , e l’approssimazione è giustificata se il rapporto ||iω D||/||Je || è pic- colo (essendo || · || una norma opportuna). In molti casi, la corrente indotta J = σ E è dello stesso ordine di grandezza della corrente impressa Je , e il campo elettrico è dello stesso ordine di grandezza internamente ed esternamente al conduttore. Se è cosı̀, il rapporto fra iω D e Je è anch’esso dell’ordine di grandezza di εω/σ . La grandezza del rapporto εω/σ è dunque spesso un buon indicatore della validità dell’approssimazione a bassa frequenza. Ad esempio, nel caso di riscaldamento indotto alle frequenza industriali, ω = 100π , 1 la grandezza di σ circa 5 × 106 , e ε = ε0 ∼ , da cui il rapporto εω/σ vale circa = 36π × 109 5 × 10−16 , e si può dunque trascurare il termine εω/σ . Molto più in alto nello spettro, nelle simulazioni relative ad alcune pratiche mediche come l’ipotermia, dove le frequenze sono nell’ordine 10 ÷ 50 MHz, la conducibilità del tessuto nell’ordine 0.1 ÷ 1 e con ε ∼ 10 ÷ 90 ε0 , si ha di nuovo un rapporto εω/σ inferiore a 0.3, e l’approssimazione a bassa frequenza può essere ancora accettabile, a seconda dell’uso che se ne vuole fare. Formalmente parlando il modello per il problema delle correnti parassite si ottiene trascurando le correnti di spostamento nelle equazioni (1.17): ( rot E = −iωµ H (1.19) rot H = σ E + Je Questo modello costituisce un’approssimazione ampiamente usata in elettrotecnica e la si considera valida in generale quando la frequenza ω è sufficientemente bassa affinché la lunghezza d’onda corrispondente sia grande rispetto alle dimensioni del sistema. Per una trattazione più approfondita si può vedere l’articolo di Ammari et al (5) che fornisce le condizioni sotto le quali l’approssimazione delle equazioni di Maxwell con il modello delle correnti parassite è accettabile. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 17 2 Correnti parassite in regime armonico n questo capitolo ci proponiamo di analizzare il modello delle correnti parassite in regime Iarmonico in un dominio limitato contenente conduttori ed isolanti. Come abbiamo visto questo modello può essere ottenuto dalle equazioni di Maxwell assumendo che tutti i campi siano armonici e che si possa trascurare il termine coinvolgente la corrente di spostamento nella Legge di Maxwell-Ampère (1.3). Contenuto 2.1 Formulazione del problema 2.2 Cenni di base 2.3 Esistenza e unicità della soluzione 2.4 Formulazione variazionale del problema in H Sezione 2.1 Formulazione del problema Consideriamo un dominio Ω ⊂ R3 aperto, connesso e con bordo ∂ Ω. La normale uscente da ∂ Ω sarà indicata con n. Assumiamo che Ω sia diviso in due parti, Ω = ΩC ∪ ΩI , dove ΩC (un conduttore non omogeneo non isotropo) ed ΩI (un isolante perfetto) sono sottoinsiemi aperti disgiunti, tali che ΩC ⊂ Ω. Supponiamo che Ω, ΩC ed ΩI siano poliedri di Lipschitz. Supponiamo inoltre che ΩI sia connesso e denotiamo con Γ := ∂ ΩI ∩ ∂ ΩC l’interfaccia tra i due sottodomini; osserviamo che ∂ ΩC = Γ e ∂ ΩI = ∂ Ω ∪ Γ. Inoltre, indichiamo con Γ j , j = 1, . . . , pΓ , le componenti connesse di Γ. 19 Cap.2 Correnti parassite in regime armonico ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Come visto nel capitolo introduttivo, nel caso generale di un mezzo non omogeneo ed anisotropo la permeabilità magnetica µ (x) e la conducibilità σ (x) sono matrici reali 3 × 3 simmetriche con coefficienti in L∞ (Ω). Assumiamo inoltre che µ (x) sia uniformemente definita positiva in Ω (cioè esiste una costante c1 > 0 tale che u∗ µ (x)u ≥ c1 |u|2 per quasi ogni x ∈ Ω e per ogni u ∈ C3 ). La conducibilità σ (x) sia uniformemente definita positiva nel conduttore ed è uguale a zero nell’isolante (pertanto anche σ −1 è uniformemente definita positiva nel conduttore). Sezione 2.2 Cenni di base Questa sezione è dedicata al richiamo di alcuni risultati preliminari di analisi funzionale che sono necessari per formulare e risolvere il problema (una più completa trattazione si può trovare in (13)). Indichiamo con D(Ω) lo spazio delle funzioni CC∞ (Ω) cioè lo spazio delle funzioni infinitamente derivabili ed a supporto compatto in Ω e con D 0 (Ω) il suo duale. Per ogni s ≥ 0 indichiamo con H s (Ω) lo spazio di Sobolev delle funzioni (reali o com- plesse) di L2 (Ω) aventi tutte le derivate (distribuzionali) fino all’ordine s appartenenti a L2 (Ω) H s := ψ ∈ D 0 (Ω) | ∂ α ψ ∈ L2 (Ω) , |α | ≤ s munito della norma ||ψ ||s,Ω := ∑ |α |≤s ||∂ α ψ ||2L2 (Ω) !1/2 . Per convenzione L2 (Ω) = H 0 (Ω). H 1/2 (∂ Ω) è lo spazio della traccia di H 1 (Ω) su ∂ Ω e H −1/2 (∂ Ω) è il suo duale. Indichiamo con −1/2 < ·, · >1/2 il prodotto di dualità tra H −1/2 (∂ Ω) e H 1/2 (∂ Ω). Se non c’è ambiguità porremo < ·, · > : = −1/2 < ·, · >1/2 . Indichiamo con H(div; Ω) l’insieme delle funzioni vettoriali (reali o complesse) di [L2 (Ω)]3 || · || ✧ 20 ✧ aventi la divergenza (distribuzionale) appartenente a L2 (Ω) e definiamo la norma H(div;Ω) ✧ ✧ ✧ come segue: ✧ ✧ ✧ 1/2 2 2 . ||u||H(div;Ω) := ||u||L2(Ω) + || div u||L2(Ω) ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 2.2 Cenni di base ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Se u ∈ H(div; Ω) allora (u · n)|∂ Ω ∈ H −1/2 (∂ Ω) e vale la seguente formula di Green: ∀u ∈ H(div; Ω) Z Ω ∀ϕ ∈ H 1 (Ω) e [u · ∇ϕ + div u ϕ ] =< u · n, ϕ > (2.1) Indichiamo con H(rot; Ω) l’insieme delle funzioni vettoriali (reali o complesse) di [L2 (Ω)]3 aventi il rotore (distribuzionale) appartenente a [L2 (Ω)]3 e definiamo la norma || · ||H(rot;Ω) come segue: 1/2 2 2 ||u||H(rot;Ω) := ||u||L2(Ω) + || rotu||L2 (Ω) . i3 h Se u ∈ H(rot; Ω) allora (u × n)|∂ Ω ∈ H −1/2 (∂ Ω) e vale la seguente formula di Green: ∀u ∈ H(rot; Ω) Z Ω e ∀v ∈ [H 1 (Ω)]3 [u · rot v − rot u · v] =< u × n, v > . (2.2) È da segnalare che lo spazio della traccia di (u × n)|∂ Ω con u ∈ H(rot; Ω) è un sottoinh i3 −1/2 sieme proprio di H (∂ Ω) . Infatti sia H 3/2 (∂ Ω) lo spazio della traccia di H 2 (Ω) su ∂ Ω e H −3/2 (∂ Ω) il suo duale. Data λ ∈ [H −1/2 (∂ Ω)]3 con (λ · n)|∂ Ω = 0, si può definire la distribuzione divτ λ ∈ H −3/2 (∂ Ω) divergenza tangenziale del campo vettoriale λ come −3/2 < divτ λ , ψ >3/2 := −−1/2 < λ , ∇ψ|∗∂ Ω >1/2 ∀ψ ∈ H 3/2 (∂ Ω) 3 dove ψ ∗ è un’estensione di ψ in H 2 . Osserviamo che ∇ψ ∗ ∈ H 1 (Ω) e (∇ψ ∗ )|∂ Ω ∈ h i3 H 1/2 (∂ Ω) . Siccome (λ · n)|∂ Ω = 0 allora < λ , ∇ψ|∗∂ Ω > dipende solo dalla componente tangenziale di ∇ψ|∗∂ Ω . D’altra parte se u ∈ H(rot; Ω) allora rot u ∈ H(div; Ω), (rot u · n)|∂ Ω ∈ H −1/2 (∂ Ω) e si verifica che (2.1) < rot u · n, ψ > = Z (2.2) Ω Pertanto se u ∈ H(rot; Ω) rot u · ∇ψ ∗ = − < u × n, ∇ψ ∗ > . ∈ H −1/2 (∂ Ω) . divτ (u × n) = rot u · n ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ (2.3) ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 21 Cap.2 Correnti parassite in regime armonico ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Questo mostra che lo spazio delle tracce tangenziali di funzioni H(rot; Ω) è un sottospazio proprio di [H −1/2 (∂ Ω)]3 che chiameremo ϒ∂ Ω . Per una caratterizzazione intrinseca dello spazio ϒ∂ Ω vedere (3), (9), (11). La formula di Green (2.2) si può estendere nel seguente modo (vedi (9)) Z Ω ∀u, v ∈ H(rot; Ω) [u · rot v − rot u · v] =<< u × n, n × v × n >> (2.4) dove << ·, · >> è il prodotto di dualità tra ϒ∂ Ω e ϒ0∂ Ω . Useremo anche i seguenti spazi: H01 (Ω) sottospazio di H 1 (Ω) costituito dalle funzioni ψ tali che ψ|∂ Ω = 0 e H0 (rot; Ω) sottospazio di H(rot; Ω) costituito dalle funzioni v sod1 (Ω) il disfacenti (v × n)|∂ Ω = 0. Infine se Σ è un sottoinsieme di ∂ Ω indichiamo con H0,Σ sottospazio di H 1 (Ω) costituito dalle funzioni ψ tali che ψ|Σ = 0. Sezione 2.3 Esistenza e unicità della soluzione Richiamiamo il sistema che costituisce il modello matematico per il problema delle correnti parassite: ( rot H = σ E + Je (2.5) rot E = −iωµ H Immaginiamo poi di avere uno schermo magnetico: su ∂ Ω. H×n = 0 (2.6) Con queste condizioni non è detto che esista soluzione. Vale infatti la seguente ✒ Proposizione 2.1 (Vincoli per l’esistenza) Condizione necessaria per l’esistenza di una soluzione di (2.5) è che la densità di corrente Je soddisfi le seguenti condizioni: div Je,I = 0 in ΩI ✧ 22 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ (2.7) Je,I · n = 0 su ∂ Ω (2.8) < Je,I · nI , 1 >Γ j = 0 ∀ j = 1, . . ., pΓ − 1. (2.9) ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 2.3 Esistenza e unicità della soluzione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Dimostrazione. • La condizione (2.7) deve essere ovviamente verificata: poiché σ|ΩI = 0, dalla prima delle (2.5) segue div rot HI = div Je,I in ΩI quindi div Je,I = 0 in ΩI . • La (2.8) segue dalla prima delle (2.5) in ΩI e dalla (2.3): su ∂ Ω. Je,I · n = rot H · n = divτ (H × n) Infine la condizione di bordo (2.6) implica Je,I · n = 0 su ∂ Ω. • Infine per dimostrare la (2.9) si consideri la funzione ausiliaria z j ∈ H 1 (ΩI ) tale che −4z j = 0 in ΩI , (2.10) in Γk , z j = δ jk z =0 su ∂ Ω. j e sia u = rot v. Allora < u · n, 1 >Γ j = < u · n, z j >∂ ΩI = = = = Z Z Z ΩI [div u z j + u · ∇z j ] = ΩI rot v · ∇z j = ΩI v · rot∇z j − << v × n, n × ∇z j × n >> = 0 poiché, essendo z j costante su ogni componente connessa di Γ, (n × ∇z j × n)|∂ Ω = 0. Inoltre da Je = rot H segue la (2.9). Osserviamo che la condizione (2.7) e la condizione (2.9) sono necessarie perché una funzione sia un rotore. La condizione (2.8) invece è legata al valore di H × n sul bordo. Inoltre il campo elettrico EI , soluzione delle equazioni (2.5)-(2.6), non è unico (dove abbiamo indicato con EI := E|ΩI e analogamente sarà fatto nel seguito per ogni altra funzione vettoriale), infatti possiamo sempre aggiungere alla EI della soluzione una funzione u tale che ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ rot u = 0 in ΩI u×n = 0 su ∂ ΩI ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 23 Cap.2 Correnti parassite in regime armonico ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ (ad esempio u = ∇ϕ con ϕ ∈ H01 (ΩI )). Osserviamo che nel problema “full Maxwell” (1.17) ci sono delle condizioni su EI che non sono presenti nel modello a bassa frequenza. Si ha infatti il seguente risultato ✒ Proposizione 2.2 Se (H, E) sono soluzioni di (1.17) con la condizione H × n = 0 su ∂ Ω e se Je soddisfa (2.7)-(2.8)-(2.9) allora il campo elettrico EI deve soddisfare le tre seguenti condizioni div(ε EI ) = 0 in ΩI , (2.11) ε EI · n = 0 su ∂ Ω, (2.12) < (ε E)|ΩI · n, 1 >Γ j = 0 ∀ j = 1, . . . , pΓ − 1. (2.13) Dimostrazione. • La prima condizione segue immediatamente dalla seconda delle (1.17) quando vale (2.7). • La seconda condizione segue dalla seconda delle (1.17) in ΩI rot HI = iωε EI + Je,I dalla (2.8) e dalla (2.3). Infatti la condizione al contorno H × n = 0 su ∂ Ω implica su ∂ Ω. (rot H · n)|∂ Ω = divτ (H × n)|∂ Ω = 0 • Per l’ultima condizione si consideri ancora la funzione ausiliaria (2.10). Allora < (ε E)|ΩI · n, 1 >Γ j = < (ε E)|ΩI · n, z j >∂ ΩI = = R ΩI [div(ε E)|ΩI z j + (ε E)|ΩI · ∇z j ] = R ΩI (ε E)|ΩI · ∇z j = per la seconda delle (1.17) R = (iω )−1 ΩI (rot HI − Je,I ) · ∇z j = R = (iω )−1 ΩI [H · rot∇z j − Je,I · ∇z j ]− << H × n, n × ∇z j × n >> = R = −(iω )−1 ΩI Je,I · ∇z j = R = −(iω )−1 < Je,I · nI , z j >∂ ΩI − ΩI div Je,I z j = 0 . ✧ 24 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 2.4 Formulazione variazionale del problema in H ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Completando (2.5)-(2.6) con queste condizioni si in rot H − σ E = Je rot E + iωµ H = 0 in div(ε E) = 0 in |ΩI ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ha il sistema Ω Ω ΩI (2.14) εE · n = 0 su ∂ Ω H×n = 0 su ∂ Ω < (ε E) · n, 1 > = 0 ∀ j = 1, . . ., p − 1 . Γ Γj |ΩI È stato dimostrato in (1) che il sistema (2.14) con le ipotesi (2.7)-(2.9) ammette una ed una sola soluzione. Sezione 2.4 Formulazione variazionale del problema in H In generale il problema delle correnti parassite è riformulabile esprimendo il campo magnetico H nei termini del campo elettrico E o viceversa. Queste due formulazioni sono equivalenti ma conducono a schemi numerici diversi. Noi presentiamo una formulazione coinvolgente solo il campo magnetico H. Definiamo quindi i seguenti spazi di Hilbert di funzioni vettoriali a valori complessi: V Je,I := {v ∈ H0 (rot; Ω) | rot vI = Je,I in ΩI } , (2.15) V := {v ∈ H0 (rot; Ω) | rot vI = 0 in ΩI } . (2.16) e Al fine di ottenere una formulazione debole procediamo formalmente, moltiplichiamo la seconda delle (2.5) per una funzione test v ∈ V ed integriamola su tutto il dominio Ω: Z Ω iωµ H · v + Z Ω rot E · v = 0 . (2.17) E · rot v = 0 . (2.18) Utilizzando la formula di Green (2.2), si trova Z Ω iωµ H · v + Z Ω Con tale scelta di spazi rot v = 0 in ΩI , quindi rimane Z ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Ω ✧ iωµ H · v + ✧ ✧ ✧ ✧ Z ΩC EC · rotvC = 0 , ✧ ✧ ✧ ✧ ✧ ✧ ✧ (2.19) ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 25 Cap.2 Correnti parassite in regime armonico ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ avendo indicato con l’indice C la restrizione della funzione a ΩC . Sapendo che σ è una matrice simmetrica uniformemente definita positiva in ΩC , otteniamo EC = σ −1 (rot HC − Je,C ) da cui Z Ω iωµ H · v + Z σ ΩC −1 rot HC · rot vC = Z ΩC σ −1 Je,C · rot vC . (2.20) (2.21) ΩC σ −1 Je,C · rot vC . Pertanto se H è soluzione di (2.5)-(2.6) allora H ∈ V Je,I e ∀ v ∈ V Z Ω iωµ H · v + Z ΩC σ −1 rot HC · rot vC = Z Per dimostrare l’esistenza e l’unicità della soluzione del problema (2.21) vogliamo avvalerci del Lemma di Lax-Milgram nel caso complesso. Richiamiamo prima alcune definizioni: una forma A (·, ·) : V ×V → C si dice • sesquilineare se per ogni w, w1 , w2 , v, v1, v2 ∈ V e per ogni c1 , c2 ∈ C A (c1 w1 + c2 w2 , v) = c1 A (w1 , v) + c2 A (w2 , v) ; A (w, c1 v1 + c2 v2 ) = c1 A (w, v1 ) + c2 A (w, v2 ) ; • continua se per ogni v, w ∈ V ∃ γ > 0 : |A (w, v)| ≤ γ ||w||V ||v||V ; • coerciva se per ogni v ∈ V ∃ α > 0 : |A (v, v)| ≥ α ||v||V2 . Il lemma di Lax-Milgram nel caso complesso è il seguente (vedi (17) e (18)) ✧ 26 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 2.4 Formulazione variazionale del problema in H ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✑ Teorema 2.3 (Lemma di Lax-Milgram) Sia V uno spazio di Hilbert complesso, dotato di norma || · ||V , A (·, ·) : V × V → C una forma sesquilineare continua e coerciva ed F : V → C un funzionale lineare continuo, cioè F ∈ V 0 dove V 0 indica lo spazio duale di V . Allora esiste una ed una sola u ∈ V soluzione del problema cercare u ∈ V : A (u, v) = F(v) ∀v ∈ V e ||u||V ≤ (2.22) 1 ||F||V 0 . α (2.23) Siamo ora in grado di dimostrare il seguente risultato: ✑ Teorema 2.4 (Esistenza ed unicità della soluzione) Il problema (2.21) ammette una ed una sola soluzione. Dimostrazione. Definiamo in H(rot; Ω) × H(rot; Ω) la forma sesquilineare A (·, ·) A (w, v) := Z ΩC σ −1 rot wC · rotvC + iω Z Ω µ w·v . (2.24) Definiamo inoltre su V il funzionale lineare e LC (vC ) := Z ΩC σ −1 Je,C · rot vC . (2.25) Allora il problema (2.21) diventa: cercare H ∈ V Je,I tale che ∀ v ∈ V A (H, v) = e LC (vC ) . (2.26) Come conseguenza dei vincoli (2.7)–(2.8) (vedi (3) e (13)), esiste He,I ∈ H(rot; ΩI ) tale che ( rot He,I = Je,I in ΩI (2.27) He,I × n = 0 su ∂ ΩI \ Γ Sia He,C ∈ H(rot; ΩC ) tale che su Γ . He,C × nC + He,I × nI = 0 (2.28) Indichiamo con H∗ ∈ H0 (rot; Ω) il campo vettoriale definito da ( He,I in ΩI H∗ := He,C in ΩC . ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ (2.29) ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 27 Cap.2 Correnti parassite in regime armonico ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Sia Z := H − H∗ , allora Z ∈ V e, grazie al lemma di Lax-Milgram, il problema cercare Z ∈ V tale che ∀ v ∈ V (2.30) A (Z, v) = L(v) dove A (·, ·) è stata definita in (2.24) mentre L(v) := −A (H∗, v) + e LC (vC ) (2.31) ha un’unica soluzione. Effettivamente osserviamo che la forma sesquilineare A (·, ·) è continua Z Z −1 |A (u, v)| ≤ iωµ u · v + σ rot u · rot v ≤ Ω Ω C ≤ |ω | ||µ ||∞ ||u||L2(Ω) ||v||L2(Ω) + + ||σ −1||L∞ (ΩC ) || rotu||L2 (ΩC ) || rotv||L2(ΩC ) ≤ (2.32) ≤ max{|ω | ||µ ||∞ , ||σ −1||L∞ (ΩC ) } (||u||L2(Ω) ||v||L2(Ω) + + || rotu||L2 (Ω) || rotv||L2(Ω) ) ≤ ≤ γ (||u||2L2(Ω) + || rot u||2L2(Ω) )1/2 (||v||2L2(Ω) + || rot v||2L2(Ω) )1/2 = = γ ||u||H(rot,Ω) ||v||H(rot,Ω) coerciva in V (usando l’ipotesi di uniforme positività della matrice µ in Ω e della matrice σ −1 in ΩC ) |A (v, v)| 2 Z Z −1 σ rot v · rotv = = iωµ v · v + Ω Z 2 ΩCZ 2 2 −1 = ω µv · v + σ rot v · rot v ≥ 2 Ω ≥ = ≥ ≥ ✧ 28 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Ω 4 ω c1 ||v||L2(Ω) + c2 || rot v||4L2(ΩC ) = ω 2 c1 ||v||4L2(Ω) + c2 || rot v||4L2(Ω) ≥ min{ω 2 c1 , c2 } (||v||4L2(Ω) + || rot v||4L2(Ω) ) α ||v||4H(rot,Ω) 2 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ (2.33) ≥ ✧ ✧ ✧ ✧ ✧ ✧ § 2.4 Formulazione variazionale del problema in H ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ e il funzionale lineare L(v) è continuo: ∗ e |L(v)| = | − A (H∗ , v) + e LC (vC )| ≤ |A (H Z , v)| + |LC (vC )| ≤ ∗ −1 σ Je,C · rotv ≤ ≤ γ ||H ||H(rot,Ω) ||v||H(rot,Ω) + Ω C ≤ γ ||H ||H(rot,Ω) ||v||H(rot,Ω) + ||σ ||L∞ (ΩC ) ||Je,C ||L2(ΩC ) || rot v||L2(ΩC ) ≤ ≤ C1 ||v||H(rot,Ω) + C2 || rotv||L2(ΩC ) ≤ C||v||H(rot,Ω) (2.34) −1 ∗ quindi la soluzione di (2.21) esiste ed è unica. Una volta calcolato H, dalla prima delle (2.14) otteniamo il campo elettrico nel conduttore: EC = σ −1 rot HC − Je,C . Ricordando la condizione di incollamento lungo l’interfaccia EI × nI + EC × nC = 0 su Γ j , j = 1, . . ., pΓ , il campo elettrico nell’isolante è soluzione del sistema in ΩI rot EI = −iωµI HI in ΩI div(ε EI ) = 0 (ε E)|ΩI · n = 0 EI × nI = −σ −1 rot HC − Je,C × nC < (ε E) · n, 1 > = 0 Γj |ΩI su ∂ Ω su Γ su Γ j , j = 1, . . ., pΓ − 1. È stato dimostrato in (1) che tale sistema ammette una ed una sola soluzione. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 29 3 Approssimazione numerica S i vuole approssimare la soluzione di (2.30) usando il metodo degli elementi finiti. Contenuto 3.1 Metodo di Galerkin 3.2 Formulazione debole bidominio 3.3 Elementi finiti 3.4 3.3.1 Triangolazione 3.3.2 Sottospazio di funzioni polinomiali a tratti 3.3.3 Elementi finiti di Lagrange 3.3.4 Elementi finiti di Nédélec Iterazione per sottodomini L’idea generale dei metodi di tipo Galerkin (di cui il metodo degli elementi finiti è un caso particolare) è la seguente. Sezione 3.1 Metodo di Galerkin Se consideriamo la formulazione debole di un generico problema posto su un dominio Ω ⊂ R3 : cercare u ∈ V : ∀ v ∈ V a(u, v) = F(v) 31 (3.1) Cap.3 Approssimazione numerica ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ essendo V un opportuno spazio di Hilbert, a(·, ·) una forma sesquilineare da V × V in C continua con costante γ e coerciva con costante α e F(·) un funzionale lineare da V in C continuo, il metodo di Galerkin per l’approssimazione numerica di (3.1) consiste nel cercare una soluzione approssimata uh ∈ Vh , essendo Vh una famiglia di spazi dipendente da un parametro positivo h, tali che Vh ⊂ V , dimVh = N < ∞ e per ogni v ∈ V inf ||v − vh || −→ 0 . vh ∈Vh (3.2) h→0 Il problema approssimato assume allora la forma: cercare uh ∈ Vh : ∀ vh ∈ Vh (3.3) a(uh , vh ) = F(vh ) Indicando con {ϕih }N i=1 una base di Vh , è sufficiente che la (3.3) sia verificata per ogni funzione della base, in quanto tutte le funzioni dello spazio Vh sono una combinazione lineare delle ϕih . Pertanto il problema diventa: cercare uh ∈ Vh : ∀ i = 1, ..., N (3.4) a(uh , ϕih ) = F(ϕih ) Naturalmente, avendosi uh ∈ Vh , sarà possibile esprimere uh come combinazione lineare delle funzioni di base ovvero N ∃ uh = (u jh )1≤ j≤N : uh (x) = dove uh è un vettore con i coefficienti allora: ∑ u jhϕ jh (x) j=1 N u jh i= j incogniti. Le equazioni (3.4) diventano cercare uh ∈ CN : ∀ i = 1, ..., N ! N ∑ u jhϕ jh , ϕih a = F(ϕih ) . j=1 Per la linearità di a(·, ·) è equivalente a: cercare u ∈ CN : ∀ i = 1, ..., N N (3.5) ∑ u jha(ϕ jh, ϕih) = F(ϕih) . j=1 Indicando con A ≡ ai j ✧ 32 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 1≤i, j≤N con ai j = a(ϕ jh , ϕih ) b ≡ (bih )1≤i≤N con bih = F(ϕih ) uh ≡ u jh 1≤ j≤N ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 3.2 Formulazione debole bidominio ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ il problema (3.5) è equivalente a: cercare uh ∈ CN soluzione del sistema lineare (3.6) Auh = b la cui soluzione esiste ed è unica poiché u∗h Auh = a(uh , uh ) > 0 per ogni uh 6= 0 per la coercività di a(·, ·). Altrimenti è sufficiente osservare che il sistema (3.6) è equivalente al problema (3.3) e che il lemma di Lax-Milgram, che vale per ogni spazio di Hilbert V , in particolare vale anche per il sottospazio chiuso Vh che risulta di Hilbert rispetto alla stessa norma di V. Inoltre la soluzione uh del problema di Galerkin converge alla soluzione del problema debole (3.1) quando h tende a zero. Vale infatti il seguente risultato ➠ Lemma 1 (di Céa) Se u è soluzione di (3.1) e uh è soluzione di (3.3), segue che ||u − uh||V ≤ γ inf ||u − vh ||V . α vh ∈Vh Dalla (3.2) segue che uh converge a u quando h → 0. Sezione 3.2 Formulazione debole bidominio Per applicare il metodo di Galerkin si tratta adesso di costruire una famiglia di sottospazi di dimensione finita Vh ⊂ V che approssima lo spazio V dove è definito il problema (2.30). Per semplicità di trattazione consideriamo domini Ω in cui l’isolante ΩI è semplicemente connesso (vedi figura 3.1). È ben noto (vedi ad esempio (19)) che in tal caso una forma differenziale vI (definita su ΩI ) irrotazionale è il gradiente di un potenziale ψI . Se vI × n = 0 su ∂ Ω, possiamo scegliere ψI = 0 su ∂ Ω. Pertanto se v ∈ V , possiamo decomporla come v|ΩC = vC e v|ΩI = ∇ψI tali che vC ∈ H(rot; ΩC ) , ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ψI ∈ H0,1 ∂ Ω (ΩI ) := ξ ∈ H 1 (ΩI ) | ξ|∂ Ω = 0 . ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ (3.7) ✧ ✧ ✧ ✧ ✧ ✧ ✧ 33 Cap.3 Approssimazione numerica ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Figura 3.1: Dominio computazionale Inoltre, per ogni z ∈ H(rot; Ω), zC × nC + zI × nI = 0 in Γ: infatti per ogni w ∈ [H01 (Ω)]3 Z Ω rot z · w = = = Z ZΩ z · rotw = ZΩC Ω Z zC · rotwC + ΩCZ rot zC · wC + ΩI Z ΩI zI · rot wI = rot zI · wI + < zC × nC , wC > + < zI × nI , wI >= rot z · w+ < zC × nC , w > + < zI × nI , w > . Pertanto zC × nC + zI × nI = 0 in Γ. Siccome V ⊂ H(rot; Ω) introduciamo lo spazio n o W := (vC , φI ) ∈ H(rot; ΩC ) × H0,1 ∂ Ω(ΩI ) vC × nC + ∇φI × nI = 0 su Γ dotato della norma naturale 1/2 ||(vC , φI )||W = ||vC ||2H(rot;Ω ) + ||φI ||2H 1(ΩI ) . C La formulazione debole di (2.30) può essere riscritta nel seguente modo: cercare (ZC , ψI ) ∈ W tale che ∀ (vC , ϕI ) ∈ W Z ΩC = ✧ 34 ✧ ✧ Z iωµC ZC · vC + σ ΩC ✧ −1 rot ZC · rot vC + Z ΩI [iωµI ∇ψI · ∇ϕ I ] = (3.8) Z −1 σ (Je,C − rot He,C ) · rotvC − iωµC He,C · vC − [iωµI He,I · ∇ϕ I ] ΩI ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 3.2 Formulazione debole bidominio ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ In altre parole se definiamo in W ×W la forma sesquilineare B(·, ·) B((wC , ψI ), (vC , ϕI )) := AC (wC , vC ) + BI (ψI , ϕI ) , (3.9) Z (3.10) dove AC (wC , vC ) := ΩC (σ −1 rot wC · rot vC + iωµC wC · vC ) e BI (ψI , ϕI ) := iω Z ΩI µI ∇ψI · ∇ϕ I , (3.11) il problema (3.8) si scrive cercare (ZC , ψI ) ∈ W tale che ∀ (vC , ϕI ) ∈ W (3.12) AC (ZC , vC ) + BI (ψI , ϕI ) = LC (vC ) + LI (ϕI ) dove LC (vC ) := Z LI (ϕI ) := − ΩC Z ΩI σ −1 (Je,C − rot He,C ) · rotvC − iωµC He,C · vC [iωµI He,I · ∇ϕ I ] La soluzione del problema (3.8) esiste ed è unica poiché (3.8) è equivalente al problema (2.30). Tuttavia è possibile dimostrarlo direttamente utilizzando nuovamente il lemma di Lax-Milgram. La dimostrazione è analoga a quella fatta per il problema (2.30) eccetto per quanto riguarda la coercività della forma sesquilineare B(·, ·) per la quale si deve considerare il seguente risultato ✒ Proposizione 3.1 (Disuguaglianza di Poincaré) Sia Ω un insieme limitato e connesso di Rn e Σ un sottoinsieme (non vuoto) Lipschitziano del bordo ∂ Ω. Allora esiste una costante CΩ > 0 tale che: 1 ∀ v ∈ H0,Σ (Ω). ||v||L2(Ω) ≤ CΩ ||∇v||L2(Ω) ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ (3.13) ✧ ✧ ✧ ✧ ✧ ✧ ✧ 35 Cap.3 Approssimazione numerica ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Infatti si ha |B((vC , ψI ), (vc, ψI ))|2 = 2 Z Z Z −1 σ rot vC · rot vC + iωµI ∇ψI · ∇ψ I = iωµC vC · vC + = ΩI 2 ΩC Z ZΩC 2 Z −1 2 σ rot vC · rot vC + ω µC vC · vC + µI ∇ψI · ∇ψ I ≥ = ΩI ΩC ΩC 2 2 2 Z Z Z −1 2 2 σ rot vC · rot vC + ω µC vC · vC + ω µI ∇ψI · ∇ψ I ≥ ≥ ΩC ΩC (3.14) ΩI ≥ α ||vC ||4H(rot,Ω ) + ω 2 c ||∇ψI ||4L2(ΩI ) ≥ C (3.13) c ≥ α ||vC ||4H(rot,Ω ) + ω 2 4 ||ψI ||4H 1 (ΩI ) ≥ C CΩI + 1 4 . e ||(vC , ψI )||W ≥α Pertanto, poiché la forma sesquilineare B(·, ·) è continua e coerciva in W e il funzionale lineare L ((vC , ϕI )) := LC (vC ) + LI (ϕI ) è continuo in W , per il lemma di Lax-Milgram esiste una ed una sola soluzione. Sezione 3.3 Elementi finiti Vista la natura eterogenea del problema è necessario usare spazi diversi per approssimare la soluzione nei due sottodomini ΩC ed ΩI . Usiamo gli elementi finiti di Lagrange per approssimare lo spazio H0,1 ∂ Ω (ΩI ) := ψ ∈ H 1 (ΩI ) | ψ|∂ Ω = 0 e gli elementi finiti di Nédélec per approssimare lo spazio H(rot, ΩC ). Possiamo costruire queste famiglie per tetraedri o cubi e, poiché il controllo degli elementi della mesh è più agevole per i cubi, si è deciso di lavorare con questi ultimi. Presentiamo quindi le proprietà dell’approssimazione degli elementi finiti sottolineando tre aspetti base di questo metodo: l’esistenza di una triangolazione del dominio Ω, la costruzione di un sottospazio finito-dimensionale di funzioni polinomiali a tratti e l’esistenza di una base costituita da funzioni aventi supporto piccolo. Quindi introduciamo un operatore di interpolazione e stimiamo l’errore di interpolazione. 3.3. Triangolazione Sia Ω ⊂ R3 un dominio poligonale, cioè Ω è un sottoinsieme aperto limitato connesso tale che Ω è l’unione di un numero finito di poliedri. ✧ 36 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 3.3 Elementi finiti ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Qui consideriamo una decomposizione finita Ω= [ (3.15) K, K∈Th dove: ◦ • ogni K è un poliedro con K 6= 0; ◦ ◦ • K1 ∩ K2 = 0 per ogni K1 , K2 ∈ Th distinti; • se f = K1 ∩ K2 6= 0 (K1 e K2 elementi distinti di Th ) allora f è un vertice, lato o faccia comune a K1 e K2 ; • diam(K) ≤ h per ogni k ∈ Th . Th è detta triangolazione di Ω. b Assumeremo inoltre che ogni elemento K di Th si possa ottenere come K = FK (K), b è un poliedro di riferimento ed FK una trasformazione affine invertibile, cioè dove K x + bk con BK matrice invertibile. Se consideriamo come poliedro di FK (b x) := BK b b il cubo unitario [0, 1]3 e la matrice BK è diagonale, allora ogni K = FK (K) b ∈ riferimento K Th è un parallelepipedo di facce parallele agli assi cartesiani. 3.3. Sottospazio di funzioni polinomiali a tratti Un secondo aspetto fondamentale del metodo degli elementi finiti consiste nel determinare uno spazio di dimensione finita Xh costituito da funzioni polinomiali a tratti che fornisce una buona approssimazione dello spazio X che stiamo considerando. Chiamando PK := vh|K | vh ∈ Xh , questo deve essere uno spazio di funzioni polinomiali. Sia Ql l’insieme dei polinomi in x a coefficienti reali di grado minore o uguale a l separatamente in tutte le variabili e Ql,m,n l’insieme dei polinomi in x a coefficienti reali di grado minore o uguale a l in x1 , a m in x2 e a n in x3 . Negli elementi finiti di Lagrange PK = Ql mentre in quelli di Nédélec PK = Ql−1,l,l × Ql,l−1,l × Ql,l,l−1 =: Gl . Ci limitiamo al caso l = 1. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 37 Cap.3 Approssimazione numerica ✧ ✧ ✧ 3.3. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Elementi finiti di Lagrange (su parallelepipedi, di grado 1) Lo spazio degli elementi finiti di Lagrange è dato da Vh := ψh ∈ C0 (Ω) | ψh|K ◦ FK ∈ Q1 ∀ K ∈ Th Osserviamo che, siccome BK è diagonale e Q1 è invariante per questo tipo di trasformazione, lo spazio Vh si può scrivere equivalentemente come Vh := ψh ∈ C0 (Ω) | ψh|K ∈ Q1 ∀ K ∈ Th Osserviamo che Vh ⊂ H 1 (Ω). Questo è conseguenza del seguente risultato: ✒ Proposizione 3.2 Una funzione v : Ω → R appartiene ad H 1 (Ω) se e solo se a. v|K ∈ H 1 (K) per ogni K ∈ Th ; b. per ogni faccia comune f = K1 ∩ K2 , K1 , K2 ∈ Th , la traccia su f di v|K1 e v|K2 è la stessa. Dimostrazione. Se vale a., possiamo definire le funzioni w j ∈ L2 (Ω), j = 1, 2, 3, come w j|K := D j (v|K ) ∀ K ∈ Th ∂ . ∂xj Per provare che v ∈ H 1 (Ω) è sufficiente provare che w j = D j v. Usando la formula di indicando con D j := Green, per ogni ψ ∈ D(Ω) possiamo scrivere D 0 (Ω) < w j , ψ >D(Ω) = Z Ω w jψ = ∑ K Z K w jψ = − ∑ K Z K (v|K )D j ψ + ∑ K Z ∂K (v|K )ψ n j , dove n j := (nK ) j è la componente j-esima della normale uscente da K. Poiché ψ|∂ Ω = 0 e nK1 = −nK2 =: n sulla faccia comune f = K1 ∩ K2 , allora se vale b. si ottiene D 0 (Ω) < w j , ψ >D(Ω) = Z Ω w jψ = − Z Ω vD j ψ + ∑ f Z f (v|K1 − v|K2 )ψ n j = − Z Ω vD j ψ , cioè w j = D j v nel senso delle distribuzioni. ✧ 38 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 3.3 Elementi finiti ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Viceversa, se v ∈ H 1 (Ω), ovviamente vale a. Inoltre, definendo w j := D j v ∈ L2 (Ω) e procedendo come sopra si trova ∑ f Z f (v|K1 − v|K2 )ψ n j = 0 ∀ ψ ∈ D(Ω) , j = 1, 2, 3, cioè la b. è soddisfatta. È ora necessario costruire una base dello spazio Vh in modo che le funzioni di base siano facilmente descrivibili ed abbiano un supporto piccolo. Per questo è importante determinare quali sono i gradi di libertà cioè i parametri che determinano univocamente su ogni elemento K una funzione di Q1 . b = [0, 1]3 osserviamo che se q ∈ Q1 ed è uguale a zero negli Nel cubo di riferimento K b allora q è identicamente nulla. Lo stesso argomento è valido per ogni otto vertici di K parallelepipedo K ∈ Th di facce parallele agli assi. Pertanto i gradi di libertà sono i valori n h,L di ψh nei vertici della mesh che denotiamo {a j } j=0 . Osserviamo inoltre che questa scelta dei gradi di libertà garantisce che le funzioni ψh sono continue perché i gradi di libertà in ogni faccia identificano univocamente la restrizione di ψh in questa faccia. Pertanto le funzioni della base sono le funzioni ϕ j,h che ristrette ad ogni elemento sono un polinomio di Q1 e che soddisfano ϕi,h (a j ) = δi j ∀i, j = 0 . . . nh,L . L’identificazione dei gradi di libertà e delle funzioni di base porta facilmente alla definizione di un operatore di interpolazione, cioè un operatore ΠL : C0 (Ω) → Vh tale che per ogni v ∈ C0 (Ω) ΠL (v) := nh,L ∑ v(ai)ϕi,h . i=1 Vale la seguente stima dell’errore d’interpolazione: ✑ Teorema 3.3 Per ogni ψ ∈ H 2 (Ω) esiste una costante c > 0, indipendente da h, tale che ||ψ − ΠL ψ ||1,Ω ≤ c h |ψ |2,Ω . Osserviamo che H 2 (Ω) ⊂ C0 (Ω), pertanto ΠL ψ è ben definito per ogni ψ ∈ H 2 (Ω). ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 39 Cap.3 Approssimazione numerica ✧ ✧ ✧ 3.3. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Elementi finiti di Nédélec (su parallelepipedi, di grado 1) Lo spazio degli elementi finiti di Nédélec è dato da Nh := vh ∈ H(rot; Ω) | vh|K ∈ G1 ∀ K ∈ Th Il seguente risultato ci indica quali condizioni devono soddisfare le funzioni vh nel- l’interfaccia f tra due elementi K1 , K2 della triangolazione Th affinché appartengano a Nh : ✒ Proposizione 3.4 Sia v : Ω → R3 una funzione tale che a. v|K ∈ [H 1 (K)]3 per ogni K ∈ Th b. per ogni faccia comune f = K1 ∩ K2 , K1 , K2 ∈ Th , le tracce su f delle componenti tangenziali v × n|K1 e v × n|K2 coincidono allora v appartiene ad H(rot; Ω). Viceversa se v appartiene ad H(rot; Ω) e la a. è soddisfatta, allora vale la b. Dimostrazione. Consideriamo la funzione w ∈ [L2 (Ω)]3 cosı̀ definita: w|K := rot(v|K ) ∀ K ∈ Th Verifichiamo che la distribuzione rot v coincide con w. Per ogni u ∈ [CC∞(Ω)]3 si ha D 0 (Ω) < rot v, u >D(Ω) = Z Ω v · rot u = ∑ K Z K (v|K ) · rot u = poiché u|∂ Ω = 0 e nK1 = −nK2 =: n sulla faccia comune f = K1 ∩ K2 , allora =∑ Z = w·u = ZK Ω K rot(v|K ) · u + ∑ f D 0 (Ω) < Z f (v × n|K1 − v × n|K2 ) · u = w, u >D(Ω) , cioè rot v = w ∈ [L2 (Ω)]3 . Viceversa, se v ∈ H(rot; Ω) abbiamo w = rot v ∈ [L2 (Ω)]3. Poiché v|K ∈ [H 1 (K)]3 , la traccia su f è ben definita e si ottiene ∑ f Z f ∀ u ∈ [CC∞ (Ω)]3 , j = 1, 2, 3 (v × n|K1 − v × n|K2 ) · u = 0 cioè vale la b. ✧ 40 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 3.3 Elementi finiti ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Si tratta ora di determinare i gradi di libertà che ci permettono di individuare univocamente le funzioni di Nh e costruirne una base. In ogni parallelepipedo K il numero di gradi di libertà deve coincidere con la dimensione di G1 che è dodici e devono essere tali che se sono tutti nulli allora la funzione è nulla (unisolvenza). Inoltre, per la proposizione precedente, devono essere tali da determinare le componenti tangenziali sulle facce dei pan h,N rallelepipedi della mesh. In Nédélec (16) si dimostra che, se {ei }i=1 è l’insieme degli spigoli della mesh, i momenti mi (v) := Z ei v · tds i = 1, . . . , nh,N dove t è il vettore tangente lungo ei , soddisfano queste due condizioni. Infatti ogni v ∈ Nh si può scrivere come a1 + b1 y + c1 z + d1 yz v= a + b x + c z + d xz 2 2 2 2 a3 + b3 x + c3 y + d3 xy con a j , b j , c j , d j ∈ R , j = 1, 2, 3. Su una faccia f , ad esempio z = 0, la restrizione di v ad f è v| f = a1 + b1 y a2 + b2 x a3 + b3 x + c3 y + d3 xy e la componente tangenziale di v è a2 + b2 x . v| f × n = −a − b y 1 1 0 Pertanto la condizione di azzeramento dei quattro momenti corrispondenti ai quattro spigoli della faccia implica a1 = a2 = b1 = b2 = 0 ossia la conformità. Procedendo in maniera analoga sulle altre facce si ha che v = 0 cioè si ha unisolvenza. Pertanto una base di Nh è costituita dalle funzioni wi,h che, ristrette ad ogni elemento K, sono un polinomio di G1 e soddisfano Z ej wi,h · tds = δi j . L’identificazione dei gradi di libertà e delle funzioni di base porta alla definizione di un operatore di interpolazione, cioè un operatore ΠN : [H 2 (Ω)]3 → Nh tale che per ogni ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 41 Cap.3 Approssimazione numerica ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ v ∈ [H 2 (Ω)]3 ΠN (v) := ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ nh,N ∑ mi(v)wi,h i=1 e vale la seguente stima dell’errore d’interpolazione: ✑ Teorema 3.5 Per ogni v ∈ [H 2 (Ω)]3 esiste una costante c > 0, indipendente da h, tale che ||v − ΠN (v)||[L2(K)]3 ≤ ch|v|[H 2(K)]3 || rot(v − ΠN (v))||[L2(K)]3 ≤ ch|v|[H 2(K)]3 Nel seguito indicheremo con VI,h lo spazio degli elementi finiti di Lagrange introdotti nella sezione precedente relativi al dominio ΩI e con NC,h lo spazio degli elementi finiti di Nédélec relativi al dominio ΩC . È pertanto naturale formulare il problema discreto dell’approssimazione di Galerkin corrispondente a (3.8) nello spazio Wh := {(vC,h, φI,h ) ∈ NC,h ×VI,h | vC,h × nC + ∇φI,h × nI = 0 su Γ} (vedi (2) e (6)) e si ottiene il seguente problema discreto cercare (ZC,h , ψI,h) ∈ Wh tale che ∀ (vC,h, ϕI,h ) ∈ Wh Z = Z ΩC ΩC Z −1 iωµC ZC,h · vC,h + σ rot ZC,h · rot vC,h + iωµI ∇ψI,h · ∇ϕ I,h = ΩI (3.16) Z −1 σ (Je,C − rot He,C ) · rotvC,h − iωµC He,C · vC,h − iωµI He,I · ∇ϕ I,h . ΩI Sezione 3.4 Iterazione per sottodomini Per risolvere il problema accoppiato discreto proponiamo un metodo iterativo per sottodomini di tipo Dirichlet-Neumann che, risolvendo una successione di problemi in NC,h e VI,h , a convergenza dà la soluzione del problema accoppiato. ✧ 42 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 3.4 Iterazione per sottodomini ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Per capire meglio questo processo iterativo è utile scrivere (3.8) in forma forte: rot(σ −1 rot HC ) + iωµC HC = rot(σ −1 Je,C ) HC × nC = −∇ψI × nI − He,I × nI div(µI ∇ψI ) = − div(µI He,I ) (3.17) su Γ (3.18) in ΩI (3.19) µI ∇ψI · nI = −µC HC · nC − µI He,I · nI ψI = 0 in ΩC su Γ (3.20) su ∂ ΩI \ Γ (3.21) Effettivamente da (3.8) seguono (3.17)-(3.21). Infatti ❦ poiché la (3.8) vale per ogni (vC , ϕI ) ∈ W , in particolare vale per ogni coppia (vC , ϕI ) in cui vC ∈ H0 (rot, ΩC ) e ϕI = 0 in ΩI e la (3.8) diviene Z ΩC = Z [iωµC ZC · vC + σ −1 rot ZC · rot vC ] = (3.22) ΩC [σ −1 (Je,C − rot He,C ) · rotvC + iωµC He,C · vC ] . Ricordando che HC = ZC + He,C Z ΩC = Z [iωµC HC · vC + σ −1 rot HC · rot vC ] = (3.23) ΩC [σ −1 Je,C · rotvC ] . In particolare questa uguaglianza è vera per ogni vC ∈ [D(ΩC )]3 ed osservando che Z D 0 (ΩC ) < rot u, v >D(ΩC ) = ΩC u · rot v si ha D 0 (ΩC ) < iωµC HC + rot(σ = D 0(ΩC ) −1 rot HC ), vC >D(ΩC ) = (3.24) < rot(σ −1 Je,C ), vC >D(ΩC ) che è la (3.17) in senso distribuzionale. ❦ Analogamente poiché la (3.8) vale per ogni (vC , ϕI ) ∈ W , in particolare vale per ogni coppia (vC , ϕI ) in cui vC = 0 in ΩC e ϕI ∈ H01 (ΩI ) e la (3.8) diviene Z ΩI ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ [iωµI ∇ψI · ∇ϕ I ] = − ✧ ✧ ✧ ✧ ✧ ✧ ✧ Z ΩI ✧ [iωµI He,I · ∇ϕ I ] ✧ ✧ ✧ ✧ ✧ ✧ (3.25) ✧ ✧ ✧ ✧ ✧ ✧ 43 Cap.3 Approssimazione numerica ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ che, in senso distribuzionale, si può scrivere come iω div(µI ∇ψI ), ϕI >D(ΩI ) = D 0 (ΩI ) < D 0 (ΩI ) < iω div(µI He,I ), ϕI >D(ΩI ) (3.26) cioè la (3.19). ❦ La (3.18) e la (3.21) sono contenute nella definizione di W . ❦ Resta da provare la (3.20). Assumiamo che rot(σ −1 Je,C ) ∈ [L2 (ΩC )]3 e che div(µI He,I ) ∈ L2 (ΩI ). Per semplicità riscriviamo la (3.8) come A + B = C + D dove A := B := C := Z ΩC Z ΩI Z [iωµI ∇ψI · ∇ϕ I ], ΩC D := − [iωµC ZC · vC + σ −1 rot ZC · rot vC ], Z [σ −1 (Je,C − rot He,C ) · rotvC − iωµC He,C · vC ], ΩI [iωµI He,I · ∇ϕ I ], e studiamo separatamente ciascun termine. Per la (2.4) A= Z ΩC iωµC ZC · vC + Z ΩC rot(σ −1 rot ZC ) · vC + + << σ −1 rot ZC × nC , n × vC × n >>Γ . Analogamente C= Z ΩC rot(σ −1 (Je,C − rot He,C )) · vC − Z ΩC iωµC He,C · vC ]+ + << σ −1 (Je,C − rot He,C ) × nC , n × vC × n >>Γ . Quindi poiché vale la (3.17) si ottiene A −C =<< σ −1 (rot HC − Je,C ) · nC , n × vC × n >>Γ . Per la (2.1) B=− ✧ 44 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Z ΩI ✧ iω div(µI ∇ψI )ϕ I + < iωµI ∇ψI · nI , ϕI >∂ ΩI . ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 3.4 Iterazione per sottodomini ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Poiché ϕI = 0 su ∂ Ω si ottiene Z B=− ΩI iω div(µI ∇ψI )ϕ I + < iωµI ∇ψI · nI , ϕI >Γ . Analogamente Z D= ΩI [iω div(µI He,I )ϕ I ]− < iωµI He,I · nI , ϕI >Γ . Quindi poiché vale la (3.19) si ottiene D − B = − < iωµI (He,I + ∇ψI ) · nI , ϕI >Γ . In conclusione l’uguaglianza A −C = D − B si riduce a << σ −1 (rot HC − Je,C ) · nC , n × vC × n >>Γ = − < iωµI (He,I + ∇ψI ) · nI , ϕI >Γ che vale per ogni (vC , ϕI ) ∈ W . In particolare n × vC × n = n × ∇ϕI × n in Γ pertanto iωµI (He,I + ∇ψI ) · nI = divτ [σ −1 (rot HC − Je,C ) × nC ] = = rot[σ −1 (rot HC − Je,C )] · nC = = −iωµC HC · nC da cui µI ∇ψI · nI = −µC HC · nC − µI He,I · nI che è la (3.20). Osserviamo che le condizioni che abbiamo ottenuto per l’incollamento del campo nell’interfaccia (3.18) e (3.20) sono proprio le condizioni di raccordo illustrate in (1.15). La formulazione forte (3.17)-(3.21) suggerisce la seguente procedura di tipo DirichletNeumann: dato λ 0 ∈ ϒΓ (spazio della traccia di H(rot; ΩC ) su Γ), per ogni k ≥ 0 calcolare HCk soluzione di ( ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ rot(σ −1 rot HCk ) + iωµC HCk = rot(σ −1 Je,C ) in ΩC HCk × nC = −λ − He,I × nI su Γ , k ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ (3.27) ✧ ✧ ✧ ✧ 45 Cap.3 Approssimazione numerica ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ quindi calcolare ψIk soluzione di k div(µI ∇ψI ) = − div(µI He,I ) µI ∇ψIk · nI = −µC HCk · nC − µI He,I · nI ψk = 0 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ in ΩI su Γ (3.28) su ∂ ΩI \ Γ I infine porre λ k+1 = (1 − ϑ )λ k + ϑ (∇ψIk × nI ) su Γ , (3.29) dove ϑ > 0 è un parametro d’accelerazione. Osserviamo che se la successione λ k è convergente, al limite si ha la soluzione di (3.17)b C la corrispondente soluzione di (3.27) e ψ bI (3.21). Effettivamente se λ k → λb , chiamiamo H bI × nI quindi quella di (3.28); dalla (3.29) abbiamo λb = ∇ψ b C × nC = −∇ψ bI × nI − He,I × nI . H b C, ψ bI ) sono soluzione di (3.17)-(3.21). Pertanto (H Nel discreto l’algoritmo risulta: dato λ 0h ∈ NΓ,h (spazio discreto della traccia di NC,h su Γ), per ogni k ≥ 0 calcolare k ∈ N 0 HC,h C,h tale che per ogni vC,h ∈ NC,h := NC,h ∩ H0 (rot; ΩC ) Z i Z h k −1 k σ rot HC,h · rotvC,h + iωµC HC,h · vC,h = ΩC k ×n HC,h C = −λ kh − He,I,h × nI ΩC σ −1 Je,C · rot vC,h (3.30) 0 1 k ∈V quindi calcolare ψI,h I,h tale che per ogni ϕI,h ∈ VI,h := VI,h ∩ H0,∂ Ω (ΩI ) Z ΩI k · ∇ϕ I,h µI ∇ψI,h =− Z ΩI µI He,I,h · ∇ϕ I,h − Z k µC HC,h · nC ϕ I,h Γ (3.31) infine porre k λ hk+1 = (1 − ϑ )λ kh + ϑ (∇ψI,h × nI ) su Γ . (3.32) Osserviamo che He,I,h è un’opportuna approssimazione di He,I nello spazio discreto VI,h ; non è infatti possibile considerare He,I poiché non si potrebbe soddisfare la seconda delle (3.30); in particolare osserviamo che i gradienti delle funzioni ψI,h di VI,h sono funzioni di ✧ 46 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 3.4 Iterazione per sottodomini ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ H(rot; ΩI ) e localmente elementi di G1 , pertanto ∇VI,h ⊂ NI,h := Nh (ΩI ). Se si costruiscono k × n è un dato Dirichlet ammissibile per mesh in Γ coincidenti nei due sottodomini, ∇ψI,h I il problema (3.30). Due validi test d’arresto sono i seguenti: il primo considera l’errore assoluto fra due iterate successive mentre il secondo l’errore relativo k+1 k+1 k ||2 k ||2 ||∇ψI,h + ||HC,h − HC,h ≤ toll ; − ∇ψI,h L2 (Ω ) H(rot;Ω ) I C k+1 k ||2 − ∇ψI,h ||∇ψI,h L2 (Ω ) I k+1 2 ||∇ψI,h ||L2(Ω ) + k+1 k ||2 ||HC,h − HC,h H(rot;Ω C) k+1 2 ||HC,h ||H(rot;Ω C) I (3.33) ≤ toll . k+1 k allora λ k+1 = λ k , quindi λ k = ∇ψ k × n e pertanto Infatti se HC,h = HC,h I h h h I,h k k HC,h × nC = −∇ψI,h × nI − µI He,I,h × nI . ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 47 4 Risultati numerici questo capitolo proponiamo alcuni esperimenti numerici per verificare la convergenza Idelnmetodo iterativo e la sua robustezza. Contenuto 4.1 4.2 4.3 Passaggio del dato nell’interfaccia Γ 4.1.1 Passaggio del dato Dirichlet da ΩI a ΩC 4.1.2 Passaggio del dato Neumann da ΩC a ΩI Risultati numerici 4.2.1 Gradi di libertà 4.2.2 Dato iniziale in Γ reale 4.2.3 Dato iniziale in Γ complesso Considerazioni conclusive Consideriamo un problema modello con parametri µ e σ scalari e costanti (un mezzo omogeneo, lineare ed isotropo). Il dominio computazionale è il parallelepipedo Ω = (0, 1) × (0, 2) × (0, 1), che sarà decomposto nei due sottospazi ΩC = (0, 1) × (0, yΓ) × (0, 1) ed ΩI = (0, 1) ×(yΓ, 2) ×(0, 1) (vedi figura 4.1). L’interfaccia è il quadrato Γ = {(x, yΓ , z) | x, z ∈ (0, 1) }. La mesh è uniforme e ogni elemento della griglia è un cubo di lato h. / Pertanto in (4.8) bisogna aggiungere una condizione In questa situazione ∂ ΩC ∩ ∂ Ω 6= 0. su ∂ ΩC ∩ ∂ Ω; in concreto HC × nC = 0 su ∂ ΩC ∩ ∂ Ω. 49 Cap.4 Risultati numerici ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Figura 4.1: Dominio computazionale e alcune posizioni dell’interfaccia Γ Definendo un parametro k := ωσ µ la procedura di iterazione per sottodomini in questa geometria diviene: dato λ 0h ∈ NΓ,h (spazio discreto della traccia di NC,h su Γ), per ogni k ≥ 0 calcolare k e 0 := uC,h ∈ NC,h | (uC,h × nC )|(∂ Ω \Γ) = 0 tale che per ogni vC,h ∈ N 0 = HC,h ∈N C,h C,h C NC,h ∩ H0 (rot; ΩC ) Z h i Z k k rot HC,h · rotvC,h + i k HC,h · vC,h = ΩC k ×n HC,h C = −λ kh − He,I,h × nI ΩC Je,C · rotvC,h (4.1) 0 1 k ∈V quindi calcolare ϕI,h I,h tale che per ogni ψI,h ∈ VI,h = VI,h ∩ H0,∂ Ω (ΩI ) Z ΩI k · ∇ψ I,h µI ∇ϕI,h =− Z ΩI µI He,I · ∇ψ I,h − Z Γ k · nC ψ I,h µC HC,h (4.2) su Γ. (4.3) infine porre λ k+1 = (1 − ϑ )λ k + ϑ (∇ϕIk × nI ) Sezione 4.1 Passaggio del dato nell’interfaccia Γ Per semplicità in questa sezione indicheremo con {wk }Nn k=1 le funzioni base dello spazio di Nédélec e con {ψ j }Nl j=1 le funzioni base dello spazio di Lagrange (vedere l’appendice per i dettagli). ✧ 50 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 4.2 Risultati numerici ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Passaggio del dato Dirichlet da ΩI a ΩC 4.1. Ad ogni iterazione in ΩC si risolve un problema di tipo Dirichlet Z h i k k 0 · vC,h = 0 ∀ vC,h ∈ NC,h rot HC,h · rotvC,h + ikHC,h ΩC k ×n HC,h C (4.4) = −λ kh Osserviamo che le funzioni ψI,h di VI,h sono localmente elementi di Q1 . I loro gradienti sono funzioni di H(rot; ΩI ) e localmente elementi di G1 , pertanto ∇VI,h ⊂ NI,h := Nh (ΩI ). Siccome k × n è un dato Dirichlet ammissibile le mesh dei due sottodomini coincidono in Γ, ∇ψI,h I per il problema (4.4). Passaggio del dato Neumann da ΩC a ΩI 4.1. Abbiamo visto nel capitolo precedente che, noto HC,h ∈ NC,h soluzione di (4.4), si cerca ϕI,h ∈ VI,h tale che per ogni ψI,h ∈ VI,h Z ΩI µ ∇ϕI · ∇ψ j = − Z Γ µ HC,h · nC ψ j . (4.5) Poiché HC,h = ∑Nn k HC,k wk (omettiamo il pedice h per non appesantire la notazione), avremo Z Ponendo Z Γ Nn Γ µ HC,h · nC ψ j = ∑ HC,k k Z Γ µ wk · nC ψ j . (4.6) µ wk · nC ψ j = S jk , il problema (4.5) risulta equivalente al sistema lineare AL u = bL , dove (AL )i j := Z ΩI µ ∇ψ j ∇ψ i , (bL ) j := (S ∗ HC ) j . Sezione 4.2 Risultati numerici Questa sezione è dedicata all’analisi dei dati ottenuti nelle prove numeriche effettuate. Tali risultati illustrano l’efficacia della procedura di iterazione per sottodomini presentata ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 51 Cap.4 Risultati numerici ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ nel capitolo precedente. Ci limitiamo a considerare il problema con dati Je,C e He,I uguali a zero e verificheremo che partendo da un dato λ 0 6= 0 la successione {(HCk , ψIk )}k converge a zero. Questo equivale a studiare il decadimento dell’errore nel processo iterativo giacché, scrivendo la differenza tra le soluzioni del problema forte (3.17)-(3.21) e l’iterazione k-esima (3.27)-(3.28) e chiamando ΞCk = HC − HCk , (4.7) ξIk = ψI − ψIk , l’errore nell’iterazione k-esima, questo soddisfa k k −1 rot(σ rot ΞC ) + iωµC ΞC = 0 ΞCk × nC = −∇ψI × nI + λ k Ξk × n = 0 in ΩC su Γ su ∂ ΩC \ Γ C C k − div(µI ∇ξI ) = 0 µI ∇ξIk · nI = −µC ΞCk · nC ξk = 0 (4.8) in ΩI su Γ (4.9) su ∂ ΩI \ Γ I Ponendo χ k := ∇ψI × nI − λ k e ricordando che λ k+1 = (1 − ϑ )λ k + ϑ (∇ψIk × nI ) su Γ , (4.10) segue che χ k+1 = ∇ψI × nI − (1 − ϑ )λ k − ϑ (∇ψIk × nI ) = = (1 − ϑ )χ k + ϑ (∇ξIk × nI ) su Γ . Mostreremo che partendo da un dato iniziale (reale o complesso) diverso da zero nell’interfaccia, l’algoritmo converge alla soluzione nulla in poche iterazioni. In particolare vedremo che la velocità di convergenza non dipende dalla dimensione h della griglia di calcolo, mostreremo che esiste un valore ottimale del parametro di rilassamento ϑ indipendente da h e dai parametri del problema e infine che l’algoritmo è piuttosto robusto sia rispetto alla posizione dell’interfaccia sia rispetto ai parametri ω , σ e µ . Non è infine da sottovalutare lo sforzo computazionale richiesto per risolvere i sistemi lineari: vedremo infatti che le dimensione delle matrici in gioco raggiungono dimensioni elevate. ✧ 52 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 4.2 Risultati numerici ✧ ✧ ✧ 4.2. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Gradi di libertà Indichiamo con nc il numero di cubetti in cui viene decomposto il dominio Ω lungo l’asse delle x, con pc il numero di cubetti in cui viene decomposto il dominio Ω lungo l’asse delle z e con mcN ed mcL il numero di cubetti in cui vengono decomposti rispettivamente i due sottodomini ΩC ed ΩI lungo l’asse delle y. Il numero totale di spigoli in ΩC è DOFC := nc (mcN + 1) (pc + 1) + (nc + 1) mcN (pc + 1) + (nc + 1) (mcN + 1) pc e il numero di gradi di libertà nel conduttore è pari a DOFC meno il numero di spigoli con dato Dirichlet. Il numero totale di vertici in ΩI è DOFI := (nc + 1) (mcL + 1) (pc + 1) e il numero di gradi di libertà nell’isolante è pari a DOFI meno il numero di vertici con dato Dirichlet. Poiché la mesh è uniforme e ogni elemento della griglia è un cubo di lato h, si ha: nc = 1 h pc = 1 h mcN = yΓ h mcL = (2 − yΓ ) h Di conseguenza: (1 + h) (3 yΓ + 2 h + yΓ h) h3 (1 + h)2 (2 − yΓ + h) DOFI = h3 La tabella 4.1 contiene l’espressione, in funzione della dimensione h della mesh, dei DOFC = gradi di libertà di Nédélec e di Lagrange per le tre configurazioni del dominio con le quali abbiamo effettuato le prove numeriche. In figura 4.2 sono rappresentate le mesh per (a) h=1/4 (b) h=1/8 (c) h=1/16. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 53 Cap.4 Risultati numerici ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ yΓ = 1/2 yΓ = 1 yΓ = 3/2 DOF in ΩC (1 + h) (3 + 5 h) 2h3 3 (1 + h)2 h3 (1 + h) (9 + 7 h) 2h3 DOF in ΩI (1 + h)2 (3 + 2h) 2h3 (1 + h)3 h3 (1 + h)2 (1 + 2h) 2h3 ✧ ✧ ✧ ✧ ✧ ✧ ✧ Tabella 4.1: DOF in funzione di h per alcune posizioni dell’interfaccia. (a) h=1/4 (b) h=1/8 (c) h=1/16 Figura 4.2: Mesh cubica ✧ 54 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 4.2 Risultati numerici ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ La tabella 4.2 contiene il numero di gradi di libertà di Nédélec e il numero di gradi di libertà di Lagrange per le tre posizioni dell’interfaccia con le quali abbiamo effettuato le prove numeriche. h yΓ = 1/2 yΓ = 1 yΓ = 3/2 1/4 170 / 175 300 / 125 430 / 75 1/6 483 / 490 882 / 343 1281 / 196 1/8 1044 / 1053 1944 / 729 2844 / 405 1/10 1925 / 1936 3630 / 1331 5335 / 726 1/12 3198 / 3211 6084 / 2197 8970 / 1183 1/14 4935 / 4950 9450 / 3375 13965 / 1800 1/16 7208 / 7225 13872 / 4913 20536 / 2601 1/18 10089 / 10108 19494 / 6859 28899 / 3610 Tabella 4.2: DOF in ΩC / ΩI . ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 55 Cap.4 Risultati numerici ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Dato iniziale in Γ reale 4.2. Assegnamo come dato iniziale sull’interfaccia: ez sin(x y) x (y + z) λ 0 := (ΞC × nC )|Γ = e cos(x z) e studiamo la convergenza della soluzione a 0. Questo dato iniziale è lo stesso che è stato usato in (4) per testare un algoritmo simile relativo alla formulazione del problema nei termini del campo elettrico E. 4.2.2.1 Indipendenza da h e ϑ ottimale Consideriamo un problema in cui ω σ µ = 1 e toll = 10−10 . Nella tabella 4.3 abbiamo riportato il numero di iterazioni necessario per abbattere l’errore ||ΞCk ||2H(rot;Ω ) + ||∇ξIk ||2L2(Ω ) a meno di toll per differenti valori del coefficiente di rilasI C samento ϑ e per varie dimensioni della mesh h. Si osserva che il numero di iterazioni è indipendente da h e che il valore di ϑ ottimale, cioè il valore del parametro di rilassamento che rende più veloce la convergenza, è ϑ = 1 indipendentemente da h. HH ϑ HH HH h HH 0.50 0.75 1.00 1.25 1.50 1/4 23 13 8 10 19 1/6 23 13 8 10 19 1/8 22 13 9 10 19 1/10 23 13 9 10 19 1/12 22 13 8 11 20 1/14 22 13 8 11 20 1/16 22 13 8 11 20 1/18 22 13 8 11 20 Tabella 4.3: Numero di iterazioni con ω σ µ = 1, toll= 10−10 e yΓ = 1. ✧ 56 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 4.2 Risultati numerici ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ In figura 4.3 è rappresentato il numero di iterazioni necessario per abbattere l’errore a meno di 10−10 per differenti valori di h e del parametro di rilassamento ϑ per il problema con parametri ω = σ = µ = 1. yΓ = 1 Numero di iterazioni 25 h=1/4 h=1/6 h=1/8 h=1/10 h=1/12 h=1/14 h=1/16 h=1/18 20 15 10 5 0.5 1 Parametro di rilassamento ϑ 1.5 Figura 4.3: ϑ ottimale e yΓ = 1 4.2.2.2 Robustezza rispetto alla posizione yΓ dell’interfaccia Γ Nelle tabelle (4.4)-(4.5) abbiamo riportato di nuovo il numero di iterazioni necessario per abbattere l’errore a meno di toll per differenti valori del coefficiente di rilassamento ϑ e per varie dimensioni della mesh h. Ogni tabella corrisponde a una differente posizione dell’interfaccia yΓ . Si osserva che anche in questo caso il numero di iterazioni è indipendente da h e il valore di ϑ ottimale è sempre ϑ = 1 indipendentemente da h. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 57 Cap.4 Risultati numerici ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ H HH ϑ HH HH h H 0.50 0.75 1.00 1.25 1.50 1/4 22 13 8 10 18 1/6 22 12 8 10 18 1/8 21 13 8 10 18 1/10 22 13 8 10 19 1/12 22 13 8 10 19 1/14 22 12 8 10 19 1/16 21 12 8 10 19 1/18 21 12 8 10 19 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Tabella 4.4: Numero di iterazioni con ω σ µ = 1, toll= 10−10 e yΓ = 1/2. HH ϑ HH HH h HH 0.50 0.75 1.00 1.25 1.50 1/4 23 13 8 10 19 1/6 23 13 8 11 20 1/8 23 13 9 11 20 1/10 23 14 9 11 20 1/12 23 13 9 11 20 1/14 23 13 8 11 20 1/16 22 13 8 11 20 1/18 22 13 8 11 20 Tabella 4.5: Numero di iterazioni con ω σ µ = 1, toll= 10−10 e yΓ = 3/2. ✧ 58 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 4.2 Risultati numerici ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ yΓ = 1/2 22 25 16 14 Numero di iterazioni Numero di iterazioni 18 ✧ ✧ ✧ ✧ ✧ yΓ = 3/2 h=1/4 h=1/6 h=1/8 h=1/10 h=1/12 h=1/14 h=1/16 h=1/18 20 ✧ 12 h=1/4 h=1/6 h=1/8 h=1/10 h=1/12 h=1/14 h=1/16 h=1/18 20 15 10 10 8 0.5 1 Parametro di rilassamento ϑ 5 0.5 1.5 1 Parametro di rilassamento ϑ 1.5 Figura 4.4: ϑ ottimale, yΓ = 1/2 e yΓ = 3/2 4.2.2.3 Stime dell’errore per diversi valori di h Nelle figure 4.5-4.6-4.7 sono rappresentati in scala logaritmica i decadimenti degli errori (per il problema con ω = σ = µ = 1 e ϑ ottimale) ad ogni passo iterativo per differenti valori di h e della posizione dell’interfaccia. Si osserva che anche in questo caso la velocità di convergenza non risente né della dimensione h della mesh né delle variazioni della posizione dell’interfaccia. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 59 Cap.4 Risultati numerici ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Errore con yΓ=1 5 10 h=1/4 h=1/6 h=1/8 h=1/10 h=1/12 h=1/14 h=1/16 0 10 Errore ✧ −5 10 −10 10 −15 10 0 1 10 10 Numero di iterazioni Figura 4.5: Decadimento dell’errore globale e yΓ = 1 Errore con yΓ=1/2 5 10 h=1/4 h=1/6 h=1/8 h=1/10 h=1/12 h=1/14 h=1/16 0 Errore 10 −5 10 −10 10 −15 10 0 1 10 10 Numero di iterazioni Figura 4.6: Decadimento dell’errore globale e yΓ = 1/2 ✧ 60 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 4.2 Risultati numerici ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Errore con yΓ=3/2 5 10 h=1/4 h=1/6 h=1/8 h=1/10 h=1/12 h=1/14 h=1/16 0 10 Errore ✧ −5 10 −10 10 −15 10 0 1 10 10 Numero di iterazioni Figura 4.7: Decadimento dell’errore globale e yΓ = 3/2 4.2.2.4 Robustezza rispetto ai parametri ω , σ e µ Consideriamo θ ottimale (cioè θ = 1) e poniamo k := ω σ µ . Nella tabella 4.6 abbiamo riportato il numero di iterazioni necessario ad abbattere l’errore a meno di toll = 10−10 per differenti valori di h e del prodotto k dei parametri ω , σ , µ . @ k @ h @@ 10−1 1 10 102 1/4 10 8 5 4 1/6 11 8 5 4 1/8 12 9 5 4 1/10 14 9 5 4 1/12 14 8 5 4 1/14 15 8 5 4 1/16 15 8 5 3 1/18 14 8 5 4 Tabella 4.6: Numero di iterazioni con θ = 1, toll=10−10 e yΓ = 1. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 61 Cap.4 Risultati numerici ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Anche in questo caso la posizione dell’interfaccia Γ è ininfluente come si vede dalle tabelle 4.7-4.8. @ k @ h @@ 10−1 1 10 102 1/4 10 8 5 4 1/6 11 8 5 4 1/8 12 8 5 3 1/10 13 8 5 3 1/12 14 8 5 3 1/14 14 8 5 3 1/16 14 8 5 3 1/18 14 8 5 3 Tabella 4.7: Numero di iterazioni con θ = 1, toll=10−10 e yΓ = 1/2 . @ k @ h @@ 10−1 1 10 102 1/4 10 8 5 4 1/6 11 8 5 4 1/8 12 8 5 4 1/10 14 9 5 4 1/12 15 9 5 4 1/14 15 8 5 4 1/16 15 8 5 4 1/18 14 8 5 4 Tabella 4.8: Numero di iterazioni con θ = 1, toll=10−10 e yΓ = 3/2. ✧ 62 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 4.2 Risultati numerici ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Dato iniziale in Γ complesso 4.2. Riportiamo di seguito i risultati degli esperimenti precedenti considerando questa volta un dato iniziale complesso: λ := (ΞC × nC )|Γ = 0 ez + i sin(x y) y z + i ex i cos(x z) e studiamo di nuovo la convergenza della soluzione a 0. Questo dato iniziale è lo stesso che è stato usato in (4) per testare un algoritmo simile relativo alla formulazione del problema nei termini del campo elettrico E. Vedremo che i risultati sono analoghi ai precedenti. 4.2.3.1 Indipendenza da h e ϑ ottimale HH ϑ HH HH h HH 0.50 0.75 1.00 1.25 1.50 1/4 22 13 8 11 20 1/6 22 13 8 11 20 1/8 22 13 8 11 21 1/10 22 13 9 11 21 1/12 22 13 8 11 21 1/14 22 13 8 11 21 1/16 22 13 8 11 21 1/18 22 13 8 11 21 Tabella 4.9: Numero di iterazioni con ω σ µ = 1, toll= 10−10 e yΓ = 1. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 63 Cap.4 Risultati numerici ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ yΓ = 1 22 h=1/4 h=1/6 h=1/8 h=1/10 h=1/12 h=1/14 h=1/16 h=1/18 Numero di iterazioni 20 18 16 14 12 10 8 0.5 1 Parametro di rilassamento ϑ 1.5 Figura 4.8: ϑ ottimale e yΓ = 1 4.2.3.2 Robustezza rispetto alla posizione yΓ dell’interfaccia Γ H HH ϑ HH HH h H 0.50 0.75 1.00 1.25 1.50 1/4 22 13 8 11 20 1/6 22 13 8 11 20 1/8 22 13 8 11 21 1/10 22 13 8 11 21 1/12 22 13 8 11 21 1/14 22 13 8 11 21 1/16 22 13 8 11 21 1/18 22 13 8 11 21 Tabella 4.10: Numero di iterazioni con ω σ µ = 1, toll= 10−10 e yΓ = 1/2. ✧ 64 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 4.2 Risultati numerici ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ HH ϑ HH HH h HH 0.50 0.75 1.00 1.25 1.50 1/4 22 13 8 11 20 1/6 22 13 8 11 20 1/8 22 13 8 11 21 1/10 22 13 9 11 21 1/12 22 13 9 11 21 1/14 22 13 8 11 21 1/16 22 13 8 11 21 1/18 23 13 8 11 21 ✧ ✧ ✧ ✧ ✧ ✧ ✧ Tabella 4.11: Numero di iterazioni con ω σ µ = 1, toll= 10−10 e yΓ = 3/2. yΓ = 1/2 22 25 18 16 14 Numero di iterazioni h=1/4 h=1/6 h=1/8 h=1/10 h=1/12 h=1/14 h=1/16 h=1/18 20 Numero di iterazioni yΓ = 3/2 12 h=1/4 h=1/6 h=1/8 h=1/10 h=1/12 h=1/14 h=1/16 h=1/18 20 15 10 10 8 0.5 1 Parametro di rilassamento ϑ 5 0.5 1.5 1 Parametro di rilassamento ϑ 1.5 Figura 4.9: ϑ ottimale, yΓ = 1/2 e yΓ = 3/2 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 65 Cap.4 Risultati numerici ✧ ✧ ✧ 4.2.3.3 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Stime dell’errore per diversi valori di h Nelle figure 4.10-4.11-4.12 sono rappresentati in scala logaritmica i decadimenti degli errori ad ogni passo iterativo per differenti valori di h e della posizione dell’interfaccia (la componente complessa dell’errore è trascurabile). Errore con yΓ=1 5 10 h=1/4 h=1/6 h=1/8 h=1/10 h=1/12 h=1/14 h=1/16 0 Errore 10 −5 10 −10 10 −15 10 0 1 10 10 Numero di iterazioni Figura 4.10: Decadimento dell’errore globale e yΓ = 1 Errore con yΓ=1/2 5 10 h=1/4 h=1/6 h=1/8 h=1/10 h=1/12 h=1/14 h=1/16 0 Errore 10 −5 10 −10 10 −15 10 0 1 10 10 Numero di iterazioni Figura 4.11: Decadimento dell’errore globale e yΓ = 1/2 ✧ 66 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 4.2 Risultati numerici ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Errore con yΓ=3/2 5 10 h=1/4 h=1/6 h=1/8 h=1/10 h=1/12 h=1/14 h=1/16 0 10 Errore ✧ −5 10 −10 10 −15 10 0 1 10 10 Numero di iterazioni Figura 4.12: Decadimento dell’errore globale e yΓ = 3/2 4.2.3.4 Robustezza rispetto ai parametri ω , σ e µ @ k @ h @@ 10−1 1 10 102 1/4 10 8 5 4 1/6 11 8 5 4 1/8 12 8 5 4 1/10 13 9 5 4 1/12 14 8 5 3 1/14 14 8 5 3 1/16 14 8 5 3 1/18 14 8 5 3 Tabella 4.12: Numero di iterazioni con θ = 1, toll=10−10 e yΓ = 1. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 67 Cap.4 Risultati numerici ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ @ k @ h @@ 10−1 1 10 102 1/4 10 8 5 4 1/6 11 8 5 4 1/8 12 8 5 4 1/10 13 8 5 4 1/12 14 8 5 3 1/14 14 8 5 3 1/16 14 8 5 3 1/18 14 8 5 3 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Tabella 4.13: Numero di iterazioni con θ = 1, toll=10−10 e yΓ = 1/2 @ k @ h @@ 10−1 1 10 102 1/4 10 8 5 4 1/6 11 8 5 4 1/8 12 8 5 4 1/10 13 9 5 4 1/12 14 9 5 4 1/14 15 8 5 3 1/16 14 8 5 3 1/18 15 8 5 3 Tabella 4.14: Numero di iterazioni con θ = 1, toll=10−10 e yΓ = 3/2. ✧ 68 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § 4.3 Considerazioni conclusive ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Sezione 4.3 Considerazioni conclusive Possiamo pertanto concludere che l’algoritmo d’iterazione per sottodomini che abbiamo proposto per risolvere un problema modello in una geometria semplificata e con coefficienti costanti è efficiente. Ci siamo limitati a considerare il problema con dati Je,C e He,I uguali a zero e abbiamo verificato che partendo da un dato iniziale (reale o complesso) λ 0 6= 0 nell’interfaccia, l’algoritmo converge alla soluzione nulla in poche iterazioni. Questo equivale a studiare il decadimento dell’errore nella norma || · ||W ||ΞCk ||2H(rot;Ω ) + ||∇ξIk ||2L2(ΩI ) ≤ toll . C Si è cercato di testare la velocità di convergenza in funzione dalla dimensione h della griglia di calcolo e i risultati mostrano che non risente di tale parametro. Inoltre, in questa geometria particolare, il parametro di rilassamento ottimale risulta essere ϑ = 1 per le tre posizioni dell’interfaccia che sono state considerate. Si è poi voluto verificare l’efficienza per diversi problemi e si è visto che il metodo è efficiente in tutti i casi considerati ma il numero di iterazioni cresce al diminuire di k = ω σ µ. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 69 I Documentazione appendice illustriamo in maniera dettagliata gli aspetti implementativi del meItodon questa di iterazione per sottodomini limitandoci al caso di elementi finiti lineari. Inizialmente si costruiscono la griglia di calcolo e le relative strutture dei dati, si assemblano i contributi di ciascun elemento finito al sistema lineare e si predispongono i sistemi lineari da risolvere in ogni sottodominio, quindi si appronta il passaggio dei dati da un sottodominio all’altro ed infine si implementa il processo iterativo vero e proprio. Contenuto I.1 I.2 NC,h := elementi finiti lineari di Nédélec I.1.1 Costruzione di una base sul cubo di riferimento I.1.2 Generalizzazione della base ad un cubo K qualsiasi I.1.3 Costruzione della mesh I.1.4 Costruzione della matrice di stiffness A globale I.1.5 Costruzione della matrice di massa M globale I.1.6 Costruzione del vettore termine noto TN globale VI,h := elementi finiti lineari di Lagrange I.2.1 Costruzione di una base sul cubo di riferimento I.2.2 Generalizzazione della base ad un cubo K qualsiasi I.2.3 Costruzione della mesh I.2.4 Costruzione della matrice di stiffness A globale I.2.5 Costruzione del vettore termine noto TN globale 71 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Passaggio del dato nell’interfaccia Γ I.3 I.3.1 Passaggio del dato Neumann da ΩC a ΩI I.3.2 Passaggio del dato Dirichlet da ΩI a ΩC I.4 Implementazione della procedura iterativa Consideriamo come dominio computazionale il parallelepipedo Ω = (0, 1) × (0, 2) × (0, 1), che sarà decomposto nei due sottospazi ΩC = (0, 1) ×(0, yΓ) ×(0, 1) ed ΩI = (0, 1) × (yΓ , 2) × (0, 1) (vedi figura I.1). L’interfaccia è il quadrato Γ = {(x, yΓ , z) | x, z ∈ (0, 1) }. La mesh è uniforme e Figura I.1: Dominio computazionale e alcune ogni elemento della griglia è un posizioni dell’interfaccia Γ cubo di lato h. Indichiamo con nc il numero di cubetti in cui viene decomposto il dominio Ω lungo l’asse delle x, con pc il numero di cubetti in cui viene decomposto il dominio Ω lungo l’asse delle z e con mcN ed mcL il numero di cubetti in cui vengono decomposti rispettivamente i due sottodomini ΩC ed ΩI lungo l’asse delle y. Sezione I.1 NC,h := elementi finiti lineari di Nédélec Per k = 1 abbiamo l’elemento finito (C, P, A ) definito da: • P = {v = [v1 ; v2 ; v3 ] | v1 ∈ Q0,1,1 ; v2 ∈ Q1,0,1 ; v3 ∈ Q1,1,0 } cioè • i momenti sono ✧ 72 ✧ ✧ ✧ ✧ ✧ ✧ ✧ R a1 + b1 y + c1 z + d1 yz ; v= a + b x + c z + d xz 2 2 2 2 a3 + b3 x + c3 y + d3 xy ab v · t ✧ ✧ ds dove ab è uno spigolo di C. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.1 NC,h := elementi finiti lineari di Nédélec ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Abbiamo un grado di libertà per ogni spigolo. Nella tabella I.1 sono indicati il numero totale di gradi di libertà per diversi valori di h e posizioni dell’interfaccia quando il dominio computazionale è il parallelepipedo ΩC = (0, 1) × (0, yΓ) × (0, 1) (vedi figura I.2). H HH h−1 HH HH yΓ H 4 6 1 2 170 483 1 300 882 3 2 430 1281 2844 5335 8970 13965 20536 28899 8 10 12 14 16 18 1044 1925 3198 4935 7208 10089 1944 3630 6084 9450 13872 19494 0.2 0 1 0.8 x 0.4 0.6 0.2 0.2 z 0.4 0.6 0.8 CONDUTTORE 1 0.4 y 0.6 0.8 1 Tabella I.1: Numero di gradi di libertà Figura I.2: ΩC ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 73 Cap.I Documentazione ✧ ✧ ✧ I.1. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Costruzione di una base sul cubo di riferimento Nella pratica le funzioni di base ϕi si ottengono trasformando le funzioni di base ϕbi costruite una volta per tutte su un dominio di riferimento. Questo modo di procedere (definire la base su un elemento di riferimento e poi trasformare le funzioni di base su uno specifico elemento) è di fondamentale importanza quando si considerano problemi in più dimensioni come nel nostro caso. Il cubo di riferimento è C := {x ∈ R3 | 0 ≤ xi ≤ 1; i = 1, 2, 3}. Numeriamo i suoi spigoli in ordine lessicografico indicando con 0, 1 o 2 lo spigolo diretto come l’asse delle x, delle y o delle z rispettivamente, seguito dal vertice di partenza (vedi tabella I.1.1 e figura I.1.1). SPIGOLO COORDINATE 1 (0;0,0,0) 2 (0;0,1,0) 3 (0;0,0,1) 4 (0;0,1,1) 5 (1;0,0,0) 6 (1;0,0,1) 7 (1;1,0,0) 8 (1;1,0,1) 9 (2;0,0,0) 10 (2;1,0,0) 11 (2;0,1,0) 12 (2;1,1,0) Figura I.3: Coordinate locali in ΩC e cubo di riferimento C b i }12 Indichiamo con {ϕ i=1 le funzioni base su questo cubetto di riferimento. Tali funzioni b i sono tali che: ϕ bi ∈ P , • ϕ ( 1 sullo spigolo i-esimo di C , bi = • ϕ 0 sugli altri 11 spigoli di C . ✧ 74 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.1 NC,h := elementi finiti lineari di Nédélec ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ y(1 − z) 0 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✑ Teorema I.1 b i sono: Le 12 funzioni base ϕ b 1 := ϕ b 3 := ϕ (1 − y)(1 − z) 0 0 (1 − y)z 0 0 , , ϕ b := 2 yz , b 4 := ϕ 0 0 0 b 5 := (1 − x)(1 − z) b 6 := ϕ , ϕ 0 0 , b b 7 := ϕ ϕ := x(1 − z) 8 0 0 b 9 := ϕ 0 (1 − x)(1 − y) 0 , b 11 := ϕ 0 (1 − x)y 0 , 0 0 (1 − x)z , 0 0 xz , 0 , ϕ b := 10 0 x(1 − y) 0 b 12 := 0 ϕ . xy , b i ∈ P. Non resta che verificare che Dimostrazione. È evidente che ϕ bi = ϕ ( 1 sullo spigolo i-esimo di C, 0 sugli altri 11 spigoli di C. b 1 (le altre sono analoghe): Verifichiamolo per la funzione ϕ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 75 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ • Spigolo 1 Z 1 0 = ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 1 [(1 − y)(1 − z), 0, 0] · 0 ds = 0 Z 1 0 (1 − y)(1 − z)ds = (lungo lo spigolo 1: y=z=0) = Z 1 1 ds = 1 0 • Spigoli 2, 3, 4 Z 1 0 = 1 [(1 − y)(1 − z), 0, 0] · 0 ds = 0 Z 1 0 (1 − y)(1 − z)ds = (lungo lo spigolo 2: y=1 e z=0) (lungo lo spigolo 3: y=0 e z=1) (lungo lo spigolo 4: y=z=1) = Z 1 0 ds = 0 0 • Spigoli 5, 6, 7, 8 Z 1 0 = 0 0 [(1 − y)(1 − z), 0, 0] · 1 ds = 0 Z 1 0 ds = 0 0 • Spigoli 9, 10, 11,12 Z 1 0 = [(1 − y)(1 − z), 0, 0] · 0 ds = 1 Z 1 0 ds = 0 0 ✧ 76 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.1 NC,h := elementi finiti lineari di Nédélec ✧ ✧ ✧ I.1. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Generalizzazione della base ad un cubo K qualsiasi Indichiamo con x un punto di K e con b x un punto di C (cubo di riferimento). L’affinità che manda C in K è un’omotetia di entità h seguita da una traslazione di entità b x = hb x+b . Allora Effettivamente Z a I.1. 1 b (b x) = ϕ i (x) = ϕ h i ϕ i (x) · t = h Z ab 1 1 b (x − b) . ϕ h i h ϕ i (hb x + b) · t = Z Costruzione della mesh ab (I.1) b i (b ϕ x) · t . Consideriamo una mesh strutturata costituita da un parallelepipedo avente lunghezza nc cubetti, larghezza mc cubetti e altezza pc cubetti. Numeriamo i cubetti in ordine lessicografico e analogamente numeriamo globalmente gli spigoli. Questa struttura è riassunta nella matrice Z ∈ Mat(R; numeroCubi × 12) dove alla riga i-esima sono contenuti gli spigoli del cubo i-esimo. La function seguente costruisce la matrice Z: File I.1: meshN function [ Z]=meshN ( nc , mc , pc , ns , ms , ps ) 1 2 % I l v e t t o r e v e ’ l a prima r i g a d e l l a m a t r i c e Z 3 v=zeros ( 1 , 1 2 ) ; % 4 v (1)=1; % 5 v (2)= v (1)+ nc ; % v (3)= v (2)+ nc ∗mc ; % 7 v (4)= v (3)+ nc ; % 8 v (5)= ns +1; % 9 v (6)= v (5)+( nc +1)∗mc ; % 6 10 v (7)= v ( 5 ) + 1 ; % 11 v (8)= v ( 6 ) + 1 ; % 12 v (9)= ns+ms+1; % 13 v (10)= v ( 9 ) + 1 ; % ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 77 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 14 v (11)= v (10)+ nc ; % 15 v (12)= v ( 1 1 ) + 1 ; % 16 % La m a t r i c e A c o n t i e n e l e c o l o n n e 1−4 d i Z 17 AV=[v ( 1 ) , v ( 2 ) , v ( 3 ) , v ( 4 ) ] ; % 18 Aa=AV; % ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ for i =1:( nc ∗mc−1) 19 Aa=[Aa ;AV + i ] ; 20 21 end % 22 A=Aa ; % 23 i f pc>1 for i =1:( pc −1) 24 A=[A; Aa + ( nc ∗mc+nc )∗ i ] ; 25 end 26 27 end 28 % La m a t r i c e B c o n t i e n e l e c o l o n n e 5−8 d i Z 29 % La m a t r i c e C c o n t i e n e l e c o l o n n e 9−12 d i Z 30 BV=[v ( 5 ) , v ( 6 ) , v ( 7 ) , v ( 8 ) ] ; % 31 CaV=[v ( 9 ) , v ( 1 0 ) , v ( 1 1 ) , v ( 1 2 ) ] ; % 32 Ba=BV; 33 Da=CaV ; for i =1:( nc −1) 34 35 Ba=[Ba ;BV+i ] ; 36 Da=[Da ; CaV+i ] ; 37 end 38 B=Ba ; i f mc∗ pc>1 39 for i =1:( pc ∗mc−1) 40 B=[B ; Ba + ( nc +1)∗ i ] ; 41 end 42 43 end 44 Ca=Da ; i f mc∗ pc>1 45 for i =1:(mc−1) 46 Ca=[Ca ; Da + ( nc +1)∗ i ] ; 47 end 48 ✧ 78 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.1 NC,h := elementi finiti lineari di Nédélec ✧ ✧ ✧ 49 end 50 C=Ca ; ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ i f pc>1 51 for i =1:( pc −1) 52 C=[C ; Ca+((( nc +1)∗mc+nc +1)∗ i ) ] ; 53 end 54 55 end 56 % As s em b laggio 57 Z=[A, B,C ] ; È utile inoltre avere una matrice coor contenente il tipo e le coordinate del vertice iniziale di ogni spigolo. La matrice coor ∈ Mat(R; numeroSpigoli × 5) è tale che alla riga i-esima si trova il tipo dello spigolo i-esimo seguito dalle coordinate del punto iniziale come in tabella I.1.1. La function seguente costruisce la matrice coor: File I.2: coordinateN function [ c o o r ]= c o o r d i n a t e N ( h , nc , mc , pc , ns , ms , ps ) 58 59 % Colonna T : 60 % 0 = s p i g o l o lu n go x 61 % 1 = s p i g o l o lu n go y 62 % 2 = s p i g o l o lu n go z 63 T=[ zeros ( ns , 1 ) ; on es (ms , 1 ) ; 2 ∗ on es ( ps , 1 ) ] ; 64 % Colonna X: c o o r d i n a t a x d e l l ’ o r i g i n e d e l l o s p i g o l o 65 X1 = [ ] ; % 66 X2 = [ ] ; % 67 for i = 1 : ( (mc+1)∗( pc +1)) X1=[X1 ; [ 0 : ( nc − 1 ) ] ’ ∗ h ] ; 68 69 end 70 for i =1:(mc∗( pc+1)+(mc+1)∗ pc ) X2=[X2 ; [ 0 : nc ] ’ ∗ h ] ; 71 72 end X=[X1 ; X2 ] ; 73 % Colonna Y: c o o r d i n a t a y d e l l ’ o r i g i n e d e l l o s p i g o l o 74 Y1 = [ ] ; 75 Y1p = [ ] ; % 76 Y2 = [ ] ; 77 Y2p = [ ] ; % ✧ ✧ ✧ ✧ % % ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 79 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ 78 Y3 = [ ] ; 79 Y3p = [ ] ; % 80 for i =0:mc 81 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ % Y1p=[Y1p ; on es ( nc , 1 ) ∗ i ∗h ] ; 82 end 83 for i =1: pc+1 Y1=[Y1 ; Y1p ] ; 84 85 end 86 for i =0:mc−1 87 Y2p=[Y2p ; on es ( nc +1 ,1)∗ i ∗h ] ; 88 end 89 for i =1:( pc+1) Y2=[Y2 ; Y2p ] ; 90 91 end 92 for i =0:mc 93 Y3p=[Y3p ; on es ( nc +1 ,1)∗ i ∗h ] ; 94 end 95 for i =1: pc Y3=[Y3 ; Y3p ] ; 96 97 end 98 Y=[Y1 ; Y2 ; Y3 ] ; 99 % Colonna Z : c o o r d i n a t a z d e l l ’ o r i g i n e d e l l o s p i g o l o 100 Z1 = [ ] ; 101 Z2 = [ ] ; 102 Z3 = [ ] ; 103 for i =0: pc 104 Z1=[Z1 ; on es ( nc ∗(mc+ 1) ,1)∗ i ∗h ] ; 105 end 106 for i =0: pc 107 Z2=[Z2 ; on es ( ( nc +1)∗mc , 1 ) ∗ i ∗h ] ; 108 end 109 for i =0: pc−1 110 Z3=[Z3 ; on es ( ( nc +1)∗(mc+ 1) ,1)∗ i ∗h ] ; 111 end 112 Z=[Z1 ; Z2 ; Z3 ] ; ✧ 80 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.1 NC,h := elementi finiti lineari di Nédélec ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ c o o r =[T, X, Y, Z ] ; 113 I.1. Costruzione della matrice di stiffness A globale La matrice di stiffness globale A è definita da: A = (aZi j )1≤i, j≤N , ai j = Ω rot ϕ i · rot ϕ j = Z ∑ K∈Th K rot ϕ i · rot ϕ j . Pertanto la matrice di stiffness A globale si costruisce sommando i contributi di ogni cubetto K della triangolazione. Tali contributi sono raccolti nelle matrici di stiffness AK elementari ∈ Mat(R; 12) cosı̀ definite: aK ij = Z K rot ϕ i · rot ϕ j ∀ i, j = 1, ..., 12 1 b (F −1 (x)), è sufficiente calcolare AC (cioè la matrice elementare di stiffPoiché ϕ i (x) = ϕ h i ness sul cubetto di riferimento) e poi passare alla generica AK . Gli elementi aCij di AC sono definiti da: aCij = Z C bj b i · rot ϕ rot ϕ ∀ i, j = 1, ..., 12 Sviluppando i conti si ottengono i seguenti vettori: 0 , rot ϕ b 1 := b rot ϕ := −(1 − y) 2 (1 − z) b 5 := rot ϕ (1 − x) 0 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ , rot ϕ b := 6 −(1 − z) x , b 7 := rot ϕ 0 (1 − z) ✧ −y −(1 − z) 0 b 4 := y rot ϕ , −z 0 b 3 := (1 − y) rot ϕ , z 0 −(1 − x) 0 −z −x b 8 := rot ϕ 0 , z ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ , , ✧ ✧ ✧ ✧ ✧ ✧ ✧ 81 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ −(1 − x) ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ −x , rot ϕ −(1 − y) , b b 9 := rot ϕ := (1 − y) 10 0 0 (1 − x) x , rot ϕ −y . b 11 := b rot ϕ := y 12 0 0 e la matrice di stiffness 4 −1 −1 −2 −2 −1 1 C A = 6 2 1 −2 2 −1 elementare sull’elemento C di riferimento è: −1 −1 −2 −2 −1 2 −2 1 4 −2 −1 2 −1 1 −2 −2 2 −2 1 2 −1 −2 1 −1 4 −2 −1 2 1 1 4 −1 −1 −2 −2 −1 2 −1 1 −2 1 −2 2 −2 2 2 −1 −2 1 2 2 1 −2 4 −1 −1 −2 2 −1 1 −2 −1 −1 1 2 −2 2 2 −2 −2 −1 −1 −1 1 −2 4 1 −1 −1 −2 −1 2 −1 1 −2 −1 −1 2 4 −1 −1 −2 −1 −1 1 −2 1 2 −1 4 1 1 4 −1 −1 2 −1 4 −2 1 −1 −1 −2 1 −1 4 2 −2 −2 −1 −1 1 2 −1 −2 1 −1 2 −2 −2 −1 −1 4 1 1 b (b b (b Poiché ϕ (x) = ϕ x) risulta rot ϕ (x) = 2 rot ϕ x). Pertanto h h Z Z 1 1 3 b (b b (b ϕ ϕ rot ϕ i (x) · rot ϕ j (x) = h x) · rot x) = rot h i h j K C Z Z 1 1 1 b i (b b i · rot ϕ b j (b bj . rot (ϕ rot ϕ x)) · 2 rot ϕ x) = = h3 2 h h C Ch (I.2) In conclusione la matrice di stiffness elementare sul generico cubetto K è: AK = 1 C A h ➪ Osservazione 1. Poiché la nostra mesh è fortemente strutturata, la matrice di stiffness elementare AK è la stessa per ogni cubetto K. ✧ 82 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.1 NC,h := elementi finiti lineari di Nédélec ✧ ✧ ✧ I.1. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Costruzione della matrice di massa M globale La matrice di massa globale M è definita da: M = (m ) Z i j 1≤i, j≤N mi j = Ω ϕi · ϕ j = ∑ K∈Th Z K ϕi · ϕ j Pertanto la matrice di massa M globale si costruisce sommando i contributi di ogni cubetto K della triangolazione. Tali contributi sono raccolti nelle matrici di massa M K elementari ∈ Mat(R; 12) cosı̀ definite: mK ij = Z K ϕi · ϕ j ∀ i, j = 1, ..., 12 b i (F −1 (x)), è sufficiente calcolare MC (cioè la matrice elementare di massa Poiché ϕ i (x) = h1 ϕ sul cubetto di riferimento) e poi passare alla generica M K . Gli elementi mCij di MC sono definiti da: mCij = Z C bj bi · ϕ ϕ ∀ i, j = 1, ..., 12 e la matrice di massa elementare sull’elemento C 4 2 2 1 0 0 2 4 1 2 0 0 2 1 4 2 0 0 1 2 2 4 0 0 0 0 0 0 4 2 0 0 0 0 2 4 1 MC = 36 0 0 0 0 2 1 0 0 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 di riferimento è: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 0 0 1 2 0 0 0 0 4 2 0 0 0 0 2 4 0 0 0 0 0 0 4 2 2 1 0 0 2 4 1 2 0 0 2 1 4 2 0 0 0 0 0 0 0 0 1 2 2 4 1 b (b Poiché ϕ (x) = ϕ x) h Z K ϕi · ϕ j = h Z C bj . bi · ϕ ϕ In conclusione la matrice di massa elementare sul generico cubetto K è: M K = h MC . ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 83 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ➪ Osservazione 2. Anche in questo caso, poiché la nostra mesh è fortemente strutturata, la matrice di massa elementare M K è la stessa per ogni cubetto K. La seguente function genera le matrici di stiffness e massa globali assemblando le matrici di stiffness e massa elementari: File I.3: NStiffMassa 114 function [AN,MN]= N S t i f f M a s s a ( Z , h , numSpigoli , numCubi) 115 A s t i f=sparse ( numSpigoli , n u m S p igoli ) ; 116 Mmassa=sparse ( numSpigoli , n u m S p igoli ) ; 117 % M a t r i c e d i s t i f f n e s s e l e m e n t a r e con c u b i u n i t a r i : A s t i f E l e m = (1/6)∗[4 , −1 , −1 , −2 , −2 , −1 , 2 , 1 , −2 , 2 , −1 , 1 ; . . . 118 −1, 4 , −2 , −1 , 2 , 1 , −2 , −1 , −1 , 1 , −2 , 2 ; . . . 119 −1,−2, 4 , −1 , −1 , −2 , 1 , 2 , 2 , −2 , 1 , − 1 ; . . . 120 −2,−1,−1, 4 , 1 , 2 , −1 , −2 , 1 , −1 , 2 , − 2 ; . . . 121 −2, 2 , −1 , 1 , 4 , −1 , −1 , −2 , −2 , −1 , 2 , 1 ; . . . 122 −1, 1 , −2 , 2 , −1 , 4 , −2 , −1 , 2 , 1 , − 2 , − 1 ; . . . 123 2 , −2 , 1 , −1 , −1 , −2 , 4 , −1 , −1 , −2 , 1 , 2 ; . . . 124 1 , −1 , 2 , −2 , −2 , −1 , −1 , 4 , 1 , 2 , − 1 , − 2 ; . . . 125 −2,−1, 2 , 1 , −2 , 2 , −1 , 1 , 4 , − 1 , − 1 , − 2;... 126 2 , 1 , −2 , −1 , −1 , 1 , −2 , 2 , −1 , 4 , − 2 , − 1 ; . . . 127 −1,−2, 1 , 2 , 2 , −2 , 1 , −1 , −1 , −2 , 4 , − 1 ; . . . 128 1 , 2 , −1 , −2 , 1 , −1 , 2 , −2 , −2 , −1 , −1 , 4 ] ; 129 130 % M a t r i c e d i massa e l e m e n t a r e con c u b i u n i t a r i : MmassaElem = ( 1 / 3 6 ) ∗ [ 4 , 2 , 2 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ; . . . 131 132 2 ,4 ,1 ,2 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0;... 133 2 ,1 ,4 ,2 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0;... 134 1 ,2 ,2 ,4 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0;... 135 0 ,0 ,0 ,0 ,4 ,2 ,2 ,1 ,0 ,0 ,0 ,0;... 136 0 ,0 ,0 ,0 ,2 ,4 ,1 ,2 ,0 ,0 ,0 ,0;... 137 0 ,0 ,0 ,0 ,2 ,1 ,4 ,2 ,0 ,0 ,0 ,0;... 138 0 ,0 ,0 ,0 ,1 ,2 ,2 ,4 ,0 ,0 ,0 ,0;... 139 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,4 ,2 ,2 ,1;... 140 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,2 ,4 ,1 ,2;... 141 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,2 ,1 ,4 ,2;... 142 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,1 ,2 ,2 ,4]; ✧ 84 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.1 NC,h := elementi finiti lineari di Nédélec ✧ 143 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ % As s em b laggio d e l l e componenti g l o b a l i for k=1:numCubi 144 for j =1:12 145 A s t i f (Z ( k , : ) , Z ( k , j ))= A s t i f ( Z( k , : ) , Z ( k , j ) ) + . . . 146 A s t i f E l e m ( : , j )/ h ; 147 Mmassa ( Z( k , : ) , Z ( k , j ))=Mmassa ( Z( k , : ) , Z ( k , j ) ) + . . . 148 MmassaElem ( : , j )∗ h ; 149 end 150 151 end 152 AN=A s t i f ; 153 MN=Mmassa ; I.1. Costruzione del vettore termine noto TN globale Anche se nel caso di cui ci siamo occupati l’equazione è omogenea, per verificare la corretta implementazione del metodo sono state effettuate delle prove fissando un termine noto f in modo da poter approssimare numericamente la soluzione di un problema di cui si conosce la soluzione esplicita. Il calcolo del vettore corrispondente è fatto nel seguente modo. Il vettore termine noto globale TN è definito da: TN = (T Ni )1≤i≤N Z T Ni = F(ϕ i ) = Ω N = numeroSpigoli Z f · ϕi = ∑ K∈Th K f · ϕi Pertanto anche il vettore termine noto TN globale si costruisce sommando i contributi di ogni cubetto K della triangolazione. Tali contributi sono raccolti nei vettori termine noto TNK elementari ∈ Mat(R; 12 × 1) cosı̀ definiti: T NiK ➪ Osservazione 3. = Z K f · ϕi ∀ i = 1, ..., 12 Per il calcolo del termine noto conviene ricondursi al cubetto di riferimento C con un cambio di variabili: T NiK ✧ ✧ ✧ ✧ = ✧ Z K ✧ f(x) · ϕ i (x)dx = h ✧ ✧ ✧ ✧ ✧ 2 ✧ Z C ✧ x + b)db x=h f(Bb x + b) · ϕ i (Bb ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Z ✧ C b i (b x)db x f(Bb x + b) · ϕ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 85 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Poiché in generale non sono integrali immediati, la costruzione di TNK passa attraverso un’approssimazione con formule di quadratura. Le function seguenti si occupano di calcolare TNK al variare di K utilizzando come formula di quadratura la formula di Gauss: File I.4: TNned 154 % h = l a t o cubo 155 % f 1 , f 2 , f 3 = s t r i n g h e c o n t e n e n t i i l t e r m i n e noto function [ TNned]=TNned( h , f 1 , f 2 , f 3 , coor , Z , numSpigoli , numCubi) 156 157 TN=zeros ( numSpigoli , 1 ) ; % v e t t o r e t e r m i n e noto g l o b a l e 158 % As s em b laggio for k=1:numCubi 159 160 % b = v e t t o r e c o l o n n a con l a c o o r d i n a t a d e l 161 % v e r t i c e d e l c u b e t t o k−esimo b=[ c o o r ( Z( k , 1 ) , 2 ) ; c o o r ( Z( k , 1 ) , 3 ) ; c o o r ( Z ( k , 1 ) , 4 ) ] ; 162 163 % V e t t o r e t e r m i n e noto e l e m e n t a r e : 164 % v a r i a da c u b e t t o a c u b e t t o 165 TNelem=tnelemN ( f 1 , f 2 , f 3 , b , h ) ; 166 TN( Z( k , : ) ) =TN( Z( k , : ) ) + TNelem ( : ) ; 167 end TNned=TN; 169 % f 1 , f 2 , f 3 = componenti d i f i n f or m ato s t r i n g a 170 % b = v e t t o r e c o l o n n a con l e c o o r d i n a t e d e l v e r t i c e 171 % function [ TNelem]= tnelemN ( f 1 , f 2 , f 3 , b , h ) 172 173 d i un c u b e t t o % S t r i n g h e con i t e r m i n i non n u l l i d e l l e p h i i d i b as e 174 p h i1=’(1-y)*(1 -z)’ ; 175 p h i2=’y*(1 -z)’ ; 176 p h i3=’(1-y)*z’ ; 177 p h i4=’y*z’ ; 178 p h i5=’(1-x)*(1 -z)’ ; 179 p h i6=’(1-x)*z’ ; 180 p h i7=’x*(1 -z)’ ; 181 p h i8=’x*z’ ; 182 p h i9=’(1-x)*(1 -y)’ ; 183 p h i10=’x*(1 -y)’ ; ✧ 86 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.1 NC,h := elementi finiti lineari di Nédélec ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 184 p h i11=’(1-x)*y’ ; 185 p h i12=’x*y’ ; 186 TNelem=zeros ( 1 2 , 1 ) ; 187 TNelem(1)= i n t e g r a l e N ( f 1 , phi1 , b , h ) ; 188 TNelem(2)= i n t e g r a l e N ( f 1 , phi2 , b , h ) ; 189 TNelem(3)= i n t e g r a l e N ( f 1 , phi3 , b , h ) ; 190 TNelem(4)= i n t e g r a l e N ( f 1 , phi4 , b , h ) ; 191 TNelem(5)= i n t e g r a l e N ( f 2 , phi5 , b , h ) ; 192 TNelem(6)= i n t e g r a l e N ( f 2 , phi6 , b , h ) ; 193 TNelem(7)= i n t e g r a l e N ( f 2 , phi7 , b , h ) ; 194 TNelem(8)= i n t e g r a l e N ( f 2 , phi8 , b , h ) ; 195 TNelem(9)= i n t e g r a l e N ( f 3 , phi9 , b , h ) ; 196 TNelem(10)= i n t e g r a l e N ( f 3 , phi10 , b , h ) ; 197 TNelem(11)= i n t e g r a l e N ( f 3 , phi11 , b , h ) ; 198 TNelem(12)= i n t e g r a l e N ( f 3 , phi12 , b , h ) ; 200 function [ i n t e g r a l e ]= i n t e g r a l e N ( f f , pph , b , h ) ✧ ✧ ✧ 201 % L ’ i n t e g r a l e su C d i r i f e r i m e n t o d i f f ( hx+b ) con 202 % pph ( x ) s i o t t i e n e sommando 8 c o n t r i b u t i o t t e n u t i 203 % valu tan d o i l p r o d o t t o n e g l i 8 n od i 204 % [ e t a ( i ) , e t a ( j ) , e t a ( l ) ] con i , j , l =1 ,2 205 f=i n l i n e ( f f , ’x’ , ’y’ , ’z’ ) ; 206 p h i=i n l i n e ( pph , ’x’ , ’y’ , ’z’ ) ; ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ e t a =[.5 − sqrt ( 3 ) / 6 , . 5 + sqrt ( 3 ) / 6 ] ; 207 i n t e =0; 208 209 % I n od i p i n c u i v a l u t a r e p h i s i o t t e n g o n o con t u t t e l e 210 % p o s s i b i l i p e r m u t a z i o n i d i e t a ( 1 ) ed e t a ( 2 ) 211 % I n od i FP i n c u i v a l u t a r e f s i o t t e n g o n o 212 % con l ’ a f f i n i t à hp+b for i =1:2 213 for j =1:2 214 215 for l =1:2 216 p = [ eta ( i ) ; eta ( j ) ; eta ( l ) ] ; 217 FP = ( h∗p)+b ; i n t e = i n t e +( f (FP ( 1 ) ,FP ( 2 ) ,FP ( 3 ) ) . . . 218 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 87 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ∗ phi (p ( 1 ) , p ( 2 ) , p ( 3 ) ) ) ; 219 end 220 ✧ end 221 222 end 223 % La sommatoria va d i v i s a p er 8 e 224 % m o l t i p l i c a t a p er hˆ2 i n t e g r a l e=hˆ2∗ i n t e / 8 ; 225 Quando, come nel nostro caso, ci sono delle condizioni Dirichlet non omogenee sul bordo (λ 6= 0), queste si impongono nel seguente modo. Sia M è la matrice del problema, λ il vettore contenente il dato Dirichlet e gli indici I e Γ indichino rispettivamente nodi interni o di interfaccia. Allora l’equazione (4.4) implica a livello algebrico MII xI + MIΓλ = f , cioè MII xI = f − MIΓλ . ✧ 88 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.2 VI,h := elementi finiti lineari di Lagrange ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Sezione I.2 VI,h := elementi finiti lineari di Lagrange Per l = 1 abbiamo l’elemento finito (C, P, Σ) dove i gradi di libertà Σ = {a j }8j=1 sono gli otto vertici del cubo di riferimento C e P = Q1 cioè l’insieme dei polinomi del tipo v = a0 + a1 x + a2 y + a3 z + a4 xy + a5 xz + a6 yz + a7 xyz Abbiamo un grado di libertà per ciascuno degli otto vertici. Nella tabella I.2 sono indicati il numero totale di gradi di libertà per diversi valori di h e posizioni dell’interfaccia quando il dominio computazionale è il parallelepipedo ΩI = (0, 1) × (yΓ, 2) × (0, 1) (vedi figura I.4). H HH h−1 HH HH yΓ H 4 6 8 10 12 14 16 18 1 2 175 490 1053 1936 3211 4950 7225 10108 1 125 343 729 1331 2197 3375 4913 6859 3 2 75 405 726 3610 196 1183 1800 2601 Tabella I.2: Numero di gradi di libertà I.2. Costruzione di una base sul cubo di riferimento Il cubo di riferimento è C := {x ∈ R3 | 0 ≤ xi ≤ 1; i = 1, 2, 3}. Numeriamo localmente i suoi vertici in ordine lessicografico (vedi tabella I.2.1 e figura I.2.1). Indichiamo con {ϕbi }8i=1 le funzioni base su questo cubetto di riferimento. Tali funzioni ϕbi sono tali che: ✧ • ϕbi ∈ P ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 89 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Figura I.4: ΩI VERTICE COORDINATE 1 (0,0,0) 2 (1,0,0) 3 (0,1,0) 4 (1,1,0) 5 (0,0,1) 6 (1,0,1) 7 (0,1,1) 8 (1,1,1) Figura I.5: Coordinate locali in ΩI e cubo di riferimento C • ϕbi = ( 1 nel vertice i-esimo di C 0 negli altri 7 vertici di C Le 8 funzioni base ϕbi sono: c1 := (1 − x)(1 − y)(1 − z), ϕ c2 := x(1 − y)(1 − z), ϕ c4 := xy(1 − z), c3 := (1 − x)y(1 − z), ϕ ϕ c5 := (1 − x)(1 − y)z, c6 := x(1 − y)z, ϕ ϕ c7 := (1 − x)yz, ϕ I.2. ✧ 90 ✧ c8 := xyz. ϕ Generalizzazione della base ad un cubo K qualsiasi ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.2 VI,h := elementi finiti lineari di Lagrange ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Indichiamo con x un punto di K e con b x un punto di C (cubo di riferimento). L’affinità che manda C in K è un’omotetia di entità h seguita da una traslazione di entità b: x = hb x+b Allora 1 (x − b) ϕ (x) = ϕb h I.2. (I.3) Costruzione della mesh Consideriamo una mesh strutturata costituita da un parallelepipedo avente lunghezza nc cubetti, larghezza mc cubetti e altezza pc cubetti. Numeriamo i cubetti in ordine lessicografico e analogamente numeriamo globalmente gli spigoli. Questa struttura è riassunta nella matrice ZL ∈ Mat(R; numeroCubi × 8) dove alla riga i-esima sono contenuti i vertici del cubo i-esimo. La function seguente costruisce la matrice ZL: File I.5: meshL 226 function [ ZL]=meshL ( nc , mc , pc ) 227 v 228 v (1)= 1 ; 229 v (2)= v ( 1 ) + 1 ; 230 v (3)= v(2)+ nc ; 231 v (4)= v ( 3 ) + 1 ; 232 v (5)= v (1)+( nc +1)∗(mc+1); 233 v (6)= v ( 5 ) + 1 ; 234 v (7)= v(6)+ nc ; 235 v (8)= v ( 7 ) + 1 ; 236 Za = [v]; 237 Zb = Za ; = zeros ( 1 , 8 ) ; for i =1:( nc −1) 238 Zb=[Zb ; Za+i ] ; 239 240 end 241 Zc=Zb ; 242 for i =1:(mc−1) Zc=[Zc ; Zb+(nc +1)∗ i ] ; 243 end 244 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 91 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ZL=Zc ; 245 for i =1:( pc −1) 246 ZL=[ZL ; Zc+(nc +1)∗(mc+1)∗ i ] ; 247 end 248 È utile inoltre avere una matrice coorL contenente le coordinate di ogni vertice. La matrice coorL ∈ Mat(R; numeroVertici × 4) è tale che alla riga i-esima si trova il numero del vertice i-esimo seguito dalle coordinate come in tabella I.2.1. La function seguente costruisce la matrice coorL: File I.6: coorL function [ coorL ]= c o o r d i n a t e L ( h , nc , mc , pc , yg ) 249 250 251 % Colonna X: c o o r d i n a t a x d e l v e r t i c e a l l a r i g a i −esima X= [ ] ; for i =1:(mc+1)∗( pc+1) 252 253 end 254 255 X=[X ; [ 0 : nc ] ’ ∗ h ] ; % Colonna Y: c o o r d i n a t a y d e l v e r t i c e a l l a r i g a i −esima 256 v=on es ( nc + 1 , 1 ) ; 257 Y1 = [ ] ; 258 for i =0:mc 259 Y1=[Y1 ; v∗ i ∗h ] ; 260 end 261 Y=Y1 ; for i =1: pc 262 Y=[Y; Y1 ] ; 263 end 264 265 % Colonna Z : c o o r d i n a t a z d e l v e r t i c e a l l a r i g a i −esima 266 v=on es ( ( nc +1)∗(mc+ 1 ) , 1 ) ; 267 Z=[]; 268 for i =0: pc 269 Z=[Z ; v∗ i ∗h ] ; 270 end 271 % Le Y sono t r a s l a t e d i 1 p e r c hé mi t r o v o s u l cubo t r a s l a t o coorL =[X,Y+yg , Z ] ; 272 ✧ 92 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.2 VI,h := elementi finiti lineari di Lagrange ✧ ✧ ✧ I.2. ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Costruzione della matrice di stiffness A globale La matrice di stiffness globale A è definita da: A = (aZi j )1≤i, j≤N ai j = Ω ∇ϕi · ∇ϕ j = ∑ Z K∈Th K ∇ϕi · ∇ϕ j Pertanto la matrice di stiffness A globale si costruisce sommando i contributi di ogni cubetto K della triangolazione. Tali contributi sono raccolti nelle matrici di stiffness AK elementari ∈ Mat(R; 8) cosı̀ definite: aK ij = Z K ∇ϕi · ∇ϕ j ∀ i, j = 1, ..., 8 x), è sufficiente calcolare AC (cioè la matrice elementare di stiffness sul Poiché ϕi (x) = ϕbi (b cubetto di riferimento) e poi passare alla generica AK . Gli elementi aCij di AC sono definiti da: aCij = Z C ∇ϕbi · ∇ϕb j ∀ i, j = 1, ..., 8 Sviluppando i conti si ottengono i seguenti vettori: −(1 − y)(1 − z) (1 − y)(1 − z) ∇ϕb1 := −(1 − x)(1 − z) , ∇ϕb2 := −x(1 − z) −(1 − x)(1 − y) −x(1 − y) −y(1 − z) ∇ϕb3 := (1 − x)(1 − z) , −(1 − x)y ∇ϕb5 := −(1 − y)z −(1 − x)z (1 − x)(1 − y) ✧ ✧ ✧ ✧ ✧ ✧ −yz ∇ϕb7 := (1 − x)z , (1 − x)y ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ , y(1 − z) ∇ϕb4 := x(1 − z) , −xy (1 − y)z , ∇ϕb6 := ✧ yz ∇ϕb8 := xz , xy −xz x(1 − y) ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ , ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 93 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ e la matrice di stiffness elementare 4 0 0 −1 1 AC = 12 0 −1 −1 −1 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ sull’elemento C di riferimento è: 0 −1 0 4 −1 −1 0 −1 0 −1 4 0 0 −1 −1 −1 4 −1 0 −1 −1 −1 4 0 −1 −1 −1 0 0 −1 −1 −1 0 0 −1 0 −1 −1 −1 0 −1 −1 −1 0 0 0 −1 4 −1 0 −1 4 0 0 0 4 1 Poiché ϕ (x) = ϕb(b x) risulta ∇ϕ (x) = ∇ϕb(b x). Pertanto h Z Z Z 1 1 3 x) · ∇ x) = h ∇ϕbi · ∇ϕb j ϕbi (b ϕb j (b ∇ ∇ϕi (x) · ∇ϕ j (x) = h h h C K C In conclusione la matrice di stiffness elementare sul generico cubetto K è: AK = h AC ➪ Osservazione 4. Poiché la nostra mesh è fortemente strutturata, la matrice di stiffness elementare AK è la stessa per ogni cubetto K. La seguente function genera la matrice si stiffness globale assemblando le matrici di stiffness elementari: File I.7: LStiff 273 function [ AL]= L S t i f f (ZL , h , numVertici , numCubi) 274 A=sparse ( numVertici , n u m Ver tici ) ; 275 % M a t r i c e d i s t i f f n e s s e l e m e n t a r e con c u b i u n i t a r i : AElem = ( 1 / 1 2 ) ∗ [ 4 , 276 0, 0, 277 0 , −1, 4 , −1, 0 , −1, −1, 0, 4 , −1, −1, −1, −1, 0 , −1, −1, 0 , −1, 278 279 0 , −1, −1, − 1 ; . . . 4, 0 , −1, −1, 0, 0 , −1, −1, −1, 280 281 −1, −1, 282 ✧ 94 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 0 , −1, ✧ ✧ 0 , −1, − 1 ; . . . ✧ ✧ 4, 0, 0, 4 , −1, 0 , −1, ✧ 0, ✧ ✧ ✧ −1;... 0;... 0, −1;... 0;... 4, ✧ 0;... ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.2 VI,h := elementi finiti lineari di Lagrange ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ −1, −1, −1, 283 284 ✧ ✧ ✧ ✧ ✧ 0 , −1, ✧ 0, ✧ ✧ 0, ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 4]; % As s em b laggio d e l l e componenti g l o b a l i 285 for k=1:numCubi 286 for j =1:8 A(ZL( k , : ) , ZL( k , j ))=A(ZL( k , : ) , ZL( k , j ))+AElem ( : , j )∗ h ; 287 end 288 289 end 290 AL=A; I.2. Costruzione del vettore termine noto TN globale Come nel caso degli elementi finiti di Nédélec, anche se l’equazione di cui ci siamo occupati è omogenea, per verificare la corretta implementazione del metodo sono state effettuate delle prove fissando un termine noto f in modo da poter approssimare numericamente la soluzione di un problema di cui si conosce la soluzione esplicita. Il calcolo del vettore corrispondente è fatto nel seguente modo. Il vettore termine noto globale TN è definito da: TN = (T Ni )1≤i≤N Z T Ni = F(ϕi ) = Ω N = numeroVertici Z f ϕi = ∑ K∈Th K f ϕi Pertanto anche il vettore termine noto TN globale si costruisce sommando i contributi di ogni cubetto K della triangolazione. Tali contributi sono raccolti nei vettori termine noto TNK elementari ∈ Mat(R; 12 × 1) cosı̀ definiti: Z T NiK = ➪ Osservazione 5. K f ϕi ∀ i = 1, ..., 8 Per il calcolo del termine noto conviene ricondursi al cubetto di riferimento C con un cambio di variabili: T NiK = Z = h f (x)ϕi (x)dx KZ 3 = h3 ZC C ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ = f (hb x + b)ϕi (hb x + b)db x = x)db x f (hb x + b)ϕbi (b ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 95 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Poiché in generale non sono integrali immediati, la costruzione di TNK passa attraverso un’approssimazione con formule di quadratura. Le function seguenti si occupano di calcolare TNK al variare di K utilizzando come formula di quadratura la formula di Gauss: File I.8: TNlag 291 % h = l a t o cubo 292 % f = s t r i n g a c o n t e n e n t e l ’ e s p r e s s i o n e d e l t e r m i n e noto function [ TNlag]= TNlag ( h , f , ZL , coorL , numCubi , n u m Ver tici ) 293 294 TN=zeros ( numVertici , 1 ) ; 295 % As s em b laggio for k=1:numCubi 296 297 % b = v e t t o r e c o l o n n a con l a c o o r d i n a t a d e l 298 % primo v e r t i c e d e l c u b e t t o k b = [ coorL (ZL( k , 1 ) , 1 ) ; coorL (ZL( k , 1 ) , 2 ) ; coorL (ZL( k , 1 ) , 3 ) ] ; 299 300 % V e t t o r e t e r m i n e noto e l e m e n t a r e : v a r i a 301 % da c u b e t t o a c u b e t t o 302 TNelemL = tnelemL ( f , b , h ) ; 303 TN(ZL( k , : ) ) = TN(ZL( k , : ) ) + TNelemL ( : ) ; 304 end 306 % f = stringa 307 % b = v e t t o r e c o l o n n a con l e c o o r d i n a t e d e l 308 % primo v e r t i c e d i un c u b e t t o 309 function [ TNelem ] = tnelemL ( f , b , h ) 310 p h i = zeros ( 8 , 1 ) ; 311 % Vettore di s t r i n g h e contenente i 312 % t e r m i n i non n u l l i d e l l e p h i i d i b as e 313 p h i1=’(1-x)*(1 -y)*(1 -z)’ ; 314 p h i2=’(1-x)*y*(1 -z)’ ; 315 p h i3=’(1-x)*(1 -y)*z’ ; 316 p h i4=’(1-x)*y*z’ ; 317 p h i5=’x*(1 -y )*(1 -z)’ ; 318 p h i6=’x*y*(1 -z)’ ; 319 p h i7=’x*(1 -y)*z’ ; 320 p h i8=’x*y*z’ ; ✧ 96 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.2 VI,h := elementi finiti lineari di Lagrange ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 321 TNelem=zeros ( 8 , 1 ) ; 322 % TNelem s i o t t i e n e i n t e g r a n d o f con 323 % phi1 , phi2 , phi3 , p h i4 . . . 324 TNelem(1)= i n t e g r a l e L ( f , phi1 , b , h ) ; 325 TNelem(2)= i n t e g r a l e L ( f , phi2 , b , h ) ; 326 TNelem(3)= i n t e g r a l e L ( f , phi3 , b , h ) ; 327 TNelem(4)= i n t e g r a l e L ( f , phi4 , b , h ) ; 328 TNelem(5)= i n t e g r a l e L ( f , phi5 , b , h ) ; 329 TNelem(6)= i n t e g r a l e L ( f , phi6 , b , h ) ; 330 TNelem(7)= i n t e g r a l e L ( f , phi7 , b , h ) ; 331 TNelem(8)= i n t e g r a l e L ( f , phi8 , b , h ) ; 333 function [ i n t e g r a l e ]= i n t e g r a l e L ( f f , pph , b , h ) ✧ ✧ ✧ ✧ ✧ 334 % L ’ i n t e g r a l e su C d i r i f e r i m e n t o d i f f ( hx+b ) 335 % con pph ( x ) s i o t t i e n e sommando 8 c o n t r i b u t i o t t e n u t i 336 % valu tan d o i l p r o d o t t o n e g l i 8 n od i 337 % [ e t a ( i ) , e t a ( j ) , e t a ( l ) ] con i , j , l =1 ,2 338 f=i n l i n e ( f f , ’x’ , ’y’ , ’z’ ) ; 339 p h i=i n l i n e ( pph , ’x’ , ’y’ , ’z’ ) ; ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ e t a =[.5 − sqrt ( 3 ) / 6 , . 5 + sqrt ( 3 ) / 6 ] ; 340 i n t e =0; 341 342 % I n od i p i n c u i v a l u t a r e p h i s i o t t e n g o n o con t u t t e l e 343 % p o s s i b i l i p e r m u t a z i o n i d i e t a ( 1 ) ed e t a ( 2 ) 344 % I n od i FP i n c u i v a l u t a r e f s i o t t e n g o n o 345 % con l ’ a f f i n i t à hp+b for i =1:2 346 for j =1:2 347 for l =1:2 348 349 p=[ e t a ( i ) ; e t a ( j ) ; e t a ( l ) ] ; 350 FP=(h∗p)+b ; 351 end 352 i n t e=i n t e+f (FP ( 1 ) ,FP ( 2 ) ,FP ( 3 ) ) ∗ p h i ( p ( 1 ) , p ( 2 ) , p ( 3 ) ) ; end 353 354 end 355 % La sommatoria va d i v i s a p er 8 e ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 97 Cap.I Documentazione ✧ 356 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ % m o l t i p l i c a t a p er hˆ3 i n t e g r a l e=hˆ3∗ i n t e / 8 ; 357 A differenza di quanto accade per gli elementi finiti di Nédélec, in questo caso si ha un dato Neumann sull’interfaccia Γ, pertanto il passaggio del dato attraverso l’interfaccia non è cosı̀ immediato come illustrato nell’altra situazione. Come viene incorporato questo dato costituisce l’argomento della prossima sezione. ✧ 98 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.3 Passaggio del dato nell’interfaccia Γ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Sezione I.3 Passaggio del dato nell’interfaccia Γ Per semplicità in questa sezione indicheremo con {wk }Nn k=1 le funzioni base dello spazio di Nédélec e con {ψ j }Nl j=1 le funzioni base dello spazio di Lagrange: bi sul cubo di riferimento C (figura I.2.1) sono: • Le 8 funzioni base di Lagrange ψ b1 := (1 − x)(1 − y)(1 − z), ψ b2 := x(1 − y)(1 − z), ψ b4 := xy(1 − z), b3 := (1 − x)y(1 − z), ψ ψ b5 := (1 − x)(1 − y)z, b6 := x(1 − y)z, ψ ψ b7 := (1 − x)yz, ψ b8 := xyz. ψ b i sul cubo di riferimento C (figura I.1.1) sono: • Le 12 funzioni base di Nédélec w y(1 − z) (1 − y)(1 − z) , b 2 := b 1 := w 0 0 , w b 3 := w 0 (1 − y)z , 0 0 0 (1 − x)y ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 0 0 yz , b 4 := w 0 0 , b 5 := w (1 − x)(1 − z) 0 0 b 7 := w x(1 − z) , 0 0 , b 9 := w 0 (1 − x)(1 − y) 0 , b 11 := w 0 ✧ ✧ , b 6 := w (1 − x)z 0 0 b 8 := w xz , 0 0 , b 10 := w 0 x(1 − y) 0 . b 12 := w 0 xy ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 99 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Passaggio del dato Neumann da ΩC a ΩI I.3. Noto HC , si tratta di risolvere il problema − div(µI ∇ϕI ) = 0 µI ∇ϕI · nI + µC HC · nC = 0 ϕI = 0 in ΩI (I.4) su Γ (I.5) su ∂ ΩI \ Γ (I.6) In forma debole l’equazione (I.4) diventa: 0= Z ΩI div(µI ∇ϕI )ψ j = − usando (I.5) e (I.6) =− Z ΩI Z ΩI µI ∇ϕI ∇ψ j + µI ∇ϕI ∇ψ j − Z Γ Z ∂ ΩI µ ∇ϕI · nI ψ j = µ HC · nC ψ j Pertanto, noto HC , si tratta di risolvere: Z ΩI µ ∇ϕI · ∇ψ j = − Z Γ µ HC · nC ψ j . (I.7) Z (I.8) Poiché HC = ∑Nn k HC,k wk , avremo: Z Nn Γ µ HC · nC ψ j = ∑ HC,k k Poniamo Z Γ Γ µ wk · nC ψ j . µ wk · nC ψ j = S jk . b k hanno un’unica componente non nulla che compare nella Osservando che le funzioni w direzione dello spigolo che supporta il grado di libertà ed osservando che nC = (0, 1, 0), segue che wk · nC = 0 se lo spigolo k-esimo è di tipo 0 o 2 oppure è di tipo 1 ma non termina in Γ 6= 0 se lo spigolo k-esimo è di tipo 1 e termina in Γ quindi S jk può essere 6= 0 solo se j è un nodo di interfaccia e se k è uno spigolo di tipo 1 che termina in Γ . Risulta pertanto fondamentale classificare gli spigoli in base alla loro direzione e alla loro posizione rispetto all’interfaccia. ✧ 100 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.3 Passaggio del dato nell’interfaccia Γ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Figura I.6: Relazione fra spigoli di Nédélec e vertici di Lagrange in Γ Relazioni fra vertici e spigoli in Γ I.3.1.1 Numeriamo globalmente i nodi di Γ in ordine lessicografico. Estraiamo quindi dalla numerazione globale di Lagrange i vertici di interfaccia e dalla numerazione globale di Nédélec gli spigoli che terminano in questi nodi. Per fare questo utilizziamo le due seguenti function: File I.9: vbcL 358 359 360 % vbcL ( i )=1 s e i l v e r t i c e i −esimo è d i bordo % vbcL ( i )=9 s e i l v e r t i c e i −esimo è d i i n t e r f a c c i a % vbcL ( i )=0 s e i l v e r t i c e i −esimo è i n t e r n o 361 function vbcL=vbcL ( coorL , n u m Ver tici ) 362 for i =1: n u m Ver tici 363 x i=coorL ( i , 1 ) ; 364 y i=coorL ( i , 2 ) ; 365 z i=coorL ( i , 3 ) ; 366 i f abs ( yg−y i )<eps vbcL ( i )=9; 367 end 368 369 i f abs(2− y i )<eps 370 vbcL ( i )=1; end 371 i f abs ( x i )<eps 372 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 101 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ vbcL ( i )=1; 373 end 374 375 i f abs(1− x i )<eps 376 vbcL ( i )=1; end 377 i f abs ( z i )<eps 378 vbcL ( i )=1; 379 end 380 381 i f abs(1− z i )<eps 382 vbcL ( i )=1; end 383 end 384 File I.10: vbc 385 386 387 388 389 % vbcN ( i )=1 s e l o s p i g o l o i −esimo è d i bordo % vbcN ( i )=9 s e l o s p i g o l o i −esimo è d i i n t e r f a c c i a % vbcN ( i )=7 s e l o s p i g o l o i −esimo ter m in a s u l l ’ i n t e r f a c c i a % ( e dunque è anche i n t e r n o ) % vbcN ( i )=0 s e l o s p i g o l o i −esimo è i n t e r n o 390 function vbcN=vbc ( coor , numSpigoli , h ) 391 vbcN=zeros ( numSpigoli , 1 ) ; 392 for i =1: n u m S p igoli 393 t i p o i=c o o r ( i , 1 ) ; 394 x i=c o o r ( i , 2 ) ; 395 y i=c o o r ( i , 3 ) ; 396 z i=c o o r ( i , 4 ) ; 397 i f t i p o i==0 i f abs ( yg−y i )<eps 398 vbcN ( i )=9; 399 end 400 i f abs ( y i )<eps 401 vbcN ( i )=1; 402 end 403 i f abs ( z i )<eps 404 vbcN ( i )=1; 405 ✧ 102 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.3 Passaggio del dato nell’interfaccia Γ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ end 406 407 i f abs(1− z i )<eps 408 vbcN ( i )=1; end 409 end 410 i f t i p o i==1 411 i f abs ( yg−yi −h)<eps 412 vbcN ( i )=7; 413 end 414 415 i f abs(1− x i )<eps 416 vbcN ( i )=1; end 417 i f abs ( x i )<eps 418 vbcN ( i )=1; 419 end 420 i f abs ( z i )<eps 421 vbcN ( i )=1; 422 end 423 424 i f abs(1− z i )<eps 425 vbcN ( i )=1; end 426 end 427 428 i f t i p o i==2 429 i f abs ( yg−y i )<eps vbcN ( i )=9; 430 end 431 i f abs ( y i )<eps 432 vbcN ( i )=1; 433 end 434 i f abs ( x i )<eps 435 vbcN ( i )=1; 436 end 437 438 i f abs(1− x i )<eps 439 vbcN ( i )=1; end 440 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 103 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ end 441 end 442 I due seguenti vettori contengono gli indici nelle numerazioni globali di Lagrange e di Nédélec dei vertici/spigoli in base alla loro posizione: vbcN = vbc ( coorN , numSpigoli , h ) ; 443 v N i n t e r n i = find ( vbcN==0 | vbcN ==7) ’; 444 445 vNgamma = find ( vbcN ==9) ’; 446 vNfineingamma = find ( vbcN ==7) ’; 448 vbcL = vbcL ( coorL , n u m Ver tici ) ; 449 v L i n t e r n i = find ( vbcL ==0) ’; 450 vLgamma = find ( vbcL ==9) ’; I due vettori vNfineingamma e vLgamma sono tali che se i è il nodo i-esimo nella numerazione globale dell’interfaccia, vNfineingamma(i) è il numero associato allo spigolo, che termina su questo vertice, nella numerazione globale di Nédélec; inoltre tale spigolo — grazie alle mesh poste in ΩI e in ΩC — termina sul vertice che nella numerazione globale di Lagrange ha numero vLgamma(i). Ora ai vertici di Γ associamo una mesh di quadrati sempre in ordine lessicografico: File I.11: meshG function [ZG]=meshG( h ) 451 nq=(1/h ) −2; % numero q u a d r a t i i n o g n i d i r . 452 453 v=zeros ( 1 , 4 ) ; 454 v (1)=1; 455 v (2)=2; 456 v (3)= v (1)+ nq+1; 457 v (4)= v ( 3 ) + 1 ; 458 Za=[v ] ; 459 Zb=Za ; 460 for i =1:( nq−1) Zb=[Zb ; Za+i ] ; 461 462 end 463 Zc=Zb ; 464 for i =1:( nq−1) ✧ 104 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.3 Passaggio del dato nell’interfaccia Γ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Zc=[Zc ; Zb+(nq+1)∗ i ] ; 465 end 466 ZG=Zc ; 467 Figura I.7: Numerazione semi-globale in Γ Ricordando la definizione di S jk = R Γ µ wk e gli spigoli di tipo 1 che terminano in Γ. S = (Sil )1≤i,l≤(nc−1)(pc−1) dove: Sil := Avremo Sil = Z ∑ Γ · nC ψ j , consideriamo solo i vertici di Γ Definiamo una matrice S globale come wl · nC ψi . Z Q∈Γ Q (I.9) wl · nC ψi . (I.10) Pertanto la matrice globale S si costruisce sommando i contributi di ogni quadrato Q della triangolazione. Tali contributi sono raccolti nelle matrici SQ elementari ∈ Mat(R, 4) cosı̀ definite: SilQ := Z Q wl · nC ψi ∀ i, l = 1, ..., 4 (I.11) Q (cioè la matrice elementare sul quadrato di riferimento) e poi È sufficiente calcolare Sc passare alla generica SQ . I.3.1.2 b Costruzione di una base sul quadrato di riferimento Q b := {x ∈ R3 | x2 = 1 e 0 ≤ xi ≤ 1; i = 1, 3}. Numeriamo Il quadrato di riferimento è Q localmente i suoi vertici in ordine lessicografico (vedi tabella I.3.1.2 e figura I.3.1.2). ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 105 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ bi }4i=1 le funzioni base di Indichiamo con {b wi }4i=1 le funzioni base di Nédélec e con {ψ Lagrange su questo quadrato di riferimento. Allora avremo: 0 , ψ b1 = w z), (1 − x b )(1 − b z ) b1 = (1 − xb)(1 − b 0 0 , b2 = w x b (1 − b z ) 0 b2 = xb(1 − b ψ z), 0 , b3 = w (1 − x b )b z 0 b3 = (1 − xb)b ψ z, 0 , b4 = w x b b z 0 (I.12) b4 = xbb z. ψ Definendo in maniera naturale c SilQ := VERTICE COORDINATE 1 (0,1,0) 2 (1,1,0) 3 (0,1,1) 4 (1,1,1) ✧ 106 ✧ ✧ ✧ ✧ Z b Q bi , b l · nC ψ w (I.13) b di riferimento Figura I.8: Coordinate locali in Γ e quadrato Q ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.3 Passaggio del dato nell’interfaccia Γ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ b j , la matrice b j · nC = (b ed osservando che w w j )2 = ψ 4 2 1 Q 2 4 Sc elem = 36 2 1 b è elementare su Q 2 1 1 2 4 2 1 2 2 4 I.3.1.3 Generalizzazione della base ad un quadrato Q qualsiasi b (quadrato di riferimento). Indichiamo con x un punto di Q e con b x un punto di Q b in Q è un’omotetia di entità h seguita da una traslazione di entità L’affinità che manda Q b: x = hb x+b Allora ricordando la (I.1) e la (I.3) si ottiene: 1 1 1 bl b l (b wl (x) := w x) (x − b) = w h h h bi (b ψi (x) = ψ x) (I.14) Figura I.9: Quadrato Q generico I.3.1.4 Assemblaggio In conclusione: SilQ =h ✧ ✧ ✧ ✧ ✧ ✧ := 2 ✧ Z Z b Q ✧ Q wl · nC ψi = h 2 Z b Q bi (b b l (b w x) · nC (b x)ψ x) = bi (b x) db x=h (b wl (hb x + b))2 ψ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Z b Q ✧ Z Q (wl )2 ψi = Q bi (b (b wl (b x))2 ψ x) db x = h Sc il ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 107 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ e la matrice elementare sul generico quadrato Q è: Q SQ = h Sc ➪ Osservazione 6. elementare SQ (I.15) Poiché la nostra mesh è fortemente strutturata, la matrice è la stessa per ogni quadrato Q. La seguente function genera la matrice S assemblando le matrici elementari: File I.12: GStiff function SG=G S t i f f (ZG, h ) ; 468 numQuadrati =((1/h ) − 2)ˆ2; 469 numVerticiG =((1/h ) − 1)ˆ2; 470 471 SG=sparse ( numVerticiG , numVerticiG ) ; 472 % M a t r i c e d i s t i f f n e s s e l e m e n t a r e con q u a d r a t i u n i t a r i : SGElem = ( 1 / 3 6 ) ∗ [ 4 , 2 , 2 , 1 ; . . . 473 474 2, 4, 1, 2;... 475 2, 1, 4, 2;... 476 1, 2, 2, 4]; 477 % As s em b laggio d e l l e componenti g l o b a l i for k=1: numQuadrati 478 for j =1:4 479 SG(ZG( k , : ) , ZG( k , j ))=SG(ZG( k , : ) , ZG( k , j ))+SGElem ( : , j )∗ h ; 480 end 481 end 482 I.3.1.5 Passaggio del dato Torniamo al problema iniziale: risolvere Z ΩI µI ∇ϕI · ∇ψ j = (bL ) j (I.16) dove il termine noto bL è dato da (bL ) j := − ✧ 108 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Z Γ ✧ µ HC · nC ψ j = − ∑ Hck k ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Z Γ ✧ µ wk · nC ψ j . ✧ ✧ ✧ ✧ (I.17) ✧ ✧ ✧ ✧ ✧ ✧ § I.3 Passaggio del dato nell’interfaccia Γ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Il problema (I.16) risulta equivalente al sistema lineare AL u = bL , dove (AL )i j := Z ΩI µ ∇ψ j ∇ψ i , (bL ) j := (S ∗ HC ) j . 483 bL=zeros ( length ( vbcL ) , 1 ) ; 484 bL (vLgamma)=SG∗ HCfineingamma ’ ; 485 b L in t=bL ( vLinterniEgamma ) ; Passaggio del dato Dirichlet da ΩI a ΩC I.3. Per aggiornare il dato Dirichlet sull’interfaccia Γ nel sottodominio ΩC , dobbiamo calcolare i momenti sugli spigoli di interfaccia di ∇ϕI . Osserviamo che se a è lo spigolo che va dall’i-esimo nodo Pi al j-esimo nodo Pj della mesh di ΩC , allora Z a ∇ϕI · τ = ϕI (Pj ) − ϕI (Pi ) . Pertanto a livello implementativo abbiamo File I.13: CalcoloEstremi for i =1: length (vNgamma ) 486 aux ( i )= p h i I ( e s t r e m i ( i ,2)) − p h i I ( e s t r e m i ( i , 1 ) ) ; 487 488 end 491 function e s t r e m i=C a l c o l o E s t r e m i ( coorN , coorL , vNgamma, nc ) 492 for i =1: length (vNgamma ) 493 c=coorN (vNgamma( i ) , : ) ; 494 cc=c ( 2 : 4 ) ; 495 for j =1: length ( coorL ) i f coorL ( j ,:)== cc 496 e s t r e m i ( i ,1)= j ; 497 end 498 end 499 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 109 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ i f c (1)==0 500 e s t r e m i ( i ,2)= e s t r e m i ( i , 1 ) + 1 ; 501 e l s e i f c (1)==2 502 e s t r e m i ( i ,2)= e s t r e m i ( i ,1)+ nc +1; 503 end 504 end 505 ✧ 110 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.4 Implementazione della procedura iterativa ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Sezione I.4 Implementazione della procedura iterativa Lo script seguente costruisce la mesh, le matrici di stiffness e di massa nel conduttore e la matrice di stiffness nell’isolante. Costruisce anche la matrice S che permette di passare il dato Neumann dal conduttore all’isolante ed inizializza il dato Dirichlet λ . In altre parole costruisce tutte le componenti che non dipendono dall’iterazione 506 % main1 507 clc 508 clea r ; 509 h = input ( ’Inserisci il valore di h: ’ ) ; % 510 yg = input ( ’Inserisci lacoordinata y della interfaccia : ’ ) ; 511 nc=1/h ; % nc = numero c u b i lu n go a s s e x 512 mcN=(yg ) / ( h ) ; % mcN = numero c u b i lu n go a s s e y % 513 nel conduttore mcL=(2−yg ) / ( h ) ; % mcL = numero c u b i lu n go a s s e y 514 % 515 pc=1/h ; 516 nell ’ isolante % pc = numero c u b i lu n go a s s e z numCubiN=nc ∗mcN∗ pc ; % t o t . c u b i n e l c o n d u t t o r e 517 numCubiL=nc ∗mcL∗ pc ; % t o t . c u b i n e l l ’ i s o l a n t e 518 ns=nc ∗(mcN+1)∗( pc +1); % t o t . s p i g o l i lu n go x 520 ms=(nc +1)∗mcN∗( pc +1); % t o t . s p i g o l i lu n go y 521 ps=(nc +1)∗(mcN+1)∗ pc ; % t o t . s p i g o l i lu n go z 522 n u m S p igoli=ns+ms+ps ; 523 n u m Ver tici =(nc +1)∗(mcL+1)∗( pc +1); 519 525 % tot . s p i g o l i % tot . v e r t i c i % NEDELEC = CONDUTTORE 526 coorN=c o o r d i n a t e N ( h , nc , mcN, pc , ns , ms , ps ) ; 527 ZN=meshN ( nc , mcN, pc , ns , ms , ps ) ; 528 [AN,MN]= N S t i f f M a s s a (ZN, h , numSpigoli , numCubiN ) ; 529 vbcN=vbc ( coorN , numSpigoli , h ) ; v N i n t e r n i=find ( vbcN==0 | vbcN ==7) ’; 530 531 vNgamma=find ( vbcN ==9) ’; 532 vNfineingamma=find ( vbcN==7) ’; ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 111 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 533 coorNgamma=coorN (vNgamma , : ) ; 535 % LAGRANGE = ISOLANTE ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 536 coorL=c o o r d i n a t e L ( h , nc , mcL , pc , yg ) ; 537 ZL=meshL ( nc , mcL , pc ) ; 538 AL=L S t i f f (ZL , h , numVertici , numCubiL ) ; 539 vbcL=vbcL ( coorL , n u m Ver tici ) ; 540 v L i n t e r n i=find ( vbcL ==0) ’; vLgamma=find ( vbcL ==9) ’; ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ vLinterniEgamma=find ( vbcL==0 | vbcL ==9) ’; 541 ALinterniEgamma=AL( vLinterniEgamma , vLinterniEgamma ) ; 542 544 % INTERFACCIA 545 % Da C a I 546 ZG=meshG( h ) ; 547 SG=G S t i f f (ZG, h ) ; 548 bL=zeros ( length ( vbcL ) , 1 ) ; 549 % Da I a C 550 e s t r e m i=C a l c o l o E s t r e m i ( coorN , coorL , vNgamma, nc ) ; 552 uu1=input ( ’Inserisci una stringa con la prima componente ... della funzione iniziale: ’ ) ; % 553 uu2=input ( ’Inserisci una stringa con la seconda ... 554 componente della funzione iniziale: ’ ) ; % 555 uu3=input ( ’Inserisci una stringa con la terza componente ... 556 della funzione iniziale: ’ ) ; % 557 558 u1=i n l i n e ( uu1 , ’x’ , ’y’ , ’z’ ) ; 559 u2=i n l i n e ( uu2 , ’x’ , ’y’ , ’z’ ) ; 560 u3=i n l i n e ( uu3 , ’x’ , ’y’ , ’z’ ) ; 562 lambdaNew=on es ( s i z e (vNgamma ’ ) ) ; % dato D i r i c h l e t i n i z i a l e 564 for i =1: s i z e ( lambdaNew , 1 ) 565 t i p o i=coorN ( i , 1 ) ; 566 x i=coorNgamma ( i , 2 ) ; 567 y i=coorNgamma ( i , 3 ) ; ✧ 112 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ § I.4 Implementazione della procedura iterativa ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 568 z i=coorNgamma ( i , 4 ) ; 569 lambdaNew ( i )= i n t e g r a l e D i L i n e a ( t i p o i , xi , yi , z i , h , u1 , u2 , u3 ) ; ✧ ✧ ✧ end 570 Lo script seguente implementa la procedura iterativa: partendo dal dato Dirichlet iniziale λ calcolato in precedenza, ad ogni passo iterativo risolve il problema nel conduttore, aggiorna il dato Neumann, risolve il problema nell’isolante, calcola il dato Dirichlet ed infine aggiorna il dato nell’interfaccia. 571 % main3 572 t o l l=input ( ’Inserisci la tolleranza sullo errore: ’ ) ; 573 t h e t a=input ( ’Inserisci theta coefficiente di rilassamento :’ ) ; 574 omega=input ( ’Inserisci la frequenza omega: ’ ) ; 575 mu=input ( ’Inserisci la permeabilità magnetica mu: ’ ) ; 576 i n v s i g=input ( ’Inserisci sigma^( -1) dove sigma è la... conducibilità elettrica : ’ ) ; 577 578 nmax=input ( ’Inserisci il numero massimo di 579 iterazioni : ’ ) ; AMNinterni=i n v s i g ∗AN( v N i n t e r n i , v N i n t e r n i ) + . . . 581 i ∗omega ∗mu∗MN( v N i n t e r n i , v N i n t e r n i ) ; 582 AMNinterniEgamma=i n v s i g ∗AN( v N i n t e r n i , vNgamma ) + . . . 583 i ∗omega ∗mu∗MN( v N i n t e r n i , vNgamma ) ; 584 586 % INIZIALIZZAZIONI 587 e r r =1; 588 e r r A s s o l u t o =1; 589 numIteraz =0; 591 HC=zeros ( 1 , n u m S p igoli ) ; 592 HCnew=zeros ( 1 , n u m S p igoli ) ; 593 p h i I=zeros ( 1 , n u m Ver tici ) ; 594 phiInew=zeros ( 1 , n u m Ver tici ) ; 595 riepilogo =[]; 597 while ( e r r A s s o l u t o > t o l l & numIteraz<nmax) ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ 113 Cap.I Documentazione ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ numIteraz=numIteraz +1; 598 % R i s o l u z i o n e n e l Conduttore 599 HinternaC=AMNinterni\(−AMNinterniEgamma ∗lambdaNew ) ; 600 601 HC( v N i n t e r n i )=HinternaC ; 602 HC(vNgamma)=lambdaNew ; 603 HCfineingamma=HC( vNfineingamma ) ; 604 % Aggiornamento d e l dato Neumann 605 bL (vLgamma)=SG∗ HCfineingamma ’ ; 606 b L in t=bL ( vLinterniEgamma ) ; % Risoluzione nell ’ is olan te 607 phiInterniEgamma=ALinterniEgamma \ b L in t ; 608 609 p h i I ( vLinterniEgamma )= phiInterniEgamma ; 610 lambdaOld=lambdaNew ; % C a l c o l o d e l dato D i r i c h l e t 611 for i =1: length (vNgamma) 612 613 aux ( i )= p h i I ( e s t r e m i ( i ,2)) − p h i I ( e s t r e m i ( i , 1 ) ) ; 614 end 615 % Aggiornamento d e l dato d i i n t e r f a c c i a lambdaNew=(1− t h e t a )∗ lambdaOld+t h e t a ∗aux ’ ; 616 617 HCold=HCnew ; 618 HCnew=HC; 619 p h i I o l d=phiInew ; 620 phiInew=p h i I ; n1=(HCnew−HCold ) ∗ (AN) ∗ ( HCnew−HCold ) ’ ; 621 n2=(HCnew−HCold ) ∗ (MN) ∗ ( HCnew−HCold ) ’ ; 622 623 n4=(phiInew−p h i I o l d )∗AL∗( phiInew−p h i I o l d ) ’ ; 624 e r r A s s o l u t o =(n1+n2 )+(n4 ) ; 625 r i e p i l o g o =[ r i e p i l o g o ; e r r A s s o l u t o , e r r ] ; end 626 627 riepilogo 628 numIteraz ✧ 114 ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ ✧ Bibliografia [1] Ana Alonso Rodriguez, Paolo Fernandes, e Alberto Valli. Weak and strong formulations for the time-harmonic eddy-current problem in general domains. UTM 603, Dipartimento di Matematica, Università degli studi di Trento, 2001. [2] Ana Alonso Rodriguez, Paolo Fernandes, e Alberto Valli. The time-harmonic eddycurrent problem in general domains: solvability via scalar potentials, volume 28 di Lecture Notes in Computational Science and Engineering. Springer-Verlag, 2003. [3] Ana Alonso Rodriguez e Alberto Valli. Some remarks on the characterization of the space of tangential traces of H(rot; Ω) and the construction of an extension operator. Manuscripta Math., 89(2):159–178, 1996. [4] Ana Alonso Rodriguez e Alberto Valli. Domain decomposition methods for timeharmonic Maxwell equations: numerical results, volume 23 di Lecture Notes in Computational Science and Engineering. Springer-Verlag, Berlin, 2002. [5] H. Ammari, A. Buffa, e J.-C. Nédélec. A justification of eddy currents model for the Maxwell equations. SIAM J. Appl. Math., 60(5):1805–1823 (electronic), 2000. [6] Alfredo Bermundez, Rodolfo Rodriguez, e Pilar Salgado. A finite element method with Lagrange multipliers for low-frequency harmonic Maxwell equations. 2002. [7] Alain Bossavit. Électromagnétisme, en vue de la modélisation, volume 14 di Mathématiques & Applications [Mathematics & Applications]. Springer-Verlag, Paris, 1993. [8] Alain Bossavit. Computational electromagnetism. Electromagnetism. Academic Press Inc., San Diego, CA, 1998. Variational formulations, complementarity, edge elements. [9] A. Buffa e P. Ciarlet, Jr. On traces for functional spaces related to Maxwell’s equations. I. An integration by parts formula in Lipschitz polyhedra. Math. Methods Appl. Sci., 24(1):9–30, 2001. [10] Piero Caldirola, Marcello Fontanesi, e Elio Sindoni. Elettromagnetismo, volume II. Masson Italia Editori, 1981. [11] Michel Cessenat. Mathematical methods in electromagnetism, volume 41 di Series on Advances in Mathematics for Applied Sciences. World Scientific Publishing Co. Inc., River Edge, NJ, 1996. Linear theory and applications. [12] Giuseppe Conciauro. Introduzione alle onde elettromagnetiche. Serie di Elettronica. McGraw-Hill, 1993. [13] V. Girault e P.-A. Raviart. Finite Element Methods for Navier-Stokes Equations. Theory and algorithms. Springer-Verlag, Berlin, 1986. [14] Mazzoldi, Nigro, e Voci. Fisica II. EdiSES, seconda edizione, 2000. [15] Corrado Mencuccini e Vittorio Silvestrini. Fisica II. Liguori Editore, second edizione, Novembre 1995. [16] Jean-Claude Nédélec. Mixed finite elements in R3 . Numer. Math., (35):315–341, 1980. [17] Alfio Quarteroni. Modellistica Numerica per Problemi Differenziali. Springer-Verlag, Milano, 2000. [18] Alfio Quarteroni e Alberto Valli. Numerical approximation of partial differential equations, volume 23 di Springer Series in Computational Mathematics. Springer-Verlag, Berlin, 1994. [19] Walter Rudin. Real and complex analysis. McGraw-Hill Book Co., New York, third edizione, 1987.