Sarkas: An object-oriented molecular dynamics code for plasmas in Python

ORAL

Abstract

Plasma science enjoys a wide array of simulation methods, including hydrodynamics, smoothed-particle hydrodynamics, and particle-in-cell. This list increasingly includes molecular dynamics (MD), a powerful method to investigate many-body systems at the atomistic scale that yields closure properties, such as equations of state and transport coefficients, required by macroscale methods. In spite of these merits, MD has been limited to extremely small length and time scales. However, due to advances in architectures (e.g., GPUs), MD can now be applied to a wider array of scales, and can be included in multiscale approaches alongside other methods. Today, many MD codes are available; however, there are no plasma-specific codes and none that employ high-performance Python. We are developing such a code, called Sarkas, which is an object-oriented MPI-parallel code. Sarkas is an open-source code, and takes advantage of the user-friendliness of Python, suitable for wide use in various research contexts, as well as execution speeds comparable to compiled languages through Numpy and Numba. Sarkas employs a highly efficient P$^{3}$M algorithm for long-range electric fields. Sarkas will be introduced and several examples of its use for a range of plasma physics problems will be illustrated.

Authors

  • Yongjun Choi

    • Michigan State University
  • Gautham Dharuman

    • Lawrence Livermore National Laboratory
  • Lucas Stanek

    • Michigan State University
  • David Rimel

    • Michigan State University
  • Michael Murillo

    • Michigan State University