Animacija fluida u okruženju s preprekama

FER >> ZEMRIS >> Racunalna grafika
Uvod
Modeliranje
Matematicka formulacija
Algoritam SIMPLE
Diskretizacija
Implementacija
Rezultati
Download

Ime SIMPLE je akronim engleskoga naziva Semi Implicit Method for Pressure Linked Equations (djelomično implicitna metoda za tlakom povezane jednadžbe). Može se opisati u šest glavnih koraka:


    1. Pretpostaviti vrijednosti tlaka.
    2. Koristeći tekuće vrijednosti tlaka izračunati nove iznose brzina.
    3. Koristeći nove brzine iterativnom metodom riješiti Poissonovu
        jednadžbu za dobijanje korekcija tlaka.
    4. Primijeniti korekcije na iznose tlaka.
    5. Ako su korekcije manje od uvjeta konvergencije, to su konačne
        vrijednosti i nastavlja se s korakom 6. Ako ne, nastavlja se s
        korakom 2.
    6. Iz sada točnih vrijednosti tlaka izračunati korigirane brzine.


Algoritam je prikazan i na slici:

 

Algoritam SIMPLE

 

Prvi korak – postavljanje početnih uvjeta

U prvom koraku potrebno je pretpostaviti vrijednosti tlaka na cijeloj mreži. Ako se radi o steady state problemu, dobro je početne vrijednosti postaviti na iznose karakteristične za promatrani problem. Ako se simulira sustav koji polazi iz mirovanja, postavljanje tlaka na nulu je obično dovoljno. Iako će ovo vrlo vjerojatno dovesti do pojave negativnih tlakova u sustavu, što je fizikalno nemoguće, za simulaciju nestlačivih fluida ova je varka nebitna. Naime, kod nestlačivih fluida o tlaku ovisi samo promjena brzina, a i ona samo o razlikama tlaka, a ne o apsolutnom iznosu. Iako bi direktna metoda rješavanja sustava jednadžbi zbog nedefinirane vrijednosti dovela do singularne matrice i nemogućnosti davanja rješenja, iterativna metoda će se prilagoditi i raditi će sa bilo kojom srednjom vrijednošću tlaka. Zbog potrebe računanja razlika, početna vrijednost nula zato ima više smisla jer se zbog prirode floating point zapisa brojeva na taj način zadržava najviša preciznost.

Drugi korak – rješavanje momentne jednadžbe

U drugom koraku algoritma se iz zadanih vrijednosti brzina i pretpostavljenih vrijednosti tlaka izračunavaju nove brzine koristeći momentnu jednadžbu. Zbog korištenja pogrešnog polja tlaka ove brzine neće biti točne i biti će im potreban ispravak. Tijekom iterativnog postupka će ispravci biti sve manji, a rješenje sve bliže.

Treći korak – rješavanje Poissonove jednadžbe

Treći korak predstavlja algoritam u malom. S obzirom da polje korekcija tlaka ovisi o samome sebi, rješenje je moguće dobiti jedino iterativno. Uvjet konvergencije je ovdje jednostavan. Promatraju se promjene iznosa u uzastopnim iteracijama i kada najveća promjena u čitavom sustavu postane manja od zahtijevane razine točnosti krajnje vrijednosti su dostignute. Također, u ovom se koraku bilježi najveća izračunata korekcija u apsolutnom iznosu, koja se kasnije koristi za provjeru konvergencije vanjskog iterativnog postupka.

Četvrti korak – primjena korekcija tlaka

Četvrti korak je po kompleksnosti suprotnost prethodnom. Starim iznosima tlaka pridodaju se izračunate korekcije da bi se dobile nove vrijednosti.

Peti korak – provjera konvergencije

U  petom koraku se provjerava konvergencija cjelokupnog postupka. S obzirom da tlak ovisi o brzinama, a brzine o tlaku, postojanje korekcije tlaka ukazuje na neuravnoteženost ove dvije veličine. Ako korekcija nema, znači da već postojeći tlak odgovara postojećim brzinama. To dalje znači da bi se korištenjem postojećeg tlaka opet dobile iste brzine. Na taj način je za konvergenciju glavnog iterativnog postupka dovoljno da najveća korekcija tlaka u cijelom sustavu, koja je izračunata u četvrtom koraku, iznosi manje od zadanog uvjeta konvergencije. Ako to nije tako, algoritam se nastavlja drugim korakom. Korisno je broj iteracija ograničiti da bi se u slučaju divergencije spriječio ulazak u beskonačnu petlju. Treba naravno paziti da najveći dopušteni broj iteracija bude dovoljno velik za dostizanje konvergencije. Za prve korake ovo može biti dosta velika brojka, dok je kasnije dovoljno sve manje i manje. S druge strane, što simulacija dalje odmiče, ako se dosegne stabilno stanje, divergencija je sve manje vjerojatna. Ograničenje dakle treba oprezno odabrati, ali u svakom slučaju je bolje izabrati preveliki nego premali broj.

Dodatne napomene

Da bi momentna jednadžba bila točno riješena, dovoljno je poznavati točne vrijednosti tlakova u sustavu. To, međutim, nije moguće bez poznavanja brzina. Cijeli algoritam SIMPLE je zato samo postupak dobijanja točnog polja tlaka. U posljednjoj iteraciji postupka u drugom će se koraku koristiti stare vrijednosti brzina, jednako kao i u prvom koraku, ali uz njih nove vrijednosti tlaka. Na taj način će nove brzine biti točno dobivene.
Nakon što jedan cijeli korak algoritma završi, novodobiveni se tlak koristi kao novi pretpostavljeni i nastavlja se opet s drugim korakom algoritma, prilagođavajući tlak još jednom da bi se na kraju mogle izračunati sljedeće brzine. S vremenom, kako sustav dolazi bliže konačnom, stabilnom stanju, broj iteracija će se smanjivati, da bi na kraju sve završilo u jednostrukim prolazima kroz algoritam. S obzirom da se brzine i tlakovi više ne mijenjaju, korekcije će u svakom koraku biti nula, pa će i uvjeti konvergencije uvijek biti zadovoljeni već u prvom prolazu. Zbog ovoga razloga najkritičniji dio simulacije je obično upravo prvi korak. Naime, tada su iznosi najudaljeniji od realnih vrijednosti i divergencija rezultata je najvjerojatnija. Zato dobro pogođene početne vrijednosti mogu značiti razliku između dobijanja dobrih rezultata ili nedobivanja rezultata uopće.
Da bi se problem barem djelomično ublažio, uvode se sitne preinake u jednadžbe. S obzirom da na početku iznosi temeljnih veličina mogu imati velike raspone na uskom području, izračunate korekcije mogu biti preuveličane i na taj način mogu doprinijeti ionako pogrešnoj slici. Zato se uvode težinski faktori za korekcije, tj. koeficijenti koji skaliraju korekcije. Namjernim smanjenjem promjene algoritam se usporava u slučaju da su dobivene brojke realne, ali mu se zato daje mogućnost da ispravi greške u slučaju da je rješenje krenulo krivim smjerom.
Koeficijente treba pažljivo odrediti jer premale vrijednosti mogu pretjerano usporiti simulaciju. Isto tako, prevelike vrijednosti vjerojatno neće biti dovoljne da spriječe eventualnu divergenciju rezultata.
Ove preinake ne pomažu samo u početnim trenucima simulacije. Promatrani sustav može završiti u stabilnom stanju, ali u velikom broju slučajeva cilj je promatrati sustave koji nikada ne dostignu vremensku stalnost. U takvim slučajevima su ovakve metode također korisne.