I found the issue with \( \gamma \) from last week. It turns out I had made a mistake when extracting Athena’s HLLD solver and had turned their \( \gamma - 1 \) variable into just \( \gamma \); it’s fixed now. After that I implemented the rest of the HLLD tests and hammered out some bugs.
My next step was to write some utility functions for MHD. I wrote functions for computing the energy, gas pressure, total MHD pressure, Alfvên wave speed, and the fast & slow magnetosonic wave speeds along with tests for all those functions. They were implemented as
__host__ __device__ functions so they can be used on either the GPU or CPU
I started on writing the HLLD solver this week. So far I’ve finished the setup and gathering of conserved and primitive variables section, the section for computing wave speeds, and calculating then returning the non-star state flux. As it stands it computes the left state flux, checks if thats the correct state and if it is then the solver assigns those flux values to the flux array and returns, if not then it repeats the process with the right state. My plan for next week is to implement the star and double star states.
- Started my application to the 2022 Internation HPC Summer School
Original HLLD paper: Miyoshi & Kusano 2005
Blog post on the HLLD Algorithm: HLLD Algorithm