MANCHA3D Code: Multipurpose Advanced Nonideal MHD Code for High-Resolution Simulations in Astrophysics

Modestov, M.; Khomenko, E.; Vitas, N.; de Vicente, A.; Navarro, A.; González-Morales, P. A.; Collados, M.; Felipe, T.; Martínez-Gómez, D.; Hunana, P.; Luna, M.; Koll Pistarini, M.; Popescu Braileanu, B.; Perdomo García, A.; Liakh, V.; Santamaria, I.; Gomez Miguez, M. M.
Bibliographical reference

Solar Physics

Advertised on:
Number of authors
IAC number of authors
Refereed citations
The MANCHA3D code is a versatile tool for numerical simulations of magnetohydrodynamic (MHD) processes in solar/stellar atmospheres. The code includes nonideal physics derived from plasma partial ionization, a realistic equation of state and radiative transfer, which allows performing high-quality realistic simulations of magnetoconvection, as well as idealized simulations of particular processes, such as wave propagation, instabilities or energetic events. The paper summarizes the equations and methods used in the MANCHA3D (Multifluid (-purpose -physics -dimensional) Advanced Non-ideal MHD Code for High resolution simulations in Astrophysics 3D) code. It also describes its numerical stability and parallel performance and efficiency. The code is based on a finite difference discretization and a memory-saving Runge-Kutta (RK) scheme. It handles nonideal effects through super-time-stepping and Hall diffusion schemes, and takes into account thermal conduction by solving an additional hyperbolic equation for the heat flux. The code is easily configurable to perform different kinds of simulations. Several examples of the code usage are given. It is demonstrated that splitting variables into equilibrium and perturbation parts is essential for simulations of wave propagation in a static background. A perfectly matched layer (PML) boundary condition built into the code greatly facilitates a nonreflective open boundary implementation. Spatial filtering is an important numerical remedy to eliminate grid-size perturbations enhancing the code stability. Parallel performance analysis reveals that the code is strongly memory bound, which is a natural consequence of the numerical techniques used, such as split variables and PML boundary conditions. Both strong and weak scalings show adequate performance up to several thousands of processors (CPUs).