At some point I became interested in how (numerical) hydrodynamics actually works so I ended writing my own 2-dimensional hydro code. My aim was to make the code as modular as possible and I think it turned out pretty nice. You can get it from my github page here.

The initial design of the code mimicks Christian Ott’s 1D python code pretty closely but I added an unsplitted HLLC solver based on 2D Pyro code as I was not happy with the (Strang) splitted version. For time integration we use second order Runge-Kutta integrator and for reconstruction a linear piecewise interpolation.

After initial design and debugging I ran some tests and was able to produce the Kelvin-Helmholtz instability between the surface of two different density fluids flowing in opposite directions:

Kelvin–Helmholtz instability from Joonas Nättilä on Vimeo.

Next step is to add a magnetohydrodynamical Riemann solver like HLLB.