Parallel implementation for a magnetohydrodynamics solver with equilibrium chemistry
The main objective of this research was to develop a parallel implementation of a hypersonic MHD solver. The original serial code utilizes a fourth-order modified Runge-Kutta scheme with TVD to solve the full MHD equations. To extend the capabilities of the serial solver, both a purely MPI parallel model and a hybrid MPI/OpenMP model are developed and tested. The parallel code was validated by solving the Euler equations for a simple compression corner, which is then compared to available analytical results. Subsequently, the equilibrium chemistry model and MHD effects were activated, with the solutions comparing well to results observed and validated in the original work with the serial program. The strong and weak scaling of the MPI-only implementation were then investigated. The maximum speedup obtained was 128 on 256 cores. While significant performance increases were observed, the low efficiency of the parallel implementation is attributed to the communication intensive numerical scheme. The addition of OpenMP did little to improve the performance of the MPI implementation except for cases with low numbers of cores. The parallel program was then used to simulate a double compression corner problem at Mach 9. The geometry was configured to induce a Type VI shock-shock interaction to examine the scalability of the solver for larger problem sizes. It was observed that performance losses in weak scaling tests become negligible for large numbers of processes. An explanation for this behavior is not evident.