Annonse
Simulering av trykkfordeling i Nornefeltet utenfor Helgeland. For å simulere utvinning av hydrokarboner, deler forskerne reservoaret inn i celler, og beskriver hvordan oljen flytter seg fra celle til celle. (Illustrasjon: Sintef)

Nytt dataspråk gir kjappere simuleringer

Forskere har laget et helt nytt programmeringsspråk som gjør at programmeringer og simuleringer kan gå raskere.

Publisert

Når forskere skal etterligne prosesser i en større eller mindre del av virkeligheten, må de bruke simulatorer eller etterligningsmodeller.

Dette gjelder når de skal finne nye måter å beregne alt fra værvarsel for flyplasser til kampoppsett i Tippeligaen i fotball.

For å få modellene til å gjøre det de skal, må det ligge en programkode bak. Programmering er tidkrevende, og det kan ta mange år å lage en enkelt simulator. Dette arbeidet vil forskere nå forenkle.

– Vi har laget et språk som ligner mye på matematikkens språk forteller André Brodtkorb ved Sintef.

Med det nye språket, som de har kalt Equelle, greier forskerne å splitte arbeidsprosessen slik at det tar kortere tid å utvikle en simulator.

– En matematiker kan konsentrere seg om det han eller hun er best på, nemlig området der simulatoren skal benyttes. Og de som er gode på programmering, sitter og jobber med oversetteren slik at den oversatte koden kan kjøres raskere – uten å tenke på bruken.

Simulering av olje og vann

Ved Sintefs avdeling for anvendt matematikk, utvikler forskerne nå metoder og nye måter å beregne hvordan olje strømmer i et reservoar, og hvordan flombølger sprer seg i et terreng. 

Kildekodene brukes til å lage simuleringsverktøy som kan forutsi hva som skjer med oljen i reservoaret eller hvor flommen blir størst.

– Et reservoar er en stiv svamp med olje inne i seg, forklarer Brodtkorb.

– For å simulere utvinning av olje, deler vi reservoaret inn i små biter eller celler, og beskriver hvordan oljen flytter seg fra celle til celle.

Ting tar tid

Når det skal utvikles en simulator, må ofte flere mennesker inn for å utvikle programkoden som kan fortelle datamaskinen hva den skal utføre: Matematikere, fysikere, numerikere og programmerere. 

– Problemet er at alle har sin kjernekompetanse. De som skriver kildekoden til en simulator, har ikke nødvendigvis full oversikt over matematikken og fysikken, og vice versa. Og når folk fra ulike lag skal snakke sammen og bli enige, oppstår det misforståelser og det tar tid, sier Brodtkorb.

Store programvareselskaper har gjerne all ekspertise samlet innenfor sine vegger. Men det meste av forskningskoder blir utviklet av enkeltpersoner eller små grupper.

– De trenger hjelp, mener Brodtkorb.

Fjerner sikkerhetsfeil

Det er ikke noe nytt i seg selv å lage simulatorer. Det nye forskerne vil tilføre, er å ta i bruk et spisset språk som tar for seg ett begrenset bruksområde. Med dette språket kan forskerne lage nye simuleringsprogrammer, og samtidig garantere at koden er rett.

Innenfor programmering er det for eksempel et klassisk problem å velge feil enhet på fysiske størrelser. Da Nasa sendte opp Mars Climate Orbiter for å studere atmosfæren på Mars, krasjet den. Årsaken var at selskapet Lockheed Martin hadde laget en simulering med engelske enheter mens Nasa selv forventet metriske enheter.

– Endringen innebar at 327 millioner dollar forsvant ut av vinduet, bemerker Brodtkorb.

– Dette har vi sikret oss mot. Vi skriver for eksempel inn i kildekoden «denne enheten er i meter». Om noen da prøver å legge inn en enhet som «fot», vil de få en korreks, sier Brodtkorb.

Et annet problem er å holde styr på alle de millionene av celler i en simulering. I farten er det lett å blande sammen og ta feil av celler.

– Dersom resultatet som kommer ut likevel ser riktig ut, kan det gå riktig galt, slår Brodtkorb fast.

– For da kan en beslutningstaker ta avgjørelser på sviktende grunnlag. Også en feil som dette elimineres av vårt system.

Powered by Labrador CMS