DOI: 10.7910/dvn/tlkojt
title: Replication Data for: Atomic-optical interferometry in fractured loops: a general solution for Rydberg radio frequency receivers

description: &lt;h1&gt;Simulation Data&lt;/h1&gt;

The &lt;code&gt;.npy&lt;/code&gt; and &lt;code&gt;.npz&lt;/code&gt; files store the results of simulations that are visualized in Figure 3 and Figures 5-12. For all plots we use Matplotlib and Numpy packages. Variable &lt;code&gt;path&lt;/code&gt; is the path to de storage with data.

&lt;h3&gt;Plotting the Fig. 3 - a4p_mode_evol&lt;/h3&gt;
&lt;code&gt;&lt;pre&gt;
import matplotlib.pyplot as plt
import numpy as np

plot_data = np.load(path + r"\a4p_mode_evol.npy")
re01 = np.real(plot_data[:, 1, 0])
im01 = np.imag(plot_data[:, 1, 0])
p11 = plot_data[:, 1, 1]
x = np.linspace(0, 3, p11.shape[0])
fig, axes = plt.subplots(nrows=3, figsize=(6, 5), sharex=True)
axes[0].set_ylabel(r"$\text{Im}{\tilde{\boldsymbol{\rho}}_{10}}$")
axes[0].plot(x, im01, label=r"$\text{Im}{\tilde{\boldsymbol{\rho}}_{01}}$")
axes[1].set_ylabel(r"$\text{Re}{\tilde{\boldsymbol{\rho}}_{10}}$")
axes[1].plot(x, re01, label=r"$\text{Re}{\tilde{\boldsymbol{\rho}}_{01}}$")
axes[2].set_ylabel(r"$\tilde{\boldsymbol{\rho}}_{11}$")
axes[2].plot(x, p11.real, label=r"$\tilde{\boldsymbol{\rho}}_{11}$")
axes[2].set_xlabel(r"$\delta t$ [$2\pi$ rad]")
fig.tight_layout()
plt.show()
&lt;/pre&gt;&lt;/code&gt;


&lt;h3&gt;Plotting the Fig. 5 - mod_transfer_gamma_transit_lo_delta&lt;/h3&gt;
&lt;code&gt;&lt;pre&gt;
import matplotlib.pyplot as plt
import numpy as np

plot_data = np.load(path + r"\mod_transfer_gamma_transit_lo_delta.npy")
fig, ax = plt.subplots(figsize=(6, 6))
omega_seq = np.linspace(0.05, 15, 500)
delta_seq = np.linspace(-7.5, 7.5, 500)
obj = ax.imshow(
 plot_data,
 cmap="YlOrRd",
 interpolation="none",
 extent=[omega_seq[0], omega_seq[-1], delta_seq[0], delta_seq[-1]],
 aspect="equal",
)
ax.set_xlabel("$\Omega_{LO}$ [$2 \pi \cdot$MHz]")
ax.set_ylabel("$\delta$ [$2 \pi \cdot$MHz]")
ax.set_title("$\Omega_{LS} = 0.05 \cdot$$2 \pi \cdot$MHz")
cbar = fig.colorbar(obj, ax=ax, fraction=0.05, pad=0.04)
cbar.set_label(r"$|\alpha_{01}^{(1)}|$")
fig.show()
&lt;/pre&gt;&lt;/code&gt;

&lt;h3&gt;Plotting the Fig. 6 - mod_transfer_gamma_transit_ls_compare_1_2&lt;/h3&gt;

&lt;code&gt;&lt;pre&gt;
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import numpy as np

plot_data_1, plot_data_2 = np.load(
 path + r"\mod_transfer_gamma_transit_ls_compare_1_2.npy"
)
omega_seq = np.linspace(0.05, 15, 500)
delta_seq = np.linspace(-7.5, 7.5, 500)
fig = plt.figure(figsize=(14, 6))
gs = gridspec.GridSpec(1, 3, width_ratios=[1, 1, 0.05], wspace=0)
kwargs = {
 "cmap": "YlOrRd",
 "interpolation": "none",
 "extent": [omega_seq[0], omega_seq[-1], delta_seq[0], delta_seq[-1]],
 "aspect": "equal",
 "vmin": min(np.abs(plot_data_1).min(), np.abs(plot_data_2).min()),
 "vmax": max(np.abs(plot_data_1).max(), np.abs(plot_data_2).max()),
}
ax1 = fig.add_subplot(gs[0])
ax2 = fig.add_subplot(gs[1])

im1 = ax1.imshow(np.abs(plot_data_1), **kwargs)
ax1.set_ylabel("$\delta$ [$2 \pi \cdot$MHz]")
ax1.set_xlabel("$\Omega_{LS}$ [$2 \pi \cdot$MHz]")
ax1.set_title(r"$d = 1$")
im2 = ax2.imshow(np.abs(plot_data_2), **kwargs)
ax2.set_ylabel("$\delta$ [$2 \pi \cdot$MHz]")
ax2.set_xlabel("$\Omega_{LS}$ [$2 \pi \cdot$MHz]")
ax2.set_title(r"$d = 2$")
ax2.get_yaxis().set_tick_params(labelleft=False)
ax2.set_ylabel("")

cbar_ax = fig.add_subplot(gs[2])
cbar = fig.colorbar(im1, cax=cbar_ax, fraction=0.05, pad=0.04)
cbar.set_label(r"$|\alpha_{01}^{(d)}|$")
fig.show()
&lt;/pre&gt;&lt;/code&gt;

&lt;h3&gt;Plotting the Fig. 7 - bandwidth_gamma_transit_ls&lt;/h3&gt;
&lt;code&gt;&lt;pre&gt;
import matplotlib.pyplot as plt
import numpy as np

color0, color1, color2 = ("#FF4500", "#FFB6C1", "#800080")
plot_data_bandwidth = np.load(
 path + r"\bandwidth_gamma_transit_ls_plot_data_bandwidth.npy"
)
plot_data_mod_transfer = np.load(
 path + r"\bandwidth_gamma_transit_ls_plot_data_mod_transfer.npy"
)
fig, ax1 = plt.subplots()
ax1.set_xlabel(r"$\Omega_{LS}~[2\pi \cdot$MHz]")
ax1.set_ylabel(r"Bandwidth [$2\pi \cdot$MHz]")
ax1.plot(*plot_data_bandwidth, color="blue", label="Bandwidth")
ax1.tick_params(axis="y")
move = 0.1
ax1.set_ylim(plot_data_bandwidth[1].min() - move, plot_data_bandwidth[1].max() + move)
ax2 = ax1.twinx()
ax2.set_ylabel(r"$|\alpha_{01}^{(1)}|$")
ax2.plot(
 *plot_data_mod_transfer,
 color=color2,
 label=r"$|\alpha_{01}^{(1)}(\delta = 0)|$",
)
ax2.tick_params(axis="y")
fig.legend(loc="lower left", bbox_to_anchor=(0.17, 0.15))
fig.tight_layout()
&lt;/pre&gt;&lt;/code&gt;

&lt;h3&gt;Plotting the Fig. 8 - calculated detuned smaller peak heights&lt;/h3&gt;
&lt;code&gt;&lt;pre&gt;
import matplotlib.pyplot as plt
import numpy as np

color0, color1, color2 = ("#FF4500", "#FFB6C1", "#800080")
plot_data_bandwidth = np.load(
 path + r"\bandwidth_gamma_transit_lo_plot_data_bandwidth.npy"
)
plot_data_mod_transfer = np.load(
 path + r"\bandwidth_gamma_transit_lo_plot_data_mod_transfer.npy"
)
fig, ax1 = plt.subplots()
ax1.set_xlabel(r"$\Omega_{LO}~[2\pi \cdot$MHz]")
ax1.set_ylabel(r"Bandwidth [$2\pi \cdot$MHz]")
ax1.plot(*plot_data_bandwidth, color="blue", label="Bandwidth")
ax1.tick_params(axis="y")
move = 0.1
ax1.set_ylim(plot_data_bandwidth[1].min() - move, plot_data_bandwidth[1].max() + move)
ax2 = ax1.twinx()
ax2.set_ylabel(r"$|\alpha_{01}^{(1)}|$")
ax2.plot(
 *plot_data_mod_transfer,
 color=color2,
 label=r"$|\alpha_{01}^{(1)}(\delta = 0)|$",
)
ax2.tick_params(axis="y")
fig.legend(loc="lower left", bbox_to_anchor=(0.17, 0.15))
fig.tight_layout()
fig.show()
&lt;/pre&gt;&lt;/code&gt;

&lt;h3&gt;Plotting the Fig. 9 - mod_transfer_cold_lo_delta&lt;/h3&gt;
&lt;code&gt;&lt;pre&gt;
plot_data = np.load(path + r"\mod_transfer_cold_lo_delta.npy")
fig, ax = plt.subplots(figsize=(6, 6))
omega_seq = np.linspace(0.05, 15, 500)
delta_seq = np.linspace(-7.5, 7.5, 500)
obj = ax.imshow(
 plot_data,
 cmap="YlOrRd",
 interpolation="none",
 extent=[omega_seq[0], omega_seq[-1], delta_seq[0], delta_seq[-1]],
 aspect="equal",
)
ax.set_xlabel("$\Omega_{LO}$ [$2 \pi \cdot$MHz]")
ax.set_ylabel("$\delta$ [$2 \pi \cdot$MHz]")
ax.set_title("$\Omega_{LS} = 0.05 \cdot$$2 \pi \cdot$MHz")
cbar = fig.colorbar(obj, ax=ax, fraction=0.05, pad=0.04)
cbar.set_label(r"$|\alpha_{01}^{(1)}|$")
fig.show()
&lt;/pre&gt;&lt;/code&gt;

&lt;h3&gt;Plotting the Fig. 10 - mod_transfer_cold_ls_compare_1_2_3&lt;/h3&gt;
&lt;code&gt;&lt;pre&gt;
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import numpy as np

plot_data_1, plot_data_2, plot_data_3 = np.load(
 path + r"\mod_transfer_cold_ls_compare_1_2_3.npy"
)
fig = plt.figure(figsize=(18, 6))
gs = gridspec.GridSpec(1, 4, width_ratios=[1, 1, 1, 0.05], wspace=0.3)
omega_seq = np.linspace(0.05, 15, 500)
delta_seq = np.linspace(-7.5, 7.5, 500)
kwargs = {
 "cmap": "YlOrRd",
 "interpolation": "none",
 "extent": [omega_seq[0], omega_seq[-1], delta_seq[0], delta_seq[-1]],
 "aspect": "equal",
 "vmin": min(
 np.abs(plot_data_1).min(), np.abs(plot_data_2).min(), np.abs(plot_data_3).min()
 ), # tripple
 "vmax": max(
 np.abs(plot_data_1).max(), np.abs(plot_data_2).max(), np.abs(plot_data_3).max()
 ), # tripple
}
ax1 = fig.add_subplot(gs[0])
ax2 = fig.add_subplot(gs[1])
ax3 = fig.add_subplot(gs[2])


im1 = ax1.imshow(np.abs(plot_data_1), **kwargs)
ax1.set_ylabel("$\delta$ [$2 \pi \cdot$MHz]")
ax1.set_xlabel("$\Omega_{LS}$ [$2 \pi \cdot$MHz]")
ax1.set_title(r"$d = 1$")
im2 = ax2.imshow(np.abs(plot_data_2), **kwargs)
ax2.set_ylabel("$\delta$ [$2 \pi \cdot$MHz]")
ax2.set_xlabel("$\Omega_{LS}$ [$2 \pi \cdot$MHz]")
ax2.set_title(r"$d = 2$")
ax2.get_yaxis().set_tick_params(labelleft=False)
ax2.set_ylabel("")
im3 = ax3.imshow(np.abs(plot_data_3), **kwargs)
ax3.set_ylabel("$\delta$ [$2 \pi \cdot$MHz]")
ax3.set_xlabel("$\Omega_{LS}$ [$2 \pi \cdot$MHz]")
ax3.get_yaxis().set_tick_params(labelleft=False)
ax3.set_ylabel("")
ax3.set_title(r"$d = 3$")

cbar_ax = fig.add_subplot(gs[3])
cbar = fig.colorbar(im1, cax=cbar_ax, fraction=0.05, pad=0.04)
cbar.set_label(r"$|\alpha_{01}^{(d)}|$")
fig.show()
&lt;/pre&gt;&lt;/code&gt;

&lt;h3&gt;Plotting the Fig. 11 - mod_compare_delta_demod&lt;/h3&gt;
&lt;code&gt;&lt;pre&gt;
import matplotlib.pyplot as plt
import numpy as np

plot_data = np.load(path + r"\mod_compare_delta_demod.npy")
omega_seq = np.linspace(0.05, 15, 500)
for m in [1, 2, 3]:
 plt.plot(
 omega_seq,
 plot_data[m - 1, :],
 label=rf"$m = {m}$",
 )
plt.legend()
plt.ylabel(r"$|\tilde{\boldsymbol{\rho}}_{01}^{m}$|")
plt.xlabel("$\Omega_{LS}$ [$2 \pi \cdot$MHz]")
plt.yscale("log")
&lt;/pre&gt;&lt;/code&gt;

&lt;h3&gt;Plotting the Fig. 12 - mode_comparison_lattice&lt;/h3&gt;
&lt;code&gt;&lt;pre&gt;
import numpy as np
import matplotlib.pyplot as plt

data = np.load(path + r"\mode_comparison_lattice.npz")
lst = data.files
plot_data = [data[item] for item in lst]
fig, axes = plt.subplots(2, 2, figsize=(10, 8))
axes = axes.ravel()
full_N_seq = list(range(3, 16, 2))
mode_to_check = [0, 1, 2, 3]
for i, pd in enumerate(plot_data):
 ax = axes[i]
 ax.scatter(full_N_seq[-len(pd) :], pd)
 ax.set_ylabel(
 f"|$\\tilde{{\\boldsymbol{{\\rho}}}}_{{10}}^{{({mode_to_check[i]})}}$|"
 )
 ax.set_xlabel("N")
 ax.set_xticks(np.arange(1, max(full_N_seq) + 1, 2))
 ax.set_title(f"$m$ = {mode_to_check[i]}")
plt.tight_layout()
&lt;/pre&gt;&lt;/code&gt;


This research was funded in whole or in part by National Science Centre, Poland grant No. 2021/43/D/ST2/03114.