Computer zoomt wiskundig in op microscopische details in virtuele experimenten

Hannes
Vandecasteele
  • Przemyslaw
    Zielinkski

Wat hebben de vervorming van plastic, tumorgroei en filevorming met elkaar gemeen? Meer dan je zou denken! Het zijn alle drie fenomenen die we nog niet volledig begrijpen, en waarvoor experimenteren moeilijk ligt. Bovendien is het gedrag dat wij waarnemen het netto-effect van heel veel microscopische interacties. Plastic bestaat uit grote aantallen atomen die met elkaar verbonden worden tot een complex netwerk met een gewenste stevigheid en vervormbaarheid. Een tumor wordt gevormd door een enorme hoeveelheid individuele tumorcellen. Een file ontstaat door de interacties tussen grote aantallen individuele voertuigen. Kan de wiskunde die gemeenschappelijke structuur uitbuiten om tegelijk vooruitgang te boeken in al deze zeer verschillende domeinen?

Experimenten vervangen door computersimulatie

Zowel voor de vervorming van plastic als voor tumorgroei en filevorming is het niet vanzelfsprekend om experimenten uit te voeren. Bij plastic kan experimenteren nog wel, tenminste als het materiaal al bestaat. Alleen is het vaak net de bedoeling te onderzoeken welk materiaal we precies willen maken. Bij tumorgroei kunnen we wel experimenten uitvoeren met groepjes cellen, maar een volledige tumor is heel wat lastiger. En veranderingen aan ons verkeersnetwerk uittesten is simpelweg onmogelijk voordat ze uitgevoerd worden. Experimenten zijn dus heel vaak onpraktisch, en we zijn op zoek naar een alternatieve manier van werken.

Gelukkig komt de wiskunde ons te hulp. Ingenieurs gebruiken wiskundige modellen als een soort krachtige taal die heel precies kan weergeven wat we over een bepaald fenomeen weten. Zo’n modellen worden dan in software gegoten, waarna computers virtuele experimenten kunnen uitvoeren en verschillende scenario’s kunnen doorrekenen. Helaas kennen dat soort computersimulaties hun eigen problemen. In deze scriptie worden enkele van die problemen van dichterbij bekeken.

Beperkingen op de rekenkracht

Computersimulaties zijn enkel nuttig onder twee voorwaarden. Ten eerste moet het virtuele experiment een betrouwbare weergave zijn van wat een echt experiment zou opleveren. Ten tweede mogen de berekeningen niet te lang op zich laten wachten. Voor veel toepassingen zijn die eisen voldaan. Zo wordt computersimulatie routinematig gebruikt bij het ontwerp van auto’s, windturbines en vliegtuigen.

Deze succesvolle toepassingen hebben iets gemeenschappelijk: we beschikken over een nauwkeurig model dat direct geschikt is voor de berekening die we willen uitvoeren. We kunnen rechtstreeks de evolutie van de luchtstroming beschrijven in termen van de windsnelheid, luchtdruk, enzovoort. Ergens is dat bijzonder, want lucht bestaat, microscopisch bekeken, uit grote aantallen moleculen die heel snel rondvliegen en vaak met elkaar botsen. Het zou haast onbegonnen werk zijn om al die moleculen volgen in een computersimulatie op een menselijke schaal. Door naar macroscopische grootheden als windsnelheid en luchtdruk te kijken, kunnen we abstractie maken van de precieze interacties tussen individuele deeltjes. Laat nu net dat hetgeen zijn wat niet kan bij de voorbeelden die we eerder vermeldden...

Nieuwe rekenalgoritmes brengen soelaas

Voor een nauwkeurige beschrijving van het gedrag van plastic zijn we verplicht de precieze verbindingen tussen individuele atomen in rekening te brengen. Bij tumoren moeten we kijken naar het gedrag van individuele cellen. En filevorming wordt heel sterk beïnvloed door individuele bestuurders. Telkens bekijken we interacties tussen grote hoeveelheden individuele deeltjes (atomen, cellen, voertuigen), terwijl we slechts geïnteresseerd zijn in enkele macroscopische grootheden (vervorming, populatiegroei, stromingssnelheid). Die gelijkende structuur kunnen we uitbuiten. Daarvoor bouwen we zelf een abstract “modelprobleem”: een wiskundig model dat bestaat uit niet nader gespecificeerde “deeltjes” en hun interacties, waarvan we precies weten hoe ze zich gedragen. We zorgen ervoor dat ons “modelprobleem” zo eenvoudig mogelijk is, zodat we exact begrijpen hoe het zich gedraagt. Tegelijk moet het modelprobleem de kern van het probleem bevatten dat we in al die verschillende toepassingen tegelijk vaststellen.  Voor ons is die kern de volgende: we willen op een computer de evolutie berekenen van enkele macroscopische grootheden, maar we worden verplicht simulaties uit te voeren met grote hoeveelheden individuele deeltjes.



Eens we een modelprobleem hebben, kunnen we beginnen met het ontwikkelen van nieuwe algoritmes om de computersimulatie uit te voeren. Een algoritme is een precies geformuleerde reeks stappen die de computer vertelt welke berekeningen achtereenvolgens uitgevoerd moeten worden. Wanneer we de computersimulatie willen versnellen, moeten we het simulatie-algoritme veranderen, zodat het dezelfde (of ongeveer dezelfde) oplossing kan bekomen met veel minder rekenwerk. Dat is precies wat we deden voor het probleem van de simulatie van ons veel-deeltjesmodel.

Voorspellen en corrigeren

In de scriptie werkten we met een nieuw algoritme dat in staat is om een de macroscopische evolutie te voorspellen op basis van een korte microscopische simulatie van de deeltjes. Kort door de bocht volgen we een groot aantal deeltjes voor een korte tijdspanne, waarbij we alle individuele interacties in kaart brengen. Concreet kijken we naar een wolk deeltjes die bewegen en botsen, en beperken we de simulatie tot enkele microseconden in fysische tijd. Omdat de computer elk van de vele botsingen apart moet uitrekenen, duren de berekeningen zelfs in dit geval al gauw enkele minuten. Dat lijkt lang, maar is haalbaar. Alleen doet de computer er dan al vlug enkele dagen over om een enkele fysische seconde te overbruggen. Onze methode versnelt de berekeningen door na de korte microscopische simulatie een voorspelling te maken van de plaats van het centrum van die wolk op een later tijdstip. Ná die extrapolatie genereren we dan een nieuwe wolk rond dat centrum. De voornaamste vernieuwing in het algoritme is de manier waarop het algoritme die nieuwe wolk genereert.

Dat zo’n methode een enorme winst in rekentijd kan opleveren, lijkt duidelijk. Maar mogen we het wel gebruiken? Zijn de bekomen simulatieresultaten wel betrouwbaar? Om dat te bekijken voerden we in de scriptie een groot aantal virtuele experimenten uit. Door ons modelprobleem zo te kiezen dat we ook de “juiste” oplossing kennen, konden we heel goed de nauwkeurigheid van ons algoritme inschatten. De resultaten waren zo veelbelovend dat we ze zowel wiskundig wilden bewijzen, als het algoritme in de praktijk wilden brengen voor meer realistische voorbeelden. Dat lukte allebei. De weg ligt dus open om een bijzonder efficiënte en algemeen toepasbare methodiek te ontwikkelen voor de computersimulatie van eender welk veel-deeltjesmodel, of het nu gaat om plastic, een tumor of een verkeersstroom.

 

Download scriptie (4.63 MB)
Universiteit of Hogeschool
KU Leuven
Thesis jaar
2018
Promotor(en)
Giovanni Samaey