TAS - Transmission spectra with Atom-Surface interactions documentation¶
A Python package tas
calculates transmission spectra through
optically thin slabs of atomic vapours contained in
spectroscopic cells including important effects of thin cells:
- two closely spaced walls of the spectroscopic cell act as low-finesse cavity for driving light and emitted light;
- atoms colliding with the cell walls depolarise, and their subsequent transient dynamics also changes transmission spectra; finally
- atom-surface van der Waals interaction induces level shifts. For thickness smaller than λ/(2π), where λ is the wavelength of the strongest dipole allowed transition from each of the two energy levels whose transition spectrum we explore, the shift of the transition energy is \(\propto C_3/R^3\), where \(C_3\) is van der Waals constant for given atomic transition.
Generated spectra can be used for fitting results of atom-vapour laser spectroscopy to obtain strength of \(C_3\) for atom-surface interactions. Detailed documentation follows bellow. For detail on the physics and measurements please cite original paper.
Solution method and assumptions¶
Problem statement¶
This code computes the coherent transmission through a slab of atomic vapour contained in thin vapour cell.
Solution method¶
Incident field and the field radiated by the atoms interfere to produce the output field. Model accounts for the velocity of the atoms by resolving Bloch equation introducing the hydrodynamic derivative and assuming Maxwell-Boltzmann velocity distribution. Boundary condition for the limit is a loss of coherence at surfaces. The atom-surface interaction is regularly accounted for introducing a long-range atom-surface potential and solving the coherence equation using the constant variation method.
Assumptions¶
The model is valid for low enough absorption since it assume that the driving field is not depleted along the cell. (First order density derivation of the transmission - Born Approximation.)
Installation¶
The Python package tas
can be installed from PyPI with pip from
command line:
pip install TAS-Transmission-Atom-Surface
Spectra generation¶
List of methods and classes provided
ThinCellSpectra ([nSurface, wavelength, …]) |
Generates spectra for optically thin atom slabs in nano-cells. |
getBoltzmannDistribution (velocity, meanVelocity) |
Generate the Boltzmann distribution for the given mean velocity. |
This module generates thin-cell transmission spectra, accounting for cavity effects, transient atom dynamics following depolarisation in atom-wall collisions, and atom-surface van der Waals \(\propto 1/R^3\) interactions.
Example
To generate simple thin cell spectra:
from tas import *
import matplotlib.pyplot as plt
import numpy as np
laserDetuning = np.linspace(-6500,-1500,60) # (MHz)
temperature = 228 # (degree Celsius)
collisionalBroadening = 840 # (MHz)
C3 = 2 # (kHz mum^3)
cellLength = 80e-9 # (m)
collisionalShift = 0 # (MHz)
calc = ThinCellSpectra(nSurface=1.76)
T = calc.getTransmission(laserDetuning,
temperature,
collisionalBroadening,
collisionalShift,
C3,
cellLength)
plt.figure()
plt.plot(laserDetuning, T,
'b', label='Theoretical prediction')
plt.xlabel('Detuning (GHz)')
plt.ylabel('Transmission' )
plt.legend(loc='lower right')
plt.show()
-
tas.tas.
getBoltzmannDistribution
(velocity, meanVelocity)[source]¶ Generate the Boltzmann distribution for the given mean velocity.
Parameters: - velocity – TO-DO
- meanVelocity – TO-DO
-
class
tas.tas.
ThinCellSpectra
(nSurface=1.76, wavelength=8.9459295986e-07, gamma0=4.5612, atomMass=132.905451931, energyLevelsF=[-3510.916, -4678.597], cg_coeff=[0.026024508, 0.0364343])[source]¶ Generates spectra for optically thin atom slabs in nano-cells.
Includes atom-surface interactions, transient effects of atom dynamics following depolarisation at the walls of the cell, and cavity effects due to the cell walls. Neglects change of driving light power due to interaction with the atomic medium.
Parameters: - nSurface – (Optional) refractive index of the vapour cell surface
- wavelength – (Optional) transition wavelength (m)
- gamma0 – (Optional) transition natural linewidth (MHz)
- atomMass – (Optional) mass of the atoms (atomic units)
- energyLevelsF – (Optional) array of offsets of energy levels, relative to center of gravity of HFS line (MHz)
- cg_coeff – (Optional) array of Clebsch–Gordan coefficients for the energy levels listed in energyLevelsF.
Note
To include different transitions and/or atomic species change atom specific data with optional parameters of ThinCellSpectra during initialisation of the class instance. Optional parameters are all set by default to conditions in the experiment (Cs D1, \(F=4 \rightarrow F=3,4\) ).
-
getTransmission
(laserDetuning, vapourTemperature, broadening, resonanceShift, C3, cellLength, velocityStepLargeRelative=20, velocityStepSmallAbsolute=2, smallVelocity=10, dz1=None)[source]¶ Calculate thin-cell transmission spectra in presence.
Parameters: - laserDetuning – laser detuning (MHz)
- vapourTemperature – vapour temperature (\(^\circ\mathrm{C}\))
- broadening – additional Lorentzian broadening that accounts for collisions for example (MHz)
- resonanceShift – additional offset of transition resonance that accounts for collisions for example (MHz).
- C3 – atom-surface van der Waals coefficient (\(\mathrm{kHz}.\mu\mathrm{m}^3\))
- cellLength – cell thickness (m)
- velocityStepLargeRelative – (Optional) defines velocity steps used for integration far from zero velocity defined relative to the mean 1D speed of atoms. Default value is 20, resulting in steps of 1/20th of mean 1D speed of atoms.
- velocityStepSmallAbsolute – (Optional) defines velocity steps for small velocities around 0 in absolute unites (m/s).
- smallVelocity – (Optional) defines what is small velocity for velocityStepLargeRelative and velocityStepSmallAbsolute in units of m/s. Default is 10 m/s.
- dz1 – (Optional) integration step in space in nm. Default value is None, and function will set this step correctly to integrate data from experiment (c.f. paper where results are published). Outside the range of the experiment considered, this parameter might need to be adjusted.
Returns: normalised transmission \(T = |E(\textrm{with atoms})/E(\textrm{witout atoms})|^2\)
Examples of use¶
Jupyter IPython notebook gives examples of
- running the package; and
- it shows how spectra can be used in fitting the thin-cell spectra data to obtain atom-surface potential parameters.
Check
.ipynb version of notebook here
or static HTML version here.
Credits¶
Authors: | Tom Peyrot and Nikola Šibalić |
---|---|
Licence: | BSD-3 |
Version: | 0.0.1 of 2019/04/17 |