Mi történik, ha nem gázról, hanem folyadékról van szó? Miben kell eddigi modelljeinket módosítani? Milyen új hatás figyelembevétele szükséges, hogy az eddig is használt molekulák folyadékmolekulákként viselkedjenek? A folyadékok a rendelkezésre álló teret sűrűn töltik ki, a molekuláik között gyakorlatilag nincs üres hely.
Vizsgáljuk a következő alapmodellt: van 2 dobozunk, K db A- és L db B-molekulánk. Ezek a két dobozt teljesen kitöltik, mindkét dobozba N db molekula fér (2*N=K+L). Meg szeretnénk figyelni az egyes molekulafajták eloszlását a két dobozban.
Induljunk ki abból, hogy a folyadékmolekulák is szabadon, véletlenszerűen mozognak a rendelkezésre álló területen, tehát minden lépésben válasszunk ki véletlenszerűen egy molekulát az 1., s egy másikat a 2. dobozból, majd cseréljük meg őket! Figyeljük meg, hogy milyen eloszlás alakul ki sok szimulációs lépés után!
Az algoritmusunkban tartalmazza A(N) az első, B(N) a második dobozban levő molekulák betűjeleit, Adb pedig az 1. dobozban levő A-molekulák számát!
Diffúzió:
(i,j):=véletlen hely(N,N)
Ha A(i)="a" akkor Adb:=Adb-1
Ha B(j)="a" akkor Adb:=Adb+1
Csere(i,j) [A(i) és B(j) cseréje]
Eljárás vége.
Nagy N, K, L értékek esetén programunkkal megfigyelhetjük, hogy itt is a molekulák egyenletes eloszlása, a teljes keveredés lesz az eredmény, azaz a folyadékok – s így a szilárd anyagok – diffúziója csupán sebességben különbözhet a gázokétól, illetve a rendelkezésre álló tér kitöltésében.
Hasonlítsuk össze a szimuláció eredményeit a gázok hasonló (darázs) modelljével! A lehetséges változások egy lépés alatt a két modellben a következők (dobozok közötti csere, illetve darázs átrepülés):
Azaz ez a modell ugyanazt az eredményt adja, mint a darázsmodell, de a végállapotot a kétféle hatástalan csere miatt lassabban éri el.
A gázmodelleknél, ha a molekulákra semmilyen erő nem hat, a molekulák egyenletes eloszlása volt jellemző. Hétköznapi tapasztalataink a folyadékokról azonban mást állítanak.
Ebben az esetben természetesen egy újabb hatóerőt kell figyelembe vennünk: a – diffúzió ellen most sikerrel érvényesülő – molekulák közötti vonzóerőt, amely a távolság négyzetével fordítva arányosan hat. Az erő gyors csökkenése miatt – első közelítésben még – egyszerűsítjük a dolgot, a vonzóerőt a következő primitív szabály alkalmazásával helyettesítjük: minden molekula csak olyan helyre léphet, ahol a molekula szomszédai száma nem csökken. (Itt tehát a vonzás mennyiségi szabályától még teljesen eltekintünk, csupán a vonzás ténye, léte számít. Mint tudjuk a vonzás két molekula távolsága négyzetével arányosan csökken, így ez az elhanyagolás esetünkben nem lesz jelentős.) Így a következő egyszerű számítógépes modellhez jutunk:
A folytonos – diffúziós – keretmodellt használva, a T(N,M) táblázatba kétféle számot (0,1) helyezünk el véletlenszerűen. Az 1 jelenti azt, hogy az adott helyen van molekula, a 0 pedig azt, hogy nincs. A megoldás algoritmusában a molekulát az A (=1) konstans jelöli, a falat pedig az F (=0). (Ki fogjuk használni ezt a konkrét (üres=0, molekula=1) ábrázolást!)
Szimulációs lépés:
(i,j):=véletlen hely(N,M)
(k,l):=véletlen szomszéd(i,j)
Ha T(i,j)=A és T(k,l)=0 és szomszédszám(k,l)≥szomszédszám(i,j)
akkor Csere((i,j),(k,l))
Eljárás vége.
Természetesen a véletlen szomszédot megadó eljárást úgy kell megírni, hogy ne válasszon a táblázaton kívüli helyet!
Jobb (egyszerűbb) megoldást is kaphatunk a szomszédválasztásra, ha a terünket körülvesszük fallal, amely – egyelőre – nem hat a molekulák mozgására. Ekkor a falban is választhatunk szomszédot, csupán a második elágazás-feltétel miatti mozgást kell megtiltanunk. Ezt úgy érhetjük el, hogy a teret körbevesszük még egy külső fallal, amelyet kellően nagy negatív szám szimbolizál. Az alábbi magyarázó ábrán a belső falban levő értéket F-fel jelöltük, a külsőben levőt pedig f-fel (amelyet reprezentálhat pl. a -10 szám):
El kell készíteni az (i,j) hely molekula szomszédai számát meghatározó eljárást, ez nagyon egyszerű a fenti reprezentációs döntéseinknek köszönhetően: mindössze a 8 szomszédot kell megvizsgálni. A szomszédszámot az elemek összeadásával is kiszámolhatjuk, hiszen a táblázat praktikusan választott számokat tartalmaz, s magát az aktuális elemet is beleszámolhatjuk, mert így mindkét helynél figyelembe vesszük. Jelölje db a szomszédok számát!
szomszédszám(i,j):
db:=0
Ciklus k=i-1-től i+1-ig
Ciklus l=j-1-től j+1-ig
db:=db+T(k,l)
Ciklus vége
Ciklus vége
szomszédszám:=db
Függvény vége.
Ez a modell megfelel a 3. elemi modellnek (S+,S-). Ha a cseppeket (összetartozó molekulahalmazokat) vesszük egységnek, akkor a csepphez új molekula csatlakozásának valószínűsége a csepp méretével arányos (S+), molekula eltávozása pedig a cseppmérettel fordítva arányos (S-). Tehát ebben a modellben nem várhatjuk a molekulák egyenletes eloszlását. A molekulák egyes helyeken csoportosulni fognak cseppekké, más helyek pedig üresen maradnak. Az pedig, hogy mely helyeken lesznek cseppek, nem jósolható meg előre.
Eredményként azt várjuk, hogy gömb alakú (azaz modellünkben körszerű) cseppek alakulnak ki.
Eddig algoritmusunkban csak a közvetlen szomszédok hatását vettük számításba, pedig a tömegvonzás távolabbról is működik. A vonzóerő a távolság négyzetével arányosan csökken, így például a következőképpen számítható:
szomszédszám(i,j):
db:=0
Ciklus k=i-x-től i+x-ig
Ciklus l=j-x-től j+x-ig
db:=db+T(k,l)/távolság((i,j),(k,l))2
Ciklus vége
Ciklus vége
szomszédszám:=db
Függvény vége.
Ekkor a szomszédszám elnevezés persze már nem nagyon illik a kiszámolt mennyiségre, célszerűbb elnevezni pl. vonzásnak. Mivel nem 1, hanem x távolságra levő szomszédokat is vizsgálunk, ezért vagy a táblázatot kell kiegészíteni újabb külső falakkal, vagy a számoló eljárásban ügyelni a táblázat széleire!
Egy korábbi modellnél tapasztaltuk, hogy ha a molekulákra hat a gravitáció, akkor sűrűségük a magassággal exponenciálisan csökken. A következő kérdésünk így hangzik: hogyan lehetséges, hogy a folyadékokban levő molekulák eloszlása nem ilyen, ráadásul még éles határfelület is elválasztja őket a környező gáztól?
Hogyan lehet bevezetni új modellünkbe a gravitációt? Nagyon egyszerű módosítást alkalmazunk: az aktuális hely feletti helyek molekula szomszédai számából vonjunk le g-t (a g egy, a gravitációnak megfelelő pozitív szám), az alatti helyekéhez pedig adjunk hozzá g-t! (Ezzel válik preferáltabbá a lejjebb fogalma modellünkben.) Beavatkozásunk eredményeként azt várjuk, hogy kialakuljon egy vízszintes folyadékfelület. A módosított eljárás ezek után:
Szimulációs lépés:
(i,j):=véletlen hely(N,M)
(k,l):=véletlen szomszéd(i,j)
Ha T(i,j)=A és T(k,l)=0 és szomszédszám(k,l)+(k-i)*g≥szomszédszám(i,j)
akkor Csere((i,j),(k,l))
Eljárás vége.
A g értékének meghatározását a gázmodelleknél tárgyalthoz hasonlóan végezhetjük el.
Ha a táblázatban a falat másképp reprezentálnánk, akkor figyelembe vehetnénk a falban levő molekulák vonzó hatását is. Ha ez kisebb, mint a molekulák közötti vonzóerő (F<1), akkor a falnál homorú felületű folyadékfelszínt kapunk, ha nagyobb (F>1), akkor pedig domborút. (A hatás annál látványosabb, minél nagyobb a vizsgált szomszédsági kör!) Ha a falvonzás a gravitációnál is erősebb (F>G+1), akkor a molekulák felmásznak a falra.
Egy fal-szomszédot F súlyúnak számolunk (F valós szám), azaz a belső falat F (≠0) értékekkel töltjük fel. Ekkor a külső falra (falakra) nincs is szükség, mert a szimulációs lépésben szereplő külső elágazás feltétele miatt molekulát falba úgysem engedünk lépni:
Így a szomszédok számolását nem is kell módosítanunk.
Amennyiben hatszögrács elrendezésű szimulációs térben modellezünk és egy fajta molekulát helyezünk a rendszerbe (piros cellák), amely molekulák közti vonzóerőt 2 súllyal vesszük figyelembe, akkor 33%-os kezdeti molekula sűrűség és ~9000 lépés után a következő alakzatok jönnek létre:
Érdekes megfigyelni, hogy ha a molekulák vonzásának a súlyát és a vonzóerő hatótávolságát is növeljük, akkor lényegesen gyorsabban, sokkal zártabb alakzatok jönnek létre:
Ha rendszerünket több anyagféleség modellezésére is felkészítjük /piros,zöld/ és ezek egyformán vonzzák egymást, akkor az előzőekhez hasonló komplex formák jönnek létre:
Érdekesebb a kép, ha az azonos részecskék vonzzák egymás, de az ellentétesek taszítják (kialakul a várt kép: a különböző színű részecskék önálló cseppekbe rendeződnek):
A falvonzást mutatja be az alábbi ábra. Ezen a kék színű részecskék erősen vonzódnak a falakhoz (fekete), ha egyszer odatapadtak, akkor nem válnak el attól (a piros, zöld részecskék az előző modellhez hasonlóan csak saját magukhoz vonzódnak):
Eddig feltételeztük, hogy minden molekula azonos mennyiségű energiával rendelkezik, hisz mindegyik azonos szabályok szerint mozoghatott. Ez az adag ráadásul elég kicsi volt ahhoz, hogy ne léphessenek át olyan helyre, amelynél a molekula szomszédszám kisebb. Most a molekuláknak különböző energiát adunk. Ezt először a következőképpen határozzuk meg: az energia-eloszlásra készített modellünk eredménye alapján az energia-eloszlást a Maxwell-Boltzmann eloszlás jellemzi, tehát a kiválasztott molekulának ilyen eloszlás szerint adunk energiát, azaz ez is befolyásolja az elmozdulást. (Tehát így a nagy energiával rendelkezők – a nagy sebességűek – elmozdulhatnak egyébként kedvezőtlennek bizonyuló esetben is.) Legyen algoritmusunkban a molekulák átlagos energiája E! Ez a paraméter határozza meg az aktuális eloszlást! (Minél nagyobb E értéke, annál kevésbé lesznek a kialakult cseppek stabilak, mert E növelésével nő a kilépés valószínűsége is.)
Szimulációs lépés:
(i,j):=véletlen hely(N,M)
(k,l):=véletlen szomszéd(i,j)
Ha T(i,j)=A és T(k,l)=0 és
szomszédszám(k,l)+Maxwell(E)≥szomszédszám(i,j)
akkor Csere((i,j),(k,l))
Eljárás vége.
Ezen kívül egy újabb jelenséget is figyelembe kell vennünk: a párolgást! Meg kell különböztetnünk a folyadék- és a gőzfázist. Ezt döntsük el úgy, hogy a molekula a gőzfázisban van, ha a molekula szomszédai száma kisebb vagy egyenlő, mint gf, egyébként pedig a folyadékfázisban.
Tároljuk külön a folyadékfázisban levő molekulák átlagos energiáját és a gőzfázisban levőkét: az fa és a ga változókban, a molekulák számát pedig az fs és a gs változókban!
Szimulációs lépés:
(i,j):=véletlen hely(N,M)
(k,l):=véletlen szomszéd(i,j)
Ha T(i,j)=A és T(k,l)=0 akkor Elmozdulás(i,j,k,l)
Eljárás vége.
Ha a molekula gőzfázisból folyadékfázisba lép át, vagy fordítva, akkor a molekulaszámokat, illetve az átlagos energiát módosítani kell!
Elmozdulás(i,j,k,l):
Ha szomszédszám(i,j)>gf akkor e:=Maxwell(fa)
különben e:=Maxwell(ga)
Ha szomszédszám(k,l)+e≥szomszédszám(i,j)
akkor ha szomszédszám(i,j)>gf és szomszédszám(k,l)?gf
akkor fa:=(fs*fa-e)/(fs-1); fs:=fs-1
ga:=(gs*ga+e)/(gs+1); gs:=gs+1
különben ha szomszédszám(i,j)≤gf és szomszédszám(k,l)>gf
akkor fa:=(fs*fa+e)/(fs+1); fs:=fs+1
ga:=(gs*ga-e)/(gs-1); gs:=gs-1
Elágazás vége
Csere((i,j),(k,l))
Elágazás vége
Eljárás vége.
A modellt kibővíthetjük még néhány újdonsággal, amivel növelhetjük a bemutatható jelenségek számát! Ezek legyenek a következők:
Ezek után a modell használatakor megfigyelhető, hogy párolgás hatására a folyadék hőmérséklete (azaz az átlagos mozgási energia) csökken,
Készült az "Országos koordinációval a pedagógusképzés megújításáért” című TÁMOP-4.1.2.B.2-13/1-2013-0007 pályázat keretében. (ISBN 978-963-284-631-6) |
A tananyag az ELTESCORM keretrendszerrel készült