Diskreetti Lämpödiffuusio

Lineaarinen rekursio · lämpöyhtälö

Diskreetti Lämpödiffuusio

Huoneen lämpötilat on jaettu ruutuihin. Jokaisella aika-askeleella ruutujen lämpötila lasketaan edellisistä lämpötiloista yksinkertaisella säännöllä, ja siitä syntyy lämmön leviäminen.

Vie hiiri ruudun päälle nähdäksesi sen lämpötilan.

Teoria: lineaarinen rekursio ja lämmön leviäminen

1Ruutu, kuva ja rekursio

Ruudukon jokaisessa ruudussa on yksi luku: lämpötila huoneenlämpöön verrattuna. Aikaa mitataan aika-askelilla n = 0, 1, 2, …

Seuraavan ajanhetken lämpötilat lasketaan edellisen hetken lämpötilojen perusteella. Tällaista laskentaa sanotaan rekursioksi: tila n + 1 saadaan tilasta n.

2Päivityssääntö

Lämpötilan jakautuessa jokainen ruutu luovuttaa naapureilleen osuuden 4α omasta lämmöstään. Sisäruuduissa naapureita on neljä, joten jokainen naapuri saa osuuden 4α.

Ruudun (i, j) uusi lämpötila määräytyy siis kaavalla

Ti,j(n+1) = Ti,j(n) + α · [ Ti−1,j + Ti+1,j + Ti,j−1 + Ti,j+1 − 4Ti,j ](n) + qi,j

Tässä α = 0,2 ja q on lähdetermi. Jos ruudussa on lämmönlähde, siihen lisätään lisäksi lämpöä joka aika-askeleella lämpölähteen tehon antaman vakion verran. Nämä lämpölähteiden aikaansaamat muutokset on asetettu komponenteiksi vektoriin q. Jos ruudussa ei ole lämmönlähdettä, vastaava vektorin q komponentti on nolla.

Kun α = 0,2, sääntö sievenee: kauempana seinistä ruudun uusi lämpötila on ruudun ja sen neljän naapurin keskiarvo. Lämpö virtaa kuumemmasta kylmempään, ja virtaus on sitä suurempi, mitä suurempi lämpötilaero on.

Seinät eristävät. Jos naapuri on seinää, sen paikalle ajatellaan ruudun oma lämpötila, jolloin siihen suuntaan ei virtaa mitään. Seinässä voi olla myös lämmönlähde, kuten ikkuna.

Lämpöä ei katoa eikä synny itsestään. Kun ruutu luovuttaa naapurilleen osuuden α·ΔT, naapuri saa täsmälleen saman. Kaikkien lämpötilojen summa muuttuu siis vain lähteiden verran.

3Matriisimuoto

Kootaan kaikkien ruutujen lämpötilat yhdeksi pitkäksi vektoriksi x(n). Huoneessa on 20 · 30 = 600 ruutua, ja lähteinä toimivat seinäruudut tulevat mukaan lisäksi. Yllä oleva sääntö kaikille ruuduille yhtä aikaa on silloin

x(n+1) = A · x(n) + b

Matriisi A kertoo, miten ruudut vaikuttavat toisiinsa. Vektori b sisältää lähteet: se on q lähderuudun kohdalla ja nolla muualla. Pienessä yksiulotteisessa huoneessa, jossa on neljä ruutua jonossa ja eristävät päät, matriisi on

A = 1−αα00 α1−2αα0 0α1−2αα 00α1−α

Diagonaalilla on 1 − α · (naapureiden lukumäärä) ja naapureiden kohdalla α. Jokaisen rivin summa on 1, koska uusi lämpötila on aina vanhojen lämpötilojen painotettu keskiarvo.

Toistamalla sääntöä saadaan ratkaisu suljetussa muodossa:

x(n) = An · x(0) + ( I + A + A2 + … + An−1 ) · b

Ensimmäinen termi kuvaa alkutilan leviämistä ja vaimenemista, toinen lähteiden kertyvää vaikutusta. Sääntö on lineaarinen: kahden erillisen tilanteen tulokset voi laskea erikseen ja laskea yhteen. Vektorin b takia kyseessä on tarkemmin epähomogeeninen lineaarinen rekursio.

4Tasapainotilan löytyminen

Tämä simulaatio perustuu siis affiinin rekursion määrittämään vektorijonoon

x(n+1) = A · x(n) + b

Affiinien rekursioiden teoria sanoo, että rekursiolla on tasapainotila tasan silloin, kun b kuuluu matriisin I-A kuva-avaruuteen. On mahdollista näyttää, että tämä tapahtuu tasan silloin, kun vektorin b komponenttien summa on nolla, eli kun lämpölähteiden tehot ovat tasapainossa. Muussa tapauksessa kokonaislämpötila joko kasvaa tai vähenee kohti ääretöntä, joten tasapainotilaa ei voida saavuttaa.

On myös mahdollista osoittaa, että matriisilla A on ominaisarvo 1, jota vastaava ominaisavaruus on yksiulotteinen. Vastaava ominaisvektori on tasapainotila ilman lämmönlähteitä, eli vektori, jonka jokainen komponentti on sama luku (lämpö on tasaisesti jakautunut koko huoneeseen). Yhdestä tasapainotilasta saadaan kaikki muut lisäämällä tämä vektori kerrottuna skalaarilla.

Lisäksi matriisin A muut ominaisarvot ovat itseisarvoiltaan pienempiä kuin yksi, joten lämpötilat suppenevat aina tasapainotilaan, kun lämmönlähteiden tehojen summa on nolla. Tasapainotila määräytyy tällöin yksikäsitteisesti huoneen keskilämpötilasta, joka ei simulaatiossa muutu.