58 lines
2.1 KiB
Python
58 lines
2.1 KiB
Python
# A self defined constant dictionary class
|
|
# It is used for storing the physical constant related to transition
|
|
import numpy as np
|
|
import scipy.constants as constant
|
|
|
|
|
|
class Transition(dict):
|
|
class ConstError(TypeError):
|
|
pass
|
|
|
|
def __setitem__(self, name, value):
|
|
if name in self.__dict__:
|
|
raise self.ConstError("Can't change const %s" % name)
|
|
super().__setitem__(name, value)
|
|
self.__dict__[name] = value
|
|
|
|
def __getattr__(self, name):
|
|
return self[name]
|
|
|
|
def __dir__(self):
|
|
return sorted(self)
|
|
|
|
def __init__(self, wavelength, linewidth, landauFactor):
|
|
super().__init__()
|
|
|
|
wavevector = 2 * constant.pi / wavelength
|
|
frequency = constant.speed_of_light / wavelength
|
|
circular_frequency = 2 * constant.pi * frequency
|
|
natural_linewidth = 2 * constant.pi * linewidth
|
|
lifetime = 1 / natural_linewidth
|
|
saturation_intensity = 2 * constant.pi ** 2 / 3 * \
|
|
constant.hbar * constant.c * natural_linewidth / wavelength ** 3
|
|
|
|
resonance_cross_section = constant.hbar * circular_frequency * \
|
|
natural_linewidth / 2 / saturation_intensity
|
|
|
|
self['wavelength'] = wavelength
|
|
self['wavevector'] = wavevector
|
|
self['frequency'] = frequency
|
|
self['circular_frequency'] = circular_frequency
|
|
self['linewidth'] = linewidth
|
|
self['natural_linewidth'] = natural_linewidth
|
|
self['landauFactor'] = landauFactor
|
|
self['lifetime'] = lifetime
|
|
self['saturation_intensity'] = saturation_intensity
|
|
self['resonance_cross_section'] = resonance_cross_section
|
|
|
|
def get_rabi_frequency(self, intensity):
|
|
rabi_frequency = np.sqrt(intensity / self['saturation_intensity'] / 2) * self['natural_linewidth']
|
|
|
|
return rabi_frequency
|
|
|
|
def get_cross_section(self, detuning, intensity):
|
|
|
|
cross_section = self['resonance_cross_section'] / (
|
|
1 + 4 * (detuning / self['natural_linewidth']) ** 2 + intensity / self['saturation_intensity'])
|
|
return cross_section
|