4 Virtausyhtälöiden numeerinen ratkaisu
Transcription
4 Virtausyhtälöiden numeerinen ratkaisu
96 4 Virtausyhtälöiden numeerinen ratkaisu 4.1 Numeerinen diskretointi 4.1.1 Diskretointitavat Numeerinen diskretointi tehdään approksimoimalla virtausyhtälöitä laskenta-alueen diskretoinnissa syntyvän pistejoukon avulla. Tietokonehan ymmärtää vain lukuja ja niiden välillä voidaan tehdä yksinkertaisia aritmeettisia operaatioita. Virtausyhtälöiden ratkaisutavat voidaan jakaa monella tavoin, esimerkiksi seuraavasti: • teknisten ongelmien ratkaisuun soveltuvat menetelmät • spektraalimenetelmät • partikkelimenetelmät Tämäkin jako on mitä suurimmassa määrin epämääräinen. Spektraalimenetelmiä käytetään etupäässä meteorologiassa ja turbulenssitutkimuksessa. Periaatteessa niillä voitaisiin ratkaista ’teknisiäkin’ ongelmia. Partikkelimenetelmät ovat vanha ajatus mallintaa virtausta ilman Navier-Stokes -yhtälöitä, perustuen yksittäisten nestepartikkelien liikkeeseen. Viime aikoina muotiin tulleet hila-Boltzmann -menetelmät kuuluvat tähän ryhmään. Teknisissä sovelluksissa käytetään yleensä ns. Reynolds-keskiarvotettuja yhtälöitä. Niiden yleisin ratkaisukeino on kontrollitilavuusmenetelmä (control-volume method, finite-volume method), joskus käytetään myös stabiloituja elementtimenetelmiä (finite-element method). FLUENT, ANSYS CFX ja OpenFOAM ohjelmissa käytetään kontrollitilavuusmenettelyä, FLOTRANissa elementtimenetelmää. Käytännössä eri lähestymistavoilla saattaa olla hyvin pienet erot. Virtausyhtälöt sisältä- 4.1. NUMEERINEN DISKRETOINTI 97 vät kitkattoman osan, johon sisältyy paineen ja konvektion vaikutus, sekä diffuusiotermin. Näistä diffuusiotermin diskretointi on periaatteessa suoraviivaista, menetelmien oleelliset erot liittyvät kitkattomaan osaan, jossa lisäksi konvektiotermit ja paine ovat käyttäytymiseltään erilaisia. Kun paineen ja konvektion kytkentä vielä riippuu virtauksen Machin luvusta, on selvää, että erilaisissa virtaustilanteissa saatetaan soveltaa hyvinkin erilaisia numeerisia menetelmiä. 4.1.2 Peruskäsitteitä Kontrollitilavuusmenetelmässä käytetään yhtälöiden (3.7), (3.8) ja (3.10) integraalimuotoa Z Z ∂ Z WdV + [F − G] · dA = HdV ∂t V A V (4.1) missä W = [ρ, ρV~ , E]T on ratkaistavien suureiden vektori, F kitkaton ja G kitkallinen vuo. Yhtälön oikealla puolella voi olla lähdetermi H. Numeerisessa ratkaisussa käytetään yhtälön (4.1) diskreettiä muotoa Vi Nf aces X dWi [F − G]j · ∆Aj = Vi Hi + dt j (4.2) missä Vi on laskentakopin tilavuus, ∆Aj kopin seinän j pinta-alavektori ja summaus on kaikkien laskentatilavuuden pintojen yli. Yhtälö (4.2) pätee kaikenmuotoisille laskentatilavuuksille, jotka linkittyvät toisiinsa mielivaltaisten pintojen välityksellä. (Tärkeää on vain, että koko laskenta-alue sulkeutuu eli alueen sisälle ei jää tyhjiä koloja). Useissa virtausratkaisijoissa käytetään hyväksi tätä kontrollitilavuusperiaatteen yleistä ominaisuutta ja laskentatilavuuksien liittymiselle toisiinsa ei periaatteessa ole asetettu mitään rajoituksia. Yhtälössä tarvitaan geometrisia suureita, jotka ohjelma laskee annetulle laskentahilalle. Lisäksi on lausuttava vuot laskentakoppien pinnoilla, mikä ei ole triviaali tehtävä. Lopputuloksena saadaan epälineaarinen yhtälöryhmä, jossa on perusyhtälöiden määrä × laskentakoppien määrän verran yhtälöitä. Tuntemattomien määrä saattaa olla tätäkin suurempi, jolloin tarvitaan lisäyhtälöitä, kuten tilayhtälö. Ratkaistavaksi tulee siis epälineaarinen yhtälöryhmä, jossa tuntemattomien määrä voi nousta useisiin miljooniin, joskus jopa miljardeihin. Tämän yhtälöryhmän ratkaisu muodostaa toisen huomattavan ongelman, jota käsitellään luvussa 5. Tässä luvussa tarkastellaan yhtälöryhmän muodostamista. Differenssimenetelmä perustuu derivaattojen approksimointiin erotusosamääril- 4.1. NUMEERINEN DISKRETOINTI 98 lä. Lähtökohtana on suureiden esittäminen Taylor-sarjakehitelmän avulla φ(x + ∆x) = φ(x) + ∆x dφ 1 2 d2 φ 1 3 d3 φ + ∆x + ∆x ... dx 2 dx2 6 dx3 (4.3) Tästä voidaan derivaatta dφ/dx ratkaista dφ φ(x + ∆x) − φ(x) 1 d2 φ 1 d3 φ φ(x + ∆x) − φ(x) ≈ − ∆x 2 − ∆x2 3 ... = +O(∆x) dx ∆x 2 dx 6 dx ∆x (4.4) missä merkintä O(∆x) tarkoittaa, että approksimoitaessa derivaattaa dφ/dx lausekkeella [φ(x + ∆x) − φ(x)]/∆x tehdään virhe, joka on verrannollinen laskentahilan väliin ∆x. Tällöin kyseessä on ns. ensimmäisen kertaluvun diskretointi. Symmetrisellä diskretoinnilla saadaan φ(x + ∆x) − φ(x − ∆x) dφ ≈ + O(∆x2 ) dx 2∆x (4.5) Tällöin virheen sanotaan olevan toista kertalukua. Koska diskretointi suoritetaan Taylor-sarjakehitelmän avulla jättämällä korkeamman kertaluvun termit pois, sanotaan virhettä katkaisuvirheeksi. Yleensä diskretointiin liittyvä virhe on pienempi tai ainakin se pienenee nopeammin korkeamman kertaluvun menetelmillä. Katkaisuvirhe on myös yleensä pienempi symmetrisillä diskretoinneilla kuin epäsymmetrisillä. Nyrkkisääntönä on, että mitä tarkempi diskretointi, sitä enemmän laskentakaavaan on otettava hilapisteitä mukaan. Epäsymmetrisessä toisen kertaluvun diskretoinnissa on käytettävä kolmea pistettä derivaatalle ja katkaisuvirhe on silti muodollisesti kaksi kertaa suurempi kuin kahteen pisteeseen nojaava yhtälön (4.5) ns. keskeisdifferenssi. Riippumatta hilatyypistä ja diskretointimenetelmästä, diffuusiotermin approksimoinnissa päädytään aina yhtälön (4.5) kaltaiseen symmetriseen kaavaan, ns. laskentamolekyyliin. Erot eri ratkaisutavoissa koskevat siis enemmän muita kuin diffuusiotermejä. Painegradientti tulee FLUENTin kokoonpuristumattomalla ratkaisijalla lausutuksi symmetrisellä diskretoinnilla. Sen sijaan konvektoituville suureille käytetään ns. ylävirtapainotettua laskentaa. Tiheyspohjaisella ratkaisijalla painegradientti ja konvektio kietoutuvat monimutkaisella tavalla yhteen. FLUENTissa tästä on käytetty myös nimeä RAMPANT-ratkaisija, koska menetelmä on alunperin otettu Rampant-nimisestä Wayne Smithin kehittämästä ohjelmasta. Rampant perustuu suurelta osin Antony Jamesonin esittämiin ratkaisumenetelmiin. Differenssimenetelmää sovelletaan esimerkiksi rajakerrosyhtälöiden ratkaisuun (kts. White). Navier-Stokes -yhtälöillä menetelmä soveltuu sellaisenaan soveltuu 4.2. DISKRETOINTI PAIKAN SUHTEEN 99 vain yksinkertaisten suorakulmaisten hilatopologioiden kanssa käytettäväksi. Näissä tapauksissa kontrollitilavuusmenetelmä redusoituu samaksi kuin differenssimenetelmä. Kummassakin diskretointitavassa virhettä voidaan arvioida, kun tiedetään pohjalla olevan diskretoinnin kertaluku. Kontrollitilavuusmenetelmässä integraalimuodolla on häivytetty differentiaaliyhtälöiden päällimmäinen ’nablaoperaattori’ ja tilalle on tullut vuon käsite. Vuoarvojen erotusten avulla itse asiassa approksimoidaan derivaattoja. Vuota laskettaessa on hyvä muistaa muutamia perussääntöjä, kuten esimerkiksi se, että keskeisdifferenssityyppistä diskretointia vastaa keskiarvon avulla lausuttu vuo ja epäsymmetrisissä diskretoinneissa suureita approksimoidaan laskentakoppien pinnoille toispuolisilla ekstrapoloinneilla. 4.2 Diskretointi paikan suhteen Varsinainen paikkadiskretointi eli konvektoituvien suureiden ekstrapolointi koppien seinille ei eroa tiheys- ja painepohjaisilla ratkaisulla toisistaan, joten seuraavassa tarkastellaan painepohjaisen ratkaisijan menetelmiä. (Menetelmät eroavat kylläkin vuon laskennan suhteen toisistaan). Tarkastellaan ajasta riippumattomia yhtälöitä, jotka voidaan kirjoittaa muotoon Z A ρφV~ · dA = Z A Γφ ∇φ · dA + Z V Sφ dV (4.6) missä Γφ on diffuusiokerroin, Sφ suureeseen φ liittyvä lähde ja ∇φ suuren φ gradientti ∂φ ∂φ ∂φ i+ j+ k (4.7) ∂x ∂y ∂z tasealueen pinnalla. Painepohjaiselle ratkaisulle on ominaista se, että linkitykset yh∇φ = tälöiden välillä ovat heikot ja yhtälöt voidaan ratkaista yksitellen. Kaikki yhtälöt ovat muodoltaan samanlaisia. Jatkuvuusyhtälökin saadaan samasta malliyhtälöstä asettamalla φ = 1. Lähempi tarkastelu osoittaa, että liikemääräyhtälö ei ole yhtälön (4.6) kaltainen muuta kuin olettamalla viskositeetti µ vakioksi. (Viskositeetti vastaa diffuusiokerrointa Γφ ). Oleellista kuitenkin on, että liikemääräyhtälökin on tyypiltään muotoa (4.6) vastaava konvektiodiffuusioyhtälö, jos painegradientti käsitellään lähdeterminä yhtälön oikealla puolella. Diskretoinnissa pintaintegraalit korvataan summauksella kopin pintojen yli. Esimerkkinä on kuvan 4.1 kolmion muotoinen kontrollitilavuus, jossa ratkaistavat suureet sijaitsevat tilavuuksien keskipisteissä c0 ja c1. Näiden välillä on pinta-ala A, joka on vektori. 4.2. DISKRETOINTI PAIKAN SUHTEEN 100 c1 A c0 Kuva 4.1: Vuon laskenta kolmionmuotoisilla kontrollitilavuuksilla. Diskretoiduksi yhtälöksi tulee Nf aces Nf aces X j ρj φj u¯j Aj = X [Γφ (∇φ)n A]j + Sφ V (4.8) j missä Nf aces on tilavuutta rajaavien seinien lukumäärä, φj suureen φ arvo seinällä j, u¯j seinää vasten kohtisuora nopeus, ns. konvektionopeus (käytetään myös termiä kontravariantti nopeuskomponentti), (∇φ)n on φ:n gradientin arvo kopin seinää vasten kohtisuorassa suunnassa, Aj seinän pinta-ala ja V laskentakopin tilavuus. Yhtälön (4.8) vasemmalle puolelle muodostuu kopin seinän läpi menevä massavirta m ˙ = ρ¯ uA. Yhtälössä (4.8) tilavuusintegraali muutettiin Gaussin lauseella pintaintegraaliksi ja pintaintegraali edelleen summaukseksi kopin pintojen yli. OpenFOAMissa ja monissa muissa ohjelmissa on gradientin diskretoimiseksi myös toinen vaihtoehto, joka perustuu pienimmän neliösumman menetelmään. Siinä gradientille etsitään sellainen arvo, että se vastaa mahdollisimman hyvin φ:n arvoja naapurikopeissa. Tällöin tilavuusintegraali summalausekkeen sijaan muuttuu kertomiseksi kopin tilavuudella. Riippumatta siitä, miten derivaattojen laskeminen on muutettu vain φ:n arvoja sisältäviksi laskutoimituksiksi, lopullisia diskreettejä yhtälöitä varten on lausuttava suureiden φ arvot koppien seinillä ja pinnan normaalin suunnassa oleva gradientti niinikään seinillä. Koska suureet spesifioidaan laskentatilavuuksien keskipisteissä (kts. kuva 4.1), on ne jollain tavoin interpoloitava pinnoille. Vaikka kyseessä on kontrollitilavuuskeino, interpolointitavat jaetaan differenssimenetelmän tavoin ensimmäisen ja toisen kertaluvun interpolointeihin. Interpoloinnit toimivat erilaisilla 4.2. DISKRETOINTI PAIKAN SUHTEEN 101 hilatyypeillä samalla periaatteella. Kolmio- tai tetraedrihiloilla lausekkeista tulee pitempiä kuin rakenteellisella hilalla, mutta ilmeisesti FLUENTissa asia hoidetaan aina yleisemmällä (so. pitemmällä) tavalla. Seuraavassa tarkastellaan konvektoituvien suureiden φj määritystä. Massavirran ja painegradientin laskentaan palataan myöhemmin. Interpolointimenetelmiä ovat mm. seuraavat: • keskiarvoon tai lineaariseen interpolointiin perustuva (’keskeisdifferenssi’) • ylävirtamenetelmä • hybridimenetelmä • ’power-law’ -diskretointi • toisen kertaluvun ylävirtamenetelmä • ’QUICK’-menetelmä • MUSCL-interpolointi FLUENTissa on tätä kirjoitettaessa valikossa ensimmäisen ja toisen kertaluvun ylävirtamenetelmät, power-law -menetelmä, QUICK ja kolmannen kertaluvun MUSCL. QUICK ja toisen kertaluvun ylävirtamenetelmät saataisiin myös MUSCLkaavasta. Menetelmien implemetointi ei ole suoraviivaista rakenteettomalle hilalle. Perinteisesti FLUENTissa ei käytetä kirjallisuudessa esiintyviä termejä diskretoinneille, joten käyttäjän on lähes mahdotonta tietää tarkasti miten koodi suorittaa diskretoinnin. Seuraavassa käsitellään asiaa vanhan manuaalin perusteella, jotta asiasta saadaan jonkinlainen käsitys. Yksinkertaisin interpolointikeino pinnalla A on ottaa keskiarvo suureen φ arvoista pisteissä c0 ja c1. Periaatteessa tässäkin voidaan interpoloida pisteiden välillä, mutta rakenteellisella hilalla (ei kuvassa) pelkkä keskiarvokin johtaisi toisen kertaluvun menetelmään. (Tästä asiasta enemmän CFD-kursseilla). Keskiarvoa vastaavaa menettelyä differenssimenetelmässä sanotaan keskeisdifferenssiksi ja samaa nimitystä käytetään usein kontrollitilavuusmenetelmän yhteydessäkin. Joskus keskeisdifferenssiä ei voida valita laskentaan ollenkaan, mikä saattaa vaikuttaa oudolta. Syynä tähän on se, että kaupallisessa ohjelmassa pyritään simuloinnin robustisuuteen. Keskiarvolla yhtälöihin liittyvä ns. numeerinen vaimennus on vähäistä (sitä ei olisi ollenkaan ilman sen keinotekoista lisäämistä ns. Rhie ja Chow -termin avulla). 4.2. DISKRETOINTI PAIKAN SUHTEEN 102 Tällöin laskennalla on suuri taipumus ’kaatua’. Vaikka keskiarvo on periaatteessa hyvä toisen kertaluvun interpolointitapa, sitä ei yleensä käytetä, koska laskenta halutaan tehdä mahdollisimman robustilla tavalla vaikkakin jossain määrin tarkkuuden kustannuksella. Toinen perustapa on ensimmäisen kertaluvun ylävirtamenetelmä. Tällöin käytetään sen laskentakopin arvoja pinnalla, mistä ’tuuli puhaltaa’. Jos oletamme kuvan 4.1 tapauksessa virtauksen (so. nopeuskomponentin u¯) suunnan oleva tilavuudesta c0 tilavuuteen c1, annetaan pinnalle pisteen c0 arvot. Tällaisella diskretoinnilla on ns. konvektio-ominaisuus eli virtauksen mukana informaatio leviää vain oikeaan, alavirran suuntaan. Diskretointi on erittäin robusti. Ns. implisiittinen vaihe yhtälöiden ratkaisussa perustuu aina ensimmäisen kertaluvun ylävirtadiskretointiin. Sitä ei kuitenkaan pidä käyttää varsinaiseen simulointiin, korkeintaan laskennan aloitusvaiheessa. Aiemmin tehtiin yrityksiä tarkentaa ensimmäisen kertaluvun ylävirtadiskretointia menemättä kuitenkaan korkeamman kertaluvun menetelmiin. Eräs tällainen yritys on ns. hybridimenetelmä, jossa käytetään ylävirtamenetelmän ja keskeisdifferenssin kombinaatiota riippuen laskentatilavuuteen referoidun Peclet’n luvun ρ¯ u∆x/Γφ arvoista. FLUENTissa ei ole hybridimenetelmää, mutta sen sijaan ns. power-lawdiskretointi. Power-law-menetelmä perustuu yksidimensioisen konvektiodiffuusioyhtälön tarkkaan ratkaisuun. Power-law -nimitys tulee siitä, että tarkkaa ratkaisua, joka sisältää e:n potensseja, approksimoidaan rationaalifunktiolla, jossa on viidennen asteen potensseja. Käytännössä tämä menetelmä redusoituu ensimmäisen kertaluvun ylävirtamenettelyä vastaavaksi ja sitä ei pidä missään tapauksessa käyttää. Käyttökelpoinen diskretointi sen sijaan on toisen kertaluvun ylävirtamenetelmä. Siinä φ:n arvo seinällä saadaan korjaamalla ensimmäisen kertaluvun arvoa φ0 gradientin avulla φj = φ0 + ∇φ · ∆s (4.9) missä φ0 ja ∇φ ovat siis ’tuulen puoleisia’ arvoja ja ∆s on etäisyys tuulen puoleisen kopin keskipisteestä seinälle j. Tätä lauseketta varten on laskettava gradienttien arvot koppien keskellä. Tämä tapahtuu soveltaen Gaussin lausetta Nf aces 1 X ∇φ = φ˜j Aj V j (4.10) missä jälleen V on kopin tilavuus ja Aj seinän j pinta-ala. Yhtälössä (4.10), siis gradientin laskennassa, käytetään pinnalla olevalle suureelle φ˜j interpoloitua arvoa 4.2. DISKRETOINTI PAIKAN SUHTEEN 103 pinnan kahden puolen olevien koppien arvoista. Tässä φ˜j :n laskenta ei siis mitenkään riipu konvektiotermin diskretoinnista. Yhtälön (4.9) luonteen selvittämiseksi voidaan kirjoittaa sen yksidimensioinen vastine. Tällöin osoittautuu, että kyseessä ei olekaan puhdas toisen kertaluvun ylävirtamenetelmä, vaan ylävirtapainotettu, ns. Frommin menetelmä. Kyseessä on joka tapauksessa toisen kertaluvun käyttökelpoinen diskretointi. FLUENTin manuaalin mukaan gradientin arvoja rajoitetaan siten, että vältytään ratkaisuun tulevilta oskilloinneilta. Kyseessä on ns. vuon rajoittaminen, joka voidaan tehdä monellakin tavalla. Kaikkein tavallisin tapa on ns. TVD-menetelmä, jota on käsitelty CFDperuskurssilla. FLUENTissa on ongelmana, että vuon rajoittaminen tehdään aina. Tähän palataan luvussa 5. FLUENTissa on myös ns. QUICK-menetelmä, joka ei kuitenkaan vastaa kirjallisuudessa esitettyä. QUICK-menetelmää usein pidetään kolmannen kertaluvun diskretointina, mutta todellisuudessa yleisesti käytössä olevissa kaupallisissa virtauslaskentaohjelmissa ei ole olemassa toista kertalukua tarkempia menetelmiä. Tarkempia menetelmiä olisi mahdollista käyttää vain joissain erikoistapauksissa. QUICKmenetelmä on yksi mahdollinen toisen kertaluvun diskretointi, jotka kaikki saadaan ns. MUSCL-kaavan avulla (yksidimensioinen tilanne) φLi+1/2 = φi + 14 (1 − κ)(φi − φi−1 ) + 41 (1 + κ)(φi+1 − φi ) 1 1 φR i+1/2 = φi+1 − 4 (1 + κ)(φi+1 − φi ) + 4 (1 − κ)(φi+2 − φi+1 ) (4.11) missä arvoa φLi+1/2 käytetään pinnalla i + 1/2, kun nopeus on positiivinen ja arvoa φR i+1/2 negatiivisella nopeudella. Yhtälöstä saadaan toisen kertaluvun ylävirtadiskretointi, kun κ = −1 ja keskeisdifferenssi (so. keskiarvo pinnan i + 1/2 kahden puolen olevista arvoista), kun κ = 1. QUICK-diskretointi vastaa arvoa κ = 1/2 ja edellä mainittu Frommin menetelmä, jota FLUENTissa nimitetään toisen kertaluvun ylävirtadiskretoinniksi, saadaan, kun κ = 0. ’Kolmannen kertaluvun’ MUSCL saadaan arvolla κ = 1/3, mutta tämä tarkkuus voidaan realisoida vain yksidimensioisessa tilanteessa. Heikkolaatuisella hilalla katkaisuvirhe ei usein ole edes muodollista toista kertalukua, vaan jonkin verran sen alle. FLUENTissa ei käytetä QUICK-menetelmää eikä MUSCL-kaavaa sellaisenaan. Tarkastellaan kuvaa 4.2 ja diskretointia pinnalla e. Oletetaan nopeus positiiviseksi 4.2. DISKRETOINTI PAIKAN SUHTEEN 104 (vasemmalta oikealle). FLUENTissa ’QUICK’-menetelmällä tarkoitetaan kaavaa φe = θ ∆xE ∆xP ∆xP ∆xW + 2∆xP φP + φE +(1−θ) φP − φW ∆xP + ∆xE ∆xP + ∆xE ∆xW + ∆xP ∆xW + ∆xP (4.12) Olettamalla hilajako tasaväliseksi ∆xW = ∆xP = ∆xE , saadaan # " 3 1 φP + φE + (1 − θ) φP − φW φe = θ 2 2 2 (4.13) Selvästikin kyseessä on parametrilla θ painotettu keskeisdifferenssin ja toisen kertaluvun ylävirtamenetelmän yhdistelmä. Kyseessä on hieman toiseen muotoon kirjoitettu MUSCL-kaava (4.11). Alkuperäinen QUICK-menetelmä, jota FLUENTin manuaalissa nimitetään ’klassiseksi QUICKiksi’, saadaan, kun θ = 1/8. Olettamalla ’itäisen’ pinnan e vastaavan indeksiä i + 1/2, niin yhtälössä (4.11) φLi+1/2 vastaa tätä diskretointia, kun κ = 1/2. ∆XW ∆XP ∆XE W P E w e Kuva 4.2: Yksidimensioiset kontrollitilavuudet. Toisen kertaluvun menetelmillä ratkaisuun voi muodostua oskillointeja, jotka voidaan välttää käyttäen vuon rajoittamista. FLUENTissa rajoitetaan vuota parametrin θ avulla, mutta ei kuvata lähemmin miten. Kun lähtökohtana on yhtälö, joka on kirjoitettu muotoon keskeisdifferenssi + ylävirtamenetelmä, on mahdollista, että se redusoituu ns. van Leerin rajoittimella varustetuksi diskretoinniksi (kts. esim. CFD peruskurssi). Kyseessä ei siis ole alkuperäinen QUICK-menetelmä, vaan limitoitu ylävirtapainotettu diskretointi. Manuaalissa termiä QUICK luultavasti käytetään siksi, että siitä on tavallaan tullut eräänlainen korkeamman kertaluvun diskretointien tavaramerkki. Ongelmana FLUENTissa on siis se, että sekä ns. toisen kertaluvun ylävirtamenetelmällä ja ns. QUICKillä käytetään aina vuon rajoitinta. Kaikki diskretoinnit, mukaanluettuna FLUENTin ’QUICK’, ovat tarkempia rakenteellisilla hiloilla, mutta ne voidaan laajentaa rakenteettomille. FLUENTin manuaalissa asiaa ei selosteta yksikäsitteisesti. Diskretoinnin (4.12) yhteydessä tode- 4.2. DISKRETOINTI PAIKAN SUHTEEN 105 taan käytettäväksi rakenteettomalla hilalla normaalia toisen kertaluvun ylävirtamenetelmää. Loogista voisi olla, että lausekkeen jälkimmäinen termi korvataan toisen kertaluvun diskretoinnilla, mutta manuaalissa esitetyllä tavalla yhtälö (4.9) onkin Frommin menetelmä. Kertoimen θ määrittelyä olisi siinä tapauksessa muutettava, jotta kaava (4.12) toimisi samalla tavoin kuin rakenteellisella hilalla. Tämä on tietenkin mahdollista. Manuaalin tekstin voi kuitenkin tulkita myös siten, että muiden kuin heksaedrien pinnoilla käytetäänkin suoraan yhtälöä (4.9). Yhteenvetona voidaan todeta, että FLUENTissa on mahdollista käyttää toisen kertaluvun diskretointeja vuon rajoittimen kanssa. Diskretoinneista käytetään yleisesti käytössä olevia standardinimityksiä harhaanjohtavalla tavalla. Miten lopullinen diskretointi tehdään ei selviä kunnolla, edellä asiaa on yritetty arvailla. Käytännössä voidaan luultavasti käyttää kumpaa tahansa toisen kertaluvun menetelmää eivätkä tulokset silloin olennaisesti poikkea toisistaan. Jälleen on muistettava, että riittävällä hilatiheydellä tulokset konvergoituvat samoiksi eikä silloin niiden pidäkään erota toisistaan. Huomattava poikkema eri (toisen kertaluvun) diskretointimenetelmillä antaa aiheen epäillä hilan olevan liian harva tai konvergenssin epätäydellisen. Ensimmäisenä on siis tarkastettava, että laskenta on riittävästi supennut. OpenFOAMissa käyttäjä voi valita vapaasti eri interpolointimenetelmien välillä. Jokaiselle suureelle ja termille voi (ja täytyy) määritellä erikseen oma menetelmänsä. OpenFOAMin yleisimmät interpolintimenetelmät on lueteltu taulukossa 4.3. Taulukon menetelmistä kaikki paitsi otsikon Centred differencing alla olevat vaihtoehdot on tarkoitettu käytettäväksi konvektiotermin yhteydessä. Niitä voi kuitenkin halutessaan käyttää myös muiden termien yhteydessä - joskin on vaikea perustella, miksi näin kannattaisi tehdä. TVD ja NVD-menetelmien yhteydessä käyttäjä voi valita jonkun tarjolla olevista vuon rajoittimista. Konvektiotermin lisäksi on diskretoitava diffuusiotermit, jotka sisältävät derivaattoja laskentatilavuuksien pinnoilla. Diskretoinnista tulee aina toisen kertaluvun tarkka, mutta sen käytännön suorittaminen ei ole täysin ongelmatonta. Yhtälöllä (4.10) lasketaan koppien keskipisteisiin nopeusgradientit. Periaatteessa näistä keskipistearvoista voidaan ottaa keskiarvo ja saada siten toisen kertaluvun tarkka menetelmä koppien pintojen derivaatoille. Tämä on kaikkein yksinkertaisin tapa, mutta se johtaa hyvin laaja-alaisiin laskentamolekyyleihin diffuusiotermin osalta. Toinen tapa olisi laskea derivaattoja suoraan koppien pinnoille, mutta tämä on ohjelmallisesti hankalammin toteutettavissa. FLUENTin manuaalista ei selviä kumpaa tapaa ohjelma käyttää. 4.2. DISKRETOINTI PAIKAN SUHTEEN 106 Kuva 4.3: OpenFOAMin yleisimmät interpolintimenetelmät.Lhde:OpenF OAM U serGuide OpenFOAMissa gradientit lasketaan diffuusiotermin yhteydessä lähtökohtaisesti suoraan kopin pinnalle, mikä kuitenkin aiheuttaa ongelmia, jos hila on epäortogonaalinen. Epäortogonaalisessa hilassa kopin seinän normaali ja ympäröivien koppien keskipisteet yhdistävä jana ovat erisuuntaiset. Vinoudesta aiheutuvaa virhettä voidaan korjata koppien keskipisteissä laskettujen gradienttien avulla, jotka lasketaan eksplisiittisesti tunnettujen arvojen avulla. Onneksi käyttäjän ei yleensä tarvitse olla kovin huolissaan diffuusiotermin laskennasta. Tässä yhteydessä voidaan todeta, että useampipisteinen molekyyli on laskennassa huonompi sekä ratkaisun hyvyyden että konvergenssinopeuden suhteen. Konvektio- ja diffuusiotermien lisäksi OpenFOAMissa määritellään diskretointimenetelmät myös muille laskuoperaatioille. Itse asiassa konvektiotermin diskretointi vastaa tiettyihin suureisiin liittyvän divergenssioperaation diskretointia ja diffuusiotermin Laplacen operaattorin diskretointia. Alla on esitelty mahdolliset operaatiot: • Gradientin seinää vastaan kohtisuora komponentti, (∇φ)n • Gradientti, ∇ • Laplace-operaattori, ∆ • Divergenssi, ∇· 4.3. PAINEPOHJAINEN RATKAISIJA (PRESSURE-BASED SOLVER) 107 Alla on esimerkki siitä, miten liikemääräyhtälön diffuusiotermi voitaisiin määritellä. Ensiksi on annettava menetelmä divergenssioperaation diskretoimiseksi (Gauss). Lisäksi on määritettävä menetelmä, jolla diffuusiokerroin interpoloidaan kopin seinille (linear), sekä menetelmä nopeuden seinää vastaan kohtisuoran gradientin laskemiseksi (corrected). laplacian(nuEff,U) Gauss linear corrected; Tarkemmin eri termien diskretoinnista OpenFOAMissa ja niihin liittyvistä mahdollisuuksista löytyy suomenkielisestä muistiosta tai OpenFOAMin nettisivuilta. 4.3 Painepohjainen ratkaisija (pressure-based solver) 4.3.1 Liikemääräyhtälö Aiemmin painepohjaista ratkaisua nimitettiin peräkkäiseksi (segregated), koska menetelmässä ratkaistiin ensin ns. painekorjaus ja sen jälkeen diskretoidut yhtälöt yksi kerrallaan (’peräkkäin’). Kaupallisten koodien uutena piirteenä on kytkeä painekorjausyhtälö ja liikemääräyhtälö yhdeksi suureksi yhtälöryhmäksi. Tämän ratkaiseminen on hankalaa ja yksi ratkaisun iteraatiokierros vie moninkertaisesti aikaa perinteiseen painekorjausmenetelmään verrattuna. Iteraatiokierrosten määrä kuitenkin laskee ja menetelmän varmatoimisuus eli ’robustisuus’ paranevat. Käyttäjän kannattaa kokeilla molempia menetelmiä, useassa tapauksessa niiden laskenta-ajat ovat kuitenkin todennäköisesti samaa luokkaa. Menetelmät ovat perusteiltaan samoja, eroksi tulee yhtälöryhmä. Painekorjauksessa nopeuskomponenttien muutokset eliminoidaan eksplisiittisesti painekorjausyhtälöstä, jolloin saadaan neljä kertaa pienempi ryhmä, mutta tehtyjen approksimaatioiden vuoksi ratkaisua joudutaan alirelaksoimaan enemmän. Painekorjaustapojakin on useita. Monissa ohjelmissa voidaan valita SIMPLE, SIMPLEC ja PISO. Liikemääräyhtälöihin kytketty ratkaisu valitaan nimityksellä ’coupled’, kytketty. Ratkaisutapa valitaan FLUENTissa Pressure-Velocity coupling valikosta. Kokonaan toisenlainen ratkaisutapa on tiheyspohjainen (’density-based), josta käytettiin ennen nimitystä ’kytketty’ (coupled). Nykyään siis kytketyllä ratkaisulla tarkoitetaan painepohjaista ratkaisua, jossa painekorjaus on korvattu modernimmalla jatkuvuus- ja liikemääräyhtälöiden kytkennällä. 4.3. PAINEPOHJAINEN RATKAISIJA (PRESSURE-BASED SOLVER) 108 Tarkastellaan seuraavaksi painepohjaisen ratkaisun ominaispiirteitä. Tätä ratkaisua käytetään kokoonpuristumattomien yhtälöiden yhteydessä. Tässä ja jatkossa paneudutaan lähinnä SIMPLE-menetelmään. Painepohjaisia ratkaisumenetelmiä on paljon, mutta niiden perusteet ovat melko samanlaisia. Tasapainotilassa voidaan kirjoittaa jatkuvuusyhtälöksi Z A ρV~ · dA = 0 (4.14) ja vektorimuotoiseksi liikemääräyhtälöksi Z A ρV~ V~ · dA = − Z A pI · dA + Z A τ · dA + Z FdV (4.15) V missä τ on jännitystensori ja F tilavuusvoimien muodostama vektori. Liikemääräyhtälöiden lukumäärä on yhdestä kolmeen riippuen probleeman dimensioista. Kukin liikemääräyhtälön komponentti diskretoidaan yhtälön (4.8) tapaan. Tällöin kitkatermi ei ole aivan samanmuotoinen kuin yhtälön (4.8) diffuusiotermi ja lisäksi liikemääräyhtälössä on painegradientti. Diskretointi tehdään kuitenkin aivan samaan tapaan kuin edellä. Lopputuloksena saatava yhtälö on tapana kirjoittaa seuraavasti nopeuskomponentille u Nf aces ap up = X nb anb unb + X pj Ax,j + Sp (4.16) j missä Ax,j on laskentatilavuuden pinnan x-komponentti. Kertoimet aP ja anb koostuvat massavirroista koppien pinnoilla ja diffuusiokertoimista ja ne määräytyvät, kun diskretointi on tehty edellisessä kappaleessa kuvatuilla menettelyillä. Summalauseke voi siis olla hyvin monien laskentakoppien yli. Ensimmäisen kertaluvun menetelmällä summaus koskisi vain naapurikoppeja. Edellä jo todettiin, että jos diffuusiotermi diskretoidaan ottamalla keskiarvoja koppien keskipisteille lasketuista arvoista, saadaan hyvin laaja laskentamolekyyli, mikä hidastaa konvergenssia. Yhtälössä (4.16) on vielä diskretoitava kertoimia ap ja anb varten yhtälön (4.8) massavirta koppien pinnoilla ja paine. Näiden laskenta tapahtuu eri tavoin paine- ja tiheyspohjaisella ratkaisijalla. Tiheyspohjaisella käytetään laskentatilavuuksien pinnoilla myös massavirroille ja paineelle samaa interpolointitapaa kuin konvektoituville suureille. Nämä suureet siis käsitellään eri tavoin eri ratkaisutavoilla ja tulokset eivät siksi ole täysin samoja ennen kuin laskentahila on tarpeeksi tiheä. Tällöinhän molemmat ratkaisijat antavat saman (tarkan) ratkaisun. 4.3. PAINEPOHJAINEN RATKAISIJA (PRESSURE-BASED SOLVER) 109 FLUENTin oletusarvona painepohjaisella ratkaisijalla on käyttää paineen interpolointiin liikemääräyhtälöön perustuvaa menetelmää. Manuaalin tietojen perusteella on mahdollista arvailla, mitä tällä tarkoitetaan. Paineen interpolointia kuvatessa on viite kuuluisaan Rhien ja Chow’n artikkeliin, jossa esitellään kuitenkin massavirran laskentaa ja sen yhteydessä tehtävää numeerista vaimennusta. Tätä massavirran laskentaa FLUENT käyttää jatkuvuusyhtälössä. Yleensä samaa massavirtaa käytetään liikemääräyhtälöissäkin, mutta FLUENTin osalta tämä seikka ei selviä manuaalista. Todennäköisesti FLUENT siis lisää liikemääräyhtälöön standardivaimennustermin, kun paineelle käytetään oletusarvodiskretointia. FLUENTissa on mahdollista myös interpoloida paine lineaarisesti keskipisteistä c0 ja c1 kopin pinnalle A (kts. kuva 4.1). Käytännössä riittäisi pelkkä keskiarvo toisen kertaluvun tarkkuuteen, mutta lineaarinen interpolointi on rakenteettoman hilan yhteydessä tarkempi. Laskennan pitäisi toimia näinkin, koska riittää, että Rhie ja Chow vaimennus on läsnä jatkuvuusyhtälössä. Tässä vaihtoehdossa on hieman vähemmän numeerista vaimennusta, kuin paineen oletusarvodiskretoinnin yhteydessä, joten tätä laskentatapaa voisi siinä mielessä jopa suositella. Koska asia ei täydelleen selviä manuaalin perusteella, molempia diskretointeja kannattaa kokeilla. Kolmantena vaihtoehtona on käyttää toisen kertaluvun interpolointia, jota käytetään konvektoituville suureille, myös paineelle. Kuten edellä todettiin tiheyspohjaisella ratkaisulla kaikki suureet, siis myös paine, interpoloidaan näin. Tällöin painegradientti tulee lausutuksi useamman kuin kahden pisteen avulla. TKK:ssa aikoinaan saatujen kokemusten mukaan painetta ei kuitenkaan yleensä kannata interpoloida näin. Se saattaa johtaa oskillointeihin lasketussa paineprofiilissa. Neljäntenä vaihtoehtona on kytkeä paineen interpolointiin tilavuusvoiman vaikutusta. Sitä suositellaan käytettäväksi esimerkiksi nosteen yhteydessä. Luultavasti sen merkitys lopputuloksiin on vähäinen, mutta menettely parantaa iteraation konvergenssia. Viides interpolointivaihtoehto aktivoi jollakin tavoin limitetyn hilan kaltaisen systeemin. Aktivointi tapahtuu PRESTO-optiolla. Limitetty hila ei ole enää muodissa ja tämä optio kannattaa jättää rauhaan. Se toimiikin vain rakenteellisella hilalla. Liikemääräyhtälöt voidaan siis ratkaista FLUENTissa yksi kerrallaan. Jos massavirrat ja paineet kopin pinnoilla tunnettaisiin, yhtälö (4.16) tuottaisi heti tarkan ratkaisun. Koska näin ei ole, on iteroitava. Yhtälön (4.16) paineita iteroidaan siten, että jatkuvuusyhtälö toteutuu. Menetelmää sanotaan painekorjaukseksi ja siinä samalla iteroidaan massavirtoja. Painekorjaukseen ja sen yhteydessä muodostuvien 4.3. PAINEPOHJAINEN RATKAISIJA (PRESSURE-BASED SOLVER) 110 yhtälöryhmien ratkaisuun palataan luvussa 5. Toisena vaihtoehtona on ratkaista jatkuvuusyhtälö ja liikemääräyhtälöt yhtä aikaa (FLUENTin kytketty ratkaisu). 4.3.2 Jatkuvuusyhtälö Jatkuvuusyhtälö voidaan kirjoittaa muotoon Nf aces X m ˙j =0 (4.17) j missä m ˙ j on pinnan j läpi kulkeva massavirta. (Manuaalissa massavirralle käytetään symbolia J, tällä kurssilla pyritään ainakin jossain määrin käyttämään standardimerkintätapoja). Yhtälö (4.17) voidaan kirjoittaa myös muotoon Nf aces X ρ¯ uAj = 0 (4.18) j missä u¯ on pintaa vasten kohtisuora nopeus. Painekorjausmenetelmässä jatkuvuusyhtälöä ei oikeastaan ratkaista ollenkaan, vaan sen avulla määritetään painekenttä. Ohjelmassa lasketaan massataseen virheitä yhtälön (4.18) avulla lähtien liikemääräyhtälöistä saaduista nopeuksista. Näitä käytetään painekorjausyhtälössä, joka saadaan liikemäärä- ja jatkuvuusyhtälöistä. Jatkuvuusyhtälöön on tässä vaiheessa sisällytettävä numeerista vaimennusta, muuten tuloksena on ns. shakkilautakuvio paineille. Tämä johtuu siitä, että rinnakkaisten laskentatilavuuksien paineiden välille ei tulisi ratkaisussa mitään kytkentää ilman vaimennustermiä. Vallassa oleva dogmi on lisätä vaimennus massavirtoihin (Rhie ja Chow -menetelmä). Kuten liikemääräyhtälön yhteydessä myös todettiin, vaimennusta ei kuitenkaan tarvitse käyttää muualla kuin jatkuvuusyhtälössä. Muissa yhtälöissä voidaan periaatteessa käyttää (jos halutaan) nopeuksien keskiarvoista laskettua konvektionopeutta. mutta jatkuvuusyhtälön kohdalla vaimennustermi on oltava mukana painepohjaisen ratkaisijan yhteydessä. Konvektiotermien ylävirtadiskretoinnista tulee ratkaisuun myös numeerista vaimennusta, mutta se ei riitä poistamaan painepohjaisen ratkaisijan shakkilautailmiötä. ˆ˙ laskentatilavuuksien keskipisteistä interpoloimalla saatu Olkoon seuraavassa m massavirran arvo. Esimerkiksi kuvan 4.1 tilanteessa pinnalla A FLUENT laskee lopullisen massavirran yhteydestä 2 ˆ˙ + ρA (pc0 − pc1 ) m ˙ =m aˆP (4.19) 4.4. TIHEYSPOHJAINEN RATKAISIJA (DENSITY-BASED SOLVER) 111 missä a ˆP on liikemääräyhtälön kertoimista kopeissa c0 ja c1 saatu keskiarvo. Kerroin on laadultaan sama kuin massavirta ja esimerkiksi CFX:n manuaalin perusteella CFX käyttää jonkinlaista tulovirtauksen massavirtaa kertoimen a ˆP asemesta. Painekorjausratkaisussa liikemääräyhtälön kertoimet ovat tärkeässä asemassa. Massavirtaan siis lisätään termi, joka on pinnan kahden puolen olevien paineiden erotus. Tämä termi on luonteeltaan ns. vaimennustermi ja sen vaikutus menee nollaksi hilaa tihennettäessä muualla paitsi epäjatkuvuuskohdissa (Rhie ja Chow -menetelmää ei voi sinällään käyttää tiivistys- eli shokkiaaltojen laskentaan. Vaimennustermistä lähemmin CFD-jatkokurssilla). Valitettavasti yhtälö (4.19) on ensimmäistä kertalukua lisätyn painegradientin vuoksi. Ohjelmassa ei ehkä käytetäkään yhtälöä (4.19) laskentaan, vaan on mahdollista korvata paine-ero kopin pinnoille MUSCL-tyyppisellä toisen kertaluvun ekstrapoloinnilla saatujen paineiden erotuksella. Ilmeisesti juuri tällä tavoin saatujen paineiden keskiarvoa olisi mahdollista käyttää myös liikemääräyhtälön painegradientissa. Aiemmin yhtälössä (4.19) käytettiin huomattavasti monimutkaisempaa paineen lauseketta, joka saattoi satunnaisesti olla jopa vaimennuksen sijasta algoritmia epästabiloiva. Massavirran laskentatavasta kannattaa huomata, että suoraan nopeuksien keskiarvoista laskettu massanvirrantiheys ei ole täsmälleen sama kuin ohjelman sisällä käytetty massavirta, koska myös paine-erot yhtälön (4.19) mukaisesti vaikuttavat massavirtaan. Tämä voi aiheuttaa päänvaivaa jälkikäsittelyvaiheessa ja ohjelmasta ehkä voidaan tulostaa kahdella tavalla määritellyt massavirrat. Tämän jälkeen painepohjaisessa ratkaisussa tarvittavat diskretoinnit on määritelty. Skalaarisuureiden ratkaisu ei tuo tilanteeseen enää mitään uutta. Ne voidaan ratkoa peräkkäin varsin mielivaltaisessa järjestyksessä. Järjestys määräytyy ohjelmassa sen mukaan, missä vaiheessa lasketaan mahdollisia lähdetermejä, aineominaisuuksia, turbulenssisuureita jne. Jos kaikissa yhtälöissä käytetään jatkuvuusyhtälön määrittelemää massavirtaa, yhtälöistä tulee samanmuotoisia ja ohjelma yksinkertaistuu. 4.4 Tiheyspohjainen ratkaisija (density-based solver) 4.4.1 Yhtälöt ja matriisin pohjustaminen Tämä ratkaisija perustuu kokoonpuristuviin yhtälöihin ja perusmuodossaan sitä voidaan käyttää, kun Machin luku on yli 0,1. FLUENTissa käytetään ns. matriisin poh- 4.4. TIHEYSPOHJAINEN RATKAISIJA (DENSITY-BASED SOLVER) 112 justamiskeinoa (preconditioning). Tällöin tiheyspohjainenkin ratkaisu toimii kaikilla Machin luvuilla. Menetelmä perustuu aikaintegrointiin, joten yhtälöt kirjoitetaan aina aikaderivaatan kanssa Z Z ∂ Z WdV + [F − G] · dA = HdV ∂t V A V (4.20) Ratkaisussa ei aikaderivaatalla ole välttämättä mitään varsinaista tekemistä ajan suhteen integroinnin kanssa. Kyseessä on vain tapa saavuttaa tasapainotila. Aukikirjoitettuna vektorit W ja F ovat W= ρ ρu ρv ρw (4.21) ρE F= ρV~ ρV~ u + p~i ρV~ v + p~j ρV~ w + p~k ρV~ E + pV~ (4.22) Matriisi G sisältää kitka- ja lämmönsiirto termit (diffuusiotermit) ja H on lähdetermi. Kahden viimeksi mainitun käsittely ei poikkea peräkkäisestä ratkaisusta, oleellinen ero tulee kitkattoman vuon osan, ns. Eulerin yhtälöiden ratkaisusta, jossa käytetään painepohjaisesta ratkaisutavasta poikkeavaa menettelyä sekä vuolle että sille perustuvalle numeeriselle ratkaisulle. Ratkaisu siis perustuu yhtälön (4.20) aikaintegrointiin. Kokemus on osoittanut, että ratkaisusta tulee hyvin kankea, jos virtauksen Machin luku lähestyy nollaa. Tämän vuoksi FLUENTissa käytetään matriisin pohjustamiseksi nimitettyä menetelmää, jolla periaatteessa voidaan ratkaista virtausta kaikilla nopeusalueilla. Menetelmä ei kuitenkaan välttämättä ole kaikissa tilanteissa kovin tehokas. Sen vuoksi tiheyspohjainen ratkaisija kannattaa valita silloin, kun tilanne muistuttaa aerodynaamista simulointia. Tällainen tilanne on esimerkiksi laivoilla. (Laivoilla tosin on mallinnettava myös nesteen pinta, täysin analoginen tilanne olisi sukellusveneillä). Yleensäkin tiheyspohjaista ratkaisua kannattaa käyttää tilanteissa, joissa on pelkkää virtausta, ei virtaukseen linkitettyä monimutkaista fysiikkaa. Matriisin pohjustaminen kohdistuu aikaderivaattaan. Tasapainotilassa aikaderivaatta on nolla, joten temppu ei siis periaatteessa vaikuta ratkaisun lopputulokseen. 4.4. TIHEYSPOHJAINEN RATKAISIJA (DENSITY-BASED SOLVER) 113 Aluksi yhtälöillä tehdään aikaderivaatassa muuttujien vaihdos ∂W ∂ ∂Q ∂t Z V QdV + Z A [F − G] · dA = Z (4.23) HdV V missä Q = [p, u, v, w, T ] on uusi ratkaistavien muuttujien vektori ja ∂W/∂Q on ns. Jacobin matriisi, joka näillä muuttujavalinnoilla on ∂W =Γ= ∂Q ρp 0 0 0 ρT ρp u ρ 0 0 ρT u ρp v 0 ρ 0 ρT v ρp w 0 0 ρ ρT w ρp H ρu ρv ρw ρT H + ρcp (4.24) missä ρp ja ρT ovat tiheyden derivaattoja paineen ja lämpötilan suhteen. Tässä vaiheessa ei ole tehty vielä mitään approksimaatioita. Aikaderivaatan muuttujat on vaihdettu ns. primitiivisuureisiin, joita käytetään myös peräkkäisessä ratkaisijassa. Alhaisella Machin luvulla esiintyvää konvergenssiongelmaa ei ole vielä muuttujavaihdolla ratkaistu. Tämä tehdään siten, että Jacobin matriisin Γ ominaisarvoja manipuloidaan. Perusideana on korvata virtauksen äänennopeus pseudoäänennopeudella, jolloin Machin luvulle saadaan selkeästi nollasta poikkeava arvo. Tämä menettely on aktiivinen ainoastaan alhaisella Machin luvulla ja modifioidussakin tilanteessa pseudoMachin luku jätetään arvon 0,2 tienoille. Menettely takaa vain sen, että yhtälön luonne ei matemaattisesti muutu, kun lähestytään Machin lukua nolla. Modifiointi tehdään lisäämällä tiheyden derivaattaan ρp termi 1/Ur2 , missä referenssinopeuden Ur ohjelma valitsee paikallisesti ratkaistusta nopeuskentästä. Matriisin pohjustamisella rikotaan tarkkuus ajan suhteen. Yhtälöitä ei sinällään voida käyttää ajasta riippuviin tapauksiin, mutta käyttämällä ns. kaksinkertaista aikaintegrointia (dual time-stepping) voidaan pohjustuskeinolla ratkoa myös ajasta riippuvia tilanteita. Sinällään pohjustus on vain keino ratkoa tasapainotilan virtausta alhaisella Machin luvulla. 4.4.2 Vuon laskenta Tiheyspohjaisen ratkaisun yhteydessä käytetään vuon laskennassa Roen menetelmää (Roe method, myös flux-difference splitting) tai AUSM-menetelmää. Tätä menetelmätyyppiä nimitetään myös approksimatiiviseksi Riemann-ratkaisijaksi tai Godunov-tyyppiseksi ratkaisuksi. Se soveltuu parhaiten kokoonpuristuvien yhtälöiden yhteydessä käytettäväksi. Vuon laskenta on sellainen, että virtauksessa esiinty- 4.4. TIHEYSPOHJAINEN RATKAISIJA (DENSITY-BASED SOLVER) 114 vät tiivistysaallot voidaan saada jopa kahden laskentakopin väliin, siis niin epäjatkuvina kuin hilan resoluutio antaa myöden. Menetelmä edellyttää vuon Jacobin matriisilta nollasta poikkeavia ominaisarvoja, joten perusmuodossaan vuonkin laskenta sopii vain tilanteeseen, jossa Ma > 0,2. Roen menetelmässä kitkaton vuovektori kopin pinnalla lasketaan seuraavasti 1 1 F = (FR + FL ) − |A|δW 2 2 (4.25) missä vuot FR ja FL lasketaan kopin pinnan kummankin puolen arvoilla. Nämä arvot saadaan interpoloimalla kummastakin suunnasta kaavoilla (4.11) tai vastaavilla yhteyksillä. Kuten jo todettiin, tiheyspohjaisessa ratkaisutavassa ei ole eroa paineen, massavirran ja konvektoituvien suureiden interpoloinneilla. Kaikki lasketaan samalla tavalla. Suure δW = WR − WL on ratkaistavien suureiden erotus ’oikealla’ ja ’vasemmalla’ puolen pintaa. Yhtälö (4.25) voidaan tavallaan tulkita toisen kertaluvun keskeisdifferenssiksi ja vaimennustermiksi. Tämä vaimennustermi hoitaa kuitenkin ylävirtapainotuksen oikealla, karakteristisiin suuntiin pohjautuvalla tavalla, joten kyseessä on myös eräänlainen ylävirtadiskretointi. Esimerkiksi ylisoonisella virtauksella vuon lauseke automaattisesti kytkee pois alavirran vaikutuksen. Lauseke myös poistaa mahdollisuuden shakkilautamaisiin ratkaisuihin eikä ylimääräisiä vaimennustermejä tarvita. AUSM-menetelmä on yksinkertaistettu versio kaavasta (4.25). Yleensä menetelmät tuottavat samanlaisen ratkaisun. Hilakonvergoitunut tulos on täsmälleen sama, mutta äärellisen kokoisella hilalla voi pieniä eroja näkyä. Joskus Roen menetelmä tuottaa epäfysikaalisen ratkaisun, mutta on epäselvää voidaanko tämä aina välttää AUSM-diskretoinnilla. Tilanne on hyvin harvinainen ja liittyy kitkattoman virtauksen simulointiin. FLUENTissa käytetään matriisin pohjustusta, jolloin ominaisarvojen manipulointi vaikuttaa myös vuon laskentaan matriisin A kautta. Tämä siis tapahtuu vain alhaisella Machin luvulla. Shakkilautamainen ratkaisu poistuu, mutta tilanteessa ei ole enää ’fysiikkaa’ mukana, vaan käyttäjä (tässä tapauksessa FLUENTiin valmiiksi ohjelmoitu algoritmi) manipuloi vaimennusta eräänlaisen ’Lindströmin vakion’ muodossa. Vakion valintatapa estää näennäistä Machin lukua nousemasta likimain yli arvon 0,2. Kyseessä oleva vaimennus on siis keinotekoista alhaisella Machin luvulla ja tehdään eri tavoin kuin painepohjaisen ratkaisun Rhie ja Chowmenetelmässä. Suuremmalla fysikaalisella Machin luvulla (Ma > 0,2) tämäntyyppistä vaimennusta ei tarvita. Paineen kytkentä tapahtuu fysikaalisella pohjalla. Nu- 4.4. TIHEYSPOHJAINEN RATKAISIJA (DENSITY-BASED SOLVER) 115 meerisessa ratkaisussa on kuitenkin sisäistä vaimennusta ylävirtapainotetun diskretoinnin katkaisuvirheestä johtuen. 4.4.3 Tiheyspohjaisen menetelmän ratkaisutavat Tiheyspohjaisella ratkaisijalla käytetään aikaintegrointiin perustuvaa iterointitapaa, jota ei tule sekoittaa todelliseen ajan suhteen tarkkaan laskentaan. Ratkaisutapoja on kaksi, eksplisiittinen ja implisiittinen. Niiden erot ovat luultavasti melko pieniä, mikä aiheutuu siitä, että eksplisiittisessä ratkaisussa käytetään aika-askeleen pidentämisessä eräänlaista yksinkertaista implisiittistä operaattoria, residuaalin tasoittamista. Eksplisiittinen menetelmä perustuu m-askeliseen Runge-Kutta -menetelmään. Algoritmi on seuraava Q0 = Q0 ∆Qi = −αi Γ−1 ∆tRi−1 Qi = Qn+1 = Qi−1 + ∆Qi Qm (4.26) missä uuden iteraatiokierroksen n+1 arvo ratkaisuvektorille ∆Q saadaan tekemällä i = 1, 2, ..., m Runge-Kutta askelta. Yleensä tehdään 3-4 askelta ja näille viritetään sopivat kertoimien αi arvot, jotta aikaintegrointi olisi mahdollisimman vaimentava. Tarkoituksenahan ei ole laskea ajan suhteen tarkasti, vaan aikaintegroida yhtälöitä, kunnes tasapainotila löytyy. Runge-Kutta -menetelmässä joudutaan laskemaan ns. residuaali m kertaa, mikä on aikaa vievää, mutta menetelmässä ei tarvita monimutkaista yhtälöryhmän ratkaisua. Residuaali askeleella i lasketaan olemassa olevista arvoista Nf aces Ri = X h i Fj (Qi ) − Gj (Qi ) − V H j (4.27) Yhtälöissä käytetään paikallista näennäisaika-askelta, joka lasketaan yhteydestä ∆t = CF L∆x λmax (4.28) missä CF L on ns. Courantin luku (lyhennys tulee nimistä Courant-Friedrichs-Lewy) ja λmax on pohjustetun yhtälön matriisin Γ−1 A paikallisesti maksimiominaisarvo. Paikallisuus merkitsee tässä, että ’aika-askel’ ei ole laskenta-alueessa vakio, vaan muuttuu laskentatilavuuden dimensioiden ∆xi ja virtausolosuhteiden mukaan. Koska ominaisarvoihin vaikuttaa matriisin pohjustaminen, ovat aika-askeleetkin aivan 4.4. TIHEYSPOHJAINEN RATKAISIJA (DENSITY-BASED SOLVER) 116 erikokoisia eri nopeusalueilla. Paikallisen aika-askeleen merkitys on siinä, että eksplisiittiseen aika-integrointiin liittyy aika-askeleen pituutta säätelevä stabiilisuuskriteeri. Käyttämällä paikallista aika-askelta, saadaan se aina maksimoitua. Tässä katoaa ajan suhteen tarkkuus, mutta tarkoituksena onkin minimoida tasapainotilaan tarvittavien laskentakierrosten määrä. Aika-askelta voidaan vielä kasvattaa (Courantin lukua kasvattaa) ottamalla käyttöön residuaalien tasoittaminen. Kyseessä on eräänlainen yksinkertaistettu implisiittinen vaihe, jonka on havaittu stabiloivan yhtälöitä, jolloin voidaan käyttää hieman suurempaa Courantin luvun arvoa, mikä jälleen nopeuttaa tasapainotilan saavuttamista. Residuaalin tasoittaminenkin sotkee tarkkuuden ajan suhteen. Vaikka menetelmä siis pohjautuu aikaintegrointiin, se on oikeastaan vain eräs iterointitapa. FLUENTissa voidaan konvergenssia vielä kiihdyttää monihila-algoritmilla (FAS, full-approximation storage). Käyttäjä voi valita FLUENTissa myös implisiittisen ratkaisutavan tiheyspohjaisille menetelmälle. Myös implisiittinen ratkaisu pohjautuu aikaintegrointiin, mutta vuoarvot lausutaan uudella ajanhetkellä, mikä lisää stabiilisuutta. Tällöin voidaan käyttää pitempää paikallista aika-askelta ∆t, mutta aikaa kuluu yhtälöryhmän ratkaisuun. On vaikea sanoa kumpi on tehokkaampi, eksplisiittinen vai implisiittinen ratkaisu. Implisiittisissä menetelmissä linearisoidaan uuden aikatason vuot, jolloin saadaan seuraava yhtälöryhmä D Nf aces − X j ! ∂Fj ∂Gj − ∆Qn+1 = −Rn ∂Qk ∂Qk (4.29) Kerroinmatriisi on ns. lohkotyyppiä, jossa kuhunkin noodiin liittyy ratkaistavien suureiden määrän kokoisia osamatriiseja. Kolmidimensioisessa tapauksessa ratkaistavia suureita on viisi, joten yhtälön (4.29) kerroinmatriisin koko on laskentatilavuuksien määrä ×5. Koska matriisin dimensio voi olla useita miljoonia, sen ratkaiseminen on aikaa vievää. Onneksi matriisi on harva ja lävistäjävaltainen. Diagonaalilla olevien osamatriisien Nf aces X V ∂Fj ∂Gj D= Γ+ − ∆t ∂Qk ∂Qk j ! (4.30) kokoa voidaan säädellä aika-askeleen koolla. Äärettömän pitkällä aika-askeleella diagonaalilla on painoa saman verran kuin diagonaalin ulkopuolella olevien termien 4.5. AJAN SUHTEEN TARKKA RATKAISU 117 summa. Tämä ominaisuus on suora seuraus kontrollitilavuusmenetelmän pääperiaatteesta, jossa sisääntulevien vuoarvojen summa tulee olla tasapainotilassa sama kuin kuin ulosvirtaavien voiden summa. Tällaisena matriisi käyttäytyisi huonosti iteratiivisten yhtälöryhmien ratkaisussa. Mitä lyhyempi aika-askel, sitä nopeammin yhtälöryhmän (4.30) ratkaisu konvergoi. Mutta lyhyellä aika-askeleella joudutaan taas ottamaan enemmän aika-askelia ennen kuin päästään tasapainotilaan. Jossain välissä on selvästikin jonkinlainen optimi. 4.5 Ajan suhteen tarkka ratkaisu FLUENTissa voidaan suorittaa ajan suhteen tarkka ratkaisu joko eksplisiittisesti tai implisiittisesti. Kuten jo edellä todettiin, näitä ei pidä sekoittaa tiheyspohjaisen menetelmän ratkaisutapoihin. Tarkka aikaintegrointi voidaan suorittaa painepohjaisessa ratkaisussa vain implisiittisesti, mutta tiheyspohjaisessa myös eksplisiittisesti. Eksplisiittisessä laskennassa käytetään siis tiheyspohjaista ratkaisutapaa ja periaatteessa samaa Runge-Kutta -algoritmia kuin tasapainotilan laskennassa. Nyt on kuitenkin käytettävä koko laskenta-alueessa samaa aika-askelta, mikä määräytyy sen laskentakopin mukaan, missä yhtälöstä (4.28) laskettu askel saa pienimmän arvonsa. Eksplisiittisessä aikaintegroinnissa ei voi myöskään käyttää matriisin pohjustamista eikä monihila-algoritmia. Matriisin pohjustamattomuuden vuoksi eksplisiittinen laskenta ei toimi kokoonpuristumattomalle virtaukselle. Kyseessä on siis puhdas eksplisiittinen laskenta, joka on hyvin aikaa vievää. Eksplisiittistä menettelyä kannattaa harvoin soveltaa, ajasta riippuvien ongelmien sovelluskohteena voi olla lähinnä tiivistysaaltojen etenemisprobleemat, mutta luultavasti niidenkin yhteydessä implisiittinen ratkaisu on parempi. Sekä paine- että tiheyspohjaisen ratkaisun kanssa implisiittisessä ajan suhteen tarkassa laskennassa aikaderivaatta käsitellään ikään kuin lähdeterminä ja siirretään yhtälön residuaaliin. Painekorjausmenetelmässä aikaderivaatan approksimaatio sisällytetään sinällään yhtälön (4.16) oikealle puolelle lähdetermiin S. Asia on merkillisempi tiheyspohjaisen menetelmän yhteydessä, koska siinähän ratkaisu jo perustui näennäisaikaintegrointiin. Todellinen aikaderivaatta lisätään yhtälöihin ja toteamalla, että aiemmin ei oikeastaan edetty reaaliajassa ollenkaan, vaan pseudoajassa τ , voidaan kirjoittaa ∂ Γ ∂τ Z V ∂ QdV + ∂t Z V WdV + Z A [F − G] · dA = Z V HdV (4.31) 4.5. AJAN SUHTEEN TARKKA RATKAISU 118 Aikaderivaatan approksimaatio siis sisällytetään tässäkin lähdetermiin, mutta yhtälöryhmän ratkaisussa sovelletaan kuitenkin aiemmin esitettyä aikaintegrointipohjaista iterointia todellisen aika-askeleen sisällä. Fysikaalisen aika-askeleen, joka on simuloinnin suorittajan annettava, sisällä tehdään näennäisaikaintegrointia ∆τ :n kokoisilla näennäisaika-askelilla. Tästä menettelystä käytetään nimitystä ’dual time stepping’, koska siinä tehdään numeerisen aikaintegroinnin yhden aika-askeleen sisällä toinen, näennäinen aikaintegrointi. Tyypillisesti joudutaan ottamaan 10-50 pseudoaskelta yhden aika-askeleen sisällä. Myös painekorjausmenetelmällä joudutaan iteroimaan aika-askeleen sisällä ja iteraatiokierrosten määrä on samaa luokkaa, ehkä vähän pienempi. Eksplisiittisessä integroinnissa käytetään Runge-Kutta -algoritmia ja se on joko toista tai kolmatta kertalukua tarkkuudeltaan ajan suhteen (ei sanota manuaalissa). Implisiittinen aikaintegrointi voi olla ensimmäistä tai toista kertalukua ajan suhteen. Merkitään hieman epäjohdonmukaisesti, mutta manuaalin tapaan, vuolausekkeen ja lähdetermien osuutta diskretoituna termillä F (φ). Implisiittinen ensimmäisen kertaluvun diskretointi, ns. Eulerin menetelmä, voidaan kirjoittaa muotoon φt+∆t − φt = F (φt+∆t ) ∆t (4.32) missä vuon ja lähdetermien laskenta tapahtuu uuden ajanhetken t + ∆t arvoilla. Eulerin menetelmä on epätarkka ja lisää ratkaisuun numeerista diffuusiota. Tämän vuoksi sitä ei pitäisi käyttää kuin erikoistilanteissa. Tarkempi on toisen kertaluvun implisiittinen menetelmä, jossa käytetään kolmen aikatason arvoja 3φt+∆t − 4φt + φt−∆t = F (φt+∆t ) 2∆t (4.33) Yleensä vain tätä kannattaa käyttää ajan suhteen tarkkaan laskentaan riippumatta siitä onko kyseessä paine- vai tiheyspohjainen ratkaisu. Integrointi on tällöin ehdoitta stabiilia, mikä tarkoittaa, ettei aika-askeleen pituudelle ole olemassa rajoituksia numeriikan kannalta. Aika-askel on kuitenkin valittava sellaiseksi, että haluttu ilmiö saadaan esille. Myös implisiittisellä menetelmällä voidaan laskea tiivistysaaltojen etenemistä, tällöin aika-askel on millisekunnin luokkaa. Jossain hitaassa tilanteessa aika-askel voi olla useita minuutteja. Eksplisiittisellä menetelmällä aika-askel olisi aina millisekuntien luokkaa pelkästään stabiilisuuden vuoksi (tämä tietysti riippuu myös laskenta-alueen koosta, joka määrää hilavälin ∆x). 4.6. DISKRETOINTIMENETELMIEN ARVIOINTIA 119 4.6 Diskretointimenetelmien arviointia FLUENT-ohjelmalla on useita juuria, minkä vuoksi ratkaisumenetelmiäkin on tarjolla useampia. Käyttäjälle saattaa aluksi tulla eri vaihtoehtojen välillä runsauden pulaa, vaikka itse asiassa vuon diskretoinnissa on todella vähän vaihtoehtoja. Monessa suhteessa FLUENT näyttäisi pohjautuvan RAMPANT-ohjelmaan, joka oli ensimmäinen kaupallinen rakenteettomaan hilaan perustuva ohjelma. FLUENT mitä ilmeisimmin käyttää RAMPANTiin pohjautuvaa tiedonhallintajärjestelmää ja hilatyyppejä (joiden valikoimaa on laajennettu). Tässä luvussa kuvattu Runge-Kutta tyyppinen ratkaisumenetelmä erilaisine lisukkeineen on myös Jamesonin kehittämä 1980-luvun aikana. Tiheyspohjainen implisiittinen menetelmä on hieman erilaisessa muodossa käytössä lukemattomissa aerodynaamisiin sovelluksiin kehitetyssä ohjelmassa. Matriisin pohjustamiskeinoja ryhdyttiin kehittämään 90-luvulla, mutta kovin yleisiä ne eivät ole. Matriisin pohjustamiskeino on läheistä sukua ns. näennäispuristuvuuskeinolle, jota on käytetty Antony Jamesonin ohjelmissa laivavirtausten laskennassa. FLUENTissa tämän ratkaisumenetelmän laajentaminen ’matriisin pohjustamiskeinoksi’ on siten ollut varsin suoraviivaista. FLUENTissa yleensä sovelletaan painekorjausmenetelmää ja ohjelman varhaisempien version yhteydessä muita vaihtoehtoja ei ollutkaan. Vanhan FLUENTin juuret olivat lähinnä PHOENICS-ohjelmassa, ratkaisumenetelmä oli sama. Nykyisessä versiossa painekorjausmenetelmä on kehittynyt huomattavasti pidemmälle. Ohjelmassa sovelletaan ilmeisen rationaalisesti samoja osia eri ratkaisutavoille. Vaikka esimerkiksi suureiden ekstrapolointi pinnoille ja fysikaaliset mallit ovat samoja eri ratkaisutavoille, niiden liittäminen kahteen erilaiseen ratkaisijaan ei ole kuitenkaan triviaalia. Ratkaisijoiden soveltuvuuteen onkin jäänyt eroja, mikä käyttäjän on syytä ottaa huomioon. Eri ratkaisijoiden valintaa voidaan hahmotella seuraavasti: Yleensä valitaan aina painepohjainen menetelmä. Mikäli kyseessä on ajan suhteen tarkka laskenta, käytetään toisen kertaluvun diskretointia aikaderivaatalle. Tiheyspohjaista ratkaisijaa voidaan käyttää tietyissä erikoistilanteissa. Eräs tällainen on kokoonpuristuva virtaus. Jos laskentatehtävässä esiintyvän jonkinlaisen päävirtauksen Machin luku on yli 0,2, on syytä valita tiheyspohjainen ratkaisija. (Jos Machin luku nousee yli yhden painekorjausratkaisija toimii hyvin huonosti, jos ollenkaan). Tiheyspohjaisellakin ratkaisijalla käytetään ajan suhteen tarkassa laskennassa toisen kertaluvun implisiittistä menetelmää. 4.7. KERTAUS 120 Koska tiheyspohjainen ratkaisu perustuu matriisin pohjustukseen, se toimii periaatteessa Machin lukuun nolla asti. Sitä voidaan ja kannattaa käyttää eräissä virtaustapauksissa, mutta simuloinnin suorittajan on arvioitava ja sen jälkeen kokeiltava ratkaisun toimivuus. On myös huomattava, ettei tiheyspohjaisen ratkaisun yhteydessä voida käyttää yhtä paljon fysikaalisia malleja kuin painekorjausratkaisijan. Se ei ole myöskään yhtä robusti, mutta se saattaa olla tarkempi ja nopeampi. Todennäköisesti tiheyspohjaista ratkaisijaa kannattaa käyttää tilanteissa, joissa on pelkkää virtausta ja tarkkuusvaatimus suuri (tiheä hila, pienen Reynoldsin luvun turbulenssimalli). Tällaisia sovelluskohteita ovat esimerkiksi puhaltimet ja pumput ja mahdollisesti jotkin lämmönsiirtotehtävät. 4.7 Kertaus • teknisten sovellusten yhteydessä kontrollitilavuuskeino on yleisin yhtälöiden diskretointitapa • yhtälöiden diskretoinnissa aiheutuu virhettä, jota nimitetään katkaisuvirheeksi. Yleensä virhe on luonteeltaan vaimentavaa (’numeerinen diffuusio’). • suorakulmaisilla rakenteellisilla hiloilla kontrollitilavuuskeino redusoituu differenssimenetelmäksi • FLUENTissa on kaksi erilaista ratkaisijaa, ’painepohjainen’ ja aikaintegrointipohjaisella menetelmällä toimiva ’tiheyspohjainen’ ratkaisija • painepohjainen ratkaisu voidaan tehdä painekorjausyhtälön avulla (useita vaihtoehtoja) tai kytkemällä painekorjaus suoraan liikemääräyhtälöiden ratkaisuun • FLUENTissa konvektiotermien diskretointi ei eroa eri ratkaisijoilla toisistaan • konvektiotermien diskretointitavat • ylävirtadiskretoinnit, joita FLUENTissa käytetään, sisältävät numeerista vaimennusta. Keskeisdifferenssi sen sijaan ei, joten sitä ei käytetä FLUENTissa robustisuusvaatimuksen vuoksi. • FLUENTin ’toisen kertaluvun ylävirtadiskretointia’ vastaa ylävirtapainotettu Frommin menetelmä 4.7. KERTAUS 121 • Poikkeama kahdella toisen kertaluvun menetelmällä saadulla tuloksella aiheutuu joko liian harvasta hilasta tai keskeneräisestä konvergenssista • diffuusiotermin ja konvektioterminkin diskretointimolekyylin laajuudella on merkitystä konvergenssin ja myös tuloksen tasaisuuden kannalta. Tähän käyttäjä ei voi FLUENTissa vaikuttaa. • painekorjausratkaisijan yhteydessä paineen interpoloinnissa oletusarvona on liikemääräyhtälöön perustuva kytkentä. Kyseessä lienee vaimennuksen lisääminen. • paine voidaan interpoloida myös lineaarisesti. Järkevältä vaikuttava tapa, jota kannattaa kokeilla. • jatkuvuusyhtälöön lisätään painepohjaisessa ratkaisussa aina Rhie ja Chow -vaimennustermi • FLUENTissa painekorjausratkaisijan vaimennus on yksinkertaistettu ja toimii paremmin kuin kirjallisuudessa yleensä esiintyvä standarditapa • tiheyspohjainen ratkaisija ei tarvitse Rhie ja Chow -tyyppistä vaimennusta, mutta alhaisella Machin luvulla matriisin pohjustus toimii keinotekoisena vaimennuksena. • matriisin pohjustus pitää tiheyspohjaisen ratkaisijan ’näkemän’ Machin luvun tasolla 0,2. Suuremmilla reaalisen Machin luvun arvoilla pohjustusta ei käytetä. • tiheyspohjaisella menetelmällä ratkaisut perustuvat aikaintegrointiin. On mahdollista käyttää joko eksplisiittistä tai implisiittistä menettelyä. • ajan suhteen tarkka ratkaisu tulee tehdä toisen kertaluvun menetelmällä • eksplisiittisellä aikaintegroinnilla ei juuri kannata laskea ajan suhteen tarkasti. Eksplisiittinen laskenta toimii vain kokoonpuristuvalla virtauksella, koska matriisin pohjustusta tai painekorjausmenetelmää ei voida käyttää. • tiheyspohjaisella ratkaisutavalla ajan suhteen tarkassa implisiittisessä menetelmässä suoritetaan pseudoaikaintegrointi aika-askeleen sisällä 4.7. KERTAUS 122 • myös painekorjausmenetelmällä suoritetaan iterointi aika-askeleen sisällä, koska menetelmä on aina implisiittinen. • varsinaista aikaintegrointia ei pidä sekoittaa tiheyspohjaisessa ratkaisutavassa käytettyyn pseudoaikaintegrointiin • ratkaisutavan valinta on tärkeä osa simulointitehtävän suorittamista Päivitetty 27.1.2014