C and Fortran OpenMP programs for rotating Bose–Einstein condensates
MetadataShow full item record
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. Program summary: Program title: BEC-GP-ROT-OMP, consisting of: (1) BEC-GP-ROT-OMP-C package, containing programs (i) bec-gp-rot-2d-th and (ii) bec-gp-rot-3d-th; (2) BEC-GP-ROT-OMP-F package, containing programs (i) bec-gp-rot-2d-th and (ii) bec-gp-rot-3d-th. Program files doi: http://dx.doi.org/10.17632/cw7tkn22v2.2 Licensing provisions: Apache License 2.0 Programming language: OpenMP C; OpenMP Fortran. The C programs are tested with the GNU, Intel, PGI, Oracle, and Clang compiler, and the Fortran programs are tested with the GNU, Intel, PGI, and Oracle compiler. Nature of problem: The present Open Multi-Processing (OpenMP) C and Fortran programs solve the time-dependent nonlinear partial differential Gross–Pitaevskii (GP) equation for a trapped rotating Bose–Einstein condensate in two (2D) and three (3D) spatial dimensions in a fully anisotropic traps. Solution method: We employ the split-step Crank–Nicolson algorithm to discretize the time-dependent GP equation in space and time. The discretized equation is then solved by imaginary- or real-time propagation, employing adequately small space and time steps, to yield the solution of stationary and non-stationary problems, respectively.