Julia er et programmeringsspråk med høy ytelse spesielt designet for numerisk og vitenskapelig databehandling, som tilbyr en unik kombinasjon av hastighet og brukervennlighet. Med en syntaks som er både konsis og uttrykksfull, gir Julia forskere, ingeniører og dataforskere mulighet til å effektivt takle komplekse databehandlingsoppgaver og fremme innovasjon i ulike domener.
Jutul ble opprinnelig utviklet som en svært optimalisert testbenk for differensiell programmering, som skulle brukes som et supplement til MRST for å muliggjøre høyytelsestesting av numeriske algoritmer for strømning i porøse medier. Ved å kombinere et høyoptimert bibliotek for automatisk differensiering, som bruker statiske, hardkodede maler for rask sammensetning av lineariserte systemer, med moderne lineære løsere, sikrer Jutul at simulatorer skrevet med Jutul har en ytelse som sammenlignes svært godt med etablerte simulatorer skrevet i kompilerte språk. I tillegg garanterer Jutul at simulatorer er differensierbare og kan levere parameterfølsomhet med høy beregningseffektivitet.
Den primære Jutul.jl-pakken fungerer som en felles infrastruktur for flere simuleringsprosjekter:
- JutulDarcy.jl er en høytytende Darcy-strømningssimulator og hoveddemonstrasjonsapplikasjonen for programvaren. Simulatoren kan simulere avanserte modeller for umiksbar, svartolje- og ligningsbasert sammensatt strømning, delvis basert på MRST-rammeverket for inndatabehandling.
- BattMo.jl er en batterisimulator som implementerer et utvalg av det MATLAB-baserte BattMo-verktøyet i Julia for forbedret ytelse.
- Jutul.jl driver også en simulator som implementerer vakum-swing-adsorpsjon og direkte luftfangst (DAC)-prosesser for fangst av CO2. Denne applikasjonen er for øyeblikket ikke offentlig.
Jutul er tilgjengelig for allmennheten under den tillatende MIT-lisensen på GitHub og er en registrert Julia-pakke.