Computer Physics Communications
Computation of the dynamics of rotating 2D/3D Gross-Pitaevskii equations based on the HPC pseudo-spectral solver BEC2HPC
Jérémie Gaidamour, Xavier Antoine
Abstract
The aim of this paper is to present the extension of the HPC pseudo-spectral solver BEC2HPC to compute the dynamics of 2D/3D rotating Bose-Einstein condensates modeled by the Gross-Pitaevskii equations with a rotation term. Numerical examples are provided to show the efficiency of the solver for large-scale simulations. NEW VERSION PROGRAM SUMMARY Program Title: BEC2HPC CPC Library link to program files: https://doi.org/10.17632/mdzpw4dr4t.2 Licensing provisions: GPLv2 Programming language: C++, Python Journal reference of previous version: Comput. Phys. Commun. 265 (2021) 108007, https://doi.org/10.1016/j.cpc.2021.108007 Does the new version supersede the previous version?: Yes Reasons for the new version: The first version of BEC2HPC provided a stationary-state solver, while this new version also enables the computation of the dynamics of rotating Gross–Pitaevskii equations. Summary of revisions: We have implemented ADI time-splitting and relaxation pseudo-spectral schemes in BEC2HPC, following the same parallel design and domain decomposition strategy as for the stationary-state solver. Nature of problem: This extension of the software BEC2HPC computes the dynamics of rotating Bose–Einstein condensates (BEC) modeled by the Gross–Pitaevskii equation (GPE). The available numerical methods are accurate and efficient for BEC with large rotation speeds and high nonlinearities. The parallel implementation allows performing large-scale simulations of 2D or 3D problems on parallel computing platforms. Solution method: Four time discretization methods are implemented for the dynamics of the GPE: a first-, second- and a fourth-order splitting schemes, and a second-order relaxation scheme. The spatial discretization is based on a Fourier pseudo-spectral method. This solver is implemented in distributed memory using MPI and a decomposition of the computational domain. Additional comments including restrictions and unusual features: The parallel algorithms are implemented in C++ and MPI, with a Python interface available for defining the physics of the problem. A pure Python version of sequential algorithms is also provided for rapid prototyping using the same interface. Results can be exported and visualized with external tools (HDF5 and VTK formats for ParaView or PyVista).