This page was generated from the Jupyter notebook compare_z_min_cutoff.ipynb.

Comparison of the z_min values for circular states

[1]:
import matplotlib.pyplot as plt
import numpy as np

import rydstate
[2]:
n_list = list(range(15, 200))

qn_list = []
for n in n_list:
    l = {
        "circular": n - 1,
        "intermediate": (n - 1) // 2,
        "s": 0,
        "p": 1,
        "d": 2,
    }["circular"]
    j = l + 0.5
    qn_list.append((n, l, j))
[3]:
z_i_dict = {"hydrogen": [], "classical": [], "rydstate cutoff": [], "rydstate z_min": []}
for qn in qn_list:
    print(f"n={qn[0]}", end="\r")
    state = rydstate.RydbergStateSQDTAlkali("Rb", n=qn[0], l=qn[1], j=qn[2])

    hydrogen_z_i = state.radial.potential.calc_hydrogen_turning_point_z(state.n)
    z_i_dict["hydrogen"].append(hydrogen_z_i)
    z_i = state.radial.potential.calc_turning_point_z(state.get_radial_energy("a.u."))
    z_i_dict["classical"].append(z_i)

    state.radial.integrate_wavefunction()
    cutoff = state.radial.z_list[np.argwhere(state.radial.w_list != 0)[0][0]]
    z_i_dict["rydstate cutoff"].append(cutoff)
    z_i_dict["rydstate z_min"].append(state.radial.z_list[0])
n=199
[4]:
fig, ax = plt.subplots()

labels = {
    "classical": "Turning point Classical $z(V=E)$",
    "hydrogen": r"Turning point Hydrogen $z(V_{Hydrogen}=E_{Hydrogen})$",
}
linestyles = {
    "classical": "--",
}

for i, (key, values) in enumerate(z_i_dict.items()):
    ax.plot(n_list, values, ls=linestyles.get(key, "-"), color=f"C{i}", label=labels.get(key, key))

ax.set_xlabel("n")
ax.set_ylabel("z values")

ax.legend()
plt.show()
../../_images/examples_comparisons_compare_z_min_cutoff_4_0.png