MHD Piecewise Linear Reconstruction
This week I started on the MHD piecewise linear reconstruction in the characteristic variables (PLMC). The steps I’ve completed are as follows:
- Do some research on PLMC. See Stone et al. 2008 and Introduction to Computational Astrophysical Hydrodynamics by Michael Zingale.
- Write a test for the current PLMC implementation
- Refactor the PLMC kernel to use device functions and structs. It was originally written before CUDA supported device functions and so is a bit of a monolith. Now it’s much shorter and more modular. This potentially allows some code reuse with piecewise parabolic reconstruction.
- Add MHD support. MHD support is a fairly simple extension is most places but the projection into and out of the characteristic variables is quite complex, much more so than in pure hydro.
- Add MHD PLMC regression test
Additionally I consolodated all the basic utility functions for energy, pressure, etc into the hydro_utilities.h file. Now there are a series of functions there that work for hydro or MHD instead of having different versions in different headers.
Next week I plan on verifying correctness of PLMC and (hopefully) starting on parabolic reconstruction.
Automated testing got merged in this week (PR #229) and promptly decided to not trigger builds on PRs from forks. I’ve contacted the CRC and hopefully they can resolve it soon.