Sidse Damgaard Årskortnummer 20062443 1 Indledning I denne opgave skal vi se på den numeriske løsning af den ikke-lineære bølgeligning. Den ikke-lineære bølgeligning beskriver longitudinale trykbølger i en ikke-lineær gas eller væske med tab fra viskositet, og ser ud som følger: ( 1 + τ ) 2 q = β 2 q t t 2. (1) q = p ρ 0 c 2 hvor p(x, t) er trykket, c er lydens hastighed i mediet, τ er relaksionstiden og β = γ+1 2. γ er forholdet mellem varmekapaciteterne for en ideal gas, og ellers en empirisk konstant der fortæller hvor ikke-lineær gassen eller væsken er. For at gøre problemet mere simpelt vil vi kun se på den endimensionel bølgeligning, så 2 2 x 2. Dette motiveres yderligere af at plane bølger der propagerer i x-aksens retning kan beskrives af den endimensionelle bølgeliging til trods for at de propagerer i et tredimensionelt medium. Vi vil starte med at se på først den lineære bølgeligning (τ = 0 og β = 0), og så den lineære bølgeligning med tab (β = 0). Dette gøres dels fordi vi kender analytiske løsninger til disse ligninger og derfor kan sandsynliggøre rigtigheden af vores numeriske resultater, og dels for at starte med et så enkelt problem som muligt for så at udbygge det. 2 Den lineære bølgeligning Den endimentionelle lineære bølgeligning for trykket, p, i en gas eller væske ser ud som: 2 p x 2 = 1 2 p c 2 t 2. (2) Den har løsninger på formen: p(x, t) = p 1 (ct x) + p 2 (ct + x), (3) hvor p 1 og p 2 skal være to gange dierentiable, og bestemmes af begyndelsesbetingelserne. p 1 er en forstyrrelse der propagerer i den positive x-retning 1
med fasehastigheden c, og p 2 propagerer den anden retning, uden at ændre form. Drives væsken i den ene ende (x = 0) af en sinosodial kraft, F sin(ωt), og er fri i den anden ende er den plane bølge: en løsning til (2). p(x) = A sin(ωt kx) (4) 3 En numerisk løsning af den lineære bølgeligning For at undgå afrundingsfejl i de numeriske udregninger indføres de dimensionsløse størrelser: t = ωt, x = ω x og p, (5) c hvor p fx. er p p, så p er størrelsesordenen 1, dette giver den dimensionsløse bølgeligning: 2 p x 2 = 2 p t 2. (6) Ligningen løses med nite dierence metoden, som beskrevet herunder. Finite dierence Ved at Taylor-udvikle og dropppe led af højere orden end 3 får man følgende udtryk for den andenaedte af en funktion: f(x + h) = f(x) + hf (x) + h2 2 f (x) + h3 6 f (x) + O(h 4 ), f(x h) = f(x) hf (x) + h2 2 f (x) h3 6 f (x) + O(h 4 ) f (x) = f(x + h) 2f(x) + f(x h) h 2. (7) Jo mindre h er, jo mere præcist er udtrykket, dog vil der være en nedre grænse der skyldes at computerens præcision er på et vist antal decimaler. Diskretiseres både x- og t-aksen, så afstanden mellem punkterne er hhv. h og t, får vi af (6) og (7): p n+1 i 2p n i + pn 1 i t 2 = pn i+1 2pn i + pn i 1 h 2, (8) hvor p n i er trykket evalueret i det i'te rummelige punkt og det n'te tidslige punkt. Denne ligning er på matrixformen: p n+1 = ( t 2 H 2 I)p n p n 1, (9) 2
hvor p er en vektor i stedpunkterne og matricen H har formen: 2 1 0 0 H = 1 1 2 1 0 h 2 0 1 2 1. (10).... Værdien af H i det øverste højre og nederste venstre hjørne er bestemt af randbetingelserne. Rand- og begyndelsesbetingelser Af (9) ser vi at vi skal kende trykket til to tider for at kunne nde tidsudviklingen, idet det er en andenordens dierentialligning. Vi skal altså have to begyndelsesbetingelser plus de to randbetingelser for de rummelige koordinater. Ser vi på et system drevet af en sinosodial kraft i x = 0 fra tiden t = 0 må p(0, t) = sin(ωt) til alle tider, vi kan derfor sætte det øverste højre hjørne i H lig nul, svarende til p 1 = 0. Dette vil give en fejl på p 0, men da denne sættes til p 0 = sin(ωt) pga. randbetingelsen er fejlen ligegyldig. Ser vi desuden på en væske med uendelig udstrækning, så vi ikke får nogen reektion og transmission af trykbølgen, kan vi vælge H til at være tri-diagonal, svarende til at p N = 0 ((N 1) h er længden af vores interval). Dette er ikke længere en korrekt randbetingelse når bølgen når punktet x = N h, men korrekt til tider mindre end t = N h/c. Andre mulige randbetingelser kan være at væsken ikke har en uendelig udstrækning, men har en fast kant i x = L, så skal p N = 0, også når bølgen når til x = L. En anden mulighed er periodiske randbetingelser, her sættes de o-diagnale hjørner til 1, svarende til p 1 = p N 1 og p N = p 0. De to startbetingelser sættes, i tilfældet med en sinosodial drevet væske, til at være: sin(ω t) 0 p 0 = 0, p 1 0 = 0, (11).. i de dimensionsløse enheder skal ω t selvfølgeligt bare være t. For andre systemer vælges startbetingelserne så de er i overensstemmelse med (3). 3
Koden I linear.py ndes funktionen proplin der tager inputtene N, h, dt, p 0 og p 1 og returnerer en matrix hvor den n'te søjle er p n i en lineær væske. N er antallet af tidsskridt vi ønsker at tage og dt er længden af tidsskridtene, altså t. p 0 og p 1 er de to startbetingelser, og længden af disse vektorer bestemmer længden af x-aksen, h er afstanden mellem de rummelige gitterpunkter. De rummelige randbetingelserne for en sinosodial drevet bølge er skrevet ind i funktionen, vil man ændre på dem skal man som beskrevet i forrige afsnit ændre på det øverste højre og nederste venstre hjørne i H og fjerne linien der der siger p n+1 0 = sin((n+1)dt). Dette er gjort i funktionen proplinperiodisk i linear2.py, der har periodiske randbetingelser. proplin kaldes fra main.py hvor resultaterne gemmes i en.npz-l, og resultaterne plottes sammen med de teoretiske funktioner i plot.py. h er sat til 0.05 og dt til 0.001. Større værdier kan også bruges, men diskontinuiterne der opstår hvor forstyrrelsen startes giver anledning til støj der mindskes ved at mindske h og dt. For startbetingelser beskevet i (11) skal dt være mindre end h for at startbetingelsen ikke bliver for skarp. Resultater I g. 1 ses det at diskontinuiteten i startbetingelsen giver anledning til en del numerisk støj, og at amplituden mindskes når den propagerer gennem mediet. Denne dæmpning skyldes numeriske fejl, og ikke dæmpning i mediet. Drives væsken af en sinosodial kraft i x = 0 er diskontinuiteten i begyndelsesbetingelsen ikke så stor, og følgeligt bliver støjen heller ikke så stor, se g. 2. Det numerisk beregnede tryk stemmer godt overens med det teoretiske for en lineær væske (4). 4 Den lineære bølgeligning med tab Ved at lineæriserer Navier-Stokes ligningen får vi den lineære bølgeligning med tab. Tabet kommer af viskositet i væsken: ( 1 + τ ) 2 p t x 2 = 1 2 4 p c 2 t 2, τ = 3 η + η B ρ o c 2. (12) τ er relaksionstiden, og c er nu ikke længere fasehastigheden pga. leddet med τ. Antager vi at bevægelsen har frekevensen ω og tidsudviklingen derfor er på formen sin(ωt) får man, at en løsning til (12) er: p(x, t) = Ae αx sin(ωt kx), (13) 4
Figur 1: En forstyrrelse af trykket i en lineær væske med periodiske randbetingelser. Startbetingelserne er at kurven forskydes mod højre med x = dt uden at ændre form i skridtet fra t = 0 til t = dt, derfor vil vi kun få en bølge der propagerer mod højre. Der er afstanden t 2 t 1 mellem toppene som forventet. t er i enheder af 1/ω. 5
Figur 2: Trykket i en sinosodial drevet lineær væske. De fuldt optrukne kurver er de numerisk beregnede, mens de stiplede er de teoretiske udtryk, sin(t x). t er i enheder af 1/ω. altså en plan bølge hvis amplitude dæmpes jo længere ind i væsken den når. Fasehastigheden er som nævnt ikke længere c, men c p (ωτ) = ω k. Antagelserne for udledningen af Navier-Stoks ligningen gælder kun i den klassiske grænse ωτ 1, og i denne grænse er absorptionskoecienten, α, og fasehastigheden, c p, givet ved: α ω2 τ 2c, c p c (1 + 38 ) (ωτ)2, (14) fasehastigheden er altså næsten lydens hastighed c. Absorptionskoecient (α/f 2 ) stammende fra viskositet er for luft 2.7 10 11 s 2 /m og 22 10 15 s 2 /m for vand. Absorptionskoecienten for en realistisk gas får yderligere et bidrag fra termiske og intermolekylære tab. 5 Numerisk løsning af den lineære bølgeligning med tab Vi indfører igen dimensionsløse størrelser for at undgå afrundningsfejl i de numeriske resultater: t = 1 ω t, x = ω x og p, (15) c 6
på den måde bliver (12) på formen: ( 1 + ωτ ) 2 p t x 2 = 2 p t 2. (16) I disse enheder er ᾱ = c ω α = 1 2 ωτ, og k = c ω 1 ω c p = 1+ 3. 8 (ωτ)2 Herefter kan vi igen bruge nite dierence. For at nde den aedte af en funktion benytter man sig af de to øverste ligninger i (7), dog kun til 2. orden i h, og får: f (x) = (7),(16) og (17) giver os den diskretiserede ligning: p n i+1 2pn i + pn i 1 = pn+1 i h 2 2p n i + pn 1 i t 2, og denne giver på matrixform: f(x + h) f(x h). (17) 2h + ωτ pn+1 i+1 pn 1 i+1 2(pn+1 i p n 1 i ) + p n+1 i 1 pn 1 i 1 2 t h 2 ( ) t 1 p n+1 = 2 ωτh I ( t 2 H + 2 I ) p n ( ) t 1 ( ) t + 2 ωτh I 2 ωτh + I p n 1. (18) Vi ser at den reducerer til den tilsvarende matrixligning for bølgeligningen uden tab hvis ωτ = 0, ganske som forventet. Randbetingelserne vælges som for den lineære bølgeligning. Hvis det rummelige gitter er stort nok til at bølgen når at henfalde helt inden den når kanten, vil betingelsen p N = 0, svarende til at det øverste højre hjørne i H er nul, være en korrekt randbetingelse for en væske med uendelig udstrækning, selv når bølgen når til x = Nh. Også begyndelsesbetingelserne vælges som for den linieære bølgeligning uden tab, idet amplituden ikke er nået at henfalde meget ved x = h. Koden I linmtab.py ndes funktionen proplinmtab der tager inputtene N, h, dt, p 0, p 1 og wt og returnerer matricen hvor den n'te søjle er p n i. (18). Alle inputs udover wt er de samme som for proplin, og wt er størrelsen ωτ, der som nævnt skal være noget mindre end 1. Randbetingelser svarende til en sinosodial drevet væske er igen skrevet ind i programmet. proplintab kaldes fra main2.py og resultaterne plottes i plot2.py. 7
Figur 3: Trykket i en sinosodial drevet lineær væske med tab. De fuldt optrukne kurver er de numerisk beregnede, mens de stiplede er det teoretiske udtryk e αx sin(t kx). ωτ er sat til 0.1, hvilket svarer til en meget stor absorptionskoecient sammenlignet med realistiske absorptionskoecienter. t er i enheder af 1/ω. 8
Resultater I g. 3 ses at de numeriske resultater stemmer nt overens med det teoretiske udtryk (13) så længe bølgen ikke er nået alt for langt ind i mediet. Amplituden er dog som før en smule mindre end den burde, der er altså stadigt numerisk dæmpning. Når forstyrrelsen når til x 15 bliver amplituden af de numeriske resultater større end amplituden af den teoretiske, og bølgelængden bliver længere, så til tider større end t 15 kan vi ikke længere stole på vores resultater med de valgte værdier af h og dt, der er hhv. 0.1 og 0.005. 6 Den ikke-lineære bølgeligning Den ikke-lineære bølgeligning (1) fås også af Navier-Stokes ligningen, hvis man bl.a. indfører den dimensionsløse størrelse q = p ρ 0 c 2 M. M er Machtallet deneret ved bølgens hastighed over lydens hastighed, M u c. For en plan bølge er q = M. Der er ikke nogen fuldstændig analytisk løsning til den ikke-lineære bølgeligning, som der er til de lineære bølgeligninger, men man kan dog sige noget om opførslen af de ikke-lineære bølger. Er der ikke noget tab i væsken, τ = 0, vil der for en plan bølge skabes en Shock-front ved diskontinuitets-afstanden x = l 1 βmk, hvor hastigheden vil have en lodret tangent. Mach-tallet og β giver altså et mål for hvor ikkelineær propogationen er, og β et mål for hvor ikke-lineær væsken eller gassen er. γ er 1.004 for vand og 1.402 for luft, altså er β 1. Er der tab i væsken vil dette gøre diskontinuitets-afstanden større idet amplituden (der som nævnt er i størrelsesordenen M) vil formindskes når bølgen bevæger sig ind i mediet. Goldberg-tallet, Γ Mβ α/k = 1 αl, beskriver forholdet mellem de ikke-lineære eekter (β og M) og absorptionen (α/k). Hvis Γ 1 vil bølgen henfalde inden de ikke-lineære eekter sætter in, og er Γ 1 vil der dannes en Shock-front. 7 Numerisk løsning af den ikke-lineære bølgeligning Den numeriske metode vil bryde sammen inden shock-fronten nåes, idet nite-dierence metoden bygger på at funktionen kan approksimerers godt af et trediegradspolynomium indenfor et vist interval, hvilket ikke vil være tilfældet når tangenten bliver lodret. Men den ikke-lineære bølgeligning kan heller ikke beskrive fysikken når shock-fronten opstår. Vi benytter de samme dimensionsløse størrelser t og x som for den lineære 9
bølgeligning med tab og den dimensionsløse størrelse q, og får den dimensionsløse ikke-lineære bølgeligning: ( 1 + τω ) 2 2 q q = β t x 2 t 2. (19) Vha. nite dierence, som for den lineære bølgeligning med tab, får man ligningen: ) ( τω t 2 H I q n+1 + β ( q n+1) 2 = ( t 2 H + 2 I ) ( q n + 2 β (q n ) 2 + τω t ) 2 H + I q n+1 β ( q n 1) 2, (20) der for β = 0 reducerer til den lineære bølgeligning med tab. Dette er et sæt af koblede, ikke-lineære ligninger i q n+1 der kan løses vha. Newtons metode. Forbedret Newtons metode Vi vil benytte os af Newtons metode som beskevet i forelæsningsnoten, men som vi skal se kan vi eektivisere den. Omdøbes matricen og vektorene i (20) for at lette notationen ser (20) ud som: Ax + βx 2 = c, (21) x = q n+1, og x 2 skal forståes som en vektor hvis indgange er de kvadrerede af vektoren x's. De N ligninger vi skal nde et samtidigt nulpunkt for er altså: f i (x 0,..., x N 1 ) = j A ij x j + βx 2 i c i, i = 0,... N 1, (22) Jacobianten kan derfor let ndes analytisk: J ki f k x i = A ki + 2βx i δ ik. (23) Implementeres dette i Newton-metoden gør det metoden hurtigere idet vi ikke skal kalde funktionen for at nde Jacobianten, og mere præcis idet det er det korrekte udtryk for Jacobianten, og ikke et tilnærmet udtryk fundet vha. nite dierence. For at Newton-metoden skal konvergere hurtigt skal startgættet på et x = {x 0,..., x N 1 } være tæt på nulpunktet for ligningerne. Når det første tidsskridt tages vælges startværdien til at være løsningen til ligningen (20) for β = 0, altså løsningen til (18), idet de ikke-lineære eekter ikke indtræder så hurtigt. I de næste tidsskridt sættes startværdien til at være løsningen til det 10
foregående skridt, idet tidsudviklingen antages at være kontinuert i tiden indtil bølgen når x l. Når diskontinuiterne sætter ind kan Newton-metoden ikke længere nde nulpunkter iden for en rimelig tid, derfor er der sat et loft over hvor mange gange while-løkken i Newton-metoden må køre. Koden nonlinnewton.py indeholder len nonlinnewton, der tager inputtet N, h, dt, p 0, p 1, wt, b, M og acc, hvor de første er beskrevet i de tilsvarende afsnit under den lineære bølgeligning og den lineære med tab. b er værdien af β, og M Mach-tallet ved x = 0, altså amplituden af q. acc bruges når nonlinnewton kalder funktionen newtonmod fra newtonkendtj.py. Denne funktion tager inputtene A, b, c, x og acc og returnerer løsningen til den ikke-lineære matrix-ligning: Az + bz 2 c = 0. (24) x er startgættet, der i funktionen nonlinnewton vælges som beskrevet ovenfor. A og c vælges så det er matricen og vektoren fra (21), og b vælges til β. acc er hvor langt fra nul venstresiden af (24) må være før vi accepterer z som en løsning. nonlinnewto kaldes fra main3.py og main4.py, og plottes i plot3.py og plot4.py. Resultater På g. 4 ses en sinosodial drevet bølge i et lineært medie uden tab. Her skal diskontinuitetslængden som nævnt være l = 1 Mβk, og for parametrene i simuleringen er diskontinuitetslængden l = 3.3 c ω, hvilket svarer pænt overens med det vi ser på guren. Når bølgen nærmer sig diskontinuitetslængden ses det hvordan det giver anledning til numerisk støj. Fig. 5 viser en bølge i et medie med både ikke-lineære eekter og tab. l er kun en smule større end i forrige tilfælde (afviger først på fjerde decimal), men vi ser hvordan arbsorbtionen gør at diskontinuiteterne først træder i kraft senere. Langt fra diskontinuitetsafstanden ligner begge bølger som forventet de teoretiske udtryk for lineære medier, men de deformeres jo længere ind i mediet de kommer og bevæger sig også en smule hurtigere. 8 Konklusion Det er sandsynliggjort, at den numeriske metode til at nde tidsudviklingen af en trykbølge i en ikke-lineær væske eller gas, beskrevet i denne opgave, giver rigtige resultater så længe bølgen ikke har nået diskontinuitetsafstanden, 11
Figur 4: Trykbølge i et ikke-lineært medie uden tab (ωτ = 0), β = 1.2 og Mach-tallet er 0.25. De fuldt optrukne kurver er fundet numetisk mens de stiplede er det teoretiske udtryk for en tilsvarende bølge i et lineært medie, sin(t x), til sammenligning. t er i enheder af 1/ω. 12
Figur 5: trykbølge i et ikke-lineært medie med tab, ωτ = 0.01, β = 1.2 og Mach-tallet er 0.25. De fuldt optrukne kurver er fundet numetisk mens de stiplede er det teoretiske udtryk for en tilsvarende bølge i et lineært medie med tab, e αx sin(t x), til sammenligning. t er i enheder af 1/ω. 13
og så længe startbetingelserne ikke er for diskontinuerte. Dette er gjort ved at starte med at genskabe kendte løsninger for de lineære bølgeligninger numerisk, og se at en bølge i det ikke-lineære medie ikke afviger meget fra disse når de ikke-lineære eekter er små. Desuden ses det at diskontinuitetsafstanden for en plan bølge i et tabsfrit medie er tæt på det analytiske udtryk (at nde den korrekte diskontinuitetsafstand er ikke muligt idet de numeriske metoder, som nævnt, bryder sammen her). Man kan nu videre nde opførslen af andre typer bølger og medier ved at ændre på parametrene for ikke-lineæritet (β) og tab (ωτ) eller rand- og begyndelsesbetingelser. 14