Most recent comments
Jogging og blogging
Are, 9 måneder, 1 uke
Liveblogg nyttårsaften 2016
Are, 9 måneder, 1 uke
Reading in dark times
Are, 11 måneder, 1 uke
Moldejazz 2016
Camilla, 1 år, 2 måneder
Dørskilt
Karoline, 1 år, 3 måneder
Halifax
Tor, 1 år, 4 måneder
Sony Smartwatch 3 review
Tor, 1 år, 4 måneder
Numerikk, takk
Tor, 1 år, 4 måneder
Topp tur
Camilla, 1 år, 6 måneder
Tolkien reading day
Tor, 1 år, 6 måneder
50 book challenge
Camilla, 9 måneder, 2 uker
Ten years ago
To ting på en gang
Tor
Controls
Register

Numerikk, takk

Jeg har vært en ekstremt passiv blogger i det siste, faktisk mer passiv enn noen gang tidligere siden begynnelsen i 2005. Uten å nøle lemper jeg store deler av skylden over på det at jeg har forelest numerisk fysikk dette semesteret. Faget, som er ment å gi en bred introduksjon til en lang rekke verktøy en numerisk fysiker med respekt for seg selv bør ha i verktøykassen, viste seg å være relativt krevende. Det positive er naturligvis at jeg har blitt nødt til å repetere ganske grundig en hel del ting jeg ikke har tenkt så mye på siden jeg tok kurset selv, og jeg har fått økt innsikt i en del ting jeg driver med til daglig. Det er noe i det man sier, om at det hjelper på forståelsen når man må forklare ting til andre.

Kurset ble avsluttet for tre uker siden, tradisjonen tro med en hjemmeeksamen over fire dager. Jeg husker godt min egen eksamen i dette kurset, i det herrens år 2008, og jeg vet det har vært flere andre legendariske eksamensoppgaver siden da. For eksempel har ved flere anledninger artikler blitt skrevet basert på arbeid gjort på eksamen i numerisk fysikk, noe jeg tror er et relativt unikt fenomen. Jeg følte dermed et visst press, og historien på mine skuldre og denslags.

En god eksamensoppgave i numerisk fysikk må etter mitt syn oppfylle sånn omtrent følgende kriterier:
  • Lett å forstå essensen i problemet
  • Ikke for komplisert fysikk
  • Bør gi spennende resultater som kan engasjere og motivere
  • Kan gjerne gi rom for kul visualisering
I tillegg må problemet kunne programmeres på et par dager, som gir et par dager til bugfiksing, simulering og rapportskriving. Det kuleste, mener jeg, er hvis man har en fysisk modell som er relativt enkel å forklare og å forstå, men som likevel gir opphav til en rik og variert oppførsel. Med disse betraktningene i bakhodet begynte jeg ganske tidlig i semesteret å fundere på hva som kunne være en egnet oppgave, og jeg kom etterhvert på en liten bloggpost jeg skrev i 2012, om hendelsesdrevne simuleringer.

Problemet er essensielt å simulere en gass av harde disker (altså et to-dimensjonal gass) som kolliderer med hverandre, og veggene i en boks. Det som gjør det til hendelsesdrevne simuleringer (i motsetning til tidsdrevne) er at man hele tiden regner ut når neste kollisjon vil skje, flytter hele systemet dit, beregner konsekvensene av kollisjonen, og gjentar. Jeg ble oppmerksom på konseptet etter å ha gått på et fredagskollokvium, og jeg brukte resten av den helgen på å implementere min egen versjon, samt lage noen kule videoer. Dermed visste jeg allerede at problemet lar seg programmere på et par dager, og at det passer fint for kul visualisering. Fysikken er dessuten superenkel, med kun enkle kollisjonsberegninger fra grunnleggende mekanikk, men når man setter sammen mange nok kollisjoner får man likevel interessante systemer.

Det eneste som manglet var egentlig å finne noe interessant å spørre om. Det skal jo helst være litt fysikk, ikke bare programmering, så man må be studentene om å vise eller finne ut av et eller annet. Etter å ha diskutert saken litt med forskjellige kollegaer kom jeg frem til tre oppgaver jeg tenkte var fornuftige. For det første, vis at i en blanding av en tung og en lett gass, har de to gassene samme temperatur. For det andre, vis at hvis partiklene i blandingen kolliderer uelastisk (altså de taper energi for hver kollisjon) har ikke de to gassene samme temperatur likevel (den med tyngre partikler har høyere temperatur). Og, for det tredje, se på krateret som dannes hvis man slipper en kule ned i sand, og se hvordan størrelsen på krateret avhenger av farten, størrelsen eller massen til kulen.

Kraterdannelse, simulert med en hendelsesdreven simulering

Jeg har inntrykk av at de fleste studentene synes det var en interessant oppgave, så jeg anser det for å være en relativt vellykket avslutning på kurset. Nå skal jeg prøve å jobbe litt mindre og lese litt flere bøker fremover, og kanskje blogge litt mer hyppig, i allefall frem til august. Da skal jeg sannsynligvis forelese igjen, denne gangen faget med det spenende navnet «Ikkelineær dynamikk». Jeg gleder meg allerede.

Eksamensoppgaven kan lastes ned i sin helhet, om man skulle ønske å ha noe å bryne seg på i sene sommerkvelder i ferier. Et delvis løsningsforslag er også tilgjengelig.
Camilla, Are likes this

Comments

Are,  30.05.16 22:44

Kult!
Tor,  30.05.16 22:47

Tok du en titt på oppgaven? Den kunne kanskje egne seg som en liten sommernøtt. En habil programmerer som deg tar den formodentlig på strak arm. Den anbefaler dessuten at man benytter seg av en prioritetskø, og det er jo en spennende datastruktur du sikkert er mer kjent med enn meg.