Skip to content

Python codes for simulations of Yb atoms under stimulated forces

Notifications You must be signed in to change notification settings

tinatn29/Yb-slowing

Repository files navigation

Yb-slowing

Numerical calculations and Monte Carlo simulations of stimulated slowing of Yb atoms with amplitude-modulated light

Project Overview

This repo contains Python codes developed for the work published in T. Na Narong, et al. Physical Review A (2021) [1]. We numerically calculate optical forces on Yb atoms to design a stimulated slowing experiment with counter-propagating bichromatic and amplitude-modulated light. We also run Monte Carlo simulations of >20,000 atoms to evaluate the slowing efficiency.

Numerical calculation of bichromatic force (BCF) and polychromatic force (PCF)

We derived the time-dependent Hamiltonian matrix H(t) for the two-level atom, and then used the mesolve function from the QuTiP library to solve the Linblad Master Equation for density matrix. The stimulated force is calculated from the Hamiltonian and density matrix, then integrated to update the atom's velocity and position.

Monte Carlo simulations

Assuming all atoms are independent, we developed Monte Carlo simulations to predict which atoms are successfully slowed and trapped by the MOT for given input experimental parameters. The simulations account for the laser Gaussian beam profile, atomic beam divergence and gravity.
Atoms' initial positions, velocities, and departure times from the oven are set by GenerateBatchAtoms.py. Running this file generates v_input.npy, r_input.npy, t_input.npy, to be loaded when running the simulation files. The input_files folder contains these files with 5000 or 20000 atoms as examples.

Important files and dependencies

Class files

These files define a class MCSolver, which contains functions to numerically solve the Master Equation for the density matrix and the stimulated force, and functions to run Monte Carlo simulations with parallel computing.

  • SSMCSolver_BCF.py Bichromatic force (BCF) from overlapping CW beams
  • SSMCSolver_square.py Polychromatic force (PCF) from square-wave AM light

Dependencies

  • RandomInitialize.py defines functions to sample atoms' starting velocities (effusion distribution) and positions (uniform).

Main simulation files

  • RunMC_local_BCF.py Use this to test run on your local computer to make sure all files are ready. The following files run Monte Carlo simulations from input_files.
  • RunMC_allinput_BCF_chirp.py runs the simulation with pre-set v,r,t inputs.
  • RunMC_allinput_squareAM_chirp.py runs the simulation with pre-set v,r,t inputs (for square wave settings)

Bash scripts for job submission (via Python)

To submit simulations jobs on the Sherlock cluster, you need to first create a bash (.sh) script that specifies computing resources. To easily vary simulation parameters and submit multiple jobs at once, I find it easier to run a Python script on Sherlock (see examples in the folder submission_files).

For example, running ./submission_files/submit_single_BCF_chirp.py with appropriate arguments will create a bash file (.sh) and other text files (.txt) that contain printed program outputs and error messages in your Sherlock directory. See SHERLOCK-GUIDE.md for details.

Software and Libraries

References

  1. Na Narong, Tanaporn, TianMin Liu, Nikhil Raghuram, and Leo Hollberg. "Stimulated slowing of Yb atoms on the narrow 1S0→3P1 transition." Physical Review A 104, no. 5 (2021): 053117. https://doi-org/10.1103/PhysRevA.104.053117

About

Python codes for simulations of Yb atoms under stimulated forces

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages