Fra yogaballer til verdensrommet
Se for deg at du og din beste venn springer rett mot hverandre mens dere holder hver deres svære yoga-ball. I det dere kræsjer kjenner du et kraftig dytt, og kanskje også et sug i magen i det du slynges tilbake dit du kom fra? På skolen har du lært at bevegelsesmengden for et lukket system er bevart dersom det ikke virker noen ytre krefter på systemet. Du og din bestevenn kan ses på som et slikt system! Anta at dere begge har lik masse og fart, i motsatt retning av hverandre; en i positiv og en i negativ retning. For at bevegelsesmengden skal være bevart før og etter, bytter dere under støtet størrelsen og lengden på farten dere hadde før kollisjonen. Støtet du kjente var egentlig farten din som endret seg fra å gå rett fremover til rett bakover; den byttet rett og slett fortegn for at bevegelsesmengden skulle være bevart! Et slikt støt hvor ingen energi går tapt, kalles elastisk.
Tenk hvis du nå hadde fått hundrevis av slike yoga-baller mot deg på en gang. Da kunne du jo blitt dyttet opp i himmelen, ja kanskje til og med ut i verdensrommet? Dette prinsippet kan vi utnytte dersom vi ønsker å få noe til å lette fra bakken. Genialt, ikke sant?! Når vi skal bygge en rakett kan vi se på selve raketten og dens motor som ett lukket system, der det hele tiden skjer slike kollisjoner. La oss ta en nærmere titt på selve motoren, og hvordan vi etter hvert har tenkt til å bruke bevaring av bevegelsesmengde til å komme seg opp i lufta.
Skal vi begynne å bygge...eller?
Det ville vært galskap å starte rett på å bygge en rakettmotor i virkeligheten uten å være rimelig sikker på at alt funker som det skal. Derfor velger vi å lage en simulasjon av motoren i python for å se at den virker sånn vi hadde tenkt, før vi lager den ekte varen. Vi kan se for oss at en rakettmotor består av mange små bokser fylt med hydrogengass. Hvis vi først simulerer èn slik boks, kan vi få et godt bilde på hvordan den faktiske motoren vil oppføre seg når vi setter sammen mange av dem.
Vi starter med å simulere boksen vår i et x- y-,z- koordinatsystem, der origo er plassert midt i boksen. Vi lager boksen kvadratisk ved å sette sidene til å være like lange L. Siden origo er i midten, vil veggene strekke seg ut til halvparten av sidelengden i hver akse, i både positiv og negativ retning. Nå som vi har boksen på plass, er den klar til å fylles med gasspartikler!
(Sannsynligvis) må partikler ha fart
Vi starter med å gi 1 million partikler en tilfeldig posisjon innenfor boksens rammer (absoluyttverdien til \(\frac{L}{2}\) til hver akse) i simulasjonen vår. En gasspartikkel må ha fart for at noe skal skje. Vi simulerer partikkelbevegelser i rommet, så alle våre partikler vil ha hastighetskomponenter i x-, y- og z-retning. Hvordan vet vi hva slags fart vi skal gi gasspartiklene? Vel, som for mange ting i naturen kan man finne et mønster i bestemte egenskaper, som for eksempel høyden i befolkning eller hvor en partikkel beveger seg langs en bestemt retning. La oss se på en fiskestim som et eksempel for å gjøre ting lettere å se for seg. Flest fisk befinner seg i midten av stimen, og jo lenger ut fra midten du kommer, dess færre fisk finner du, illustrert i figur 1. Mønsteret er at det er mest «normalt» å finne en fisk i midten av stimen. Vi sier at posisjonen til fiskene er normalfordelt, eller gaussisk fordelt.

Den gaussiske fordelingen er en av de viktigste fordelingene vi har innenfor statistikk. Hvis du vil vite sannsynligheten for å finne en fisk i et lite område, kan man multiplisere tetthetsgrafen med området-endringen man er interessert i. Funksjonen sier noe om hvor tett verdiene ligger i et område, det er grunnen til at vi kaller den en tetthetsfunksjon. Når område-intervallene blir små nok, er dette det samme som å ta integralet over tetthetsgrafen og finne arealet av området du er nysgjerrig på. Tolkningen er da at arealet under grafen tilsvarer sannsynligheten for å finne en fisk i det avgrensede området. For en normalfordeling vil forventninsgverdien vi kaller µ alltid være null. Dette er fordi det er like stor sannsynlighet, som i vårt eksempel, for å finne en fisk på høyre og venstre side av midten av stimen. Standardavviket σ sier noe om hvor langt unna den “normale” verdien det er vanlig å være.
Hastighetskomponentene til partikler i en Ideell gass følger en versjon av den gaussiske fordeling som heter Maxwell-Boltzmann-fordelingen. At gassen er ideell betyr at partiklene ikke kan kræsjer i hverandre, men at de kan kræsjer i veggene til til boksen vi skal simulere. I tillegg er alle kollisjoner mellom en partikkel og vegg et elastisk støt. Med elastisk mener vi at bevegelsesmengden før og etter kollisjonen er det samme; massen og farten til partikkelen er uendret, det er kun retning på farten som endrer seg. Vi antar at vår gass er en slik gass fordi den lar oss bruke Maxwell- Boltzmann- fordelingen.
Maxwell-Boltzmann-ordelingen for hastigheten til partiklene har vi fra forelesningsnotatetene (link nederst i innlegget) at ser ut som følger: \( f(\vec{v})=(\frac{m}{2\pi kT})^\frac{3}{2} e^\frac{-mv^2}{2kT} \) ,der standardavviket er: \(\sigma = \sqrt{\frac{kT}{m}}\). I formelen står m for massen til en hydrogenpartikkel som er omtrent \(3,3 × 10^{-27}\) kg, k er Boltzmann-konstanten , T er temperaturen i kelvin og v er hastighetskomponenten. Vi gir gasspartiklene i simulasjonen vår tilfeldige hastigheter ut ifra den gaussisk Maxwell Boltzmann-sannsynlighetsfordelingen. Dette betyr at det er like sannsynlig at partikkelen får en negativ fart som at den får en positiv.
Det er viktig å poengtere at selv om sannsynlighetstettheten for hastighetskomponentene til gasspartiklene våre er gaussisk fordelt, gjelder ikke det samme for absoluttverdien av farten til partiklene. Dette er en naturlig konsekvens av å ta absoluttverdi av noe, som i vårt fiskestim-eksempel vil tilsvare å ikke skille mellom hvilke fisker som er til høyre eller venstre for midten. Det eneste vi da bryr oss om er kun avstand fra midten, ikke i hvilken retning vi går. Grafen vil da ikke lenger være symmetrisk slik som den gaussiske fordelingen. I stedet vil venstre endepunkt ligge på null (tilsvarer 0 meter fra sentrum av stimen), for å så øke til toppunktet i avstanden fra sentrum det er mest vanlig å møte på en fisk. Utover grafen (Se figur 2) ser vi at med avtagende avstander vil det være færre fisk, og grafen synker.

For våre gasspartikler gjelder det samme: den laveste farten en partikkel kan ha er null, og gjennomsnittsfarten er den farten de fleste partiklene har. Maxwell- Boltzmann-fordelingen for absoluttverdien til hastigheten er:\( f(\vec{v})=(\frac{m}{2\pi kT})^\frac{3}{2} e^\frac{-mv^2}{2kT}4\pi v^2 \)
Farten v i formelen er nå absoluttverdien av hastigheten til en partikkel.
Eulers metode
Nå er vi kommet til den neste utfordringen i vår simulering: Hvordan i alle dager skal vi klare å vite hvor partiklene befinner seg om noen sekunder, eller til og med minutter? Fra skolen har vi strekningsformelen: \(s =v t\). Denne sier at farten et legeme har v ganget med tiden t legemet er i bevegelse, gir strekningen det har beveget seg s. Vi vet at partiklene i boksen oppfører seg som en ideell gass slik at det kun er fartsretningen til gasspartiklene som endrer seg, ikke størrelsen på farten. Kan vi ikke bare bruke fartsformelen for å finne strekningen en partikkel har beveget seg når det har gått bittelitt tid? Deretter legge til dette lille streknings-tillegget på posisjonen partikkelen har fra før? Vi synes det høres ut som en meget god måte å tilnærme hvor partiklene våre befinner om noen stunder! Generelt kan sammenhengen beskrives i likningen som er kjent som eulers metode:
\(x_{n+1}=x_n+v_n⋅dt\) . Figur 3 er en illustrasjon av hvordan metoden brukes til å finne en ny posisjon for en partikkel.

Når en ideell gasspartikkel kræsjer med veggen i et elastisk støt, er vi nødt til å multiplisere alle hastighetskomponentene i simulasjonen med –1. På denne måten bytter vi retningen på hastigheten, uten å endre dens størrelse. Vi har dermed sikret at kollisjonen er fullstendig elastisk.
Har vi fått det til?
Hvordan kan vi sjekke om vi har simulert en boks der partiklene beveger seg slik de skal? En måte å gjøre det på er å sjekke at hastighetskomponentene til partiklene, samt absoluttverdien til hastigheten oppfører seg slik vi forventer: at de følger den teoretiske Mazwell-Boltzmann-fordelingen. Vi kan plotte farten våre partikler har før og etter simulasjonen av forflytningen de gjør i boksen, og sammenligne disse med de teoretiske fordelingene.


I plottene på figur 4 og 5 ser vi at histogrammene som viser de simulerte størrelsene ligger tett opptil den analytiske modellen både før simulasjon og etter. Dette indikerer at de ideelle gasspartiklene har de egenskapene vi forventer av dem og at simuleringen virker som den skal. Sweet!!
Fantastisk! Vi har nå simulert en boks fylt med partikler som beveger seg og endrer retning når de kræsjer i veggene! Er du klar til å finne ut av hvordan vi skal utnytte energien til våre drivstoffpartikler? Følg med på neste innlegg da vel!
Kilde (forelesningsnotat): Forelesningsnotat