MHD Piecewise Linear Reconstruction
MHD Piecewise Linear Reconstruction
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
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.
Other
This post is licensed under CC BY 4.0 by the author.