Hantering av rörliga geometrier med level set metoden

I denna rapport beskrivs vad level set metoden är och varför den kommit till. Även några lämpliga användningsområden tas upp och diskuteras. Metoden beskrivs genom att förklara övergripande koncept, genomgång av de matematiska grunderna och redogörelse för hur man går till väga vid själva implemente...

Full description

Bibliographic Details
Main Authors: Wedholm, Isabel, Rickenlund, Marcus
Format: Others
Language:Swedish
Published: KTH, Skolan för teknikvetenskap (SCI) 2020
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-276594
Description
Summary:I denna rapport beskrivs vad level set metoden är och varför den kommit till. Även några lämpliga användningsområden tas upp och diskuteras. Metoden beskrivs genom att förklara övergripande koncept, genomgång av de matematiska grunderna och redogörelse för hur man går till väga vid själva implementeringen. Det finns flertalet numeriska metoder som kan tillämpas i level set metoden och vi redogör för tre stycken av dessa i denna rapport, vilka är Lax–Friedrichs metod, första ordningens Upwind schema och en Upwind ENO metod av ordning 2. Dessa metoder testas och resultatet visar på att Lax–Friedrichs metod är mycket diffus och att Upwind schemat är en mera praktisk metod att använda. Rapporten redogör även för begreppet återinitialisering. Detta görs genom att till att börja med förklara vad en återinitialisering innebär och varför den kan komma att behövas. Begrepp illustreras även med hjälp av några exempel för att få fördjupad förståelse. Det visas att återinitialisering kan användas för att minska felet i en numerisk lösning. Dock inför återinitialiseringen alltid ett litet fel då den flyttar på nollkonturen. Därför är en noggrann återinitialiserings-procedur viktig när man behöver tillämpa återinitialisering på ett problem. De numeriska metoderna implementeras i Matlab och rapporten innehåller pseudokod som förklarar implementeringen. Avslutningsvis visar det sig att level set metoden har vissa svagheter så som hög beräkningskostnad. Det som dock är bra med den är att hantering av objektseparation och sammanfogning sker utan svårigheter vilket är en önskvärd egenskap i många situationer.   === This report describes what the level set method is and why it was developed, with a brief description of some suitable use cases. The method is then described through an explanation of the overall concept, review of the mathematical basics and an account of how to implement the method numerically. There are many numerical methods one can use to implement the level set method. In this project, we tested three such methods. The first one is named Lax–Friedrichs method, the second is a first-order Upwind scheme and the last is a second-order Upwind ENO scheme. These methods are tested and the result shows that Lax–Friedrichs method is highly diffusive, and that the first order Upwind scheme is a more practical method. The report also investigates the concept of reinitialization, which is first done by explaining what reinitialization means and why it can be useful. The concept of reinitialization is illustrated using some examples to gain a deeper understanding. It is shown that applying reinitialization can reduce the error of the numerical solution. However, performing reinitialization also introduces some error by moving the zero contour. Therefore, an accurate reinitialization-procedure is very important when applying reinitialization on a problem. The methods are implemented in Matlab, and the report contains some pseudo-code to explain the implementation steps. Finally, it turns out that the method has flaws such as a high computational cost. What it gives in return is that events such as separation and merging of different geometries are handled automatically by the implicit nature of the level set method, a desirable trait in many situations.