Händelseförlopp i naturen, till exempel utvecklingen av jordens klimat, är olinjära. Vi kan modellera dessa olinjära problem med konservationslagar som är skrivna som tidsberoende partiella differentialekvationer (PDE:er). Lösningar av olinjära konservationslagar innehåller många fenomen, till exempel diskontinuiteter, singulariteter och turbulens. Ett vanligt drag hos dessa lösningar är en stor blandning av skalor i rymden och tiden. På grund av denna mångfald finns det inget allmänt tillvägagångssätt för analytiska lösningar. Det är dock viktigt för den moderna industrin att känna till lösningar till dessa problem. Därför har numerisk simulering av tidsberoende olinjära konservationslagar framkommit som en nyckelteknik.
Min forskning fokuserar på konstruktion och analys av numeriska metoder som approximerar lösningen av hyperboliska problem, till exempel grunt vatten, kompressibla Euler eller ideala magnetohydrodynamiska (MHD) ekvationer och blandade hyperboliska/paraboliska problem, till exempel kompressibla Naiver-Stokes eller visco-resistiva MHD ekvationer. I synnerhet utvecklar jag högre ordningens metoder baserade på discontinuous Galerkin (DG) för linjära och olinjära PDE:er. En speciell form av DG-metod har diskreta differentieringsoperationer som uppfyller egenskapen SBP (Summation-by-Parts). Detta är viktigt eftersom DG-approximationen sedan kan konstrueras för att bevara primära kvantiteter såsom densitet och införliva fysikaliska hjälpprinciper, såsom termodynamikens andra lag. Detta ger en DG-metod som kan diskretisera delade former av relevanta PDE:er med hög ordning. Ett exempel på en delad form är det aritmetiska medelvärdet av de konservativa och advektiva formerna av en ekvation.
FLUXO - ett numeriskt verktyg för att lösa linjära och olinjära advektionsdiffusionsekvationer
Jag fokuserar också på HPC-aspekter (high performance computing) av DG-metoder. Jag är en av huvudutvecklarna av en HPC-implementation av Split-Form-Nodal-DG-Framework kallat FLUXO. FLUXO-koden är skriven i modern Fortran och parallelliserad för CPU-arkitekturer med MPI.
Trixi.jl – ett trädbaserat kod för hyperboliska problem
Skriven i Julia, det här simuleringsverktyget är utformat för enkel användning och modifiering. Dess funktioner inkludera adaptive mesh refinement (AMR), shock-capturing och multifysik approximationer.
Från MATLAB till Fortran
Fortran är ett programmeringsspråk som är särskilt lämpat för numerisk analys och vetenskapliga beräkningar. Fortrans styrkor är enkla arrayoperationer och översättning av matematiska formuleringar till algoritmer. Syntaxen och programstrukturen är mycket lik MATLAB, men Fortranberäkningar är avsevärt snabbare för komplexa fluidmekaniska problem.
Jag har utarbetat ett dokument på engelska för att introducera och undervisa modern Fortran kodningstekniker med hjälp av exempel. Denna introduktion omfattar praktiska steg för dem som vill byta från programmering i MATLAB till Fortran.