ntselepidis / FinalProjectRepo.jl

Julia implementation of a 3D multi-XPU diffusion solver and a 2D XPU Navier-Stokes solver based on matrix-free geometric Multigrid

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Final Project Repo

Build Status

This repository contains our final project for the course Solving PDEs in parallel on GPUs with Julia given in the Fall semester of 2021 at ETH Zurich. The project consists of two main parts. In part 1, we implement a 3D multi-XPU diffusion solver computing the steady-state solution of a diffusive process for given physical timesteps using the pseudo-transient acceleration (using the so-called "dual-time" method). In part 2, we implement a 2D XPU Navier-Stokes solver that is based on the streamfunction-vorticity formulation and allows both explicit and semi-implicit timestepping. In every timestep of the Navier-Stokes simulation, we solve the required linear systems using a geometric Multigrid method that leads to a highly efficient matrix-free implementation. We dive deeper into details for each part, and present various related analyses and results in the dedicated docs for part 1 and part 2.

About

Julia implementation of a 3D multi-XPU diffusion solver and a 2D XPU Navier-Stokes solver based on matrix-free geometric Multigrid

License:MIT License


Languages

Language:Julia 96.8%Language:Shell 3.2%