Der vi slapp sist hadde jeg nettopp bestemt meg for ? ta en Ada Lovelace og programmere vekk alle drivstoff-problemene mine. Idéen var enkel, utf?rselen noe mer smertefull, men jeg har omsider klart ? dra meg selv over m?lstreken. La oss spole litt tilbake, slik at du kan ta del i hele tankeprosessen.
Vi vil stadig finne ut drivstoffmengden vi beh?ver for ? akselerere en viss mengde. Sist uke bestemte jeg meg derfor for ? lage en digital leke-motor, hvor jeg kunne sammenligne antall partikler jeg mister med hvor stor akselerasjon jeg f?r. For ? gj?re problemet enklere, tenker jeg meg, som sagt, f?rst en liten del-boks i forbrenningskammeret til raketten.
Inni den lille boksen har vi tusenvis av sm? gasspartikler.
Ser du partikkel nummer 81 347 - Det Idealistiske Hydrogenmolekylet - til h?yre der?
Jeg er fullstendig likegyldig til Partikkel 81 347. Hvor den kommer fra. Hvor den skal. Dens m?l og ambisjoner. Jeg er kun interessert i gassen som en enhet. Det hjelper derfor lite om jeg setter meg ned med penn og papir og dedikerer resten av dagen til ? regne ut oppf?rselen til Det Idealistiske Hydrogenmolekylet og ni andre partikler gjennom ett sekund. Termodynamikken krever generelt store datasett for at oppf?rselen vi observerer faktisk skal kunne gjelde p? st?rre skala.
Datamaskiner prokrastinerer ikke
Som jeg var inne p? sist, er datasimulering som regel et bra alternativ n?r man vil gj?re én ting veldig mange ganger. En del jeg m?ter tror typisk at programmering er en magisk greie man m? v?re begavet eller velsignet for ? i det hele tatt tenke p? ? r?re. Som enhver som kjenner sannheten, liker jeg selvf?lgelig ? opprettholde denne myten. Faktum er likevel at det i praksis bare handler om ? skrive en liste med instruksjoner som datamaskinen kan utf?re mange ganger og veldig mye raskere enn deg selv. P? et blunk kan jeg for eksempel be den skrive "Vil du snorkle med meg".
F?rtito ganger.
Foruten ? stadig rekruttere flere til den mye omtalte snorkelturen min, kan jeg utnytte denne utregningskraften til ? holde styr p? de mange partiklene i kammeret. Dette krever riktignok et sett med litt mer sammensatte instrukser, men det er ingenting i veien for ? gj?re det.
Pragmatisk latskap
Som fysikere modellerer vi naturen. Tingen er derimot den, kj?re leser, at naturen har en tendens til ? v?re veldig mye mer kompleks enn det vi liker ? forholde oss til. Yrkesmottoet v?rt er mer eller mindre:
Hvis vi kan gjøre ting enklere uten å skade resultatene alt for mye, så prøver vi jaggu meg på det, folkens.
Alle som har v?rt borti en l?rebok i fysikk har utvilsomt sett noe i samme duren. "Vi vil regne ut bevegelsen til bilen, men neglisjerer absolutt all form for friksjon og andre potensielle problemer som ikke er en del av pensum." Selv om det kan virke litt tvilsomt, trenger vi faktisk ikke alltid ? ta med alle nyansene s? lenge vi har feilmarginen under kontroll.
I v?rt tilfelle f?r vi bruk for f?lgende antagelser:
1) Temperaturen og tettheten i kammeret er konstant gjennom hele akselerasjonen.
2) Gassen antennes ikke. Dermed f?r vi H2-partikler b?de inn og ut.
3) Gassen er ideell, og har dermed kun elastiske kollisjoner.
4) Partiklene kolliderer ikke med hverandre.
Disse er i st?rre eller mindre grad gale, men som forklart, gj?r de livet mitt en hel del enklere.
Floss- og strandhatter
Vi er da klare for ? lage den mye omtalte boksen. For ? i det hele tatt komme i gang med simuleringen, trenger vi et f?rst et utgangspunkt. Det vil si; en startposisjon og -hastighet for hver partikkel. Disse vil vi trekke p? en realistisk m?te, og trenger da litt statistikk-teori fra v?rt matematiske arsenal.
Jeg f?r noen ganger et inntrykk av at sannsynlighetsregning er generelt mislikt. P? videreg?ende g?r man fra elegante trigonometriske bevis og eksotisk differensialregning til statistikk-kapittelet, hvor den dypeste innsikten man f?r er at det er 63% sjanse for at Karl plukker opp to r?de drops etter hverandre. Til tross for at jeg til denne dag ikke vet hva Karl plukket opp, er statistikk likevel et av de viktigste verkt?yene vi har i b?de fysikk og simuleringer generelt, og har nok f?tt et ufortjent d?rlig rykte. Det er mer til det enn terningkast. Digresjon slutt.
La oss plassere boksen v?r i et koordinatsystem.
Jeg ser f?rst bare p? partiklenes utgangspunkt i x-retningen, og f?r bruk for to s?kalte sannsynlighetsfordelinger.
P? samme m?te som det er like sannsynlig ? f? en ener som en sekser p? terningen, er det like sannsynlig ? finne en partikkel i alle x-posisjoner. Dette kaller vi uniform sannsynlighetsfordeling, P(x).
Hastigheten er avhengig temperaturen i boksen, og vi m? finne en m?te ? koble disse sammen p?. Vi kan kanskje intuitivt forst? at fordelingen her ikke kan v?re uniform, slik som ovenfor. Det burde v?re en overvekt av partikler med kinetisk energi som tilsvarer temperaturen, som vi i forenkling 1) antok var konstant. Heldigvis har noen f?r min tid funnet ut at hastighetsfordelingen i hver dimensjon f?lger en s?kalt Gaussisk fordeling, og ser omtrent slik ut:
Bredden p? kurven ?ker med temperaturen, alts? blir st?rre fart mer sannsynlig jo h?yere temperatur. Vi ser ogs? at positive og negative hastigheter virker like sannsynlige.
Det blir mange fagbegreper ? holde styr p?. Jeg foretrekker p? min side "flosshatt-posisjoner" og "strandhatt-hastigheter".
N?r jeg vil bestemme startbetingelsene til en gitt partikkel trekker jeg bare en posisjon fra flosshatten og en hastighet fra strandhatten. For hver gang jeg trekker, fylles hattene opp igjen. Vi ser dermed at det alltid er like mange av hver av posisjonene i flosshatten, mens det er flere av de midtre hastighetene i strandhatten.
I programmet mitt ber jeg datamaskinen trekke kuler fra disse hattene i alle tre dimensjonene, for alle partiklene.
Gud programmerte verden p? en ettermiddag
N? som vi i gudommelig stil har skapt v?r egen lille verden av partikler m? vi bestemme hvordan de skal oppf?re seg. Vi kjenner jo bevegelsesloven
\(posisjon\,\,ved\,\, tid\, t = startposisjon + hastighet\cdot t\)
Jeg kan be programmet bevege partiklene ut fra denne. Forenkling 4) utelukker muligheten for interne kollisjoner mellom partiklene, men vi er fortsatt inni den lille boksen v?r. Vi m? finne ut hva som skjer n? partiklene kolliderer med veggene. Forenkling 3) forteller oss at kollisjonene er elastiske; alts? er den kinetiske energien og absolutthastigheten bevart. La oss bringe tilbake Det Idealistiske Hydrogenmolekylet.
N?r den fyker inn i veggen, virker kraften rett utover, og det er derfor kun farten partikkelen har vinkelrett p? veggen som kan endres. Vi vet jo intuitivt at den spretter tilbake, slik at viss totalfarten og samtidig komponentene i de to andre retningene skal v?re de samme, m? ogs? farten normalt p? veggen v?re den samme. Med andre ord; den reverseres, men er like stor.
For ? holde partiklene inni den definerte boksen, legger jeg inn en instruks i programmet som ber maskinen snu den aktuelle hastigheten dersom en partikkel n?r veggen. Dermed har vi bl?st liv i de virtuelle partiklene.
Datamaskinen; The real MVP
Omsider begynner vi ? n?rme oss kjernen av problemet vi begynte med. Vi har n? en boks med gasspartikler som spretter mellom veggene. Vi er interessert i bevegelsesmengden de bidrar med under en eventuell akselerasjon. Hvis vi kutter et hull i boksen, i samme forhold som hullet i enden av hele forbrenningskammeret, kan vi telle antall partikler som forsvinner ut i l?pet av en viss tid og registrere bevegelsesmengden disse har normalt p? veggen.
I forenkling 1) har for forlanget at temperaturen og trykket skal v?re konstant. Dermed m? vi s?rge for ? hele tiden generere nye partikler, og disse m? ha samme kinetiske energi som dem som forsvant.
Jeg kan kort oppsummere koden min slik:
> Trekk startposisjon og -hastighet for et stort antall partikler
> La partiklene bevege seg med konstant fart;
> Dersom en partikkel treffer en vegg;
> Reverser hastigheten normalt p? veggen
> Dersom en partikkel treffer hullet;
> Tell bevegelsesmengden den har normalt med veggen
> Tell partikkelen
> Lag en ny partikkel med samme fart inni boksen
Dermed f?r jeg ut de dataene jeg ville ha; bevegelsesmengden gitt av et visst antall partikler. Endring av bevegelsesmengden over en viss tid tilsvarer da en viss akselerasjon, mens antall partikler m? gi meg drivstoffmengden.
Det er n? omsider tid for ? zoome ut igjen og se om funnene v?re kan brukes p? menneskelig skala. Jeg ganger opp forholdet slik at vi f?r mange sm? bokser som til slutt utfyller hele forbrenningskammeret, og ?ker tilsvarende antall partikler.
Nok en komplikasjon vi m? tenke p? i regnestykket, er at vi mister masse underveis n?r vi akselererer.
Jo letter vi blir, jo enklere er det ? akselerere. Hvis vi lar motoren g? med samme kraft, vil den dermed f? litt st?rre effekt ettersom vi mister restene fra drivstoffet.
Ground Control to Major Tom
Jeg har n? kontroll p? akselerasjonene de stedene hvor vi kan neglisjere andre krefter. Situasjonen er derimot en annen p? jordoverflaten.
Det p?g?r nemlig en usynlig, episk kamp mellom tyngdeakselerasjonen og drivstoff-partiklene, anf?rt av Det Idealistiske Hydrogenmolekylet. For ? vinne, m? de komme seg forbi det jeg liker ? kalle den magiske horisonten.
Den magiske horisonten er definert ved at den potensielle gravitasjonelle energien er lik den kinetiske energien til raketten. Det vil si at vi n?r en fart hvor gravitasjons-armene ikke lenger kan dra oss tilbake. De vil fortsatt sinke oss, men tricepsen deres er omvendt proporsjonal med kvadratet av avstanden, og vi kan raskt se bort fra dem.
For ? regne ut drivstoffet vi beh?ver i dette tilfellet, kan vi ta utgangspunkt i de generelle resultatene vi fikk i simuleringen over. Jeg m? finne ut hvor lenge vi m? akselerere for ? n? den magiske horisonten innenfor en fornuftig tid. N?r jeg sier fornuftig, mener jeg at vi ikke kan lage en supermotor som er fremme p? to sekunder. Motoren v?r er god, men det er ingen hyperdrive, kj?re leser. Det er lett ? glemme at modellen v?r er en ekstremt idealisert versjon av virkeligheten. Vi m? passe p? at vi er innenfor de fysiske lovene, samt at vi ikke glemmer begrensningene i materialet til raketten.
Etter ? ha tullet rundt med tallene hele dagen, ser det endelig ut til at jeg har funnet en realistisk balanse mellom temperatur, trykk og drivstoff. Motoren er kraftig nok, men ikke for kraftig.
Ett skritt n?rmere
Det er riktignok ikke det mest imponerende uttrykket ? bruke n?r man arbeider p? astronomisk skala, men jeg tror vi er ett skritt n?rmere noe stort. N? som vi forh?pentligvis vet hvordan vi skal komme oss vekk fra denne planeten, vil jeg de neste ukene forsikre meg om at vi faktisk ogs? kommer helt fram til destinasjonen v?r.
Jeg kjenner det begynner ? krible i sv?mmef?ttene. Dette blir g?y.