# Light absorption by a three level atom

• BiGyElLoWhAt
In summary, the goal is to find the transmission for two laser beams that are propagating through a cavity with an atom that is moving at some velocity. The radiative lifetime is 30 ns, and the lasers have an intensity of .05*I_sat and 10*I_sat.
BiGyElLoWhAt
Gold Member

## Homework Statement

We have 2 laser beams counter propagating through a cavity with an atom traveling at some velocity. So one laser beam is propagating left and the other right. One laser beam has an intensity of .05*I_sat and the other 10*I_sat. The goal is to get the transmittance (or transmission, I think they're the same thing, and they seem to be used interchangeably throughout the paper). The lasers output the same frequency light.

The wavelengths of light that excite the atom to the excited states are:
##\lambda_1 = 600.00000nm##
##\lambda_2 = 599.99904nm##
We have a radiative lifetime of 30 ns for both states.

## Homework Equations

From the book, we have transmittance is
##1 - \frac{I_{sat}}{2\langle I(0) \rangle } K(\omega , v)L##
with L the length of the cavity (doesn't matter)

We assume a few things, and are given that
##K(\omega , v)L =
\left \{ \begin{array}{ll}
f(v)dv, & if | \omega - \frac{2\pi c}{\lambda_1} - \frac{2\pi v}{\lambda_1} | \\
f(v)dv, & if | \omega - \frac{2\pi c}{\lambda_2} - \frac{2\pi v}{\lambda_2} | \\
0, & otherwise \end{array} \right. ##

with
##f(v) = \sqrt{\frac{m}{2\pi k_B T}}exp(-\frac{mv^2}{2k_B T}##
and
##\frac{m}{2k_B T} = 1.700 x 10^{-5}##

## The Attempt at a Solution

[/B]
Python:
from __future__ import division
from numpy import sqrt, pi, exp, zeros
import matplotlib.pyplot as plt
import random
#from pylab import nbytes
#import numpy

c = 299792458

lambda1 = 600*10**(-9)
lambda2 = 59999904*10**(-9)

const = 1.7 * 10**(-5)
tauR = 30*10**(-9)

f1 = c/lambda1
flow = f1-800*10**6
fhigh = f1+800*10**6
fstep = 1*10**6

frequency = zeros((fhigh-flow)/fstep)
Transmission = zeros((fhigh-flow)/fstep)

vlow = -1200
vhigh = 1200
vstep = 1def f(v):
distribution = sqrt(const/pi)*exp(-const*v**2)
return distribution

def K(w,v):
if abs(w- 2*pi*c/lambda1 - 2*pi*v/lambda1)<= 1/(2*tauR) :
y = f(v)
elif abs(w- 2*pi*c/lambda2 - 2*pi*v/lambda2)<= 1/(2*tauR) :
y = f(v)
else:
y = 0

return y*vstep

def T(w,v):
transmittance = 1/(2*.05)*K(w,v)
return transmittance
Tboth = zeros(50)
Tone = zeros(35000)
Kone = zeros(35000)
Fone = zeros(35000)www = zeros(50)
both = 0
one = 0
none = 0
Req1 = 0
# T vs. w
ww = 0
vv = 0
kmax = 5 #number of samples per velocity point
argL1 = zeros(((fhigh-flow)/fstep,kmax))
argL2 = zeros(((fhigh-flow)/fstep,kmax))

while ww < (fhigh-flow)/fstep:
frequency[ww] = flow + ww*fstep
while vv < (vhigh - vlow)/vstep:
for k in range(kmax):
if abs(2*pi*frequency[ww]- 2*pi*c/lambda1 - 2*pi*(vlow +vv*vstep)/lambda1)<= 1/(2*tauR) \
and abs(2*pi*frequency[ww]- 2*pi*c/lambda1 + 2*pi*(vlow +vv*vstep)/lambda1)<= 1/(2*tauR) \
or abs(2*pi*frequency[ww]- 2*pi*c/lambda2 - 2*pi*(vlow +vv*vstep)/lambda2)<= 1/(2*tauR) \
and abs(2*pi*frequency[ww]- 2*pi*c/lambda2 + 2*pi*(vlow +vv*vstep)/lambda2)<= 1/(2*tauR):
both+=1
argL1[ww,k] = 1
argL2[ww,k] = 1
www[both-1] = ww
r = random.randrange(1,201,1)
if r == 1:
Transmission[ww] = Transmission[ww] + T(2*pi*frequency[ww],vv) #let the atom encounter light 201 times, since the probability is 1 in 201
Transmission[ww] = 1 - Transmission[ww]/kmax #Normalize the point
Tboth[both-1]= Transmission[ww]
Req1 +=1
elif abs(2*pi*frequency[ww]- 2*pi*c/lambda1 - 2*pi*(vlow +vv*vstep)/lambda1)<= 1/(2*tauR) \
or abs(2*pi*frequency[ww]- 2*pi*c/lambda2 - 2*pi*(vlow +vv*vstep)/lambda2)<= 1/(2*tauR):
argL1[ww,k] = 1
Transmission[ww] = Transmission[ww] + T(2*pi*frequency[ww],vv)
Transmission[ww] = 1 - Transmission[ww]/kmax
Tone[one] = Transmission[ww]
Kone[one] = K(2*pi*frequency[ww],vlow+vv*vstep)
Fone[one] = f(vlow+vv*vstep)
one +=1
else:
none +=1

vv+=1
vv=0
ww+=1
plt.plot(frequency,Transmission)
plt.ylabel('Transmission')
plt.xlabel('Frequency of light')
plt.axis([flow,fhigh,0,1.2])
plt.show()

The comments are a little sparse, so let me explain a bit.
I think the definitions are pretty self explanatory if you read section 2.
vlow, vhigh, flow, and fhigh are the range of frequencies and velocites that we're looking over. They were given as "reasonable values" in the assignment.
Tboth, Tone, Kone, Fone are all checks. Same with both, one, none, req1, argL1, argL2, and www. They don't do anything other than store values for me to look at for troubleshooting.
Tboth stores the value of the transmittance function T(w,v) iff the atom can absorb light from both lasers (k(w,v)L is non zero for both lasers and the current velocity)
Tone stores T(w,v) if only the weak laser can be absorbed.
Kone stores K if only the weak laser can be absorbed.
Fone stores f if only the weak laser can be absorbed

both, one, and none store the number of times both lasers, the weak laser, and neither of the lasers can be absorbed.

argL1 stores 1 if the inequality holds for the weak laser, 0 if it doesn't. argL2 same but for the strong laser.

www stores the values of ww (my incrementer for the frequencies) that both lasers can be absorbed by. It turns out to be f1 +/- 2, so I'm centered at 800, and I get 1's from 798-802 and zeros everywhere else.

Loops
Check that we're in our range of frequencies
store the current frequency.
check to see that we're in our range of velocities

(run multiple trials for a particular velocity at a given laser frequency)
check to see if the inequality holds true for excited state 1 OR 2 in the weak laser AND the strong laser
[set check variables]
take into account the probability of the atom absorbing a photon from the small laser
store the transmission value from the transmission function
store a check value (req1 tells me how many times both could be absorbed and it chose the weak laser)

check to see if only the weak laser can be absorbed for either excited state
set transmission value
set check values

check to see if neither can be absorbed
set check values

adjust counters (because I'm a control freak partly, and sometimes my math in the range() function was returning floats, rather than ints)

plot[END PSEUDO CODE]

A few things. If you adjust vstep to 5 or 10 (those were the values I started with originally), you get periodic values for K, and other related functions. The argL1, for vstep = 10, would return 1 for ww= 1,2,3, then 0 for the next 11, then 1 for the next 5, 0 for the next 11, etc. until you get around f1 (about ww= 800 with the current set of fstep), then it was 0 for 29 of them, i believe. I have no idea why.

I think I have a logic error somewhere in my loops, but I'm not sure what I'm doing wrongly.

If I left anything out that isn't self explanatory, let me know, and I will explain my thinking for it.

What it is supposed to look like, is high on the ends, gradually dipping to zero at f1 (1.1 on the graph), with 3 vertical spikes, one of which is at f1, and I'm assuming one to the left and the other to the right, somewhere.

#### Attachments

• output.png
11.2 KB · Views: 377
BiGyElLoWhAt said:
lambda2 = 59999904*10**(-9)
That number doesn't look right. Does it help to fix that? Didn't check all the remaining code in detail.
Some clean-up for the very long if X and Y or ... expressions would simplify the code.

There should have been a decimal in there. I'm not sure why there wasn't.
Thanks.

I'll have to rerun it to see if it fixes it. It takes really long, as I have to immensely shrink my sample rates. When I ran my friends code, it took me 6 hours to complete because my computer is a dinosaur.

## 1. What is a three level atom?

A three level atom is a simplified model of an atom with three energy levels - ground state, excited state, and metastable state. It is often used to study the absorption of light by atoms.

## 2. How does light absorption occur in a three level atom?

When light of a specific frequency or wavelength is incident on a three level atom, it can be absorbed by an electron in the ground state and promoted to the excited state. This results in the atom becoming temporarily excited and absorbing the energy from the incident light.

## 3. What determines the efficiency of light absorption in a three level atom?

The efficiency of light absorption in a three level atom is determined by the properties of the atom, such as the energy spacing between the levels, the number of atoms present, and the intensity and frequency of the incident light. It can also be affected by external factors such as temperature and pressure.

## 4. How does light absorption by a three level atom lead to emission?

After absorbing light, the excited electron in the three level atom will eventually return to the ground state. This can occur through spontaneous emission, where the electron releases the absorbed energy as a photon, or through stimulated emission, where the presence of another photon of the same frequency can stimulate the electron to release its energy. This results in the emission of light with the same frequency as the incident light.

## 5. What are the practical applications of studying light absorption by three level atoms?

Understanding light absorption by three level atoms has many practical applications, such as in the development of new technologies like lasers and atomic clocks. It also plays a crucial role in fields such as spectroscopy, quantum optics, and quantum computing.

Replies
2
Views
1K
Replies
2
Views
10K
Replies
16
Views
3K