Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improved energy calculation for high l states (l>5) and quantum defect updates for Cs and K. #173

Open
wants to merge 4 commits into
base: draft_v3.6.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
174 changes: 132 additions & 42 deletions arc/alkali_atom_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,6 @@
"Potassium41",
]


class Hydrogen(AlkaliAtom):
"""
Properties of hydrogen atoms
Expand Down Expand Up @@ -192,6 +191,15 @@ class Caesium(AlkaliAtom):
model potential parameters from [#c1]_

"""

a_d_eff = 15.79

a_q_eff = 38.7

"""
Effective core polarisabilities from https://doi.org/10.1364/JOSA.71.000423
"""

#
a1 = [3.49546309, 4.69366096, 4.32466196, 3.01048361]
"""
Expand Down Expand Up @@ -219,6 +227,8 @@ class Caesium(AlkaliAtom):

I = 3.5 # 7/2



#: (eV), Ref. [#jd2016]_.
ionisationEnergy = (
31406.4677325
Expand All @@ -234,24 +244,24 @@ class Caesium(AlkaliAtom):

quantumDefect = [
[
[4.04935665, 0.2377037, 0.255401, 0.00378, 0.25486, 0.0],
[3.59158950, 0.360926, 0.41905, 0.64388, 1.45035, 0.0],
[4.0493532, 0.2391, 0.06, 11, -209, 0.0],
[3.5915871, 0.36273, 0.0, 0.0, 0.0, 0.0],
[2.4754562, 0.009320, -0.43498, -0.76358, -18.0061, 0.0],
[0.03341424, -0.198674, 0.28953, -0.2601, 0.0, 0.0],
[0.00703865, -0.049252, 0.01291, 0.0, 0.0, 0.0],
],
[
[4.04935665, 0.2377037, 0.255401, 0.00378, 0.25486, 0.0],
[3.5589599, 0.392469, -0.67431, 22.3531, -92.289, 0.0],
[2.46631524, 0.013577, -0.37457, -2.1867, -1.5532, -56.6739],
[4.0493532, 0.2391, 0.06, 11, -209, 0.0],
[3.5590676, 0.37469, 0.0, 0.0, 0.0, 0.0],
[2.4663144, 0.01381, -0.392, -1.9, 0.0, 0.0],
[0.03341424, -0.198674, 0.28953, -0.2601, 0.0, 0.0],
[0.00703865, -0.049252, 0.01291, 0.0, 0.0, 0.0],
],
]
"""
quantum defects for :math:`S_{1/2}`, :math:`nP_{1/2}`, :math:`D_{5/2}`,
quantum defects for :math:`S_{1/2}`, :math:`nP_{1/2}`, :math:`nP_{3/2}`, :math:`D_{5/2}` are from https://doi.org/10.1103/PhysRevA.93.013424
:math:`F_{5/2}` and :math:`G_{7/2}` are from [#Weber1987]_, while
quantum defects for :math:`nP_{3/2}`,:math:`D_{3/2}` are from [#Lorenzen1984]_,
:math:`D_{3/2}` are from [#Lorenzen1984]_,

Note:
f_7/2 quantum defects are PUT TO BE EXACTLY the same as f_5/2 (~10MHz difference?!)
Expand Down Expand Up @@ -390,7 +400,6 @@ class Cesium(Caesium):

pass


class Rubidium85(AlkaliAtom):
"""
Properites of rubidium 85 atoms
Expand All @@ -403,6 +412,15 @@ class Rubidium85(AlkaliAtom):

"""

a_d_eff = 9.089

a_q_eff = 16.8

"""
Effective core polarisabilities from https://doi.org/10.1103/PhysRevA.102.062818

"""

a1 = [3.69628474, 4.44088978, 3.78717363, 2.39848933]
"""
model potential parameters from [#c1]_
Expand Down Expand Up @@ -561,7 +579,15 @@ class Rubidium87(AlkaliAtom):
model potential parameters from [#c1]_

"""
a_d_eff = 9.089

a_q_eff = 16.8

"""
Effective core polarisabilities from https://doi.org/10.1103/PhysRevA.102.062818

"""

a1 = [3.69628474, 4.44088978, 3.78717363, 2.39848933]
"""
model potential parameters from [#c1]_
Expand Down Expand Up @@ -711,7 +737,17 @@ class Lithium6(AlkaliAtom): # Li
"""
model potential parameters from [#c1]_


"""

a_d_eff = 0.1883

a_q_eff = 0.04579

"""
(Effective) core plarisabiltiesm from https://doi.org/10.1103/PhysRevA.16.1141
"""

# model potential parameters from Marinescu et.al, PRA 49:982 (1994)
a1 = [2.47718079, 3.45414648, 2.51909839, 2.51909839]
"""
Expand Down Expand Up @@ -867,6 +903,15 @@ class Lithium7(AlkaliAtom): # Li
model potential parameters from [#c1]_

"""

a_d_eff = 0.1883

a_q_eff = 0.04579

"""
(Effective) core plarisabiltiesm from https://doi.org/10.1103/PhysRevA.16.1141
"""

a1 = [2.47718079, 3.45414648, 2.51909839, 2.51909839]
"""
model potential parameters from [#c1]_
Expand Down Expand Up @@ -1012,6 +1057,16 @@ class Sodium(AlkaliAtom): # Na23
model potential parameters from [#c1]_

"""

a_d_eff = 0.9980

a_q_eff = 0.351
"""
(Effective) core plarisabiltiesm from https://doi.org/10.1103/PhysRevA.38.4985
"""



a1 = [4.82223117, 5.08382502, 3.53324124, 1.11056646]
"""
model potential parameters from [#c1]_
Expand Down Expand Up @@ -1155,6 +1210,18 @@ class Potassium39(AlkaliAtom):
model potential parameters from [#c1]_

"""


a_d_eff = 5.49

a_q_eff = 18


"""
(Effective) core plarisabiltiesm from https://doi.org/10.1103/PhysRevA.100.012501
"""


a1 = [3.56079437, 3.65670429, 4.12713694, 1.42310446]
"""
model potential parameters from [#c1]_
Expand Down Expand Up @@ -1197,22 +1264,22 @@ class Potassium39(AlkaliAtom):
# quantum defects from Physica Scripta 27:300 (1983)
quantumDefect = [
[
[2.1801985, 0.13558, 0.0759, 0.117, -0.206, 0.0],
[1.713892, 0.233294, 0.16137, 0.5345, -0.234, 0.0],
[0.27697, -1.024911, -0.709174, 11.839, -26.689, 0.0],
[0.010098, -0.100224, 1.56334, -12.6851, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[2.18020826, 0.134534, 0.0952, 0.0021, 0.0, 0.0],
[1.71392626, 0.23114, 0.1948, 0.3683, 0.0, 0.0],
[0.27698453, -1.02691, -0.665, 10.9, 0.0, 0.0],
[0.0094576, -0.0446, 0.0, 0.0, 0.0, 0.0],
[0.0024080, -0.0209, 0.0, 0.0, 0.0, 0.0],
],
[
[2.1801985, 0.13558, 0.0759, 0.117, -0.206, 0.0],
[1.710848, 0.235437, 0.11551, 1.1015, -2.0356, 0.0],
[0.2771580, -1.025635, -0.59201, 10.0053, -19.0244, 0.0],
[0.010098, -0.100224, 1.56334, -12.6851, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[2.18020826, 0.134534, 0.0952, 0.0021, 0.0, 0.0],
[1.71087854, 0.23233, 0.1961, 0.3716, 0.0, 0.0],
[0.27715665, -1.02493, -0.640, 10.0, 0.0, 0.0],
[0.0094576, -0.0446, 0.0, 0.0, 0.0, 0.0],
[0.0024080, -0.0209, 0.0, 0.0, 0.0, 0.0],
],
]
"""
quantum defects from Ref. [#c7]_.
p1/2 and p3/2, s1/2, d3/2, d5/2 and f and g (centre of manifold) from https://doi.org/10.1103/PhysRevA.100.012501
"""

levelDataFromNIST = "k_NIST_level_data.ascii"
Expand Down Expand Up @@ -1305,6 +1372,18 @@ class Potassium40(AlkaliAtom):
model potential parameters from [#c1]_

"""

a_d_eff = 5.49

a_q_eff = 18


"""
(Effective) core plarisabiltiesm from https://doi.org/10.1103/PhysRevA.100.012501
"""



a1 = [3.56079437, 3.65670429, 4.12713694, 1.42310446]
"""
model potential parameters from [#c1]_
Expand Down Expand Up @@ -1347,22 +1426,22 @@ class Potassium40(AlkaliAtom):
# quantum defects from Physica Scripta 27:300 (1983)
quantumDefect = [
[
[2.1801985, 0.13558, 0.0759, 0.117, -0.206, 0.0],
[1.713892, 0.233294, 0.16137, 0.5345, -0.234, 0.0],
[0.27697, -1.024911, -0.709174, 11.839, -26.689, 0.0],
[0.010098, -0.100224, 1.56334, -12.6851, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[2.18020826, 0.134534, 0.0952, 0.0021, 0.0, 0.0],
[1.71392626, 0.23114, 0.1948, 0.3683, 0.0, 0.0],
[0.27698453, -1.02691, -0.665, 10.9, 0.0, 0.0],
[0.0094576, -0.0446, 0.0, 0.0, 0.0, 0.0],
[0.0024080, -0.0209, 0.0, 0.0, 0.0, 0.0],
],
[
[2.1801985, 0.13558, 0.0759, 0.117, -0.206, 0.0],
[1.710848, 0.235437, 0.11551, 1.1015, -2.0356, 0.0],
[0.2771580, -1.025635, -0.59201, 10.0053, -19.0244, 0.0],
[0.010098, -0.100224, 1.56334, -12.6851, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[2.18020826, 0.134534, 0.0952, 0.0021, 0.0, 0.0],
[1.71087854, 0.23233, 0.1961, 0.3716, 0.0, 0.0],
[0.27715665, -1.02493, -0.640, 10.0, 0.0, 0.0],
[0.0094576, -0.0446, 0.0, 0.0, 0.0, 0.0],
[0.0024080, -0.0209, 0.0, 0.0, 0.0, 0.0],
],
]
"""
quantum defects from Ref. [#c7]_.
p1/2 and p3/2, s1/2, d3/2, d5/2 and f and g (centre of manifold) from https://doi.org/10.1103/PhysRevA.100.012501
"""

levelDataFromNIST = "k_NIST_level_data.ascii"
Expand Down Expand Up @@ -1445,6 +1524,17 @@ class Potassium41(AlkaliAtom):
model potential parameters from [#c1]_

"""

a_d_eff = 5.49

a_q_eff = 18


"""
(Effective) core plarisabiltiesm from https://doi.org/10.1103/PhysRevA.100.012501
"""


a1 = [3.56079437, 3.65670429, 4.12713694, 1.42310446]
"""
model potential parameters from [#c1]_
Expand Down Expand Up @@ -1487,22 +1577,22 @@ class Potassium41(AlkaliAtom):
# quantum defects from Physica Scripta 27:300 (1983)
quantumDefect = [
[
[2.1801985, 0.13558, 0.0759, 0.117, -0.206, 0.0],
[1.713892, 0.233294, 0.16137, 0.5345, -0.234, 0.0],
[0.27697, -1.024911, -0.709174, 11.839, -26.689, 0.0],
[0.010098, -0.100224, 1.56334, -12.6851, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[2.18020826, 0.134534, 0.0952, 0.0021, 0.0, 0.0],
[1.71392626, 0.23114, 0.1948, 0.3683, 0.0, 0.0],
[0.27698453, -1.02691, -0.665, 10.9, 0.0, 0.0],
[0.0094576, -0.0446, 0.0, 0.0, 0.0, 0.0],
[0.0024080, -0.0209, 0.0, 0.0, 0.0, 0.0],
],
[
[2.1801985, 0.13558, 0.0759, 0.117, -0.206, 0.0],
[1.710848, 0.235437, 0.11551, 1.1015, -2.0356, 0.0],
[0.2771580, -1.025635, -0.59201, 10.0053, -19.0244, 0.0],
[0.010098, -0.100224, 1.56334, -12.6851, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[2.18020826, 0.134534, 0.0952, 0.0021, 0.0, 0.0],
[1.71087854, 0.23233, 0.1961, 0.3716, 0.0, 0.0],
[0.27715665, -1.02493, -0.640, 10.0, 0.0, 0.0],
[0.0094576, -0.0446, 0.0, 0.0, 0.0, 0.0],
[0.0024080, -0.0209, 0.0, 0.0, 0.0, 0.0],
],
]
"""
quantum defects from Ref. [#c7]_.
p1/2 and p3/2, s1/2, d3/2, d5/2 and f and g (centre of manifold) from https://doi.org/10.1103/PhysRevA.100.012501
"""

levelDataFromNIST = "k_NIST_level_data.ascii"
Expand Down
66 changes: 62 additions & 4 deletions arc/alkali_atom_functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -787,7 +787,33 @@ def getEnergy(self, n, l, j, s=0.5):

# else, use quantum defects
defect = self.getQuantumDefect(n, l, j, s=s)
return -self.scaledRydbergConstant / ((n - defect) ** 2)



if l <= 3:
return -self.scaledRydbergConstant / ((n - defect) ** 2)
elif l == 4:
fineStructSplit = -(2*self.scaledRydbergConstant)*pow(scipy.constants.alpha,2)/(2*l*(l+0.5)*(l+1)*pow(n,3))

if j == l + 0.5:
fineStructSplit *= 0.5*l

elif j == l - 0.5:
fineStructSplit *= -1*0.5*(l+1)

return -self.scaledRydbergConstant / ((n - defect) ** 2) - fineStructSplit

else:
fineStructSplit = -(2*self.scaledRydbergConstant)*pow(scipy.constants.alpha,2)/(2*l*(l+0.5)*(l+1)*pow(n,3))

if j == l + 0.5:
fineStructSplit *= 0.5*l

elif j == l - 0.5:
fineStructSplit *= -1*0.5*(l+1)

return -self.scaledRydbergConstant / ((n) ** 2) - fineStructSplit - 2*self.scaledRydbergConstant*defect


def _getSavedEnergy(self, n, l, j, s=0.5):
if abs(j - (l - 0.5)) < 0.001:
Expand Down Expand Up @@ -841,9 +867,41 @@ def getQuantumDefect(self, n, l, j, s=0.5):
+ modifiedRRcoef[5] / ((n - modifiedRRcoef[0]) ** 10)
)
else:
# use \delta_\ell = \delta_g * (4/\ell)**5
# from https://journals.aps.org/pra/abstract/10.1103/PhysRevA.74.062712
defect = self.quantumDefect[0][4][0] * (4 / l) ** 5
n = int(n)
l = int(l)

# Calculate r4 and r6 coefficients from https://journals.aps.org/pra/abstract/10.1103/PhysRevA.9.1087
top_r4 = 3 * pow(n, 2) - (l * (l + 1))
bottom_r4 = (
2 * pow(n, 5) * (l + 1.5) * (l + 1) * (l + 0.5) * l * (l - 0.5)
)
r4 = top_r4 / bottom_r4

top_r6 = (
35 * pow(n, 4)
- 5 * pow(n, 2) * (6 * l * (l + 1) - 5)
+ 3 * (l + 2) * (l + 1) * l * (l - 1)
)
bottom_r6 = (
8
* pow(n, 7)
* (l + 2.5)
* (l + 2)
* (l + 1.5)
* (l + 1)
* (l + 0.5)
* l
* (l - 0.5)
* (l - 1)
* (l - 1.5)
)
r6 = top_r6 / bottom_r6

# Calculate the energy difference from polarisation energy from https://journals.aps.org/pra/abstract/10.1103/PhysRevA.14.1614
defect = (
0.5 * (self.a_d_eff * r4 + self.a_q_eff * r6)
)

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe above is correct based on your numerical results, however, is there some reference where these equations have been originally derived, that we can reference in commend directly in code?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe the original is from J. E. Mayer and M. G. Mayer, Phys. Bev. 43, 605
(1933).

The Freeman and Kleppner Physical Review A 14.5 (1976): 1614 I reference cites this work.

On overview is also given in pgs 340-364 `Spectroscopy_of_alkali_Rydberg_states' in Gallagher's Rydberg atoms (which they themselves cite Mayer and Mayer as the origin)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

return defect

def getRadialMatrixElement(
Expand Down