C and Fortran OpenMP programs for rotating Bose-Einstein condensates

We present OpenMP versions of C and Fortran programs for solving the Gross–Pitaevskii equation for a rotating trapped Bose–Einstein condensate (BEC) in two (2D) and three (3D) spatial dimensions. The programs can be used to generate vortex lattices and study dynamics of rotating BECs. We use the split-step Crank–Nicolson algorithm for imaginary- and real-time propagation to calculate stationary states and BEC dynamics, respectively. The simulation input parameters for the C programs are provided via input files, while for the Fortran programs they are given at the beginning of each program and therefore their change requires recompilation of the corresponding program. The programs propagate the condensate wave function and calculate several relevant physical quantities, such as the energy, the chemical potential, and the root-mean-square sizes. The imaginary-time propagation starts with an analytic wave function with one vortex at the trap center, modulated by a random phase at different space points. Nevertheless, the converged wave function for a rapidly rotating BEC with a large number of vortices is most efficiently calculated using the pre-calculated converged wave function of a rotating BEC containing a smaller number of vortices as the initial state rather than using an analytic wave function with one vortex as the initial state. These pre-calculated initial states exhibit rapid convergence for fast-rotating condensates to states containing multiple vortices with an appropriate phase structure. This is illustrated here by calculating vortex lattices with up to 61 vortices in 2D and 3D. Outputs of the programs include calculated physical quantities, as well as the wave function and different density profiles (full density, integrated densities in lower dimensions, and density cross-sections). The provided real-time propagation programs can be used to study the dynamics of a rotating BEC using the imaginary-time stationary wave function as the initial state. We also study the efficiency of parallelization of the present OpenMP C and Fortran programs with different compilers.


CC BY 4.0