Vis enkel innførsel

dc.contributor.advisorNordam, Tor
dc.contributor.advisorNepstad, Raymond
dc.contributor.authorGundersen, Steinar Brattøy
dc.date.accessioned2019-10-29T15:00:36Z
dc.date.available2019-10-29T15:00:36Z
dc.date.issued2019
dc.identifier.urihttp://hdl.handle.net/11250/2625250
dc.description.abstractGruveindustrien har i lengre tid benyttet seg av sjødeponi for lagring av "tailings". I slike sjødeponi er det vanlig at turbiditetsstrømmer oppstår som følge av utslippet, hvilket medfører at partiklene fraktes en lengre distanse unna utslippspunktet. Blant annet på grunn av at utslippet kan inneholde miljøskadelige partikler, er det ønskelig å kunne predikere interaksjonen mellom turbiditetsstrømmen og havbunnen. Samtidig er det ønskelig å kunne forutsi hvilke områder som blir erodert og i hvilke områder sediment blir deponert. Hovedformålet med prosjektet har vært å gjennomgå og implementere en publisert cellular automata (CA) modell. Under implementasjonsprosessen, ble det klart at modellen ikke var fullstendig, og at den inneholdt noen feil. Slik ble målet å implementere så mye som mulig av denne modellen, og lage en fullstendig og korrekt beskrivelse av implementasjonen. For å oppnå en effektiv implemetasjon, ble utvalgte deler av koden skrevet i Cython. Dette for å unngå "overhead" som Python induserer i for eksempel for-løkker. I tilegg, ble koden parallelisert ved å bruke standarden "Message Passing Interface" (MPI). En teknikk kalt "halo-exchange" ble benyttet i kombinasjon med en selvkomponert algoritme (som ble navngitt "inverse halo-exchange") for å parallelisere CAen. Programmet oppnådde superlinær speedup i tester med opptil omtrent 64 CPUer, hvilket indikerer at en CA er velegnet til parallelisering. Noen numeriske simuleringer har blitt kjørt, inkludert en forenklet simulering med Ranfjorden som batymetri. Resultatene reflekterer til en viss grad den forventede oppførselen til en turbiditetsstrøm. I noen tilfeller viser simuleringene tegn til numerisk ustabilitet. Potensielle årsaker og løsninger til dette blir diskutert.
dc.description.abstractThe mining industry has, for a long time, used the sea for tailings placement. In these disposal sites, turbidity flows commonly occur as a result of the tailings discharge, in which particles may be transported some distance away from the discharge point. As the discharge can contain environmentally harmful particles, it is desirable to be able to predict the interaction between the turbidity flow and the seabed. Motivation is also given by the ability to predict areas of erosion and deposition. The main objective in this thesis has been to review and implement a published cellular automata (CA) model. During the implementation, it became clear that the published description was not complete, and that it contained some errors. Thus the goal became to implement and test as much as possible of the model, creating a complete and correct description of the implementation. To obtain an efficient implementation, selected parts of the code was written in Cython, to avoid the Python overhead associated with e.g., for-loops. Additionally, the code was parallelized using the Message Passing Interface (MPI) standard. The halo-exchange technique was combined with a self-composed algorithm (dubbed as the inverse-halo-exchange) in order to parallelize the CA. The program achieved superlinear speedup for tests conducted with up to about 64 CPUs, indicating that CAs are well suited for parallelization. Some numerical simulations have been run, including a simplified case with Ranfjorden as bathymetry, where the results to some extent reflect the expected behavior of a turbidity current. Some simulations display signs of numerical instability. Potential causes and solutions are discussed.
dc.languageeng
dc.publisherNTNU
dc.titleImplementing and reviewing a published cellular automaton model for simulating erosion and deposition processes due to turbidity currents
dc.typeMaster thesis


Tilhørende fil(er)

Thumbnail
Thumbnail

Denne innførselen finnes i følgende samling(er)

Vis enkel innførsel