You are on page 1of 82

SVEUILITE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAUNARSTVA

DIPLOMSKI RAD br. 1623


VIZUALIZACIJA SIMULACIJE DINAMIKE PLINOVITIH
FLUIDA
Kristina targel

Zagreb, listopad 2006.

SADRAJ:

1. UVOD................................................................................................................................4
1.1. POVIJEST MODELIRANJA FLUIDA........................................................................6
1.2. FLUID OPENITO .....................................................................................................8
2. MATEMATIKI MODELI..............................................................................................10
2.1. POJEDNOSTAVLJENI MATEMATIKI MODELI.................................................12
2.1.1. NESTLAIVI TOK ............................................................................................13
2.1.2. NEVISKOZAN (EULER-OV) TOK ...................................................................14
3.METODE RJEAVANJA JEDNADBI ...........................................................................15
3.1. TO JE CFD? ............................................................................................................15
3.2. NUMERIKE METODE RJEAVANJA .................................................................16
3.3. KOMPONENTE NUMERIKIH METODA.............................................................17
3.4. DISKRETIZACIJA PROSTORA ..............................................................................19
3.4.1. METODA KONANIH RAZLIKA....................................................................19
3.4.2. METODA KONANIH VOLUMENA...............................................................26
3.4.3. METODA KONANIH ELEMENATA .............................................................30
3.5. RJEAVANJE SUSTAVA LINEARNIH JEDNADBI ............................................31
3.5.1. DIREKTNE METODE .......................................................................................31
3.5.1.1. GAUSSOVA ELIMINACIJA ..........................................................................32
3.5.1.2. LU DEKOMPOZICIJA....................................................................................33
3.5.2. ITERATIVNE METODE....................................................................................34
3.5.2.1. TEMELJNI KONCEPT....................................................................................34
3.5.2.2. KONVERGENCIJA.........................................................................................36
3.5.2.3. NEKE OSNOVNE METODE ..........................................................................37
3.6. METODE ZA NESTABILNE PROBLEME - DISKRETIZACIJA VREMENA ........39
3.6.1. METODE MARIRANJA KROZ VRIJEME .....................................................40
3.6.1.1. DVORAZINSKE METODE ............................................................................40
3.6.1.2. PREDIKTOR-KOREKTOR METODE............................................................43
3.6.1.3. METODE KOJE KORISTE VIE TOAKA..................................................44
3.6.1.4. RUNGE-KUTTA METODE....................................................................................46
3.7. SPECIJALNA METODA SEMI-LAGRANGE..........................................................48

3.7.1. SEMI-LAGRANGEOVA METODA ..................................................................48


4. POSTAVLJANJE PROBLEMA.......................................................................................51
4.1. OSNOVNE JEDNADBE.........................................................................................51
4.2. OGRANIAVANJE VRTLONOSTI ......................................................................54
4.2.1. FORMULACIJA METODE................................................................................56
5. RJEAVANJE ZADANOG SUSTAVA...........................................................................58
5.1. DISKRETIZACIJA PROSTORA ..............................................................................58
5.2. GRANINI UVJETI .................................................................................................61
5.3. METODA RJEAVANJA SUSTAVA ......................................................................62
6. ALGORITAM ..................................................................................................................69
6.1.KORACI ALGORITMA ............................................................................................69
6.2. OPIS PROGRAMA ZA NAVEDENI ALGORITAM ................................................70
7. REZULTATI....................................................................................................................79
8. DODATAK A - OBJANJENJA KORITENIH POJMOVA ..........................................85
9. LITERATURA.................................................................................................................88
10. SAETAK......................................................................................................................90
11. ABSTRACT ...................................................................................................................91

1. UVOD
Modeliranje prirodnih fenomena (kao to su dim, vatra, oblaci itd.) je jedan od
najzahtjevnijih i najpopularnijih izazova u raunalnoj grafici. Prirodni fenomeni su popularni
zbog svojeg zanimljivog izgleda i unato tome to nas svakodnevno okruuju i dalje privlae
pozornost i divljenje. Zahtjevnost njihovog modeliranja proizlazi iz njihove kompleksnosti i
sloene dinamike koju je teko matematiki opisati. Ovaj rad se fokusira na jedan od tih
prirodnih fenomena a to je dim, ili openitije na plinovite fluide.
elja ili potreba za modeliranjem plinovitih fluida na raunalu svodi se na dva
osnovna podruja primjene: zabava i istraivanja. S podrujem zabave misli se na specijalne
efekte u filmovima i interaktivnim igrama (Slika 1.1). Danas je teko zamisliti film koji ne
koristi barem jedan simulator fluida. Danas koriteni simulatori su doli do tolike razine
realnosti da je obinom laiku teko primijetiti da se radi o raunalnoj simulaciji. Samo
desetak godina unazad se biljei velik napredak podrujima animacije fluida, to je vidljivo
po filmovima iz tog podruja. Isto tako se biljei procvat animiranog filma, koji se u dananje
vrijeme potpuno svodi na raunalnu animaciju.
Postoji i druga "korisna" primjena simulatora fluida. U industriji su potrebne razne
simulacije strojeva koji su u interakciji s fluidom. Za primjer se moe navesti industrija
automobila, gdje je naravno potrebno simulirati rad motora. U to ulaze razni fluidi, od vode,
plinova, do goriva. Svaki od tih simulatora mora biti izrazito toan.
U idealnom sluaju, dobar model dima na raunalu trebao bi biti jednostavan za
upotrebu i davati visoko realistine prikaze u stvarnom vremenu. Meutim, takve zahtjeve je
teko postii dananjim raunalnim resursima. Najee je potrebno raditi kompromise
izmeu tonosti i brzine simulacije. to je za koriteni simulator vanije proizlazi iz podruja
primjene. Ako je potreban visoko realistini prikaz kao na primjer u filmskoj industriji,
koristiti e se sporiji simulatori. Ako se radi o interaktivnim igrama koje se moraju odvijati u
stvarnom vremenu (engl. real-time) , tonost prikaza vie nee biti bitna. Bitno e biti samo
da je simulator to bri tj. da se vri to manje izrauna po jedinici vremena. Zadnji primjer je
simulacija plinova u industriji. U tom sluaju najvanija je tonost. Meutim bitno je i da taj
proces ne traje predugo te e za to podruje biti potrebna to bolja verzija simulatora.
Zbog sve veeg zanimanja za podruje raunalne simulacije fluida postoji podruje
koje se bavi samo tim problemima - raunalna dinamika fluida (engl. computational fluid
dynamics - CFD). To novo podruje posveeno je iskljuivo razvijanjem numerikih metoda
4

za raunanje dinamike fluida pomou raunala. Razvijanje tog podruja je tek poelo. Zasad
su postignuti razni modeli, meutim mnogi modeli pate ili od presporih algoritama ili od
prevelike numerike disipacije to je izazov za daljnje razvijanje novih, poboljanih modela.
U ovom radu opisana je dinamika plinovitih fluida zajedno s pozadinskim
matematikim modelima, te osnovne numerike metode koritene pri rjeavanju tih
matematikih modela. Poseban naglasak je na model temeljen na radovima Stama [2] i Stama,
Fedkiwa i Jensena [1] koji predstavlja visoko realistian model plinovitih fluida koji je
stabilan za svaki vremenski korak i moe se odvijati u stvarnom vremenu. Za taj model
postavljen je matematiki model i priloena metoda rjeavanja i implementacija algoritma u
programskom jeziku C++ sa grafikim standardom OpenGL.

a.

b.

c.
Slika 1.1. Primjena simulatora fluida na filmu Dan poslije sutra (a. i b.) i animiranom filmu Ledeno doba 2 (c.)

1.1. POVIJEST MODELIRANJA FLUIDA


Modeliranje dima i ostalih plinovitih fenomena poprima veliku panju u raunalnoj
grafici tijekom proteklih 20 godina. Raniji su modeli se fokusirali na pojedinane fenomene i
animaciju gustoe dima direktno bez modeliranja njegove brzine. [6, 8, 4, 9]. Dodatni detalji
su pridodani koristei teksture krutih tijela ije bi parametre mijenjali tijekom vremena.
Naknadno su koritena nasumina polja brzina temeljena na Kolmogoroff-ovom spektru, za
modeliranje kompleksnih gibanja karakteristinih za dim [10]. Zajednika injenica za sve
rane modele je bila da se nisu temeljili na dinamici fluida. Kreiranje uvjerljive simulacije
dinamike fluida je vremenski prezahtjevan zadatak koji je bio ostavljen animatoru.
Mnogo prirodniji nain za modeliranje kretanja dima je direktno simuliranje jednadbi
dinamike fluida. Kajiya i Von Herzen su prvi napravili taj korak u raunalnoj grafici [7].
Naalost, raunalna snaga dostupna u to vrijeme (1984) je doputala simulaciju jedino na
poprilino grubim mreama. Izuzev nekoliko modela specificiranih u dvije dimenzije [13,5],
nikakav napredak nije uinjen na tom podruju do rada Fostera i Metaxasa [6] 1996. godine.
Njihova simulacija koristi relativno grube mree, ali daju lijepe vrtlone prikaze gibanja dima
u tri dimenzije. Zbog toga to njihov model koristi eksplicitnu integracijsku shemu, simulacija
je stabilna samo ako je vremenski korak dovoljno malen. To ini simulaciju relativno sporom,
pogotovo kada je brzina fluida velika bilo gdje u domeni interesa. Za izbjegavanje ovog
problema Stam je uveo model koji je bezuvjetno stabilan i prema tome simulacija moe biti
izvedena pri bilo kojim brzinama [2]. To je postignuto koristei kombinaciju semi-Lagrangian
sheme za rjeavanje problema horizontalnog strujanja u jednadbama dinamike fluida i
implicitnih solvera. Zbog koritenja integracijskih shema prvog reda, simulacija pati zbog
prevelike numerike disipacije. Iako sveukupno gibanje izgleda kao gibanje fluida, vrtlozi
malih razmjera tipini za gibanje dima nestaju prebrzo.
Prije par godina, Yngve predlae rjeavanje stlaivih verzija jednadbi toka fluida
prema modelu eksplozija [14]. Stlaive inaice jednadbi toka fluida su korisne za kreiranje
potresnih valova i ostalih stlaivih fenomena, meutim takav model uvodi vrlo strogo
ogranienje vremenskog koraka povezanog s akustinim valovima. U veini CFD modela
izbjegava se koritenje tih strogih uvjeta koristei nestlaive inaice jednadbi za tok fluida
gdje god je to mogue. Iz tog razloga se ovaj rad ne temelji na stlaivim inaicama jednadbi.
Spajanjem Stamove metode stabilnih fluida i uvoenjem novih metoda za izbjegavanje
numerike disipacije nastaje rad Fedkiwa, Stama i Jensena. Taj model koristi simulator
temeljen na Stamovom radu koji koristi semi-Lagranigan integracijsku shemu te solver
6

Poissonove jednadbe. To garantira stabilnost kroz bilo kakav vremenski korak. Za


izbjegavanje numerike disipacije koje taj model nosi sa sobom, koristi se metoda poznata
kao "ograniavanje vrtlonosti" (engl. voticity confinement) [12].Glavna ideja metode je
vraanje energije izgubljene zbog numerike disipacije natrag u fluid koristei izraz za silu.
Sila je dizajnirana specijalno za poveanje vrtlonosti toka. Vizualno ta metoda odrava dim
ivim kroz vrijeme simulacije. Koriteni izraz za silu je potpuno konzistentan sa Eulerov-im
jednadbama (koje simulator koristi) u smislu da nestaje kad se broj mrenih elija poveava.
U CFD-u se navedena tehnika uvodi za numeriki izraun kompleksnih turbulentnih tokova
fluida okolo helikoptera gdje nije mogue dodati dovoljno mrenih elija da bi polje toka bilo
tono rijeeno. Izraunavanje sile dodaje samo mali raunski overhead na ve navedenu
Stam-ovu verziju simulatora bez metode ograniavanja vrtlonosti. Ovakav model ostaje
stabilan dokle god je magnituda izraza za silu ispod odreene granice.
Semi-Lagrangian sheme su vrlo popularne u znanstvenim ustanovama koje se bave
atmosferskim promjenama (pojavama) za modeliranje tokova velikih razmjera kojima
dominira konstantno strujanje gdje su poeljni veliki vremenski koraci [11]. Takav pristup je
specijalno efektivan za modele gdje se gustoa i temperatura pomiu kroz polje brzine.
Uz sva navedena obiljeja ovaj model moe rjeavati granine uvjete unutar raunalne
domene. Zbog toga je mogue simulirati dim kako obilazi oko raznih objekata.

1.2. FLUID OPENITO


Fluidi su dio stvarnosti koja nas okruuje, u formi vode koju pijemo, zraka kojeg
udiemo, u formi jutarnje kave, dima, sve do velikih prirodnih fenomena kao to su rijeke,
mora, oblaci itd. Svaki od tih fenomena pokazuju fascinantne oblike ponaanja. Svi smo
izgradili odreeno intuitivno razumijevanje ponaanja fluida, meutim, jo uvijek postoje
posebni oblici ponaanja koje veina ljudi ne moe pojmiti, kao na primjer let aviona. Svi
ljudi su svjesni toga da jedan veliki, teki objekt, kao to je avion, moe letjeti, meutim samo
mali dio ljudi razumije kako.
Poznavanje dinamike fluida je postao jedan od najveih izazova fizike, primijenjene
matematike i inenjerstva kroz zadnjih 100 godina. Dinamika fluida je postala klju
razumijevanja nekih od najvanijih fenomena u fizikalnom svijetu: oceanskih struja i
atmosferskih promjena, promjena na vanjskim slojevima Sunca, eksplozija supernova,
vrtloenja plinova u galaksijama i mnogih drugih fenomena.
Kao i kod mnogih fascinantnih pojava, razumijevanje ponaanja fluida nije lako.
Poblie, u dinamici fluida postoje mnogi izrazi i matematike metode koje su veini ljudi
nepoznate. Fluidi su takoer fascinantni zbog toga jer je ponekad njihovo ponaanje
nepredvidivo, to znai velik trud za njihovo matematiko predstavljanje.
Fluidi su supstance ije molekularne strukture ne pruaju otpor vanjskim pominim
silama: ak i najmanja sila uzrokuje deformaciju estica fluida. Krute stvari mijenjaju svoj
oblik i deformiraju se dok se ne postigne ravnotea izmeu primijenjene vanjske sile i
unutranjih sila (ili ako doe do pucanja materijala). S druge strane, fluidi e se deformirati
kontinuirano i mijenjati oblik pod djelovanjem sile. To je fundamentalna definicija fluida.
Iako postoje bitne razlike izmeu tekuina i plinova, oba tipa fluida se ponaaju po
istim zakonima gibanja. Tok fluida je uzrokovan djelovanjem vanjskih sila. Uobiajene
pokretake sile ukljuuju razlike u tlaku, gravitaciju, smicanje, rotaciju i napetost povrine.
One mogu biti klasificirane kao povrinske sile (smicanje, tlak) i sile koje djeluju na cijelo
tijelo ( gravitacija, sile rotacije).
Dok se svi fluidi ponaaju slino pod djelovanjem sile, njihova makroskopska
obiljeja su uvelike razliita. Najvanija svojstva fluida su gustoa i viskoznost. Ostala
svojstva kao Prandtl-ov broj (dodatak A.3), specifina toplina i povrinska napetost utjeu na
tok fluida samo pod odreenim uvjetima tj. kada dolazi do velikih temperaturnih razlika.

Obiljeja fluida su funkcije ostalih termodinamikih varijabli (npr. temperatura i tlaka) koje se
dobivaju laboratorijskim mjerenjima.
Brzina toka fluida utjee na njegova svojstva na razne naine. Pri dovoljno malim
brzinama, inercija fluida moe biti ignorirana i tada imamo "puzajui tok". Kako se brzina
poveava, iznos inercije postaje relevantan i putanja toka je glatka trajektorija za svaku
esticu fluida. Za tok se tada kae da je laminaran. Daljnje poveanje brzine moe voditi do
nestabilnosti, koja dovodi do sve vie nepredvidivog oblika toka koji se naziva turbulentnim.
Proces prelaenja fluida izmeu ta dva oblika je posebno vano podruje samo za sebe.
Postoji jo jedan parametar koji utjee na ponaanje fluida. Omjer brzine toka i brzine
zvuka u sredstvu (Mach broj-dodatak A.2) odreuje da li izmjena kinetike energije gibanja i
unutarnji stupnjevi slobode dolaze do izraaja. Za male vrijednosti Mach broja, Ma < 0.3, tok
se moe smatrati nestlaivim, inae stlaivim. Ako je vrijednost Ma <1, brzina toka fluida je
ispod razine zvuka (engl. subsonics), ako je vrijednost Ma>1, tada je brzina fluida iznad
zvuka (engl. supersonic) i mogui su udarni valovi. I konano kada je Ma>5 tok moe
proizvesti dovoljno velike temperature da promjeni kemijsku prirodu fluida (engl. hypersonic
fluids). Ove razlike utjeu na matematiku prirodu problema pa tako i na metodu rjeavanja
problema.
Jedno od bitnih obiljeja fluida je viskoznost. Viskoznost je pojava unutarnjeg trenja u
fluidima. Najbolji nain da se opie to svojstvo je primjerom. Silu predstavlja uski kruti
predmet (npr. no) koji se pomie kroz fluid u istoj ravnini. Za razliku od krutih tijela, fluid
"proputa" predmet kroz sebe, ali uz odreenu koliinu otpora. Svaki fluid daje drugaiji
iznos otpora. Taj otpor fluida nazivamo viskoznost. Za mnoge modele viskoznost moe biti
zanemarena, tj. pretpostavlja se da joj je vrijednost jednaka nuli. U tom sluaju fluid se
opisuje kao ne viskozan. Pretpostavka o ne viskoznim fluidima u raunalnoj dinamici fluida je
esta. Treba naglasiti da su granini uvjeti razliiti za viskozne i ne viskozne fluide (jer je
utjecaj viskoznosti bitan samo u blizini prepreka).
Prouavanje dinamike fluida nije tako jednostavno jer je fluid rairen po prostoru, i
kada se giba (npr. zbog pomicanja granica oko fluida), sile su povezane s unutranjosti fluida
utjecajem fluida na samog sebe. Unato tome, temelj svih ponaanja fluida su empiriki
verificirani fiziki zakoni: zakon o ouvanju mase, zakon o ouvanju energija i linearnog
momenta, kombinirani za zakonima termodinamike.

2. MATEMATIKI MODELI
S matematikog gledita, prouavanje dinamike fluida se svodi na izraze koji
ukljuuju skalarna (masa, gustoa i tlak fluida) i vektorska polja (brzina toka fluida)
definirana na Euklidskom prostoru 3 , i njihove meusobne veze. S obzirom da su veze
meu njima preteno diferencijalne prirode, zadire se u polje matematike koje se naziva
vektorski raun (engl. vector calculus). Za bolje razumijevanje jednadbi toka fluida prvo e
se razjasniti neke osnovne matematike operacije i termini koriteni za izraun.
Prvo e se navesti vektorski analitiki diferencijalni operatori u desno orijentiranom
Kartezijskom koordinatnom sustavu sa bazom u 3 , (i, j, k) sa koordinatama (x, y, z), gdje
vrijedi

1= i = j = k .

(2.1)

Ako na domeni D 3 definiramo kao diferencijabilnu skalarnu funkciju pozicije


r = (x, y, z)T, i A=(Ax, Ay, Az)T kao diferencijablinu vektorsku funkciju od r, tada definiramo
vektorsko analitiki diferencijalni operator i njegovo djelovanje na skalarna i vektorska polja:
HAMILTONOV OPERATOR

i+
j+ k
x y
z

(2.2)

Hamiltonov operator se ponaa kao vektor i kao operator parcijalnog deriviranja u smjeru
baznih vektora. Taj operator djeluje na funkcije koje se nalaze iza (desno) njega i to na
skalarna polja, te na vektorska polja na dva naina.
GRADIJENT

i+
j+
k
x
y
z

(2.3)

10

Gradijent je primjena Hamiltonovog operatora na skalar i kao rezultat se dobije


vektor.
DIVERGENCIJA

A =

Ax Ay Az
+
+
x
y
z

(2.4)

Divergencija je skalarni umnoak Hamiltonovog operatora i vektorskog polja i kao


rezultat se dobije skalarna vrijednost.
ROTOR

A Ay Ax Az Ay Ax
A = z

j+

i +
k
z z
x x
y
y

(2.5)

Rotor je vektorski umnoak Hamiltonovog operatora i vektorskog polja i njime se


dobiva vektorska vrijednost.
LAPLACEOV OPERATOR

( ) =

2 2 2
+
+
x 2 y 2 z 2

(2.6)

Laplaceov operator je u biti Hamiltonov operator skalarno pomnoen sa samim


sobom.
Sada su opisani svi operatori koji se koriste u matematikim modelima toka fluida i
moe se krenuti na postavljanje matematikog modela.

11

2.1. POJEDNOSTAVLJENI MATEMATIKI MODELI


Navier-Stokesove jednadbe, nazvane po Claude-Luis Navieru i George Gabriel
Stokesu, su sustav jednadbi koji opisuju gibanje estica fluida kao to su tekuine i plinovi.
Te jednadbe se temelje na pretpostavci da promjene u momentu (akceleraciji) estica fluida
su jednostavno rezultati promjena u tlaku i disipativnim viskoznim silama (unutranje trenje
fluida) koje se odvijaju unutar fluida.
Jednadbe ouvanja mase i momenta su mnogo kompleksnije nego se ine. Jednadbe
su nelinearne, meusobno povezane i teko rjeive. Teko je dokazati postojeim
matematikim alatima da postoji jedinstveno rjeenje za partikularne granine uvijete.
Iskustvo govori da Navier-Stokesove jednadbe opisuju tok Newtonovog fluida (tok fluida
koji se ponaa po Newtonovim zakonima ouvanja mase i momenta) ispravno. Samo za mali
broj sluajeva, preteno potpuno razvijenih tokova u jednostavnim geometrijama (npr. u
cijevima, izmeu paralelnih prepreka), postoji jedinstveno analitiko rjeenje NavierStokesovih jednadbi. Ti specijalni sluajevi tokova su bitni za prouavanje osnova dinamike
fluida, ali njihova praktina upotreba (relevantnost) je ograniena.
U svim sluajevima kada je rjeenje mogue, mnogi izrazi u jednadbi su jednaki
nuli. Za ostale tokove neki od izraza su nebitni i moemo ih zanemariti i tako pojednostaviti
navedene jednadbe. Treba imati na umu da takvo pojednostavljenje donosi i pogreku. Osim
toga, pojednostavljenje donosi i mnogo manju cijenu izrauna nego to je sluaj za
izraunavanje potpunih jednadbi, te ta injenica opravdava potrebu za pojednostavljenjem. U
veini sluajeva, ak i pojednostavljene jednadbe se ne mogu rijeiti analitiki, te se koriste
numerike metode.
Kada se govori o Navier-Stokesovim jednadbama, obino se misli na spomenute
pojednostavljene matematike verzije koje se koriste za specijalne sluajeve ponaanja fluida.
Tako i u ovom tekstu se nee ulaziti podrobnije u njihov izvod i analizu, ve e se koristiti ve
pojednostavljenje verzije.
U nastavku e biti navedena dva bitna pojednostavljenja na kojima se temelje
numerike metode za izraun toka fluida: nestlaivi tok i neviskozni Eulerov tok.

12

2.1.1. NESTLAIVI TOK


U mnogim sluajevima gustoa fluida se moe pretpostaviti konstantnom. To je
ispravan izraz ne samo za tokove tekuina, ija stlaivost zbilja moe biti zanemariva, nego i
za plinove iji Mach broj ima vrijednost manju od 0.3. Za takve tokove kaemo da su
nestlaivi. Ako je tok uz to i izotermian, viskoznost fluida je takoer konstantna. Za takav
oblik toka fluida moemo koristiti pojednostavljene Navier-Stokesove jednadbe.
Fluid ija gustoa i temperatura priblino su konstantne opisuje se vektorskim poljem
brzine u i poljem tlakova p. Navedene vrijednosti openito variraju u vremenu i prostoru i
ovise o granicama koje okruuju fluid. Ako se pretpostavi da su brzina i tlak poznati za svaku
toku fluida u nekom inicijalnom vremenu t=0, tada moemo tok predstaviti jednadbama:
u = 0
u
1
= (u )u p + 2 u + f

(2.7)

(2.8)

gdje su:
- kinematika viskoznost fluida,
- gustoa fluida i

f - vanjske sile koje djeluju na fluid.

Kao to se moe uoiti izraz za tok fluida se sastoji od dvije jednadbe. Jednadba
(2.7) je izvedenica zakona o ouvanju mase za nestlaive fluide. Iz jednadbe je vidljivo da je
divergencija vektora brzine toka jednaka nuli tj. koliina fluida (jedinica mase) koji ue u
neko odreeno podruje je jednaka koliini fluida koja izae iz tog podruja. Druga jednadba
(2.8) je malo kompleksnijeg oblika, ali je isto tako samo izvedenica zakona o ouvanju
momenta ili energije. Iz te jednadbe se moe oitati da je promjena brzine gibanja je jednaka
sumi etiriju izraza (redom s lijeva na desno): advekciji fluida, promjeni tlaka, difuziji i
vanjskim silama koji djeluju na promatrani segment fluida.
1. Izraz za advekciju (u )u predstavlja prijenos nekog svojstva fluida (u ovom sluaju
brzine) samo gibanjem mase. Poblie objanjeno, taj izraz osigurava da e se svaki
mali djeli toka ,"ubaen" u glavni tok, gibati u smjeru gradijenta vektora brzine.

13

2. Idui izraz je izraz za razliku tlaka koji predstavlja injenicu da se fluid uvijek giba iz
podruja vieg tlaka u podruje nieg.
3. Izraz za difuziju v 2 u , uz konstantni iznos viskoznosti, opisuje koliko se brzo poniti
razlika u brzinama unutar fluida koji okruuje zadanu toku. Uz vei iznos
viskoznosti, brzine se bre ponite.
4. Zadnji izraz je izraz za vanjsku silu. Ta sila moe biti bilo koji vanjski utjecaj. U nju
ubrajamo gravitacijsku silu, silu uzgona te bilo koje sile definirane od strane korisnika.
U ovom sluaju simulatora fluida, uz te dvije vrste sila, koristit e se i trei izraz koji
e predstavljati silu koja obnavlja vrtloenje dima.

Osim

pretpostavke

nestlaivosti

fluida,

mogue

je

uiniti

jo

jedno

pojednostavljenje: pretpostaviti neviskoznost fluida i tako definirati jednadbe za neviskozan


ili Eulerov tok.

2.1.2. NEVISKOZAN (EULER-OV) TOK


U tokovima koji su daleko od krutog stanja, efekt viskoznosti je obino vrlo malen.
Ako su viskozni efekti sveukupno zanemarivi, Navier-Stokesove jednadbe se svode na
Eulerove. Jednadba kontinuiteta je identina jednadbi (2.7), dok se jednadba ouvanja
momenta svodi na:
u
1
= (u )u p + f
t

(2.9)

S obzirom da se fluid smatra neviskoznim, on se ne moe priljubiti uz prepreke i


mogue e je da fluid sklizne niz krute granice. Eulerove jednadbe se obino koriste za
prouavanje stlaivih tokova pri velikom iznosu Mach broja. Na velikim brzinama, iznos
Reynoldov broja je vrlo visok te efekti viskoznosti i turbulencije su vrlo bitni samo u malim
podrujima u blizini prepreka. Takvi tokovi su najee jako dobro predvieni Eulerovim
jednadbama.
Unato tome to Eulerove jednadbe nisu jednostavne za raunanje, injenica da nije
potrebno raunati niti jedan granini sloj uz prepreke omoguava koritenje grubljih mrea.
To rezultira manjom koliinom raunanja po vremenskom koraku.
14

3.METODE RJEAVANJA JEDNADBI


3.1. TO JE CFD?
Tok i sline pojave se mogu opisati parcijalno diferencijalnim jednadbama, koja se u
veini sluajeva ne mogu rijeiti analitiki. Kao to je ve navedeno, CFD je polje znanosti
koje se bavi prouavanjem rjeavanja tih jednadbi numerikim metodama na raunalu.
Da bi koristili numerike metode rjeavanja, potrebno je koristiti diskretizacijske metode koje
aproksimiraju diferencijalne jednadbe kao sustav algebarskih jednadbi, koje se kao takve
mogu rijeiti na raunalu. Aproksimacije su primjenjive na maloj domeni u prostoru i
vremenu tako da numerika rjeenja daju rezultate u diskretnim lokacijama u vremenu i
prostoru. Unato tome to razina tonosti eksperimentalnih podataka ovisi o kvaliteti
koritenih alata, tonost numerikih rjeenja ovise o kvaliteti koritene diskretizacije.
Unutar velikog opsega raunalne dinamike fluida su aktivnosti koje pokrivaju od
automatizacije dobro postavljenih inenjerskih dizajnerskih metoda do koritenja detaljnih
rjeenja Navier-Stokesovih jednadbi kao zamjenu za eksperimentalno prouavanje prirode
kompleksnih tokova. Zbog tako velikog opsega zanimanja CFD pronalazi mjesto u mnogim
podrujima znanosti i rada. Meutim interes ovog rada lei u malom dijelu CFD-a, a to su
numerike metode rjeavanja postavljenih jednadbi. U daljnjem e tekstu prvo biti navedene
osnovne komponente i svojstva numerikih metoda, zatim e biti objanjena metoda koja je
koritena za rjeavanje postavljenog modela.

15

3.2. NUMERIKE METODE RJEAVANJA


Jednadbe koje predstavljaju dinamiku toka fluida su poznate vie od stoljea, ali su
rjeive samo za ogranien broj specifinih sluajeva. Ti specijalni poznati sluajevi su od
velike pomoi pri razumijevanju problematike toka ali su rijetko korisne za direktnu upotrebu
u inenjerskoj analizi i dizajnu. Zbog toga su inenjeri tradicionalno bili prisiljeni koristiti
neke druge metode pri rjeavanju takvih jednadbi.
Kao to je ve spomenuto, najee se koriste pojednostavljene jednadbe, koje su
obino temeljene na kombinaciji aproksimacijske i dimenzijske analize, meutim empiriki
podaci, kao ulazi u sustav, su svejedno bili prijeko potrebni za dobivanje rjeenja.
Zbog sloenosti

jednadbi

nemogunosti dobivanja empirikih

podataka

eksperimentima za veinu sluajeva, poele su se razvijati numerike metode rjeavanja.


Trebalo je malo mate da bi se uvidjelo da koritenjem raunala mogue je prouavati tok
fluida lake i mnogo uinkovitije. Jednom kada je otkrivena mo raunala, interes za
numerike metode naglo je porastao. Rjeavanje jednadbi dinamike fluida na raunalu je
postalo toliko bitno da trenutno je time okupirana treina istraivaa koji rade na tom
podruju, i proporcija jo uvijek raste. To podruje je poznato kao raunalna dinamika
fluida (engl. computational fluid dynamics - CFD).

16

3.3. KOMPONENTE NUMERIKIH METODA


MATEMATIKI MODEL

Matematiki model je postavljanje jednadbi uz granine uvjete koji dobro opisuju zadani
problem. Taj korak je ve uinjen u poglavlju 2.1.2.
METODA DISKRETIZACIJE

Nakon odreivanja matematikog modela potrebno je odabrati odgovarajuu metodu


diskretizacije tj. metodu aproksimiranja jednadbi kao sustav algebarskih jednadbi za
varijable na podruju diskretnih vrijednosti u vremenu i prostoru. Postoje mnogi pristupi
diskretizaciji, najvaniji od njih su: metoda konanih razlika (engl. finite difference -FD),
metoda konanih volumena (engl. finite volume -FV) i metoda konanih elemenata (engl.
finite element -FE). Sve metode daju jednaka rjeenja za dovoljno "fine" mree. Meutim,

pojedine metode su prikladnije za pojedine klase problema od ostalih.


KOORDINATE I SUSTAV BAZINIH VEKTORA

Ovisno o koritenom koordinatnom sustavu i koritenim bazinim vektorima, proizlazi kako


e se postaviti jednadbe. Koordinatni sustav moe biti Kartezijski, cilindrian, sferni itd.

Odabir ovisi o cilju i obliku toka i utjee na izbor metode diskretizacije i odabira tipa mree.
Najee koriten sustav je Kartezijski sustav.
NUMERIKA MREA

Diskretne lokacije na kojima se raunaju vrijednosti varijabli su definirane numerikom


mreom koja je u biti diskretna reprezentacija geometrijske domene na kojoj se rjeava
problem.

17

OGRANIENE (KONANE) APROKSIMACIJE

Pratei odabir tipa numerike mree, potrebno je i odabrati aproksimaciju koja e se koristiti u
diskretizacijskom procesu. U metodama konanih razlika moraju biti odabrane metode
aproksimacije derivacija u tokama mree. Za metode konanih volumena potrebno je
odabrati metodu aproksimacije povrinskih i volumnih integrala. I na kraju, za metodu
konanih elemenata potrebno je odabrati oblik funkcija (elemenata) i njihove teinske
funkcije. Postoje mnoge mogunosti odabira tih metoda. Pri odabiru se mora imati na umu
kompromis izmeu jednostavnosti, lakoj implementaciji, tonosti i raunarskoj efikasnosti.
METODA RJEAVANJA

Diskretizacija povlai velik sustav nelinearnih algebarskih jednadbi. Metoda rjeavanja ovisi
o postavljenom problemu. Za nestabilne sustave koritene su metode temeljene na onima koje
se koriste za probleme inicijalne vrijednosti za uobiajene diferencijalne jednadbe - metoda
napredovanja kroz vrijeme (engl. marching in time). Stabilni tokovi se obino rjeavaju
pseudo-kretanjem kroz vrijeme (engl. pseudo-time marching) ili ekvivalentnom iteracijskom
shemom.
KRITERIJI KONVERGENCIJE

Na kraju, potrebno je postaviti uvjete konvergencije za iteracijske metode. Odreivanje


zaustavljanja iteracijskog procesa je vrlo vana komponenta, i za tonost postupka i za
efikasnost toke pogleda.

18

3.4. DISKRETIZACIJA PROSTORA


Matematiki model za rjeavanje toka fluida predstavlja sustav diferencijalnih
jednadbi. Nakon to je model postavljen, potrebno ga je prilagoditi rjeavanju na raunalu, tj.
potrebno je izabrati prikladnu metodu za diskretiziranje vremena i prostora. Najvaniji
pristupi diskretizacije prostora su metoda konanih razlika (engl. finite diference -FD),
metoda konanih volumena (engl. finite volume -FV) i metoda konanih elemenata (engl.
finite element -FE). Bitna obiljeja navedenih metoda biti e opisana u daljnjem tekstu. Osim

ovih metoda postoje i druge metode koje se rijetko koriste i najee su ograniene na
specijalne sluajeve problema. Neke od tih metoda su sheme spektra, metode graninih
elemenata, celularni automati i druge.
Svaka od metoda daje isto rjeenje ako je mrea dovoljno fino podijeljena. Unato toj
injenici, neke metode su prikladnije za neke klase problema od ostalih i odabir najee ovisi

o preferiranju inenjera koji rjeava problem.

3.4.1. METODA KONANIH RAZLIKA

Slika 3.1. Primjer podjele prostora za metodu konanih razlika, vorovi se nalaze na sjecitima

Metoda konanih razlika najstarija je metoda za numeriko rjeavanje diferencijalnih


jednadbi koju je predstavio Euler u 18. stoljeu. To je ujedno i najjednostavnija metoda ako
se koristi jednostavna geometrija. U principu, metoda konanih razlika se moe primijeniti na
bilo koji tip mrea. Meutim, najee se koriste strukturalne mree kojima su linije
poravnate sa linijama koordinatnog sustava. Najee se kree od jednadbi ouvanja u
diferencijalnim oblicima koje je potrebno diskretizirati. Domena rjeenja se sastoji od mree
(Slika 3.1.). Svaki presjek predstavlja jedan vor kojeg unikatno predstavlja set indikatora, za

19

2D prostor (i ,j), za 3D prostor (i, j, k). Na svakom voru mree aproksimira se polazna
diferencijalna jednadba tako da se parcijalne derivacije u jednadbi zamjene sa
aproksimacijskim izrazima u tekuem vornom mjestu. To rezultira jednom algebarskom
jednadbom po voru mree, u kojoj su nepoznanice vrijednosti varijabli tog i odreenog
broja susjednih vorova. Naravno, broj jednadbi i broj nepoznanica moraju biti jednaki. Na
graninim vorovima gdje su ponuene vrijednosti varijabli (Drichletovi uvjeti) jednadbe
nisu potrebne. Kada se koriste granini uvjeti koji sadre derivacije (Neumannovi uvjeti), oni
se moraju diskretizirati i pridruiti ostalim jednadbama u sustavu.
Za raunanje jednadbi u vorovima potrebne su nam aproksimacije derivacija.
Najee koritene metode za aproksimacije derivacija su aproksimacija pomou Taylorovog
razvoja u red i aproksimacija polinomom (engl. polinomical fitting) . Kada je potrebno, te
metode se takoer koriste za odreivanje vrijednosti varijabli na lokacijama koje su izvan
mrenih vorova ( interpolacija).
Najea aproksimacija derivacije u metodi konanih razlika temelji se na Taylorovom
razvoju u red. Sve aproksimacije biti e izvedene za komponentu brzine u smjeru x osi (u). Za
komponentu u y smjeru (v) izvod je analogan.
Na primjer, ako je ui,j oznaava x komponentu brzine u toki (i, j), tada brzina ui+1,j u
toki (i+1, j) se moe predstaviti Taylorovim razvojem u red oko toke (i, j):

2 u (x) 2 3u (x) 3
u
u i +1, j = ui , j + x + 2
+ 3
+ ...
x i , j
x i , j 2
x i , j 6

(3.1)

Navedena jednadba je matematiki egzaktan izraz za ui+1,j, ako je broj lanova beskonaan i
konvergira, te t 0. Iz toga slijedi:

ui +1, j ui , j 2 u (x) 2 3u (x) 3


u
2
+ 3
+ ...
=
x i, j 2
x i , j 14
x i , j 6
2x43 14
4444424444443
(1)

(3.2)

(2)

U tom izrazu (1) je aproksimacija prve derivacije konanim razlikama:

ui +1, j ui , j
u

x
x i , j

(3.3)

20

Ostatak izraza (2), (engl. truncation error), predstavlja izraz koji se zanemaruje pri
aproksimaciji. U jednadbi (3.2), izraz najnieg reda u jednadbi za pogreku ukljuuje prvu
potenciju x. Iz toga slijedi da je izraz za konane razlike (3.3) prvog reda tonosti i toniji
zapis je:

ui +1, j ui , j
u
+ O(x)
=
x
x i , j

(3.4)

U gore navedenoj jednadbi O(x) je formalna matematika notacija koja predstavlja izraz
reda x. Zbog raunanja derivacije pomou idueg lana u nizu ui+1,j, tj. uzimanja podataka
koji su postavljeni desno od toke (i, j), ova metoda se naziva prva derivacija prvog reda s
korakom unaprijed (engl. first-order forward difference ). Nain dobivanja te aproksimacije
se moe opisati i grafiki (Slika 3.2).

Slika 3.2. Dobivanje aproksimacije derivacije prvog reda s korakom unaprijed

Analogno tome, iz razvoja Taylorovog reda za element ui-1,j ( jednadba br. 3.5) moe se
izvesti i prva derivacija prvog reda s korakom unazad (engl. first-order backward (rearward)
difference):

2 u (x) 2 3u x) 3
u
u i 1, j = ui , j + (x) + 2
+ 3
+ ...
2
x i , j
x i , j
x i , j 6

(3.5)

u i , j ui 1, j
u
+ O ( x )
=
x
x i , j

(3.6)

21

Slika 3.3. Dobivanje aproksimacije derivacije prvog reda sa korakom unazad

U mnogim aplikacijama u podruju raunalne dinamike fluida, tonost aproksimacija


prvog reda nije dovoljna. Za konstruiranje kvocijenta konanih razlika drugog reda tonosti
potrebno je samo oduzeti jednadbe (3.5) od (3.1) :

u i+1, j ui 1, j
u
+ O (x) 2
=
2x
x i , j

(3.7)

Slika 3.4. Dobivanje aproksimacije prve derivacije drugog reda

Informacija koritena za dobivanje kvocijenta u jednadbi (3.7) dolazi sa obje strane


od promatrane mrene toke (i, j) kao to je vidljivo na slici, tj. koriste se lanovi ui+1,j i ui-1,j.
Tako se dobiva greka aproksimacije drugog reda tonosti koja je funkcija od (x)2. Zbog
toga se jednadba (3.7.) naziva prva centralna derivacija drugog reda (engl. second- order
central difference).
Sve do sad navedene jednadbe u ovom poglavlju predstavljaju kvocijente konanih
razlika prvog reda koje predstavljaju prve parcijalne derivacije. Promatrajui Eulerove
jednadbe, prva parcijalna derivacija je sve to je potrebno za izraun. Meutim, za viskozne
tokove koji se ponaaju po Navier-Stokesovim jednadbama (viskozni tokovi) potrebno je
22

aproksimirati i drugu parcijalnu derivaciju. Sumiranjem Taylorovih razvoja (3.1) i (3.5)


dobiva se:

2u
4 u (x) 4
u i +1, j + ui 1, j = 2u i , j + 2 (x) 2 + 4
+ ...
x i , j
x i , j 12

(3.8)

Iz toga se moe izvesti izraz za drugu parcijalnu derivaciju:

u
2u i , j + u i 1, j
2u
2 = i +1, j
+ O(x) 2
2
(x)
x i , j

(3.9)

Slika 3.5. Dobivanje aproksimacije druge derivacije drugog reda

Iz formule je vidljivo da je ovo centralni diferencijal drugog reda tonosti. Osim derivacija po
zasebnim komponentama potrebna nam je i mjeovita druga derivacija. Ona se jednostavno
dobiva deriviranjem Taylorovog reda (3.1) i (3.5) te njihovim oduzimanjem. Iz dobivenog
izraza, daljnjim sreivanjem lako je dobiti izraz koji predstavlja derivaciju po x i y
komponenti:

u
u
u
+u
2u

= i +1, j +1 i +1, j 1 i 1, j +1 i 1, j 1 + O (x) 2 , (y ) 2


4xy
xy i , j

(3.10)

To je izraz za drugu mjeovitu centralnu derivaciju drugog reda tonosti.

23

Slika 3.6. Dobivanje aproksimacije mjeovite derivacije

Slika 3.7. Geometrijska interpretacija svih aproksimacija parcijalnih derivacija, usporedba

Usporedbu svih triju aproksimacija prvih parcijalnih derivacija mogue je vidjeti na


slici 3.7. Iz takvog geometrijskog prikaza mogue je zakljuiti koje su aproksimacije tonije.
Kao to je poznato, derivacija u toki predstavlja nagib tangente na krivulju u toj toki (Na
slici puni pravac oznaen sa Exact). Kao to je vidljivo aproksimacije kroz samo lijevu ili
desnu susjednu toku nisu dovoljno tone, tj. njihova tonost uvelike ovisi o finoi podjele
mree ( to je raspored toaka gui, to e nagib pravca aproksimacije biti blii nagibu tonog
pravca). Centralna aproksimacija derivacije ima nagib najblii tonoj derivaciji. Zbog toga je
mogue zakljuiti da je za toniju aproksimaciju bolje koristiti metode drugog reda. Meutim,
zbog zahtijevanja veeg broja toaka za izraunavanje aproksimacije, metode vieg reda

24

tonosti zahtijevaju i vie vremena za izraun po vremenskom koraku tj. takav algoritam je
sporiji.
Kao to je spomenuto, nakon diskretizacije prostora i operatora, dobiva se algebarska
jednadba za svaki vor mree. Time dobivamo potpuni sustav jednadbi. Ako je polazna
jednadba nelinearna ( kao to su Navier-Stokesove i Eulerove jednadbe), aproksimacije e
sadrati neke nelinearne elemente. Numerika metoda rjeavanja e tada zahtijevati dodatnu
linearizaciju.
Prednosti metode konanih razlika su jednostavnost i efektivnost na strukturnim
mreama. Uz to je posebno lako postii sheme vieg reda integracije. Nedostatak metode je da
se ne potuju zakoni ouvanja u sluaju da se ne vodi o tome rauna posebno. Osim toga, bitni
nedostatak je ogranienje na jednostavnu geometriju ako se radi o kompleksnim tokovima.

25

3.4.2. METODA KONANIH VOLUMENA

Slika 3.8. Metoda konanih volumena dijeli prostor na kontrolne volumene u ijim sreditima se nalaze vorovi
u kojima raunamo vrijednosti varijabli

Metoda konanih volumena najee kree od integralnog oblika zakona ouvanja.


Domena rjeenja je podijeljena u konaan broj kontrolnih volumena (engl. control volumes CV) ili elija (engl. cells ili voxels). Jednadbe ouvanja se primjenjuju na svaku od elija. U
centru svake elije se nalazi vor u kojemu se izraunavaju vrijednosti varijabli (u nekim
sluajevima neke od vrijednosti se postavljaju na stranice elija). Ostale vrijednosti se
dobivaju interpolacijom. Povrinski i volumni integrali se aproksimiraju prikladnim
kvadratnim formulama. Kao rezultat dobiva se algebarska jednadba za svaku eliju u kojima
se pojavljuju neke vrijednosti susjednih elija. Ova metoda podrava bilo kakav tip mree te
je prikladna i za kompleksne geometrije. Za razliku od prole metode, podrava i zakone
ouvanja.
Najei pristup je definiranje elija odgovarajuom mreom i odreivanjem
raunskog vora u centru elije. Kakogod, mogue je definirati (za strukturne mree) vorne
lokacije prvo i onda konstruirati elije oko njih, tako da stranice elija lee na jednakoj
udaljenosti od susjednih vorova. Prednost prvog pristupa je ta da vorna vrijednost
predstavlja srednju vrijednost elije s veom tonou (drugog reda) od drugog pristupa, s
obzirom da je vor postavljen na centru elije. Prednost drugog pristupa je u tome da
aproksimacije derivacija na stranicama elija su tonije kad su stranice postavljene na
polovini izmeu dva vora. Prva varijanta je ee koritena u praksi.

26

.
Slika 3.9. Dva razliita pristupa u podjeli prostora na kontrolne volumene

Za rjeavanje sustava ovom metodom potrebne su aproksimacije povrinskih i


volumnih integrala. U ovom radu e biti ukratko opisani naini aproksimacija samo u 2D
prostoru. Na slici 3.10. je opisana koritena notacija.

Slika 3.10. Notacija koritena pri izvoenju aproksimacija povrinskih integrala

Povrina elije sastoji se od 4 ( u 2D prostoru) ravne stranice, oznaene sa malim


slovima koja odgovaraju njihovim smjerovima ( engleski nazivi, e, w, n, s) u odnosu na vor
P koji se nalazi u centru elije. Tok kroz granice elija se tada moe zapisati kao suma
integrala kroz sve etiri stranice:

27

fdS = fdS ,

(3.11)

k Sk

gdje je f komponenta konvektivnog ili difuzivnog vektora toka u smjeru normale na stranicu
elije. Zbog odravanja zakona o ouvanju, bitno je da se elije ne preklapaju, tj. da svaka

stranica elije je unikatna za svaku od dviju elija koje lee sa svake njezine strane.
Za raunanje povrinskog integrala potrebno je poznavati integrant f du cijele
povrine S. Ta informacija nije dostupna, osim u vorovima ( koji se nalaze u centrima elija)
te je potrebna aproksimacija koja se odvija u dva koraka:

integral se aproksimira izrazima sastavljenim od vrijednosti varijabli na jednom ili


vie lokacija na straniciama elija

vrijednosti na stranicama elija se aproksimiraju od vrijednosti u vorovima ( centrima


elija)

Najjednostavnija aproksimacija integrala je pravilo sredinje toke (engl. midpoint


rule) : integral je aproksimiran kao produkt integranta u sreditu stranice elije ( to je samo
po sebi aproksimacija srednje vrijednosti povrine) i podruja stranice elije:

Fe =

fdS = f S
e

f e Se

(3.12)

Se

Ovakva aproksimacija integrala je drugog reda tonosti i zahtjeva vrijednost integranta f na


lokaciji "e". S obzirom da vrijednost od f nije poznata na lokaciji "e", potrebno ju je dobiti
interpolacijom. Da bi se sauvala tonost drugog reda koje donosi pravilo sredinje toke,
vrijednost fe treba se raunati postupkom koji je isto tako barem drugog reda tonosti.
Drugi nain aproksimacije povrinskog integrala drugog reda tonosti u 2D prostoru je
pravilo trapezoida, koje vodi do izraza:

Fe =

Sss

fdS

Se
( f ne + f se )
2

(3.13)

U tom sluaju potrebno je izraziti tok u kutovima elija.


Za aproksimacije vieg reda, tok mora biti raunat na vie od dvije lokacije.
Aproksimacija etvrtog reda je Simpsonovo pravilo, koje aproksimira integral kao:

28

Fe =

Sss

fdS

Se
( f ne + 4 f e + f se )
6

(3.14)

Kao to je uoljivo iz jednadbe, za izraun su potrebne tri lokacije. Za dobivanje vrijednosti


na tim lokacijama je potrebna interpolacija vieg reda, barem kubina.
Ovakav pristup je moda najjednostavniji za shvaanje i programiranje. Svi izrazi koje
je potrebno aproksimirati imaju fizikalno znaenje, zbog ega je ta metoda popularna meu
inenjerima. Nedostatak metode je taj to metode integracije veeg reda je tee razviti u 3D
prostoru.

29

3.4.3. METODA KONANIH ELEMENATA

Slika 3.11. Dva naina prikaza metode konanih elemenata, kao to je vidljivo na slikama elementi ne moraju
biti uniformni

Ova metoda je slina protekloj po mnogim znaajkama. Domena je razbijena u set


diskretnih volumena ili konanih elemenata koji su generalno nestrukturirani ( u 2D prostoru
najee su to trokuti ili etverokuti, dok u 3D su to tetraedri ili heksaedri). Najvanije
obiljeje ove metode je da su jednadbe mnoene sa teinskim funkcijama prije integracije po
cijeloj domeni. U najjednostavnijim oblicima, rjeenje je predstavljeno linearnim oblikom
funkcija za svaki element koji garantira kontinuitet rjeenja po granicama elementa. Takva
funkcija moe se konstruirati od vrijednosti na kutovima elemenata. Teinske funkcije su
najee iste forme.
Ovakva metoda diskretizacije prostora se vrlo rijetko koristi te nee biti poblie
razraena u ovom radu.

30

3.5. RJEAVANJE SUSTAVA LINEARNIH


JEDNADBI
U prethodnom poglavlju je pokazano kako je mogue diskretizirati jednadbe koristei
razliite metode. U svakom sluaju rezultat diskretizacije je sustav algebarskih jednadbi koji
je linearan ili nelinearan, ovisno o prirodi pripadajue parcijalno diferencijalne jednadbe od
koje je sustav nastao. Za nelinearne sluajeve, jednadbe nastale diskretizacijom rjeavaju se
iterativnim tehnikama koje ukljuuju pogaanje rjeenja, linearizaciju jednadbi oko tog
rjeenja i poboljanja rjeenja sve dok se ne postigne konvergencija rezultata. Stoga, bile
jednadbe linearne ili nelinearne, potrebne su metode za rjeavanje linearnih algebarskih
jednadbi.
Matrice izvedene iz parcijalnih diferencijalnih jednadbi su uvijek slabo popunjene, tj.
veina elemenata matrice je jednaka nuli. Svi ne-nul elementi obino lee na malom broju
dijagonala to je mogue iskoristiti za bre rjeavanje zadanog sustava.
Sustav se moe zapisati u matrinoj notaciji kao:
= Q

(3.15)

gdje je A kvadratna slabo popunjena matrica koeficijenata uz nepoznanice zapisane u vektoru


. Vektor Q sadri izraze koji nisu uz varijable sustava. Kada se radi o velikim sustavima,

matricu A, zbog malog broja ne-nul elemenata, nema smisla spremati kao dvodimenzionalno
polje. Svaka dijagonala sa ne-nul elementima se sprema u poseban red, te se tako tedi
memorijski prostor.
U nastavku biti e opisane neke od metoda za rjeavanje linearnih algebarskih sustava
koji nastaju diskretizacijom parcijalnih diferencijalih jednadbi.

3.5.1. DIREKTNE METODE


Prvo e biti dan kratak pregled metoda za rjeavanje openitih matrica, s obzirom da
su slabo popunjene matrice usko vezane uz njih. Za rjeavanje takvih sustava koristi se
potpuna matrina notacija ( nasuprot dijagonalnoj koja se moe koristiti za slabo popunjene
matrice).
31

3.5.1.1. GAUSSOVA ELIMINACIJA


Temeljna metoda za rjeavanje linearnih sustava algebarskih jednadbi je Gaussova
eliminacija. Bit te metode je sistematino reduciranje velikih sustava jednadbi na manje. U
tom postupku, elementi matrice se modificiraju, ali imena ovisnih varijabli se ne mijenjaju,
prikladno je opisati metodu samim matrinim izrazima:

A11 A12 A13 ...A1n

A21 A22 A23 ... A2 n


A=

A A A ... A
n1 n 2 n3 nn

(3.16)

Bit algoritma je tehnika eliminiranja A21, tj. zamjena vrijednosti tog elementa sa
nulom. To se dobiva mnoenjem prve jednadbe (prvi red matrice) sa A21/A11 i oduzimanjem
od druge jednadbe (drugi red matrice). Openito, za eliminiranje Ai1, prvi red matrice se
mnoi sa Ai1/A11 i oduzima od i-tog retka. Nakon to se eliminiraju svi elementi ispod
elementa A11, niti jedna jednadba od 2, 3, ....,n ne sadri varijablu 1 i tada te jednadbe ine
sustav od n-1 jednadbi za varijable 2, 3,...., n. Ista procedura se primjenjuje na tom
manjem sustavu jednadbi za sve elemente ispod A22.
Nakon to je proces gotov, izvorna matrica se svodi na gornju trokutastu:

A11 A12 A13 ... A1n

0, A22 A23 ... A2 n


A=

0,0,0... A

nn

(3.17)

S obzirom da se izvorne vrijednosti matrice nee vie koristiti, efikasno je spremiti novo
dobivenu matricu na mjesto izvorne matrice. Ovaj dio algoritma se naziva eliminacija
unaprijed (engl. forward elimination) . Elementi desne strane jednadbe Qi

takoer se

modificiraju tijekom postupka.


Gornji trokutasti sustav jednadbi se jednostavno rjeava. Zadnja jednadba sadri
samo jednu varijablu n i rjeenje je intuitivno:

n =

Qn
.
Ann

(3.18)

32

Jednadba prije zadnje, sadri samo nepoznanice n i n-1 , te s obzirom da je n sada


poznat mogue ju je takoer intuitivno rijeiti. Kako navedeni algoritam napreduje prema
gornjim jednadbama, svaka jednadba ima samo po jednu nepoznanicu, i rjeenje se
openito moe zapisati kao:

Qi

i=

A
ik

k =i +1

Aii

(3.19)

Desna strana jednadbe (3.19) je rjeiva jer sve nepoznanice koje se pojavljuju u sumi su ve
poznate u koracima ispred. Ovaj dio algoritma koji poinje trokutastom matricom i rauna
nepoznanice se zove supstitucija unazad ( engl. back substitution).
Nije teko pokazati da za velike brojeve nepoznanica n, broj operacija potreban za
rjeavanje sustava Gaussovom eliminacijom je proporcionalna sa n3/3. Zbog toga je Gaussova
eliminacija skupa za izraun, ali za potpune matrice je dobra kao i bilo koje druge metode.
Meutim Gaussova eliminacija se ne vektorizira ili paralelizira efikasno i zato se rijetko
koristi bez modifikacija u CFD problemima.

3.5.1.2. LU DEKOMPOZICIJA
Postoje brojne varijacije metoda Gaussove eliminacije. Veina nije interesantna u
ovim razmatranjima. Jedna od varijacija koja ima vrijednost u CFD metodama je LU
dekompozicija.
Kao to je mogue vidjeti u prethodnom poglavlju, u Gaussovoj eliminaciji,
eliminacija unaprijed reducira potpunu matricu u gornju trokutastu. Taj proces moe biti
izveden puno efikasnije mnoenjem matrice A sa donjom trokutastom matricom. Samo po
sebi to nije bitno, meutim s obzirom da je inverzna matrica donje trokutaste matrice takoer
donja trokutasta, rezultat toga je da bilo koja matrica A, sa nekim ogranienjima koja su ovdje
nebitna, moe se rastaviti na donju (L) i gornju (U) trokutastu matricu:
A = LU

(3.20)

33

Da bi rastavljanje bilo unikatno, zahtjeva se da svi dijagonalni elementi od L, Lii, budu


jedinstveni (alternativno moe se uvjet primijeniti na matricu U).
Ono to ini to rastavljanje korisno je to to se radi o jednostavnom postupku. Gornja
trokutasta matrica U je jednaka onoj sto se dobiva u prvoj fazi Gaussove eliminacije. Elementi
matrice L su faktori kojima se mnoi u eliminacijskom procesu ( Aji/Aii). Zbog toga je mogue
da se rastavljanje matrice postigne manjom modifikacijom Gaussove eliminacije.
Prednost LU dekompozicije pred Gaussovom eliminacijom je taj da rastavljanje
matrice se moe izvesti bez znanja vrijednosti vektora Q.

3.5.2. ITERATIVNE METODE


3.5.2.1. TEMELJNI KONCEPT
Bilo koji kvadratni sustav linearnih nezavisnih jednadbi se moe rijeiti pomou
Gaussove eliminacije ili LU dekompozicije. Naalost, trokutasti faktori slabo popunjenih
matrica nisu slabo popunjeni, pa stoga su te metode neuinkovite i skupe za takve sustave.
Nadalje, pogreka diskretizacije je obino mnogo vea od tonosti raunalnih aritmetikih
operacija, tako da nema potrebe rjeavati sustave do te tonosti. Zadovoljavajue rjeenje je
ono koje je neto tonije od diskretizacijske sheme.
To ostavlja otvorena vrata iterativnim metodama. One se koriste za nelinearne
probleme, ali su takoer korisne i za rjeavanje slabo popunjenih sustava. U iterativnim
metodama prvo se pogaa prikladno rjeenje, i tada se koriste jednadbe da bi ga sistematski
poboljali. Ako je svaka iteracija "jefitina" za izraun, i broj iteracija je mali, iterativni solver
je bri od direktne metode. To je najei sluaj u CFD problemima.
Kree se od matrinog zapisa problema navedenog u jednadbi (3.15). Nakon n
iteracija dobiva se aproksimacijsko rjeenje n koje ne zadovoljava zadani sustav jednadbi
potpuno. Umjesto toga, postoji ostatak n:
A n = Q n

(3.21)

Oduzimajui jednadbu gore (3.21) od jednadbe (3.15), dobiva se relacija izmeu


iteracijskih pogreaka definirana kao:

34

(3.22)

n = n
Gdje je rjeenje kojem se konvergira, a ostatak:

(3.23)

A n = n

Bit iteracijske metode je svoenje ostatka na nulu; u procesu takoer se svede na nulu. Da bi
se pokazalo kako se to radi, uzima se u obzir iterativni postupak za linearni sustav. Tada se
moe zapisati:
M n +1 = N n + B

(3.24)

Oito pravilo koje se mora potivati je da rezultat kojem se konvergira zadovoljava jednadbu
(3.15). S obzirom da po definiciji pri konvergenciji n +1 = n = , mora vrijediti:

A =MN

B=Q

(3.25)

B = PQ

(3.26)

ili generalno:
PA = M N

Gdje je P nesingularna preduvjetna ( engl. pre-conditioning) matrica.


Alternativna verzija se dobiva oduzimanjem M n sa svake strane jednadbe (3.24).
Time se dobiva:
M ( n+1 n ) = B (M N) n ili M n = n

(3.27)

gdje n = n+1 n se naziva ispravak i alternativa je iteracijskoj pogreci.


Da bi iterativna metoda bila efektivna, rjeavanje sustava (3.24) ne smije biti raunski
zahtjevno i metoda mora ubrzano konvergirati. Jedna iteracija mora sadravati jednostavan
izraun izraza N n i rjeenja sustava. Drugi uvjet koji se mora ispuniti u svakoj iteraciji je
jednostavnost izrauna inverzne matrice M.

35

3.5.2.2. KONVERGENCIJA
Kako je bilo navedeno, brza konvergencija iterativne metode je klju njezine
efektivnosti. U ovom odlomku e biti dana kratka analiza koja je korisna za razumijevanje to
je mjerilo konvergencije i kako je poboljati.
Za poetak potrebno je izvesti jednadbu koja opisuje ponaanje iteracijske pogreke.
Kree se od poetnog uvjeta za konvergenciju n +1 = n = , tako da rjeenje kojem se
konvergira zadovoljava jednadbu:
M = N + B

(3.28)

Oduzimanjem te jednadbe od jednadbe (3.24) i koristei definiciju iteracijske pogreke


(3.22) dobiva se:
M n+1 = N n ili n+1 = M 1N n

(3.29)

Iterativna metoda konvergira ako


lim n = 0

(3.30)

Kao jednostavni primjer uzet e se sustav koji koristi samo jednu jednadbu. Pretpostavi se
da se eli rijeiti:

ax = b

(3.31)

i da se koristi iterativna metoda ( primijetiti da je m= a+ n i p je broja iteracija):


mx p +1 = nx p + b

(3.32)

Tada pogreka mora zadovoljavati skalarni ekvivalent jednadbe (3.29)

36

p +1 =

n p

(3.33)

Iz toga je vidljivo da se greka reducira brzo ako n/m je malo tj. ako je n mali, to znai da

m a . Pri konstruiranju iterativnih metoda za sustave, vrijedi analogno pravilo: to je matrica


M bolje aproksimira matricu A, sustav konvergira bre.
U iterativnim metodama je bitno moi utvrditi iteracijsku greku da bi se odluilo kada
je potrebno stati.

3.5.2.3. NEKE OSNOVNE METODE


U najjednostavnijoj Jacobijevoj metodi, M je dijagonalna matrica iji elementi su
dijagonalni elementi od matrice A. Za diskretizaciju Laplaceove jednadbe u pet toaka,
svaka iteracija je zapoeta u donjem lijevom (jugozapadnom) kutu domene i koristei
geogradsku notaciju (kao u poglavlju o metodi konanih volumena) metoda glasi:

Pn+1 =

QP AS Sn AW Wn AN Nn AE En
AP

(3.34)

Mogue je pokazati da za konvergenciju ova metoda zahtjeva broj iteracija proporcionalan


kvadratu broja mrenih vorova u jednom smjeru. To znai da je ova metoda raunski skuplja
od direktne metode pa postoji malo razloga da bi se je koristilo.
U Gauss-Seidelovoj metodi, M je donji trokutasti dio matrice A. Ta metoda je
specijalni sluaj SOR metode koja je opisana ispod. Ta metoda konvergira dva puta bre od
Jacobijeve metode, meutim postoje i mnogo efikasnije metode.
Poboljana verzija Gauss-Seidelove metode su sukcesivne pre-relaksacijske metode
(engl. successive over-relaxation-SOR). Svaka iteracija zapoinje u donjem lijevom
(jugozapadnom) kutu domene i ponovno koristei geografsku notaciju, SOR metoda se moe
zapisati:

Pn+1 =

QP AS Sn+1 AW Wn+1 AN Nn AE En
+ (1 ) Pn
AP

(3.35)

gdje predstavlja relaksacijski faktor, koji mora biti vei od 1 za ubrzanje, i n je broj
iteracija. Postoje teorije koje se bave odabirom relaksacijskog faktora za jednostavne

37

probleme poput koritene Laplaceove jednadbe na kvadratnoj domeni, meutim, to je teko


primijeniti na kompleksnije probleme. Openito, to je vea mrea, to je vei optimum
relaksacijskog faktora. Za vrijednosti manje od optimuma, konvergencija je montona i to
je vei to je razina konvergencije vea. Kada se premai optimum, razina konvergencije
poinje oscilirati. Pomou tih injenica mogue je nai optimum relaksacijskog faktora. Kada
se koristi optimum relaksacijskog faktora, broj iteracija je proporcionalan broju mrenih
toaka u jednom smjeru i za iznos faktora jednak 1, ova metoda se svodi na Gauss-Seidelovu
metodu.
Osim ovih postoje mnoge numerike metode koje se bave rjeavanjem linearnih i
nelinearnih sustava algebarskih jednadbi. Neke od njih su metoda konjugiranih gradijenata
(engl. conjugate gradient method) , vie mrene metode (engl. multigrid methods) i mnoge
druge. Za poblie upoznavanje tih metoda itatelj se upuuje na poglavlja o rjeavanju
linearnih sustava u knjigama [15 ] i [ 16]

38

3.6. METODE ZA NESTABILNE PROBLEME DISKRETIZACIJA VREMENA


Pri raunanju nestabilnih tokova, moramo uzimati u obzir i 4 dimenziju: vrijeme.
Vrijeme je potrebno diskretizirati kao i prostor. Moemo smatrati da je mrea po kojoj je
podijeljeno vrijeme, ili tipa konanih razlika, kao diskretne toke u vremenu, ili tipa konanih
volumena kada se promatraju "vremenski volumeni". Glavna razlika izmeu vremenskih i
prostornih koordinata je smjer utjecaja: budui da sila u bilo kojoj prostornoj lokaciji moe
utjecati na tok bilo gdje drugdje, primjena sile u danom trenutku e utjecati na tok tek u
budunosti, ne postoji utjecaj unazad. To povlai da niti jedan uvjet ne moe biti nametnut na
rjeenje (osim na granice) poslije inicijalizacije rauna, to ima jak utjecaj na odabir strategije
rjeavanja.
Nakon diskretizacije prostornih derivacija u glavnim jednadbama ( kao to su za
primjer toka Navier-Stokesove ili Eulerove jednadbe), postie se povezani sustav nelinearnih
diferencijalnih jednadbi oblika:

r
du r r
= F (u , t )
dt

(3.36)

Takva jednadba se moe integrirati po vremenu koristei neku od metoda za rjeavanje


problema nestabilnih tokova. Da bi se ostalo vjerno prirodi vremena, sve metode raunanja
napreduju kroz vrijeme korak po korak tj. "mariranjem" (engl. time- marching methods). Za
rjeavanje stabilnih tokova, prostorna diskretizacija vodi do povezanog sustava nelinearnih
algebarskih jednadbi oblika:
r r
F (u ) = 0

(3.37)

Zbog nelinearnosti navedenih jednadbi potrebna je neka vrsta iterativne metode za


dobivanje rjeenja. Na primjer, mogue je odabrati put do stabilnog stanja i koristiti metodu
mariranja kroz vrijeme za integriranje nestabilnog oblika jednadbi dok rjeenje ne bude
dovoljno blizu stabilnog rjeenja. Zbog toga, metode mariranja kroz vrijeme su relevantne i
za stabilne i za nestabilne tokove. Kada se navedene metode koriste za rjeavanje stabilnih

39

tokova, cilj je jednostavno uklanjanje prijelaznog udjela rjeenja to je bre mogue,


vremenska tonost nije bitna.

3.6.1. METODE MARIRANJA KROZ VRIJEME


3.6.1.1. DVORAZINSKE METODE
Za probleme inicijalnih vrijednosti, dovoljno je promatrati obinu diferencijalnu
jednadbu prvog reda sa inicijalnim uvjetom:
d (t )
= f (t , (t )) ;
dt

(t 0 ) = 0 .

(3.38)

Glavni problem je nai rjeenje za neko kratko vrijeme t nakon inicijalne toke. To
rjeenje u vremenskom trenutku t1 = t0 + t, je inicijalno stanje za novi korak i rjeenje se
dalje nastavlja za trenutke t2 = t1 + t, t3 = t2 + t, ...
Najjednostavnije metode se mogu konstruirati integrirajui formulu (3.38) od
vremenskog trenutka tn do tn+1 = tn+ t:

t n +1

tn

d
dt = n+1 n =
dt

t n +1

f (t , (t ))dt

(3.39)

tn

gdje se koristi skraena notacija n +1 = (t n+1 ) . Ta jednadba je egzaktna. Kakogod, desna


strana jednadbe se ne moe razviti bez poznavanja rjeenja te je potrebna neki oblik
aproksimacije. Teorem srednje vrijednosti tvrdi ako je integrant razvijen u ispravnoj toki t=r
izmeu tn i tn+1, integral je tada jednak izrazu f (r , (r ))t , ali to je od male koristi ako je r
nepoznat. Zbog toga se koriste neke od aproksimativnih numerikih metoda za razvijanje
integrala.

40

Slika 3.12. Aproksimacija vremenskog integrala f(t) na intervalu t, s lijeva na desno: eksplicitna Eulerova
metoda, implicitna Eulerova metoda, trapezno pravilo i pravilo srednje toke

Ako se integral na desnoj strani jednadbe (3.39) se rjeava koristei vrijednost


integranta u inicijalnoj toki, dobiva se:

n+1 = n + f (t n , n )t

(3.40)

to je poznato kao eksplicitna ili unaprijedna Eulerova metoda.


Ako se umjesto toga koristi konanu toku u rjeavanju integrala, dobiva se
implicitna ili unazadna Eulerova metoda:

n+1 = n + f (t n+1 , n+1 )t

(3.41)

Mogue je razviti jo jednu metodu koristei sredinju toku intervala:

n+1 = n + f (t

n+

1 ,

n+

1
2

) t

(3.42)

to je poznato kao pravilo sredinje toke i moe se smatrati osnovom bitne metode za
rjeavanje parcijalnih diferencijalnih jednadbi -Leapfrogove metode.
I kao zadnja solucija, mogue je koristiti linearnu interpolaciju po pravcu izmeu
inicijalne i krajnje toke konstruirajui aproksimaciju:

n+1 = n +

1
f (t n , n ) + f (t n+1 , n+1 ) t
2

(3.43)

41

koja se naziva trapezoidno pravilo i takoer je osnova bitne metode za rjeavanje parcijalnih
diferencijalnih jednadbi - Crank-Nicolsonove metode.
Kolektivno, ove metode se nazivaju dvorazinske metode jer ukljuuju vrijednosti
nepoznanica iz dva vremenska trenutka (metode koje se temelje na pravilu sredinje toke se
mogu, ali ne moraju svrstavati u dvorazinske metode).
Iz navedenih jednadbi moe se primijetiti da sve metode, osim prve, zahtijevaju
vrijednost od (t) u nekom vremenskom trenutku razliitom od t=tn (to je inicijalna toka
integracijskog intervala u kojem je rjeenje poznato). Za takve metode nije mogue izraunati
desnu stranu izraza bez sljedee iteracije. Zbog toga, prva metoda pripada klasi eksplicitnih
metoda, dok ostale pripadaju implicitnim metodama.
Sve metode daju dobra rjeenja za mali t. Meutim, ponaanje metoda za vee
vremenske korake je bitno zbog toga to za probleme s varijabilnim vremenskim skalama
esto je cilj izraunati, sporo, dugorono ponaanje rjeenja i kratki vremenski koraci su samo

smetnja. Problemi sa velikim rasponom vremenskih koraka se nazivaju engl. stiff i oni su
najvea tekoa na koju se nailazi pri rjeavanju regularnih diferencijalnih jednadbi. Zbog
toga je od velike vanosti ispitati ponaanje odreene metode pri velikim vremenskim
koracima. To prerasta u pitanje stabilnosti metode.
Postoje mnoge definicije stabilnosti u literaturi. Ovdje e se koristiti gruba definicija
koja naziva metodu stabilnom ako ona dolazi do ogranienog rjeenja kada je rjeenje
temeljnih diferencijalnih jednadbi takoer ogranieno. Za eksplicitnu Eulerovu metodu
stabilnost zahtjeva zadovoljenje izraza:

1 + t

f (t , )
<1

(3.44)

za koji, ako f (t , ) dozvoljava kompleksne vrijednosti, zahtjeva se da tf (t , ) / bude


ogranieno na podruje unutar krunice sa centrom u -1. Metoda koja zadovoljava navedeni
uvjet naziva se uvjetno stabilnom. Za realne vrijednosti od f, uvjet (3.44) se reducira na:

f (t , )
<2

(3.45)

42

Sve ostale metode definirane do sada su bezuvjetno stabilne, tj. daju ogranieno rjeenje za
bilo koji vremenski korak ako f (t , ) / < 0. Unato toj injenici, implicitna Eulerova
metoda tei glatkim rjeenjima ak i kada je t jako velik dok trapezoidno pravilo daje
rjeenje koje oscilira sa laganim priguenjem.
Konano, potrebno je razmotriti i pitanje tonosti pojedinih metoda. Globalno
gledajui, teko je rei neto o tom problemu zbog velike razlike jednadbi kojima se moe
pristupiti navedenim metodama. Za jedan mali korak mogue je koristi Taylorov razvoj da bi
se pokazalo da eksplicitna Eulerova metoda, kreui od poznatog rjeenja za tn, daje rjeenje
za tn+ t sa grekom proporcionalnom sa (t)2.Meutim, s obzirom da broj koraka potreban
za raunanje nekog konanog vremena t = t0 + T je obrnuto proporcionalan t , i greka se
gomila pri svakom vremenskom koraku, greka e na kraju biti proporcionalna sa samim t.
Zbog toga je eksplicitna Eulerova metoda prvog reda tonosti. Implicitna Eulerova metoda je
takoer prvog reda tonosti, dok trapezoidno pravilo i pravilo sredinje toke imaju pogreke
proporcionalne sa (t)2 i zbog toga su drugog reda tonosti. Mogue je dokazati da je drugi
red tonosti najvei red koji se moe dosei dvorazinskim metodama.

3.6.1.2. PREDIKTOR-KOREKTOR METODE


Svojstva navedena za dvorazinske metode su prilino openita. Eksplicitne metode su
lagane za programiranje te koriste jako malo raunalne memorije i vrijeme za raunanje.
Njihov glavni nedostatak je nestabilnost za velike korake. U jednu ruku, implicitne metode
zahtijevaju iterativno rjeenje za dobivanje vrijednosti u novom vremenskom koraku. To ih
ini teima za programiranje i zahtijevaju mnogo vie raunalne memorije i vremena po

koraku, ali su zato stabilnije (Ovdje navedene implicitne metode su bezuvjetno stabilne,
meutim to ne vrijedi generalno za sve implicitne metode, ali su one u svakom sluaju
stabilnije od eksplicitnih metoda). Postavlja se pitanje da li se mogu kombinirati dobra
svojstva iz obje vrste metoda. Prediktor-korektor metode (engl. Predictor-Corrector Methods)
su pokuaj takvog pristupa.
U ovoj metodi, rjeenje u novom vremenskom koraku se predvia koristei eksplicitnu
Eulerovu metodu:

* = n + f (t n , n ) t
n +1

(3.46)

43

gdje * indicira da to nije finalna vrijednost rjeenja za tn+1. Umjesto toga, rjeenje se ispravlja
trapezoidnim pravilom koristei n*+1 za raunanje derivacije:

n+1 = n +

1
f (t n , n ) + f (t n+1 , *n +1 ) t
2

(3.47)

Moe se dokazati da je ova metoda drugog reda tonosti ( red tonosti trapezoidnog pravila)
ali sadri, ugrubo gledajui, stabilnost eksplicitne Eulerove metode .
Ova metoda takoer pripada familiji dvorazinskih metoda, to znai da je drugi red
tonosti najvii koji se moe postii.

3.6.1.3. METODE KOJE KORISTE VIE TOAKA


Za bolju razinu tonosti potrebno je koristiti podatke sa vie toaka. Te toke mogu
biti one u kojima su podaci ve izraunati ili toke izmeu tn i tn+1 koje se koriste izriito
samo za raunalnu vjerodostojnost. Prve takve metode su bile metode koje koriste vie toaka
(engl. multipoint methods).
Najpoznatije takve metode, Adamsove metode, su izvedene pomou metode
izjednaavanja polinoma derivacijama u odreenim tokama u vremenu. Ako se Lagrangeov
polinom namjesti na

f (t n m , n m ), f (t nm+1 , n m+1 ),..., f (t n , n ) i rezultat se iskoristi za

raunanje integrala (3.38), dobiva se metoda reda m+1. Metode ovog tipa se nazivaju AdamsBashforthove metode. Za rjeavanje parcijalnih diferencijalnih jednadbi koriste se jedino
metode nieg reda. Metoda prvog reda je eksplicitna Eulerova metoda, dok metode drugog i
treeg reda su:

n+1 = n +

t
3 f (t n , n ) f (t n1 , n1 )
2

n+1 = n +

t
23 f (t n , n ) 16 f (t n1 , n1 ) + 5 f (t n 2 , n 2 )
12

(3.48)

(3.49)

44

Ako se u interpolaciju polinoma ukljuuje podatak iz vremenskog trenutka tn+1, radi se o


implicitnim metodama poznatim kao Adams-Moultonove metode. Metoda prvog reda koja se
dobiva tim nainom je Eulerova implicitna metoda, drugog reda je trapezoidno pravilo, dok je
metoda treeg reda:

n+1 = n +

t
5 f (t n+1 , n+1 ) + 8 f (t n , n ) f (t n1 , n1 )
12

(3.50)

Obino metode koriste Adams-Bashfourthove metode (m-1)-og reda kao prediktor, i AdamsMoultonovu metodu m-tog reda kao korektor. Tim nainom se moe postii prediktorkorektor metoda bilo kojeg reda tonosti.
Pomou pristupa metoda koje koriste vie toaka mogue je jednostavno konstruirati
metode bilo kojeg reda tonosti. Osim toga, te metode je relativno lako programirati i
zahtijevaju samo jednu evaluaciju derivacije po vremenskom koraku, to ih ini relativno
"jeftinim". Glavni nedostatak metode je da zahtjeva podatke iz veeg broja toaka i nije
mogue pokrenuti program s podacima samo iz inicijalne toke. Jedan od moguih rjeenja
tog problema je poeti s malim vremenskim korakom i metodom nieg reda, te onda polako
sa dobivanjem veeg broja toaka poveavati red metode.
Navedene metode su temelj za mnoge metode rjeavanja diferencijalnih jednadbi
koritenim u raznim programima. U tim programima, koriste se procjenjivai pogreaka za
odreivanje tonosti rjeenja u svakom koraku. Ako rjeenje nije dovoljno blizu tonoj
vrijednosti, poveava se red metode sve do maksimalnog reda koji dozvoljava koriteni
program. U suprotnom sluaju, kada je rjeenje tonije nego to je potrebno, moe se smanjiti
red metode i pri tome utedjeti vrijeme potrebno za raunanje. Zbog oteanog mijenjanja
veliine vremenskog koraka u takvim metodama, red metode se smanjuje samo kada se
dosegne maksimalni red metode.
Zbog toga to navedene metode koriste podatke iz vie vremenskih koraka, mogu
rezultirati ne-fizikim rjeenjima to vodi do nestabilnosti. Taj problem je mogue djelomino
zaobii koristei pomno odabranu poetnu metodu.

45

3.6.1.4. RUNGE-KUTTA METODE


Potekoe pri startanju metoda koje koriste vie toaka mogu se nadvladati koristei
toke izmeu tn i tn+1 umjesto ranijih toaka. Metode s ovakvim nainom pristupa se nazivaju
Runge-Kutta metode. Slijede dva primjera.
Runge-Kutta metoda drugog reda se sastoji od dva koraka. Prvi korak se moe
promatrati kao polu-korak temeljen na eksplicitnoj Eulerovoj metodi; nakon toga slijedi
korektor temeljen na pravilu sredinje toke zbog ega je metoda drugog reda:

* 1 = n +
n+

t
f (t n , n )
2

n+1 = n + t (t

n+

1
2

, * 1 )
n+

(3.51)

(3.52)

Ova metoda je laka za upotrebu i nije potrebno imati dodatne podatke za startanje,
samo inicijalni uvjeti koje zahtijevaju same diferencijalne jednadbe. U mnogim pogledima,
slina je ve opisanim prediktor-korektor metodama.
Runge-Kutta metode veeg reda tonosti su takoer jako razvijene. Najpopularnije su
metode etvrtog reda. Prva dva koraka te metode koriste eksplicitnu Eulerovu metodu kao
prediktor i implicitnu Eulerovu metodu kao korektor u trenutku tn+1/2. Nakon toga slijedi
prediktor temeljen na pravilu sredinje toke za cijeli korak i Simpsoovo pravilo kao finalni
korektor zbog kojeg je metoda etvrtog reda:

1
n+
2

=n +

** 1 = n +
n+

t
f (t n , n )
2

(3.53)

f t 1 , * 1
n+ 2 n+ 2

(3.54)

t
2

n*+1 = n + tf t

n +1 = n +

1
n+
2

, ** 1
n+
2

(3.55)

t
n
*
**
*
f (t n , ) + 2 f t 1 , 1 + 2 f t 1 , 1 + f (t n+1 , n +1 )
6

n+ 2 n+ 2
n+ 2 n+ 2

(3.56)
46

Postoje mnoge varijacije ove metode. Najvei problem je to to je prilino teko


razviti metode veeg reda i, kao to je ve vieno u gore navedenim metodama, n-ti red
Runge-Kutta metoda zahtjeva razvoj derivacije n puta po vremenskom koraku, to ini ovu
metodu skupljom za izraun u usporedbi sa ostalim metodama. Meutim, Runge-Kutta
metode su tonije ( koeficijenti uz izraz pogreke su manji) i stabilnije od ostalih metoda istog
reda.

47

3.7. SPECIJALNA METODA SEMI-LAGRANGE


3.7.1. SEMI-LAGRANGEOVA METODA
Odabir integracijske metode, tj. modela aproksimacije kretanja kroz vrijeme, je od
velike vanosti za modele postavljene pomou diferencijalnih jednadbi. Najvei problem
integracijskih shema je da odabirom maksimalnog vremenskog koraka upravlja kompromis
izmeu stabilnosti metode i tonosti izrauna. Za stabilnu integraciju potreban je mali
vremenski korak, tako da je pogreka ograniavanja vremenskog koraka mnogo manja od
pogreke ograniavanja prostora, te je tada potrebno izvoditi mnogo vremenskih koraka, to
inae ne bi bio sluaj. Zbog takvih ogranienja, do sada navedene metode ne rjeavaju
jednadbe u stvarnom vremenu te je potreban drugaiji pristup problemu. Semi-Lagrangeova
metoda je izazvala velik interes zbog pruanja mogunosti veih vremenskih koraka (bez
velikih gubitka tonosti) za razliku od Eulerovih metoda.
Semi-Lagrangeova metoda, u upotrebi je u raunalnoj grafici od 1999. godine kada ju
je prestavio Stam u svom radu [2], koristi se za rjeavanje izraza advekcije u jednadbi
ouvanja momenta gibanja fluida. Taj izraz uvodi u jednadbu nelinearnost, stoga nije
mogue dobiti rjeenje uobiajenim analitikim metodama. Semi-Lagrangeova metoda
rjeava jednadbe advekcije koristei metodu karakteristika za svaku toku unutar regularne
mree. Za razliku od cjelovite Lagrangeove metode, koja uzima inicijalnu mreu vrijednosti i
promjene vri na njoj, semi-Lagrangeova metoda je efektivno praenje estica izmeu dvije
mree od vremenskog trenutka do idueg vremenskog trenutka.
U Eulerovim metodama za rjeavanje jednadbe advekcije, promatra promatra svijet
oko sebe iz fiksne toke u prostoru. Takve sheme djeluju dobro na regularnim Kartezijevim
mreama, ali esto vode do prestrogih ogranienja vremenskog koraka zbog izbjegavanja
nestabilnosti. U Lagrangeovim metodama, promatra promatra svijet, ali i prati putanju
estica fluida. Takve metode daju mnogo vee vremenske korake, meutim imaju i jedan

nedostatak: inicijalno uobiajeni razmaci u prostoru izmeu seta estica ( karakteristino za


dim) s vremenom uglavnom postanu nepravilni, te se moe dogoditi da bitna svojstva toka
budu zanemarena, loe prezentirana. Ideja semi-Lagangeove metode je obuhvatiti dobra
svojstva obiju metoda, ispravnu rezoluciju Eulerove metode i istaknute stabilnosti
Lagrangeove metode. To je postignuto koritenjem drugaijeg seta estica za svaki vremenski
48

korak. Te estice su odabrane tako da njihova putanja zavrava tono u tokama regularne
Kartezijeve mree na kraju svakog vremenskog koraka.
Za rjeavanje postavljene advekcijske jednadbe koristi se metoda karakteristika, koja
je osnova semi-Lagrangeove metode. Ta metoda se koristi za rjeavanje jednadbi oblika:

+ u ( x , t ) = 0

(3.57)

gdje je skalarno polje i u(x, t) je funkcija brzine. Jednadba (3.57) pasivno propagira
svojstvo kroz vektorsko polje brzine u. Semi-Lagrangeova metoda se temelji na opaanju
da jednadba (3.57) propagira po karakteristinoj krivulji x=p(t) definiranom sa:

d
p(t ) = u (p(t ), t ) ,
dt

uz

p(0) = x 0 .

(3.58)

Iz toga slijedi mogunost pronalaenja vrijednosti , za svaki trenutak t, tako da se pronae


karakteristina krivulja koja prolazi kroz (x, t) , pratei je unatrag do neke prijanje toke
(x0,t0), gdje je vrijednost od poznata, i postavljajui (x,t)= (x0,t0). Za dane vrijednosti
za vrijeme tn, ovakav nain rjeavanja aproksimira vrijednost (x,tn+1) za bilo koju toku x u
vremenskom trenutku tn+1=tn + t

razvijajui prijanju brzinu u(x, tn), aproksimirajui

karakteristiku kroz x unatrag po ravnoj liniji


p(t ) x (t n+1 t )u(x, t n ) ,

(3.59)

i interpolirajui za vremenski trenutak tn do toke


p(t n ) x (t )u(x, t n ) .

(3.60)

Tada se izraz ( x, t n+1 ) postavlja na interpoliranu vrijednost (p(t n ), t n ) .


Uz pomo navedene metode rjeava se advekcijski izraz u jednadbi ouvanja
momenta kroz vremenski interval [t, t+t] za svaki element fluida. Osim tog izraza, ova
metoda se koristi i za izraun izraza za promjenu tlaka i temperature fluida.

49

Ukratko, ova metoda donosi novosti u rjeavanje nelinearnih diferencijalnih jednadbi


drugaijim pristupom. Proces je stabilan, ukidaju se svi uvjeti na veliinu vremenskog koraka
u ovisnosti o finoi podjele prostora. Druga novost je dijeljenje vodee jednadbe na vie
dijelova i rjeavanje po koracima, te se time omoguuje koritenje jednostavnijih solvera. I
trea novost je uvoenje polja bez divergencije koje se rauna u zasebnom koraku. Te tri
znaajke obiljeavaju ovu metodu i omoguavaju realan prikaz fluida u stvarnom vremenu uz
stabilnost za bilo koju veliinu vremenskog koraka. U nastavku e biti poblie opisano
rjeavanje diferencijalnih jednadbi toka plinovitih fluida ovom metodom.

50

4. POSTAVLJANJE PROBLEMA
Svrha ovog rada je postavljanje algoritma za izradu simulatora dima u 2D ili 3D
podruju koji se zasniva na radu Fedkiwa, Stama i Jensena [1], te rada Stama [2] i njegovoj
teoriji stabilnih fluida (engl. stable fluid). U daljnjem tekstu je opisana problematika, metode
koje se koriste pri rjeavanju, te nain rjeavanja postavljenog problema.

4.1. OSNOVNE JEDNADBE


U uvodu su navedene jednadbe koje vjerno opisuju tok fluida. Interes ovog rada se
svodi na uski dio podruja fluida - na simulaciju dima i slinih plinovitih fluida. Pretpostavka
je da navedeni fluid je neviskozan, nestlaiv i ima gustou konstantne vrijednosti. Efekt
viskoznosti u plinovitom stanju fluida je zanemariv, pogotovo na grubljim mreama gdje
numerika disipacija dominira nad fizikalnom viskoznou i molekularnoj difuziji. Kada je
brzina gibanja plinova daleko ispod brzine zvuka efekt stlaivosti je takoer zanemariv (kao
to je i navedeno u uvodu). Te dvije pretpostavke poprilino pojednostavljuju nain izrauna
jednadbi. Zbog navedenih injenica, za opis gibanja opisanog fluida koriste se nestlaive
Eulerove jednadbe (iste su navedene u uvodnom dijelu):
u = 0

(4.1)

u
1
= (u )u p + f ,
t

(4.2),

gdje je brzina plina u predstavljena kao vektor brzina kroz sve tri dimenzije :
u = (u , v, w) .

Postavljene jednadbe rjeavaju se

(4.3)

u osnovna dva koraka (ovo je samo nain

rjeavanja navedenih jednadbi, kasnije e biti navedeni koraci algoritma ) :

51

Prvo se rjeava "posredniko polje brzina" (engl. intermediate velocity field) u*


rjeavajui jednadbu (4.2) kroz vremenski korak t bez izraza za tlak:
u* u
= (u )u + f
t

(4.4)

Nakon tog koraka prisiljavamo polje u* da bude nestlaivo koristei projekcijsku


metodu koja e biti objanjena kasnije u tekstu. To je ekvivalentno raunanju tlaka iz
Poissonove jednadbe (Poissonova jednadba se rjeava iterativnim solverom):

2 p =

1
u*
t

(4.5)

sa istim Neummannovim graninim uvjetom:

p
=0,
n

(4.6)

na graninoj toki s normalom n.


Nakon toga se rauna nestlaivo polje brzina tako da se iz posrednikog polja brzina
oduzme gradijent tlaka:
u = u * tp .

(4.7)

Osim jednadbi kojima se dobiva brzina estica fluida, trebamo jednadbe po kojima
se mijenjaju temperatura i gustoa:
T
= (u )T
t

(4.8)

= (u ) .
t

(4.9)

Obje vrijednosti, gustoa i temperatura utjeu na brzinu fluida. Teki plinovi imaju
tendenciju pada prema dolje zbog utjecaja gravitacije, dok topliji plinovi imaju tendenciju
rasta zbog utjecaja uzgona. Za primjer ovog simulatora se koristi jednostavan model

52

ukljuivanja ovih efekata tako da se definira vanjska sila koja je direktno proporcionalna
gustoi i temperaturi plina:
f buoy = z + (T Tamb )z

(4.10)

gdje je z=(0, 0, 1) vektor s orijentacijom "prema gore", Tamb ambijentalna temperatura, a i


dvije pozitivne konstante s prikladnom jedinicom tako da gore navedena jednadba (4.10) ima
fizikalno znaenje. Dobro je primijetiti da kada je =0 i T= Tamb , definirana sila je jednaka
nuli. Kako se uzima utjecaj gravitacije?
Uz navedenu silu uzgona, koristit emo i dodatni izraz za silu koji e definirati pojave
malih vrloga te tako initi izgled dima ivljim. Vie o tome u poglavlju o metodi
ograniavanja vrtlonosti.
Jednadbe (4.8) i (4.9), kao i jednadba (4.4), sadre operator divergencije (u ) .
Divergencija je transportiranje ouvane skalarne vrijednosti u vektorskom polju. U
meteorologiji i fizikalnom prouavanju fluida, divergencija predstavlja strujanje (obino
horizontalno) nekih atmosferskih svojstava fluida, kao to su u ovom sluaju toplina i gustoa,
u smjeru brzine fluida. Taj navedeni izraz se rjeava semi-Lagrangeovom metodom, koja je
ve opisana poglavlju metoda vremenske diskretizacije.
Prije rjeavanja postavljenog problema potrebno je opisati jo jednu bitnu metodu koja
se koristi u ovom solveru. Ta metoda je ograniavanje vrtlonosti koja slui za izbjegavanje
numerike disipacije i ini prikaz dima realistinijim.

53

4.2. OGRANIAVANJE VRTLONOSTI


Uobiajeno je da mjeavine zraka i dima sadre vee prostorne devijacije
udruene sa znaajnim koliinama rotacionih i turbulentnih struktura razliitih razmjera (npr.
dim cigarete). Nefizikalna numerika disipacija, koju mnoge numerike metode imaju za
posljedicu,

gui ta interesantna svojstva plinova. Cilj ovog pristupa je "vraanje" tih

fenomena nazad u mreu prikaza. Jedan od naina vraanja takvih pojava nazad u tok bi bilo
kreiranje sluajnih ili pseuodo-sluajnih preturbacija toka koristei heuristiki ili fizikalno
temeljen model. Ovakav nain stvara rotacione i turbulentne strukture meutim ne postavlja
ih na fizikalno ispravno mjesto u toku gdje bi se one inae pojavljivale. Umjesto toga, detalji
se dodaju sluajnim odabirom pozicije u tok, te se time osigurava "ivost" simuliranog plina.
Meutim klju realistine animacije dima je da izgleda kao pasivno realistina prirodna
tvorevina nasuprot navedenoj metodi koja stvara "ivo" bie od dima. Zato se uvode fizikalno
korektne metode, kao to je metoda ograniavanja vrtlonosti (engl. vorticity confinementVC) koja je opisana dalje u tekstu.
Vrtlone pojave u tokovima sa velikim iznosom Reynoldsovog broja (turbulentna
polja-dodatak A.1) su uestale. Numeriko rjeenje Navier-Stokesovih jednadbi za vrtlone
pojave malih razmjera u toku je raunalno prezahtjevno. Stoga bilo kakav izraun ponaanja
takvih tokova mora sadravati izdvojenu metodu koja e implementirati takvo ponaanje
fluida. Postoje razne metode koje rjeavaju navedeni problem. Meutim koritenje nekih
metoda kao to je tradicionalna metoda simuliranja velikih vrtloga (engl. Large Eddy

Simulation - LES) e uzrokovati preveliko zaguenje za najmanje vrtlone pojave zbog


numerike disipacije koja nastaje zbog diskretizacije vodeih jednadbi i bilo kojeg
koritenog modela za simulaciju viskoznosti vrtloga. Te male pojave vrtlonosti mogu biti
bitne za prikaz u mnogim tokovima. Zbog njihove vanosti za realistinost prikaza razvijaju
se nove metode kao to je metoda ograniavanja vrtlonosti.
Ograniavanje vrtlonosti (dalje u tekstu VC) je metoda koja rjeava pojedine pojave
malih razmjera do razine otprilike dvije mrene elije. Na primjer, VC dozvoljava izoliranim,
uskim vrtlozima da propagiraju kroz proizvoljno daleke udaljenosti bez numerike disipacije,
zadravajui kompaktan oblik (do razine otprilike dvije elije). Objektivno naelo VC-a je
pronalaenje tih bitnih vrtloga malih razmjera.

54

U smislu efekata propagirajuih vrtloga na ostatak polja, najvanije svojstvo je da je


cirkulacija ouvana na uskom podruju i da je poloaj centroida navedenog vrtloga tono
izraunat. VC metodom je mogue uspjeno izraunati takve zahtjeve bez koritenja
specijalne logike ili Lagrangeovih markera.
Metoda ograniavanja vrtlonosti ukljuuje sustav diferencijalnih jednadbi koje
mogu biti zapisane kao diskretizacija jednadbi kontinuiteta i momenta uz jedan dodatak:
"ograniavajui" izraz. Diskretizacija moe biti niskog stupnja, ali svejedno imati uske
stabilne strukture koje mogu neodreeno propagirati kroz tok fluida. Moe se dokazati da
pridodani izraz uva cirkulaciju i moe ouvati moment ekspilicitno. Zbog ograniavajueg
izraza djeluje samo na strukture malih razmjera, dok strukture veih razmjera pokrivaju
dogovorene CFD metode.
Glavni cilj metode ograniavanja vrtlonosti je identian metodama koje koriste
tehnike pronalaenja sukoba i kontakata (engl. shock and contact methods): tretiranje bitnih
gledita na male pojave na djelotvoran nain, bez neophodnog rjeavanja detalja oko
unutranje strukture. Kao u sluaju sukoba, naglasak je na tome da su te male uske strukture
na vanjskom toku tono izraunate i da ostaju istih razmjera. Ovaj nain modeliranja
omoguuje toan izraun kompleksnih tokova i izbjegava raunarski prezahtjevne detalje
viskoznih rjeenja unutar pojava malih razmjera s velikim gradijentom.
2D Kevin-Helmholtzova nestabilnost (Dodatak A.4) moe se iskoristiti za pojanjenje
glavne ideje []. U takvom toku, metoda ograniavanja vrtloenja predstavlja jednostavan
nain vraanja energije (i njezinih popratnih pojava) nazad u filtrirano polje toka fluida: u 2D
diskontinuitetima kontakta filtriranog polja nedostajati e energija koja je prisutna u
nefiltriranim poljima. Ta energija koja nedostaje, koja se naziva latentna energija, je potrebna
za simuliranje nestabilnosti prisutnih u pravim, nefiltriranim diskontinuitetima kontakta. ak
kada bi se izbjegle sve numerike disipacije, i rijeile precizno Eulerove jednadbe, rjeenje
svejedno ne bi bilo dobar pokazatelj nestablinosti i nasljeenog zasienja fizikog dijela sloja
do puno kasnijeg trenutka, ako su inicijalna polja vrtloga neprirodno rasporeena, ili filtrirana,
ime su nestablinosti priguene. Ograniavanje vrtlonosti doputa mnogo realistinije

rjeenje toka s mnogo tonijom prezentacijom nestablinosti. Nadalje, stvarna tanka ploha,
nakon to postane nestabilna, poinje se omotavati umjesto da divergira. VC modelira ovaj
fenomen s automatskim zasienjem koje je popraeno inicijalnom nestabilnou. Pri tome,
inicijalne nestabilnosti se pretvaraju u male vrtlone tvorevine (engl."blobs"), rairene kroz
nekoliko mrenih elija. Time se predstavljaju "omotavajue spirale" dima u pravim

55

tokovima, koji bi trebali imati precizne detalje i zahtijevaju mnogo finiju mreu, stoga moraju
biti prezentirani kao izdvojeni (filtrirani) objekti.

4.2.1. FORMULACIJA METODE


Glavna ideja ograniavanja vrtlonosti je izraun stabilnih vrtlonih struktura malih
razmjera koje (u izolaciji) mogu propagirati nedefinirano dugo. Unato tome to VC
jednadbe mogu biti napisane kao diskretizacija sustava parcijalno diferencijalnih jednadbi,
dobiveno rjeenje na pojavama malih razmjera nije tono (ak ni aproksimacijski) rjeenje
orginalnih jednadbi. Zbog toga VC metoda pronalazi, ili modelira, pojave malih razmjera
kroz samo par mrenih elija, te je diskretizacijska pogreka reda samo O(1). Kao takva,
pratea pojava je efektivno nelinearan izdvojeni val koji "ivi" na mrenoj reetki. Za vee
razmjere, VC se reducira u odabranu CFD metodu, u kojoj je diskretizacija navedenih
parcijalno diferencijalnih jednadbi tona.
Dvije razliite verzije metode ograniavanja vrtlonosti su razvijene, ali su male
razlike izmeu njihovih formulacija i numerikih rezultata. VC1 metoda je osmiljena prva i
sadri efektivno voenje vrtlonosti unutar toka du njegovog gradijenta. Ta verzija vrlo
dobro pokriva ouvanje momenta, ali nee biti opisana u ovom radu ( za detalje [2]). VC2,
koja eksplicitno uva moment, e biti poblie objanjena, za neke dodatne detalje pogledati
[4] i [5].
VC jednadbe su diskretizirane jednadbe kontinuiteta i momenta s dodatnim izrazom:
u = 0
u
= (u )u + 2u s ,
t

(4.11),

Tumaenje jednadbi je jednako kao i kod N-S jednadbi, samo to:

-koeficijent difuzije koji kombinira numeriku disipaciju i fiziku viskoznost (koja je

mnogo manja pa se moe zanemariti)

-numeriki koeficijent koji kontrolira "uvjet kontrakcije" - s (engl. contraction term)

Kombinacija i kontrolira pojave najmanjih razmjera. Uvjet kontrakcije koriten u VC2 je


harmonika sredina dana sa:

56

s = wn

(4.12)

gdje je:
~ n ) 1 1
(
l

wn = ~ n l

(4.13)

~ n = n +

l
l

(4.14)

U ovom izrazu je vektor vrtlonosti, l je koriten za definiranje (N toaka) matrice na


kojima je izraunata srednja harmonika vrijednost i je mala pozitivna konstanta (10-8) koja
se koristi za prevenciju konanih raunskih greaka u preciznosti. Harmonika srednja
vrijednost je odabrana tako da najmanje vrijednosti u matrici imaju vee teine. Moe se
koristiti ograniavajui izraz baziran na minimumu funkcije, meutim dokazano je da je bolje
koristiti glatke funkcije kao to je navedena harmonika sredina.
Ova metoda e biti koritena u solveru da bi ponitila numeriku disipaciju koja prati
Lagrangeovu metodu. Za razliku od Stamovog solvera opisanog u radu [2], dim e izgledati
ivlji i realistiniji. S obzirom da se u jednadbu dodaje kao iznos sile, uz samo par operacija
vie, nee znaajno usporiti cijeli algoritam.

57

5. RJEAVANJE ZADANOG SUSTAVA


5.1. DISKRETIZACIJA PROSTORA
Unato kompleksnosti sustava diferencijalnih jednadbi, mogue je rijeiti jednadbe
na intuitivan nain. Prvi korak pri rjeavanju je diskretizacija jednadbi i prostora u kojem se
razvija model. Postoje brojni naini kako to uiniti, ali bitno je imati na umu nekoliko stvari:

U tipinim grafikim aplikacijama koje ukljuuju fluide, postoje mnoge granice


izmeu fluida i ostalih objekata i izmeu fluida i medija koji ga okruuje (najee
zraka). Cijena izrauna moe biti minimizirana ako se takva suelja homogeno
pridrue modelu umjesto da budu tretirana zasebno kao specijalni sluajevi.

Openitost je sve. Korisnici sustava moraju biti u mogunosti da specificiraju


geometriju okruja brzo, bez referenciranja na jednadbe na kojima se temelje toni
granini uvjeti.

Mora biti mogue uvesti vanjsku kontrolu sustava, tako da animator moe tono
definirati kako e se fluid ponaati.

Opseg gibanja koji moe biti animiran koristei tehnike trebao bi ukljuivati set
efekata dostupnih u postojeim raunalno-grafikim metodama, i proiren dodavajui
nove, interesantne i korisne metode.

Slika 5.1. Primjer volumnog prostora podijeljenog u elije

58

Da bi se navedene jednadbe (2.7) i (2.8), ili (2.7) i (2.9) za neviskozne fluide, bile
rjeive na raunalu, potrebna je diskretizacija cijelog podruja na kojem rjeavamo navedene
jednadbe. Pri toj diskretizaciji, prepreke i sredstvo koje okruuje fluid se tretiraju isto kao i
fluid, samo sa nekim specijalnim svojstvima koja ostaju konstantna tijekom cijelog izrauna.
Za rjeavanje postavljenih jednadbi koristi se ve navedena metoda konanih volumena
(FV). Ta metoda dijeli domenu rjeenja u konaan broj susjednih kontrolnih volumena - elija
(engl. voxel ili control volume - CV) rasporeene u fiksnu pravokutnu mreu poravnate sa
Kartezijskim koordinatnim sustavom (slika 5.1). Komponente vektora brzine, u u smjeru osi
x, v u smjeru osi y i w u smjeru osi z, definirane su u centrima svake stranice elije i vezane su
lokalno, dok tlak p, i ostale skalarne vrijednosti definiramo u centru svake od elija kao to je
prikazano na slici 5.2.

Slika 5.2. 3D elija sa polovinom notacijom

Koristei polovinu indeks notaciju komponente zapisujemo kao:

u i +1 / 2, j ,k

i = 0,..., N , j , k = 1,..., N

vi , j +1 / 2,k

j = 0,..., N , i, k = 1,..., N

wi , j ,k +1 / 2

k = 0,..., N , i, j = 1,..., N

(5.1)

Iz slike je vidljivo da je:


59

(5.2)

vi , j 1 / 2,k vi ,( j 1)+1 / 2,k

Koristei takvu notaciju moemo definirati neke diskretne operatore i izraze koji e se
koristiti u metodi rjeavanja. Divergencija se tada definira kao:

( u) i , j ,k =

(u i+1 / 2, j ,k ui 1 / 2, j ,k + vi , j +1 / 2,k vi , j 1 / 2,k + wi , j ,k +1 / 2 wi , j ,k 1 / 2 )


h

(5.3)

dok se diskretni gradijenti (primijetiti da je p = ( p x , p y , p z ) ) definiraju kao:

( p x ) i +1 / 2, j ,k =
( p x ) i , j +1 / 2,k =
( p x ) i , j ,k +1/ 2 =

( pi +1, j ,k pi , j ,k )
h
( pi , j +1,k pi , j ,k )
h
( pi , j ,k +1 pi , j ,k )

(5.4)

Diskretan Laplaceov operator je kombinacija operatora divergencije i gradijenta.


Isto tako potrebno je definirati diskretnu verziju vrtlonosti =( 1, 2, 3). Prvo se
raunaju brzine u sredini elija pomou aritmetike sredine:

u i , j ,k =
vi , j , k =
wi , j ,k =

(ui 1 / 2, j ,k + ui +1 / 2, j ,k )
2
(vi , j 1/ 2,k + vi , j +1/ 2,k )
2
( wi , j ,k 1/ 2 + wi , j ,k +1 / 2 )
2

(5.5)

Tada vrijedi:

i1, j ,k =

wi , j +1,k wi , j 1,k vi , j ,k +1 + vi , j ,k 1
2h

60

i2, j ,k =
i3, j ,k =

ui , j ,k +1 u i , j ,k 1 wi +1, j ,k + wi 1, j ,k
2h
vi +1, j ,k vi 1, j ,k ui , j +1,k + ui , j 1,k
2h

(5.6)

Sve sile su definirane u centrima elija. Da bi se dobile vrijednosti na stranicama elija


potrebno je napraviti aritmetiku sredinu susjedne dvije elije. Ako je polje sila f=(f1, f2, f3),
tada u svakom koraku algoritma brzine se auriraju na nain:

u i +1 / 2, j.k + =
vi , j +1 / 2.k + =
wi +1 / 2, j .k + =

t ( f i1, j ,k + f i1+1, j ,k )
2

t ( f i ,2j ,k + f i ,2j +1,k )


2

t ( f i ,3j ,k + f i ,3j ,k +1 )
2

(5.7)

Sada su definirane sve potrebne diskretizacije, opis rjeavanja jednadbi je naveden u


iduem poglavlju.

5.2. GRANINI UVJETI


Na poetku simulacije sadraj svake elije je odreen (poznat). S obzirom na to to
elija sadri dijelimo ih na:

Okupirana elija - elija koja sadri krutu prepreku

Ispunjena elija - elija koja sadri estice fluida

Povrinska elija - elija koja je na granici izmeu fluida i okolnog medija ( bitno za

viskozne tokove)

Prazna elija - koja ne sadri niti fluid niti prepreku.

U svim sluajevima komponente brzine i tlak su definirani za svaku od elija.


Za manipuliranje granicama objekata uronjenih u fluid obiljeavamo svaku eliju koja
sijee objekt kao okupiranu. Sve okupirane elije imaju postavljene komponente brzina na

61

brzine objekta. Slino, temperatura u centru elije se postavlja na temperaturu objekta. Zbog
toga je mogue kreirati mnogo interesantnih efekata samo pomicanjem ili zagrijavanjem
objekta. Gustoa plina unutar objekta se postavlja na nulu. Ali, za izbjegavanje iznenadnog
pada gustoe na granici s objektom, na graninim elijama postavlja se gustoa plina jednaka
gustoi najblie susjedne neokupirane (ispunjene) elije.
Postoje dva tipa graninih uvjeta koji su korisni u praktinim aplikacijama:

periodini granini uvjeti, i

fiksni granini uvjeti.

U sluaju periodinih granica, fluid je definiran na n-dimenzionalnom torusu (n=2,3). U tom


sluaju ne postoje zidovi, samo fluid koji se rasprostire po prostoru. Unato tome to takvi
fluidi nisu upotrebljivi u praksi, korisni su za kreiranje mapa tekstura. Isto tako, takvi granini
uvjeti omoguavaju vrlo elegantnu implementaciju koja koristi brzu Furierovu transformaciju
[2]. Drugi tip graninih uvjeta se uzima u obzir kada se fluid nalazi u nekoj ogranienoj
domeni D. U tom sluaju, granini uvjeti su zadani funkcijom uD definiranoj na granici D
domene.
Za bolju diskusiju navedenih graninih uvjeta pogledati rad Fostera i Metaxasa [18]. U
svakom sluaju, granini uvjeti bi trebali biti takvi da komponenta normale na polje brzine je
nula na graninim podrujima.

5.3. METODA RJEAVANJA SUSTAVA


Pri postavljanju jednadbi u odlomku 4.1., navedene su osnovne jednadbe dinamike
fluida. Nakon toga ponueno je pojednostavljenje rjeavanja sustava jednadbi rastavljanjem
na dva koraka. To je osnovna ideja ove numerike metode. U ovom poglavlju e se te
jednadbe ralaniti na vie koraka, pri emu je prvi korak (4.4) rastavljen na jo dva (tri u
sluaju viskoznih fluida) koraka, a drugi korak (4.5) je u biti etvrti, projekcijski korak.
Rjeavanje postavljenih jednadbi se koristi metodom koju je uveo Stam u svom radu
[2]. Kree se od inicijalnog stanja za t=0:
u 0 = u(x,0)

(5.8)

iz kojeg se dobiva rjeenje koje je inicijalno stanje za idui korak. I tako za svaki t do kraja
simulacije.

62

Pretpostavlja se da je vektor brzine rijeen za vremenski trenutak t, potrebno je pronai


iznos polja za idui vremenski trenutak t+t. Postupak kree od rjeenja w0(x)=u(x,t)
prijanjeg koraka i tada se odvojeno rjeava svaki izraz na desnoj strani jednadbe (4.4). Na
slici je naveden tok postupka kada bi se rjeavale Navier-Stokesove jednadbe. Za jednadbe
ovog problema (Eulerove jednadbe) izbacujemo trei korak zbog zanemarivanja efekta
viskoznosti. Zbog mogunosti proirenja algoritma i na Navier-Stokesove jednadbe, biti e
opisan i taj korak.

Slika 5.3. Koraci algoritma

Kao to se na slici vidi, algoritam rjeavanja jednadbi se rastavlja na 4 koraka.


Konano rjeenje za vremenski trenutak t+t je jednak rezultatu zadnjeg koraka:

u(x, t + t ) = w 4 (x) .

(5.9)

Simulacija se odvija prolazei ove korake u svakoj iteraciji. Slijedi detaljniji opis
svakog od koraka.

Slika 5.4. Svaki korak simulacije je kompozicija koraka. Prva tri koraka mogu "odvesti" polje brzina izvan
podruja divergencije. Zadnji korak osigurava divergenciju polja nakon svakog koraka simulacije.

Postupak poine rjeavanjem najlake rjeivog izraza iz jednadbe ouvanja momenta


(4.4), a to je korak dodavanja vanjske sile f. Uz pretpostavku da sila ne varira tijekom
vremenskog koraka simulacije, vrijedi:

63

w 1 (x) = w 0 (x) + tf(x,t )

(5.10)

Navedeni izraz (5.10) je dobra aproksimacija sile za interaktivne sustave kroz vremenski
korak t, jer se sile postavljaju samo na poetku svakog vremenskog koraka. U tom koraku
uzima se u obzir silu uzgona opisana jednadbom (4.10), sila definirana metodom
ograniavanja vrtlonosti (4.16), te bilo koja druga korisniki definirana sila. S obzirom da su
navedene sile definirane u centrima elija, brzine se u ovom koraku auriraju kao to je
navedeno u prijanjem odlomku u jednadbama (5.7).
Idui korak rjeava efekt advekcije fluida na samog sebe. Ta pojava se opisuje izrazom
-(u )u. Taj izraz ini Navier-Stokesove jednadbe nelinearnima. Foster i Metaxas u svom
radu za rjeavanje tog izraza koriste algoritam konanih razlika. Meutim takav pristup ini
njihovu metodu nestabilnom i potrebno je dodatno ogranienje nad veliinom vremenskog
koraka. Zbog toga, za male udaljenosti i velike brzine je potreban vrlo mali vremenski korak
da bi postupak bio stabilan. Da bi izbjegli takav efekt, u ovoj metodi se koristi potpuno
drugaiji pristup koji je uveo Stam [2]. Ta metoda se naziva semi-Lagrangeovom metodom, a
temelji se na rjeavanju parcijalno diferencijalnih jednadbi metodom karakteristika.
Detaljniji opis metode je ve naveden u poglavlju 3.7. Ovdje e se navesti samo bitne
karakteristike koje vode do rjeenja.
Za svaki vremenski korak estice fluida se kreu kroz prostor pod utjecajem brzine
samog fluida. Zbog toga, da bi se dolo do vrijednosti brzine u toki x u novom vremenskom
trenutku t+t , potrebno je pratiti unatrag toku x kroz polje brzina w1 kroz vrijeme t. To
definira putanju p(x,s) koja odgovara djelominoj strujnici polja brzine fluida. Nova brzina u
toki x je tada postavljena na brzinu koju je estica, trenutno na poziciji x, imala na svojoj
prijanjoj poziciji prije t vremena:
w 2 (x) = w 1 (p(x,t ))

(5.11)

Slika 5.5. ilustrira gore navedenu jednadbu (5.11).

64

Slika 5.5. Propagiranje unazad po krivulji po kojoj se kree tok fluida

Iz svega navedenog zakljuuje se da semi-Lagrangeova metoda gradi novu mreu


praenjem sredinjih toka svake od stranica svih elija kroz polje toka brzine. Nove
komponente brzina su tada interpolirane u tim tokama i njihove vrijednosti se upisuju na
stranice elije odakle je krenuo postupak praenja. Mogue je da toka praenja zavri u
jednom od okupiranih elija, tada se jednostavno odbacuje ostatak krivulje koji je izaao
izvan domene fluida (kao to je prikazano na slici 5.6).

Slika 5.6. Nain rjeavanja graninih uvjeta: ako toka izlazi izvan mree uzima se u obzir toka na granici

Ova metoda rjeavanja nelinearnog izraza za horizontalno strujanje -(u )u, ima par
prednosti. Najvanija prednost je bezuvjetna stabilnost. Osim toga, iz gore navedene
jednadbe (5.11) vidljivo je da maksimalna vrijednost novog polja nikad nije vea od najvee
vrijednosti prijanjeg polja. Osim toga, ova metoda je vrlo jednostavna za implementiranje.
Sve to zahtjeva u praksi je algoritam slijeenja estica i linearni interpolator. Jednostavna
linearna interpolacija koja je potrebna za ovaj postupak lako se implementira, i u kombinaciji
s metodom ograniavanja vrtlonosti daje zadovoljavajue rezultate. Umjesto jednostavne
linearne interpolacije mogue je koristiti i interpolacije viih razina, kao npr. kubina

65

interpolacija. Takve interpolacije daju bolji rezultat, meutim sa sobom donose i odreene
nedostatke to dovodi do nestabilnosti algoritma. Jednostavnost i stabilnost su dva vana
svojstva su poeljna za svaki simulator fluida u raunalnoj grafici. Na slian nain simuliramo
i strujanje gustoe i temperature kroz fluid.
Trei korak rjeava efekt viskoznosti. Taj efekt je zanemariv za plinovite fluide, ali e
svejedno zbog potpunosti biti opisan. Efekt viskoznosti moemo predstaviti difuzijskom
jednadbom:
w 2
= 2 w 2
t

(5.12)

Navedena jednadba je standardna jednadba za koju su razvijene brojne numerike metode.


Najjednostavniji nain rjeavanja ove jednadbe je diskretizirati Laplaceov operator 2 i tada
primijeniti eksplicitni vremenski korak kao u radu Metaxasa i Fostera [3]. Meutim ta metoda
je nestabilna za vrlo velike viskoznosti. Zbog toga se preferira uporaba implicitne metode:
( t 2 )w 3 (x) = w 2 (x)

(5.13)

gdje je jedinina matrica ili operator identiteta. Kada se operator difuzije diskretizira, ova
jednadba se svodi na slabo popunjeni linearni sustav (engl. sparse linear sistem)

za

nepoznato polje w3. Rjeavanje ovog sustava je jednostavno.


etvrti korak ukljuuje korak projekcije, koji slui za dobivanje rezultantnog polja bez

divergencije. Kao to je bilo navedeno u poglavlju gdje su postavljene jednadbe toka, ovaj
korak ukljuuje rjeavanje Poissonove jednadbe koja glasi:
2q = w 3

(5.14)

w 4 = w 3 q

(5.15)

66

Slika 5.7. Svako polje se sastoji od polja bez divergencije i divergencije, da bi se dobilo polje bez divergencije
jednostavno je potrebno oduzeti divergenciju

Dakle, korak projekcije zahtjeva dobar Poissonov solver. Zbog utjecaja na preciznost metode
karakteristika kojom rjeavamo izraz za advekciju, bitno je da polje bude to blie polju bez
divergencije. Jo vanije, iz vizualnog gledita, projekcijski korak prisiljava polje da sadri
vrtlone pojave to rezultira realnijem prikazu plinovitih fluida. Zbog tih uvjeta koristi se to
toniji solver za ovaj korak.
Poissonova jednadba, kada se diskretizira, postaje takoer slabo popunjeni linearni
sustav jednadbi koji se moe rijeiti bilo kojom metodom spomenutom u poglavlju 3.5. U
ovom primjeru se koristi Gauss-Seidelova relaksacijska shema koja je takoer spomenuta u
tom poglavlju. Ta metoda se koristi za rjeavanje sustava od N dobivenih algebarskih
jednadbi koje moemo zapisati matrino:
Ax = b

(5.16)

Taj sustav se rjeava jedanput po iteraciji algoritma, koristei rezultate prethodnih koraka po
formuli:
bi aij x (jk ) aij x (jk 1)
xi( k ) =

j <i

i i

aii

(5.17)

67

Opisano matrinim raunom, Gauss-Seidelova metoda se moe izraziti kao:


x ( k ) = (D L) 1 (Ux ( k 1) + b) ,

(5.18)

gdje D, L i U su dijagonalna, donja trokutasta i gornja trokutasta matrica matrice A.

68

6. ALGORITAM
Do sada je postavljen problem i opisan je nain rjeavanja sa svim dodatnim
koritenim metodama. Sada se moe postaviti algoritam rjeavanja problema toka plinovitih
fluida.
Za rjeavanje svih fizikalnih veliina, potrebne su dvije mree elija. Simulacija se odvija
auriranjem jedne mree iz druge kroz fiksan vremenski korak t. Pri svakom koraku sadraj
dviju mrea se zamjenjuje. Na poetku mrea sadri inicijalno stanje zadano od korisnika.

6.1.KORACI ALGORITMA
Za svaki t od poetka do kraja simulacije:
Za svaku eliju:
1.korak: auriranje brzina
o auriraj

vrijednost

vektora

brzine

pribrajanjem

komponente

sile

pomnoene sa t, korak ponovi za svaku od definiranih sila (korisnika,


uzgon, ograniavanje vrtlonosti)
o auriraj vrijednost vektora brzine rjeavanjem izraza advekcije koristei

semi-Lagrangeovu metodu
o auriraj vrijednost vektora brzine projekcijskim korakom: rjeavanjem

Poissonove jednadbe (32) i oduzimanjem rezultata od postojee


vrijednosti brzine
2.korak: auriranje temperature i gustoe
o auriraj vrijednost temperature fluida rjeavajui izraz (11) semi-

Lagrangeovom meotodom
o auriraj

vrijednost

gustoe

fluida

rjeavajui

izraz

(12)

semi-

Lagrangeovom meotodom

69

6.2. OPIS PROGRAMA ZA NAVEDENI ALGORITAM


Program se temelji na ideji algoritma opisanoj u radu Stama, Jensena i Fedkiwa [1], u
kojem se koriste dijelovi simulatora opisanog u radu Stam [2]. U programu se koriste neke od
funkcija preuzete djelomino ili u potpunosti iz tog rada.
Simulacija je raena u 2D prostoru na uniformnoj mrei. Proirenje na 3D podruje se
dobiva dodavanjem tree dimenzije i proirenjem prostornih derivacija tom komponentom.
Fluid se modelira na kvadratnoj mrei kako je prikazano na slici 6.1. Vanjski sloj elija je
granini sloj i ne sadri fluid kao to je vidljivo na slici. Fluid se nalazi u elijama od indeksa
1 do N ukljuujui, dok se elije s indeksima 0 i N+1 tretiraju kao granice, te fluid izgleda kao
zatvoren izmeu etiri zida.

Slika 6.1. Fluid unutar graninog sloja

Svaka elija se tretira kao da sadri konstantni iznos gustoe, temperature (u centru
elije) i brzine ( na rubovima elije). Sve te veliine se predstavljaju poljima veliine
vel = (N+2)*(N+2):

static float * u, * v, * u_prev, * v_prev;


static float * dens, * Temp, * dens_prev, * Temp_prev;

Uz alokaciju memorije:
u = (float *) malloc ( vel*sizeof(float) );

70

za ostala polja vrijedi analogno. U tim definicijama pokazivai u i v predstavljaju polja


komponenti brzina za svaku eliju, a dens i Temp, polja gustoe i temperature. Pokazivai sa
sufiksom _prev predstavljaju pomona polja, koja slue za prijenos definiranih vrijednosti iz
glavnog programa u simulator dima. U simulatoru se ta polja tretiraju kao pomona mrea,
pomou koje se rauna novo inicijalno stanje koje e biti vraeno u glavni program pomou
glavnih pokazivaa. Time je osigurano da u poljima na koje pokazuju u, v, dens, Temp,
uvijek stoji zapisano trenutno "korisno" stanje. Koriste se jednostruki pokazivai zbog vee
uinkovitosti, dok se elementi polja tj. pojedine elije dohvaaju pomou sljedee definirane
makro funkcije:
#define IX(i,j) ((i)+(N+2)*(j)).

Na primjer, vrijednost komponente brzine u za eliju s indeksima (i , j) dohvaamo pomou


izraza u[IX(i,j)]. Isto tako se pretpostavlja da fizikalna duljina svake strane mree je
jedan tako da je onda veliina svake stranice elije zadana izrazom:
h = 1.0f/N;

Temeljna struktura simulatora dima je sljedea. Kree se od inicijalnog stanja polja


brzina, gustoe i temperature. Pri svakom koraku algoritma se auriraju vrijednosti u mrei
kao rezultat dogaaja u zadanom okruenju. U ovom konkretnom primjeru, poetno stanje
ima definiran jedan stalni izvor. To znai da su neke elije markirane stalnim iznosom sile i
gustoe i to se kroz vrijeme ne mijenja. Osim toga definiran je i ponor. U tom sluaju odreen
broj elija ima nulti iznos gustoe i negativni iznos brzine. Pri negativnom iznosu brzine misli
se na ili konstantnu brzinu usmjerenu "prema van", to bi u tom sluaju znailo da je to
aktivni ponor ( isisava dim), ili brzina mora biti definirana sa suprotnim predznakom brzine
koju bi inae ta elija imala u tom koraku, u tom sluaju radi se o pasivnom ponoru. Osim
navedenog izvora i ponora, mogue je tijekom simulacije pomou tipki mia dodavati izvore
gustoe i brzine u okruenje.
Algoritam se sastoji od dva osnovna koraka. Koraka auriranja gustoe i temperature,
te koraka auriranja brzine. Prvo se obrauje korak auriranja brzine, meutim zbog
jednostavnijeg shvaanja biti e prvo objanjen korak auriranja gustoe i temperature.

71

Kao to je spomenuto, postoji jedan fiksni izvor i mogue je u svakom trenutku dodati
jo koji. To se u glavnom programu sprema u pomono polje koje se predaje potprogramu kao
dens0.

U glavnom programu se poziva funkcija koja je definirana u solveru:

void dens_step ( int N, float * dens, float * dens0, float * Temp, float *
Temp0, float * u, float * v, float dt ).

Ta funkcija predstavlja korak auriranja gustoe. Uz gustou ovdje se aurira i temperatura,


meutim ona je manje bitan faktor u razvijanju osnovnog simulatora. Temperatura slui samo
za dodatne efekte kao to je sila uzgona, dok je gustoa ono to se iscrtava na zaslon.
Vrijednosti gustoe izvora, koje su predane iz glavnog programa, nalaze se u polju
dens0

. Te vrijednosti se dodaju vrijednostima inicijalnog stanja (tj. stanja koje je simulator

imao u prolom koraku) koja se nalaze u polju dens tako da se pomnoe sa jedinicom
vremena.
for ( i=0 ; i<vel ; i++ ) dens[i] += dt*dens0[i];

Sada inicijalna mrea sadri i inicijalno stanje iz prolog koraka i iznose gustoa
dodanih s izvorima u tom koraku. Nakon toga slijedi korak advekcije.
Prije samog koraka zamjenjuju se vrijednosti poljima dens i dens0 jer se u tom koraku
koristi inicijalno stanje za izraunavanje novog stanja ( kao to je opisano u prijanjim
poglavljima, advekcija je irenje nekog svojstva u smjeru vektora brzine, u ovom sluaju
gustoe ):
zamjena (dens, dens0, N);

Sada je dosadanje stanje spremljeno u polju i mogue je pomou toga raunati novo stanje za
svaku eliju.
for ( i=1 ; i<=N ; i++ )
{
for ( j=1 ; j<=N ; j++ )
{

Gustoa se nalazi u sredini elije, dok su brzine na stranicama. Zbog toga potrebno je prvo za
svaku eliju izraunati iznos brzine u sreditu:
usred=(u[IX(i,j)]+u[IX(i-1,j)])*0.5f;
vsred=(v[IX(i,j)]+v[IX(i,j-1)])*0.5f;

72

Nakon raunanja srednje brzine, trai se pozicija sredinje toke elije u prijanjem trenutku,
pomicanjem trenutne pozicije (i, j) po suprotnom smjeru brzine (u nazad):
x = i-dt*N*usred;
y = j-dt*N*vsred;

Slika 6.2. Korak advekcije: (a) tok fluida se moe opisati vektorima koji prate strujnice, (b) korak algoritma u
naprijed, (c) korak algoritma u nazad - Lagrangeova metoda

Time se dobiva toka (x, y) koja oznaava tonu poziciju sredinje toke tekue elije u
prijanjem trenutku. Pri ovom koraku bitno je paziti da vrijednosti x i y ne bi izali izvan
domene mree, te se u tom sluaju moraju postaviti na sam rub:
if (x<0.5f) x=0.5f; if (x>N+0.5f) x=N+0.5f;
if (y<0.5f) y=0.5f; if (y>N+0.5f) y=N+0.5f;

Kad je sigurno da toka (x, y) lei unutar domene raunanja, odreuju se etiri susjedne elije
koje e se koristiti za interpolaciju gustoe na traenoj poziciji:
i0=(int)x; i1=i0+1;
j0=(int)y; j1=j0+1;

Kada su odreeni indeksi elija izmeu kojih e se vriti interpolacija gustoe, potrebno je
definirati parametre za linearnu interpolaciju:
s1 = x-i0; s0 = 1-s1; t1 = y-j0; t0 = 1-t1;

73

Nakon toga dobiva se nova vrijednost tako da joj se pridrui vrijednost na poziciji (x, y) iz
prijanjeg koraka koja se dobiva interpolacijom etiriju susjednih vrijednosti iz prolog
trenutka koje su najblie dobivenoj poziciji:
dens[IX(i,j)] = s0*(t0*dens0[IX(i0,j0)]+t1*dens0[IX(i0,j1)])+
s1*(t0*dens0[IX(i1,j0)]+t1*dens0[IX(i1,j1)]);
Temp[IX(i,j)] = s0*(t0*Temp0[IX(i0,j0)]+t1*Temp0[IX(i0,j1)])+
s1*(t0*Temp0[IX(i1,j0)]+t1*Temp0[IX(i1,j1)]);

Time zavrava korak advekcije gustoe i temperature nakon kojega novo stanje se nalazi u
poljima dens i Temp koja se alju nazad u glavni program, gdje se iscrtavaju na zaslon, te
slue kao inicijalno stanje za idui korak.
Druga funkcija koja obiljeava simulator je funkcija koraka auriranja brzine:
void vel_step ( int N, float * u, float * v, float * u0, float * v0,
float * dens, float * Temp, float Tamb, float alfa,
float beta, float dt ).

Isto kao i kod funkcije za auriranje gustoe, polja u i v sadre stanje iz prolog koraka koje
se koristi kao inicijalno stanje u tekuem koraku. Polja u0 i v0 sadre iznose sila izvora koja
se prenose iz glavnog programa. Ostale varijable su konstante i polja koja sadre podatke
potrebne za izraun pojedinih koraka.
Funkcija za auriranje brzine se sastoji od 3 glavna koraka, kao to je navedeno u
algoritmu u poglavlju prije. Prvi korak je dodavanje sila. U ovom primjeru koriste se tri
razliite vrste sila: sile definirane od korisnika u glavnom programu prenesene u poljima u0 i
v0,

sila uzgona i sila ograniavanja vrtlonosti. Za silu ograniavanja vrtlonosti potrebno je

prvo izraunati njezin iznos i poloaj na mrei to je izvedeno u funkciji:


void vorticity_confinement(int N, float * u, float * v, float *fx, float
*fy, float epsilon, float dt);

Ta funkcija vraa iznose sila u poljima fx i fy . Funkcija trai pozicije u mrei gdje je
potrebno "umetnuti" vrtloge malih razmjera kao to je opisano u poglavlju X.
Nakon to su poznate sve vrijednosti svih definiranih sila, one se dodaju u polja brzina
na isti nain kao to su se dodavali izvori u polje gustoe, uz jednu malu razliku: sile se
definiraju u sreditima elija, te je zbog toga potrebno brzine aurirati s njihovom srednjom
aritmetikom vrijednosti.

74

Prije drugog koraka vri se jedan meukorak. Naime, korak advekcije brzine je toniji
ako je polje brzine bez divergencije. Zbog toga se korak projekcije koji uklanja divergenciju
primjenjuje jedanput prije advekcije. Korak projekcije se sastoji od raunanja divergencije za
svaku eliju pozivom funkcije:
void divergencija (int N, float * div, float * p, float * u, float * v);

U toj funkciji se rauna polje divergencija div po formuli:


div[IX(i,j)] = -0.5f*(u[IX(i+1,j)]-u[IX(i-1,j)]+
v[IX(i,j+1)]-v[IX(i,j-1)])/N;

Kada su poznate sve divergencije poziva se funkcija za rjeavanje sustava linearnih jednadbi,
koja je u potpunosti preuzeta iz rada Stam [X]:
void lin_solve ( int N, int b, float * x, float * x0, float a, float c )

U toj funkciji se koristi Gauss-Seidel relaksacijska shema za rjeavanje sustava linearnih


jednadbi kao to je pojanjeno u postavljanju problema. Implementacija tog algoritma je
jednostavna i sastoji se od 3 petlje. Varijabla k je broj iteracija algoritma.
for ( k=0 ; k<20 ; k++ ) {
for ( i=1 ; i<=N ; i++ )
{
for ( j=1 ; j<=N ; j++ )
{
x[IX(i,j)]=(x0[IX(i,j)] +
a*(x[IX(i1,j)]+x[IX(i+1,j)]+
x[IX(i,j-1)]+x[IX(i,j+1)]))/c;
}
}

Nakon rjeavanja sustava linearnog sustava pozivanjem gornje funkcije, u polju x se


nalaze spremljena rjeenja sustava koja se u ovom sluaju predaju nazad u program kao polja
tlakova. Tada se pomou funkcije:
void oduzmi_gradijent_tlaka(int N, float * u, float * v, float * p)

75

od dotadanjeg stanja u poljima brzina u i v za svaku eliju oduzima gradijent tlaka:


u[IX(i,j)] -= N*(p[IX(i+1,j)]-p[IX(i,j)]);
v[IX(i,j)] -= N*(p[IX(i,j+1)]-p[IX(i,j)]);

S time je meukorak projekcije gotov i polja brzina su bez divergencije.


Nakon toga slijedi korak advekcije brzine. On je u principu isti kao korak advekcije
gustoe sa malom preinakom: s obzirom da se brzine nalaze na stranicama elija, potrebno je
raunati nove pozicije dviju razliitih toaka (poziciju vektora brzine u koji se nalazi na
polovini desne stranice, i poziciju vektora brzine v koji se nalazi na polovini gornje stranice
elije):
x = i-dt*N*u0[IX(i,j)];
y = j+1/2-dt*N*v0[IX(i,j)];
x1 = i+1/2-dt*N*u0[IX(i,j)];
y1 = j-dt*N*v0[IX(i,j)];

Time su dobivene dvije nove pozicije: (x, y) kao pozicija toke vektora brzine u u prijanjem
vremenskom trenutku, te toka (x1, y1) kao pozicija toke vektora brzine v u prijanjem
vremenskom trenutku. Daljnji postupak je analogan advekciji gustoe. Pazi se da novo
dobivene toke ne izlaze izvan mree i za obje toke se ponavlja postupak nalaenja se etiri
susjedne elije izmeu kojih se radi interpolacija po vrijednostima brzina. Na kraju postupka,
u poljima u i v se nalaze trenutna stanja brzina. Dobivena polja opet sadre divergenciju te je
potrebno ponoviti korak projekcije.
Novi korak projekcije, koji je zadnji korak auriranja brzine je identian predkoraku za
advekciju:
divergencija( N, div, p, u, v );
lin_solve ( N, 0, p, div, 1, 4 );
oduzmi_gradijent_tlaka( N, u, v, p);

Na kraju ovog postupka u poljima u i v se nalaze brzine koje se vraaju u glavni program. U
glavnom programu se pomou tih polja iscrtavaju vrijednosti na zaslon te se nakon toga
koriste kao novo inicijalno stanje za idui vremenski korak.
U glavnom programu poziva se simulator dima i vri iscrtavanje na isti nain kao u
Stamovom simulatoru. Simulator se poziva u posebnoj GLUT funkciji idle koja se izvrava
dok nema drugih aktivnosti:

76

static void idle_func ( void )


{
get_from_UI ( dens_prev, u_prev, v_prev );
vel_step ( N, u, v, u_prev, v_prev, dens, Temp, 24, alfa, beta, dt );
dens_step ( N, dens, dens_prev, Temp, Temp_prev, u, v, dt );
glutSetWindow ( win_id );
glutPostRedisplay ();
}

U toj funkciji se prvo poziva rutina za interakciju sa korisnikom gdje se prikupljaju novi
podaci o trenutnim izvorima i promjenama u sustavu. Nakon toga se pozivaju opisane
funkcije i to prvo funkcija za auriranje brzine, te onda funkcija auriranja gustoe. Nakon
svakog takvog koraka vri se iscrtavanje slike.
Iscrtavanje se vri funkcijom:
static void display_func ( void )
{
pre_display ();
if ( dvel ) draw_velocity ();
else
draw_density ();
post_display ();
}

Iz funkcije je vidljivo da je mogue vriti dva naina iscrtavanja koje korisnik moe mijenjati
pomou varijable dvel koju je mogue promijeniti tijekom izvravanja programa tipkom "v".
S obzirom na vrijednost varijable poziva se funkcija za iscrtavanje gustoe ili funkcija za
iscrtavanje vektora brzina. Pri iscrtavanju gustoe koristi se funkcija:
static void draw_density ( void ),

u kojoj se pomou indeksa elija odreuje pozicija centra za svaku eliju (gdje je definirana
gustoa):
x = (i-0.5f)*h;
y = (j-0.5f)*h;

Pomou GLUT rutine:


glBegin ( GL_QUADS );

77

na zaslon se iscrtavaju pravokutnici izmeu sredita etiriju susjednih elija s meusobnom


interpolacijom po boji, tj. za svaku sredinju toku definira se ekvivalent boje prema
vrijednosti gustoe u toj toki:
d00
d01
d10
d11

=
=
=
=

dens[IX(i,j)];
dens[IX(i,j+1)];
dens[IX(i+1,j)];
dens[IX(i+1,j+1)];

Nakon ega se definiraju pripadajue toke izmeu kojih se vri interpolacija


glColor3f
glColor3f
glColor3f
glColor3f

(
(
(
(

d00,
d10,
d11,
d01,

0,
0,
0,
0,

0
0
0
0

);
);
);
);

glVertex2f
glVertex2f
glVertex2f
glVertex2f

(
(
(
(

x, y );
x+h, y );
x+h, y+h );
x, y+h );

Veliina koja predstavlja gustou je ograniena razluivosti boje. S obzirom da je definicija


GLUT funkcije:
void glColor3f (GLfloat red,GLfloat green, GLfloat blue );

najvea mogua vrijednost je ograniena sa tipom GLfloat, to je ekvivalentno float tipu u


C-u (32-bitni realni broj). Vrijednost se

mapira

na interval vrijednosti [0, 1] prije

interpolacije ili upisivanja u spremnik boje (engl. color buffer ).


Funkcija za iscrtavanje vektora brzina:
static void draw_velocity ( void )

iscrtava vektore brzina kao linije uz pomo GLUT rutine:


glBegin ( GL_LINES );

Brzinu crtamo iz donjeg desnog kuta elije kao liniju koja predstavlja zbroj vektora brzine:
glVertex2f ( x, y );
glVertex2f ( x+u[IX(i,j)], y+v[IX(i,j)] );

Program se izvrava u beskonanoj glutMainLoop () petlji sve dok ga korisnik ne


prekine pomou tipke "q".

78

7. REZULTATI
Implementirani algoritam daje lijepe i realistine prikaze dima u realnom vremenu.
Mogue je mijenjati razne parametre te tako utjecati na izgled i fizikalne osobine dima. Pri
pokretanju programa mogue je zadati neke od parametara ili se koriste predviene
vrijednosti. Koriteni parametri i njihove inicijalne vrijednosti navedene su u tablici 1, gdje su
N broj elija u jednom smjeru, dt vremenski korak, alfa i beta konstante koritene za silu
uzgona, a force i source konstante koritene za skaliranje ulaznih podataka pri interakciji s
miem. Osim navedenih parametara mogue je dodavati i izvore i ponore te razliite
preturbacije. U nastavku poglavlja dani su prikazi nekih od rezultata uz razliite parametre.

PARAMETAR
N
dt
alfa
beta
force
source

VRIJEDNOST
128
0,1
0
0
10
100

Tablica 1. Inicijalne vrijednosti koritene u programu

Slika 7.1 prikazuje rezultat simulacije za jedan izvor uz inicijalne vrijednosti svih parametar

Slika 7.1. Inicijalne vrijednosti uz jedan izvor

79

Dodavanjem sila desnom tipkom mia, te dodavanjem dodatnih izvora gustoe lijevom
tipkom mia, postiu se razne preturbacije dima kao na slici 7.2.

Slika 7.2. Jedan izvor uz inicijalne vrijednosti parametra uz dodavanje sila i izvora interakcijom korisnika
pomou mia

Osim izvora u sceni se mogu definirati i ponori. Na slici 7.3 definiran je tako jedan
aktivni ponor na sredini gornjeg ruba, na slici je vidljivo kako ponor "izvlai" dim iz
zatvorenog prostora.

Slika 7.3. Jedan izvor i jedan ponor uz inicijalne vrijednosti parametara

80

Osim tako definiranog ponora, mogue je definirati ponor kao "crnu rupu" koja uvlai
dim oko sebe kao na slici 7.4.

Slika 7.4. Ponor je definiran kao crna rupa koja uvlaci okolni dim u sebe

Ako se eli simulirati silu uzgona mogue je mijenjati parametre alfa i beta. Tako za
dobivamo utjecaj da je gui dim tei kao na slici 7.5.

81

Slika 7.5. Vrijednost parametra alfa 0.1

Implemenitrani algoritam radi u realnom vremenu zbog koritenja malog broja elija.
Meutim unato grubljoj mrei dim i dalje izgleda realan. Na slici 7.6 moe se vidjeti kako
izgleda dim na grubljim i finijim mreama.

a)

b)

7.6. Prikaz dima na grubljim mreama uz N=80 (a) i na finijim mreama uz N=200 (b)

82

You might also like