monster commit. sorry

This commit is contained in:
Valentin Boettcher 2022-10-28 13:46:07 +02:00
parent 99f3af7223
commit 9d76be7f05
No known key found for this signature in database
GPG key ID: E034E12B7AF56ACE
91 changed files with 5900 additions and 419799 deletions

View file

@ -476,6 +476,7 @@ See cite:Binder2018.
- spectral separation is important
- detuning is important -> only then non-markov effects
**** TODO cite:Uzdin2015Sep repro of cite:Klatzow2019Mar
- transient effects missing
- deviations for long modulation periods, or large actions
**** TODO stroke based on coupling modulation, my energy shovel

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 349 KiB

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 127 KiB

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 1.2 MiB

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 162 KiB

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 114 KiB

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 239 KiB

View file

@ -71,7 +71,7 @@ k_models = [
for k in np.arange(2, 12, 2)
][0:3]
aux.integrate_multi(k_models, 450_000)
aux.integrate_multi(k_models, 1)
f, ax = plot_interaction_consistency(
k_models,

View file

@ -0,0 +1,2 @@
[FFT]
use_normalized_diff = True

View file

@ -1,2 +1,2 @@
use_flake
use_flake --impure
eval "$shellHook"

View file

@ -9,7 +9,7 @@ import plot_utils as pu
import ray
ray.shutdown()
ray.init()
ray.init(address="auto")
from hops.util.logging_setup import logging_setup
import logging
@ -23,10 +23,11 @@ import pathlib
Δ = 5
for ω_c in ωs:
goal = .4
final, strobe_t, strobe_indices = es.optimize_for_interaction_energy(
goal,
periods_for_optimization=4,
samples_for_optimization=5,
periods_for_optimization=10,
samples_for_optimization=500,
Δ=Δ,
periods=50,
modulate_system=False,
@ -38,23 +39,20 @@ for ω_c in ωs:
)
ω_models.append(final.copy())
ω_models_display = [ω_models[0]] + ω_models[4::2]
ω_models[5].δ
aux.integrate_multi(ω_models, 10_000)
for model, data in aux.model_data_iterator(ω_models):
model.interaction_energy(data)
model.total_energy_from_power(data)
aux.integrate_multi(ω_models, 1, data_path=".data_taurus")
print(es.models_table(ω_models))
plt.plot(ωs, [model.full_thermal_bcf(0).real * model.bcf_scale for model in ω_models])
# plt.plot(ωs, [model.bcf_scale for model in ω_models])
for model in ω_models[::4]:
for model in ω_models_display:
plt.plot(model.t, abs(model.bcf_scale * model.full_thermal_bcf(model.t)), label=fr"$\omega_c={model.ω_c:.2f}$")
plt.xlim(0,10)
plt.xlim(-.1,10)
plt.legend()
for model in ω_models:
@ -63,9 +61,9 @@ for model in ω_models:
plt.xlim(-.1, 6)
ωs = np.linspace(.01, 30, 1000)
for model in ω_models[::4]:
plt.plot(ωs, model.bcf_scale * model.spectral_density(ωs), linewidth=1, label=fr"$\omega_c={model.ω_c:.2f}$")
plt.legend()
for model in ω_models_display:
plt.plot(ωs, model.bcf_scale * model.spectral_density(ωs), linewidth=.8, label=fr"$\omega_c={model.ω_c:.2f}$")
plt.legend(fontsize="x-small")
plt.xlabel(r"$\omega$")
plt.ylabel(r"$J(\omega)$")
@ -78,23 +76,22 @@ plt.plot(ωs, bath_scales)
fig, ax = plt.subplots()
ax.axhline(0, color="gray")
for model, data in aux.model_data_iterator(ω_models):
for model, data in aux.model_data_iterator(ω_models_display, data_path=".data_taurus"):
_, _, bar = pu.plot_with_σ(
model.t,
model.interaction_energy(data).for_bath(0),
ax=ax,
label=fr"$\omega_c={model.ω_c:.2f}$",
)
ax.set_xlim(0, model.t[strobe_indices][3])
ax.set_xlim(0, model.t[strobe_indices][10])
ax.set_ylabel(r"$\langle H_\mathrm{I}\rangle$")
ax.set_xlabel(r"$\tau$")
ax.legend()
#fs.export_fig("omega_interactions", fig, tikz=False, x_scaling=.49, y_scaling=.3)
fs.export_fig("omega_interactions", fig, tikz=False, x_scaling=.49, y_scaling=.3)
fig, ax = plt.subplots()
import scipy
for model, data in aux.model_data_iterator(ω_models):
for model, data in aux.model_data_iterator(ω_models_display, data_path=".data_taurus"):
energy = model.total_energy_from_power(data) * (1 / es.ergo(model.T))
_, _, bar = pu.plot_with_σ(
model.t,
@ -131,17 +128,17 @@ for model, data in aux.model_data_iterator(ω_models):
e_s = energy.value[strobe_indices]
ind_min = e_s.argmin()
ind_min = e_s[:20].argmin()
t_min = ts[ind_min]
e_min = e_s[ind_min]
ax.axvline(
t_min,
color=bar.lines[0].get_color(),
ymin=0,
ymax=abs((e_min + 0.41) / (0.45 + 0.1)),
linestyle="dotted",
)
# ax.axvline(
# t_min,
# color=bar.lines[0].get_color(),
# ymin=0,
# ymax=abs((e_min + 0.41) / (0.45 + 0.1)),
# linestyle="dotted",
# )
ax.axhline(
e_min,
color=bar.lines[0].get_color(),
@ -158,14 +155,14 @@ ax.set_ylabel(r"$(\langle H\rangle_\tau -\langle H\rangle_0)/\mathcal{W}_\mathrm
ax.set_xlim(0, model.t.max())
ax.set_ylim(-0.41, 0.1)
ax.legend()
fs.export_fig("omegas_total", tikz=False, y_scaling=0.4)
fs.export_fig("omegas_total", tikz=False, y_scaling=0.5)
import scipy
opt_powers = []
opt_energies = []
memories = []
for model, data in aux.model_data_iterator(ω_models):
for model, data in aux.model_data_iterator(ω_models[:1] + ω_models[2:], data_path=".data_taurus"):
energy = model.total_energy_from_power(data)
ts = model.t[strobe_indices]
e_s = energy.value[strobe_indices]
@ -213,7 +210,7 @@ ax2.set_ylabel(
# smooth_mem = np.linspace(memories[0], memories[-1], 1000)
# ax.plot(smooth_mem, f(smooth_mem, *opt)) #
plt.axvline(1 * np.pi * 2/Δ, color="gray", linestyle="dotted")
fs.export_fig("omega_energies_and_powers", fig, tikz=False, x_scaling=.5, y_scaling=.35)
fs.export_fig("omega_energies_and_powers", fig, tikz=False, y_scaling=.4)
fig, ax = plt.subplots()
for model, data in aux.model_data_iterator(ω_models):

View file

@ -0,0 +1,51 @@
import energy_shovel as es
import numpy as np
import qutip as qt
import matplotlib.pyplot as plt
import utilities as ut
import figsaver as fs
import hiro_models.model_auxiliary as aux
import plot_utils as pu
import ray
ray.shutdown()
ray.init()
from hops.util.logging_setup import logging_setup
import logging
logging_setup(logging.INFO, show_stocproc=False)
import scipy
import pathlib
ωs = np.linspace(.5, 2.1, 15)
ω_models = []
Δ = 5
for ω_c in ωs:
goal = .4
final, strobe_t, strobe_indices = es.optimize_for_interaction_energy(
goal,
periods_for_optimization=4,
samples_for_optimization=5,
Δ=Δ,
periods=50,
modulate_system=False,
δ=.1,
ω_c=ω_c,
k_max = 5,
therm_method="fft"
)
ω_models.append(final.copy())
ω_models[5].δ
aux.integrate_multi(ω_models, 10_000)
for model, data in aux.model_data_iterator(ω_models):
model.interaction_energy(data)
model.total_energy_from_power(data)
print(es.models_table(ω_models))

View file

@ -0,0 +1,87 @@
import energy_shovel as es
import numpy as np
import qutip as qt
import matplotlib.pyplot as plt
import utilities as ut
import figsaver as fs
import hiro_models.model_auxiliary as aux
import plot_utils as pu
import ray
ray.shutdown()
ray.init(address="auto")
from hops.util.logging_setup import logging_setup
import logging
logging_setup(logging.INFO, show_stocproc=False)
import scipy
import pathlib
ω_models = []
Δ = 5
goal = .4
model, strobe_t, strobe_indices = es.optimize_for_interaction_energy(
goal,
periods_for_optimization=10,
samples_for_optimization=500,
Δ=Δ,
periods=100,
modulate_system=False,
δ=.1,
ω_c=.5,
k_max = 6,
therm_method="fft"
)
aux.integrate(model, 1, data_path=".data_taurus")
fig, ax = plt.subplots()
import scipy
with aux.get_data(model, data_path=".data_taurus") as data:
energy = model.total_energy_from_power(data) * (1 / es.ergo(model.T))
pu.plot_with_σ(
model.t,
energy,
ax=ax,
# label=fr"$ω_c={model.ω_c:.2f}$",
# strobe_frequency=Δ,
)
# τ_off = 1 / (model.bcf_coefficients()[1][0].real.min())
# # a0 = abs(model.bcf(0))
# # τ_off = scipy.optimize.fsolve(lambda τ: abs(model.bcf(τ)) - (a0/300), 10)
# ax.axvline(
# τ_off,
# color=bar.lines[0].get_color(),
# linestyle="dotted",
# linewidth=1,
# zorder=-1,
# )
ts = model.t[strobe_indices]
e_s = energy.value[strobe_indices]
ind_min = e_s[:20].argmin()
t_min = ts[ind_min]
e_min = e_s[ind_min]
# ax.axvline(
# t_min,
# color=bar.lines[0].get_color(),
# ymin=0,
# ymax=abs((e_min + 0.41) / (0.45 + 0.1)),
# linestyle="dotted",
# )
ax.set_xlabel(r"$\tau$")
ax.set_ylabel(r"$(\langle H\rangle_\tau -\langle H\rangle_0)/\mathcal{W}_\mathrm{max}$")
# ax.axhline(, color="grey", linewidth=1, linestyle="dashed")
# ax.plot(model.t, model.L.operator_norm(model.t), linewidth=1)
ax.set_xlim(0,120)
ax.legend()
fs.export_fig("total_for_steady", tikz=False, y_scaling=0.5)

View file

@ -0,0 +1,83 @@
import energy_shovel as es
import numpy as np
import qutip as qt
import matplotlib.pyplot as plt
import utilities as ut
import figsaver as fs
import hiro_models.model_auxiliary as aux
import plot_utils as pu
import ray
ray.shutdown()
ray.init(address="auto")
from hops.util.logging_setup import logging_setup
import logging
logging_setup(logging.INFO, show_stocproc=False)
import scipy
import pathlib
ωs = np.linspace(.5, 2.5, 6)
ω_models = []
Δ = 5
for ω_c in ωs:
proto, strobe_t, strobe_indices = es.energy_shovel(
Δ,
periods=3,
modulate_system=False,
δ=0.01,
ω_c = ω_c,
)
proto.k_max = 5
proto.therm_method = "fft"
goal = 0.01
def cost(δ):
proto.δ = δ
aux.integrate(proto, 200)
with aux.get_data(proto) as data:
inter = proto.interaction_energy(data)
return (abs(inter.value).max() - goal) ** 2
cache_path = pathlib.Path(f"./.cache/{proto.hexhash}_delta_{goal}.npy")
if cache_path.exists():
with cache_path.open("rb") as cache:
δ = np.load(cache, allow_pickle=True)
else:
δ = scipy.optimize.minimize_scalar(cost, bounds=(.1, 3), method="bounded", options=dict(xatol=1e-2, disp=3)).x
cache_path.parent.mkdir(parents=True, exist_ok=True)
with cache_path.open("wb") as cache:
np.save(cache, δ)
final, strobe_t, strobe_indices = es.energy_shovel(
Δ,
periods=40,
modulate_system=False,
δ=δ,
ω_c=ω_c
)
final.k_max = 5
final.therm_method = "fft"
ω_models.append(final.copy())
for model in ω_models:
print(model.δ)
ωs = np.linspace(.01, 30, 1000)
for model in ω_models:
plt.plot(ωs, model.bcf_scale * model.spectral_density(ωs), linewidth=1, label=fr"$\omega_c={model.ω_c:.2f}$")
plt.legend()
plt.xlabel(r"$\omega$")
plt.ylabel(r"Spectral Density")
fs.export_fig("omega_sd_weak", tikz=False, x_scaling=.49, y_scaling=.4)
for model in ω_models:
plt.plot(model.t, model.bcf_scale * model.full_thermal_bcf(model.t).real, label=model.ω_c)
plt.legend()

View file

@ -72,7 +72,7 @@ def energy_shovel(
)
model = QubitModel(**(options | kwargs))
strobe_t, strobe_indices = ut.strobe_times(model.t, Δ)
strobe_t, strobe_indices = ut.strobe_times(model.t, Δ, 1e-2)
print(fr"\(λ={γ}, Δ={Δ}, T={model.T}\)")
return model, strobe_t, strobe_indices
@ -83,26 +83,29 @@ def ergo(T, ω=1):
return T * np.log(1 + np.exp(-ω / T))
def models_table(models, **kwargs):
def models_table(models, data_path=".data", **kwargs):
"""Print a latex table that shows all relevant model parameters."""
table = []
headers = []
def make_row(title, accessor):
row = [title]
for model, data in aux.model_data_iterator(models):
row = []
headers.append(title)
for model, data in aux.model_data_iterator(models, data_path=data_path):
row += [f"${accessor(model, data):.2f}$"]
return [row]
table += make_row(r"$ω_c$", lambda m, d: m.ω_c)
table += make_row(r"$ω_s$", lambda m, d: m.ω_s)
table += make_row(r"$α(0)$", lambda m, d: m.bcf_scale * m.full_thermal_bcf(0).real)
table += make_row(r"$T$", lambda m, d: m.T)
table += make_row(r"$N$", lambda m, d: d.samples)
table += make_row(r"$k_{\mathrm{max}}$", lambda m, d: m.k_max)
table += make_row(r"BCF Terms", lambda m, d: m.bcf_terms)
return tabulate(table, **(dict(tablefmt="latex_raw") | kwargs))
return tabulate(np.array(table).T, headers, **(dict(tablefmt="latex_raw") | kwargs))
def energy_friction_plot(models, strobe_frequency, strobe_indices):

View file

@ -1,957 +0,0 @@
%% Creator: Matplotlib, PGF backend
%%
%% To include the figure in your LaTeX document, write
%% \input{<filename>.pgf}
%%
%% Make sure the required packages are loaded in your preamble
%% \usepackage{pgf}
%%
%% Also ensure that all the required font packages are loaded; for instance,
%% the lmodern package is sometimes necessary when using math font.
%% \usepackage{lmodern}
%%
%% Figures using additional raster images can only be included by \input if
%% they are in the same directory as the main LaTeX file. For loading figures
%% from other directories you can use the `import` package
%% \usepackage{import}
%%
%% and then include the figures with
%% \import{<path to file>}{<filename>.pgf}
%%
%% Matplotlib used the following preamble
%% \usepackage{fontspec}
%%
\begingroup%
\makeatletter%
\begin{pgfpicture}%
\pgfpathrectangle{\pgfpointorigin}{\pgfqpoint{6.489508in}{4.010736in}}%
\pgfusepath{use as bounding box, clip}%
\begin{pgfscope}%
\pgfsetbuttcap%
\pgfsetmiterjoin%
\definecolor{currentfill}{rgb}{1.000000,1.000000,1.000000}%
\pgfsetfillcolor{currentfill}%
\pgfsetlinewidth{0.000000pt}%
\definecolor{currentstroke}{rgb}{0.500000,0.500000,0.500000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}%
\pgfpathlineto{\pgfqpoint{6.489508in}{0.000000in}}%
\pgfpathlineto{\pgfqpoint{6.489508in}{4.010736in}}%
\pgfpathlineto{\pgfqpoint{0.000000in}{4.010736in}}%
\pgfpathlineto{\pgfqpoint{0.000000in}{0.000000in}}%
\pgfpathclose%
\pgfusepath{fill}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetbuttcap%
\pgfsetmiterjoin%
\definecolor{currentfill}{rgb}{0.898039,0.898039,0.898039}%
\pgfsetfillcolor{currentfill}%
\pgfsetlinewidth{0.000000pt}%
\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetstrokeopacity{0.000000}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{1.302603in}{0.856422in}}%
\pgfpathlineto{\pgfqpoint{6.230308in}{0.856422in}}%
\pgfpathlineto{\pgfqpoint{6.230308in}{3.751536in}}%
\pgfpathlineto{\pgfqpoint{1.302603in}{3.751536in}}%
\pgfpathlineto{\pgfqpoint{1.302603in}{0.856422in}}%
\pgfpathclose%
\pgfusepath{fill}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetrectcap%
\pgfsetroundjoin%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{2.024337in}{0.856422in}}%
\pgfpathlineto{\pgfqpoint{2.024337in}{3.751536in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetfillcolor{currentfill}%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{%
\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}%
\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}%
\pgfusepath{stroke,fill}%
}%
\begin{pgfscope}%
\pgfsys@transformshift{2.024337in}{0.856422in}%
\pgfsys@useobject{currentmarker}{}%
\end{pgfscope}%
\end{pgfscope}%
\begin{pgfscope}%
\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{textcolor}%
\pgfsetfillcolor{textcolor}%
\pgftext[x=2.024337in,y=0.759200in,,top]{\color{textcolor}\sffamily\fontsize{14.400000}{17.280000}\selectfont 2}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetrectcap%
\pgfsetroundjoin%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{3.019833in}{0.856422in}}%
\pgfpathlineto{\pgfqpoint{3.019833in}{3.751536in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetfillcolor{currentfill}%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{%
\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}%
\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}%
\pgfusepath{stroke,fill}%
}%
\begin{pgfscope}%
\pgfsys@transformshift{3.019833in}{0.856422in}%
\pgfsys@useobject{currentmarker}{}%
\end{pgfscope}%
\end{pgfscope}%
\begin{pgfscope}%
\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{textcolor}%
\pgfsetfillcolor{textcolor}%
\pgftext[x=3.019833in,y=0.759200in,,top]{\color{textcolor}\sffamily\fontsize{14.400000}{17.280000}\selectfont 4}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetrectcap%
\pgfsetroundjoin%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{4.015329in}{0.856422in}}%
\pgfpathlineto{\pgfqpoint{4.015329in}{3.751536in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetfillcolor{currentfill}%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{%
\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}%
\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}%
\pgfusepath{stroke,fill}%
}%
\begin{pgfscope}%
\pgfsys@transformshift{4.015329in}{0.856422in}%
\pgfsys@useobject{currentmarker}{}%
\end{pgfscope}%
\end{pgfscope}%
\begin{pgfscope}%
\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{textcolor}%
\pgfsetfillcolor{textcolor}%
\pgftext[x=4.015329in,y=0.759200in,,top]{\color{textcolor}\sffamily\fontsize{14.400000}{17.280000}\selectfont 6}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetrectcap%
\pgfsetroundjoin%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{5.010825in}{0.856422in}}%
\pgfpathlineto{\pgfqpoint{5.010825in}{3.751536in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetfillcolor{currentfill}%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{%
\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}%
\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}%
\pgfusepath{stroke,fill}%
}%
\begin{pgfscope}%
\pgfsys@transformshift{5.010825in}{0.856422in}%
\pgfsys@useobject{currentmarker}{}%
\end{pgfscope}%
\end{pgfscope}%
\begin{pgfscope}%
\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{textcolor}%
\pgfsetfillcolor{textcolor}%
\pgftext[x=5.010825in,y=0.759200in,,top]{\color{textcolor}\sffamily\fontsize{14.400000}{17.280000}\selectfont 8}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetrectcap%
\pgfsetroundjoin%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{6.006321in}{0.856422in}}%
\pgfpathlineto{\pgfqpoint{6.006321in}{3.751536in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetfillcolor{currentfill}%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfsys@defobject{currentmarker}{\pgfqpoint{0.000000in}{-0.048611in}}{\pgfqpoint{0.000000in}{0.000000in}}{%
\pgfpathmoveto{\pgfqpoint{0.000000in}{0.000000in}}%
\pgfpathlineto{\pgfqpoint{0.000000in}{-0.048611in}}%
\pgfusepath{stroke,fill}%
}%
\begin{pgfscope}%
\pgfsys@transformshift{6.006321in}{0.856422in}%
\pgfsys@useobject{currentmarker}{}%
\end{pgfscope}%
\end{pgfscope}%
\begin{pgfscope}%
\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{textcolor}%
\pgfsetfillcolor{textcolor}%
\pgftext[x=6.006321in,y=0.759200in,,top]{\color{textcolor}\sffamily\fontsize{14.400000}{17.280000}\selectfont 10}%
\end{pgfscope}%
\begin{pgfscope}%
\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{textcolor}%
\pgfsetfillcolor{textcolor}%
\pgftext[x=3.766455in,y=0.526045in,,top]{\color{textcolor}\sffamily\fontsize{17.280000}{20.736000}\selectfont \(\displaystyle \Delta\)}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetrectcap%
\pgfsetroundjoin%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{1.302603in}{1.127617in}}%
\pgfpathlineto{\pgfqpoint{6.230308in}{1.127617in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetfillcolor{currentfill}%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{%
\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}%
\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}%
\pgfusepath{stroke,fill}%
}%
\begin{pgfscope}%
\pgfsys@transformshift{1.302603in}{1.127617in}%
\pgfsys@useobject{currentmarker}{}%
\end{pgfscope}%
\end{pgfscope}%
\begin{pgfscope}%
\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{textcolor}%
\pgfsetfillcolor{textcolor}%
\pgftext[x=0.701425in, y=1.058217in, left, base]{\color{textcolor}\sffamily\fontsize{14.400000}{17.280000}\selectfont \ensuremath{-}0.07}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetrectcap%
\pgfsetroundjoin%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{1.302603in}{1.544072in}}%
\pgfpathlineto{\pgfqpoint{6.230308in}{1.544072in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetfillcolor{currentfill}%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{%
\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}%
\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}%
\pgfusepath{stroke,fill}%
}%
\begin{pgfscope}%
\pgfsys@transformshift{1.302603in}{1.544072in}%
\pgfsys@useobject{currentmarker}{}%
\end{pgfscope}%
\end{pgfscope}%
\begin{pgfscope}%
\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{textcolor}%
\pgfsetfillcolor{textcolor}%
\pgftext[x=0.701425in, y=1.474672in, left, base]{\color{textcolor}\sffamily\fontsize{14.400000}{17.280000}\selectfont \ensuremath{-}0.06}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetrectcap%
\pgfsetroundjoin%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{1.302603in}{1.960527in}}%
\pgfpathlineto{\pgfqpoint{6.230308in}{1.960527in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetfillcolor{currentfill}%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{%
\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}%
\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}%
\pgfusepath{stroke,fill}%
}%
\begin{pgfscope}%
\pgfsys@transformshift{1.302603in}{1.960527in}%
\pgfsys@useobject{currentmarker}{}%
\end{pgfscope}%
\end{pgfscope}%
\begin{pgfscope}%
\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{textcolor}%
\pgfsetfillcolor{textcolor}%
\pgftext[x=0.701425in, y=1.891127in, left, base]{\color{textcolor}\sffamily\fontsize{14.400000}{17.280000}\selectfont \ensuremath{-}0.05}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetrectcap%
\pgfsetroundjoin%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{1.302603in}{2.376982in}}%
\pgfpathlineto{\pgfqpoint{6.230308in}{2.376982in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetfillcolor{currentfill}%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{%
\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}%
\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}%
\pgfusepath{stroke,fill}%
}%
\begin{pgfscope}%
\pgfsys@transformshift{1.302603in}{2.376982in}%
\pgfsys@useobject{currentmarker}{}%
\end{pgfscope}%
\end{pgfscope}%
\begin{pgfscope}%
\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{textcolor}%
\pgfsetfillcolor{textcolor}%
\pgftext[x=0.701425in, y=2.307582in, left, base]{\color{textcolor}\sffamily\fontsize{14.400000}{17.280000}\selectfont \ensuremath{-}0.04}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetrectcap%
\pgfsetroundjoin%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{1.302603in}{2.793437in}}%
\pgfpathlineto{\pgfqpoint{6.230308in}{2.793437in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetfillcolor{currentfill}%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{%
\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}%
\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}%
\pgfusepath{stroke,fill}%
}%
\begin{pgfscope}%
\pgfsys@transformshift{1.302603in}{2.793437in}%
\pgfsys@useobject{currentmarker}{}%
\end{pgfscope}%
\end{pgfscope}%
\begin{pgfscope}%
\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{textcolor}%
\pgfsetfillcolor{textcolor}%
\pgftext[x=0.701425in, y=2.724038in, left, base]{\color{textcolor}\sffamily\fontsize{14.400000}{17.280000}\selectfont \ensuremath{-}0.03}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetrectcap%
\pgfsetroundjoin%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{1.302603in}{3.209892in}}%
\pgfpathlineto{\pgfqpoint{6.230308in}{3.209892in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetfillcolor{currentfill}%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{%
\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}%
\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}%
\pgfusepath{stroke,fill}%
}%
\begin{pgfscope}%
\pgfsys@transformshift{1.302603in}{3.209892in}%
\pgfsys@useobject{currentmarker}{}%
\end{pgfscope}%
\end{pgfscope}%
\begin{pgfscope}%
\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{textcolor}%
\pgfsetfillcolor{textcolor}%
\pgftext[x=0.701425in, y=3.140493in, left, base]{\color{textcolor}\sffamily\fontsize{14.400000}{17.280000}\selectfont \ensuremath{-}0.02}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetrectcap%
\pgfsetroundjoin%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{1.302603in}{3.626348in}}%
\pgfpathlineto{\pgfqpoint{6.230308in}{3.626348in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\definecolor{currentfill}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetfillcolor{currentfill}%
\pgfsetlinewidth{0.803000pt}%
\definecolor{currentstroke}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfsys@defobject{currentmarker}{\pgfqpoint{-0.048611in}{0.000000in}}{\pgfqpoint{-0.000000in}{0.000000in}}{%
\pgfpathmoveto{\pgfqpoint{-0.000000in}{0.000000in}}%
\pgfpathlineto{\pgfqpoint{-0.048611in}{0.000000in}}%
\pgfusepath{stroke,fill}%
}%
\begin{pgfscope}%
\pgfsys@transformshift{1.302603in}{3.626348in}%
\pgfsys@useobject{currentmarker}{}%
\end{pgfscope}%
\end{pgfscope}%
\begin{pgfscope}%
\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{textcolor}%
\pgfsetfillcolor{textcolor}%
\pgftext[x=0.701425in, y=3.556948in, left, base]{\color{textcolor}\sffamily\fontsize{14.400000}{17.280000}\selectfont \ensuremath{-}0.01}%
\end{pgfscope}%
\begin{pgfscope}%
\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{textcolor}%
\pgfsetfillcolor{textcolor}%
\pgftext[x=0.645869in,y=2.303979in,,bottom,rotate=90.000000]{\color{textcolor}\sffamily\fontsize{17.280000}{20.736000}\selectfont \(\displaystyle P_\mathrm{max}\)}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.886275,0.290196,0.200000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.886275,0.290196,0.200000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{2.024337in}{2.776637in}}%
\pgfpathlineto{\pgfqpoint{2.024337in}{2.792545in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.886275,0.290196,0.200000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{2.522085in}{2.110818in}}%
\pgfpathlineto{\pgfqpoint{2.522085in}{2.129971in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.886275,0.290196,0.200000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{3.019833in}{1.576791in}}%
\pgfpathlineto{\pgfqpoint{3.019833in}{1.598600in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.886275,0.290196,0.200000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{3.517581in}{1.142684in}}%
\pgfpathlineto{\pgfqpoint{3.517581in}{1.166123in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.886275,0.290196,0.200000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{4.015329in}{0.988018in}}%
\pgfpathlineto{\pgfqpoint{4.015329in}{1.012495in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.886275,0.290196,0.200000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{4.513077in}{1.201694in}}%
\pgfpathlineto{\pgfqpoint{4.513077in}{1.224657in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.886275,0.290196,0.200000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{5.010825in}{1.594535in}}%
\pgfpathlineto{\pgfqpoint{5.010825in}{1.616935in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.886275,0.290196,0.200000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{5.508573in}{1.697450in}}%
\pgfpathlineto{\pgfqpoint{5.508573in}{1.719391in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.886275,0.290196,0.200000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{6.006321in}{2.272752in}}%
\pgfpathlineto{\pgfqpoint{6.006321in}{2.293008in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.203922,0.541176,0.741176}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{1.526589in}{3.611429in}}%
\pgfpathlineto{\pgfqpoint{1.526589in}{3.619940in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.203922,0.541176,0.741176}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{2.024337in}{2.967248in}}%
\pgfpathlineto{\pgfqpoint{2.024337in}{2.976721in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.203922,0.541176,0.741176}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{2.522085in}{2.338267in}}%
\pgfpathlineto{\pgfqpoint{2.522085in}{2.350608in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.203922,0.541176,0.741176}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{3.019833in}{2.105453in}}%
\pgfpathlineto{\pgfqpoint{3.019833in}{2.118942in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.203922,0.541176,0.741176}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{3.517581in}{2.008872in}}%
\pgfpathlineto{\pgfqpoint{3.517581in}{2.022695in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.203922,0.541176,0.741176}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{4.015329in}{2.090042in}}%
\pgfpathlineto{\pgfqpoint{4.015329in}{2.103832in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.203922,0.541176,0.741176}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{4.513077in}{2.270940in}}%
\pgfpathlineto{\pgfqpoint{4.513077in}{2.283695in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.203922,0.541176,0.741176}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{5.010825in}{2.547772in}}%
\pgfpathlineto{\pgfqpoint{5.010825in}{2.559888in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.203922,0.541176,0.741176}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{5.508573in}{2.634206in}}%
\pgfpathlineto{\pgfqpoint{5.508573in}{2.645966in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.203922,0.541176,0.741176}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{6.006321in}{2.974247in}}%
\pgfpathlineto{\pgfqpoint{6.006321in}{2.984972in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetrectcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.886275,0.290196,0.200000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{2.024337in}{2.784591in}}%
\pgfpathlineto{\pgfqpoint{2.522085in}{2.120394in}}%
\pgfpathlineto{\pgfqpoint{3.019833in}{1.587696in}}%
\pgfpathlineto{\pgfqpoint{3.517581in}{1.154404in}}%
\pgfpathlineto{\pgfqpoint{4.015329in}{1.000257in}}%
\pgfpathlineto{\pgfqpoint{4.513077in}{1.213175in}}%
\pgfpathlineto{\pgfqpoint{5.010825in}{1.605735in}}%
\pgfpathlineto{\pgfqpoint{5.508573in}{1.708420in}}%
\pgfpathlineto{\pgfqpoint{6.006321in}{2.282880in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfpathrectangle{\pgfqpoint{1.302603in}{0.856422in}}{\pgfqpoint{4.927705in}{2.895114in}}%
\pgfusepath{clip}%
\pgfsetrectcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.203922,0.541176,0.741176}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{1.526589in}{3.615685in}}%
\pgfpathlineto{\pgfqpoint{2.024337in}{2.971985in}}%
\pgfpathlineto{\pgfqpoint{2.522085in}{2.344437in}}%
\pgfpathlineto{\pgfqpoint{3.019833in}{2.112197in}}%
\pgfpathlineto{\pgfqpoint{3.517581in}{2.015784in}}%
\pgfpathlineto{\pgfqpoint{4.015329in}{2.096937in}}%
\pgfpathlineto{\pgfqpoint{4.513077in}{2.277317in}}%
\pgfpathlineto{\pgfqpoint{5.010825in}{2.553830in}}%
\pgfpathlineto{\pgfqpoint{5.508573in}{2.640086in}}%
\pgfpathlineto{\pgfqpoint{6.006321in}{2.979610in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetrectcap%
\pgfsetmiterjoin%
\pgfsetlinewidth{1.003750pt}%
\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{1.302603in}{0.856422in}}%
\pgfpathlineto{\pgfqpoint{1.302603in}{3.751536in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetrectcap%
\pgfsetmiterjoin%
\pgfsetlinewidth{1.003750pt}%
\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{6.230308in}{0.856422in}}%
\pgfpathlineto{\pgfqpoint{6.230308in}{3.751536in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetrectcap%
\pgfsetmiterjoin%
\pgfsetlinewidth{1.003750pt}%
\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{1.302603in}{0.856422in}}%
\pgfpathlineto{\pgfqpoint{6.230308in}{0.856422in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetrectcap%
\pgfsetmiterjoin%
\pgfsetlinewidth{1.003750pt}%
\definecolor{currentstroke}{rgb}{1.000000,1.000000,1.000000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{1.302603in}{3.751536in}}%
\pgfpathlineto{\pgfqpoint{6.230308in}{3.751536in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetbuttcap%
\pgfsetmiterjoin%
\definecolor{currentfill}{rgb}{0.898039,0.898039,0.898039}%
\pgfsetfillcolor{currentfill}%
\pgfsetfillopacity{0.800000}%
\pgfsetlinewidth{0.501875pt}%
\definecolor{currentstroke}{rgb}{0.800000,0.800000,0.800000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetstrokeopacity{0.800000}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{5.043754in}{3.223759in}}%
\pgfpathlineto{\pgfqpoint{6.133086in}{3.223759in}}%
\pgfpathquadraticcurveto{\pgfqpoint{6.160863in}{3.223759in}}{\pgfqpoint{6.160863in}{3.251536in}}%
\pgfpathlineto{\pgfqpoint{6.160863in}{3.654314in}}%
\pgfpathquadraticcurveto{\pgfqpoint{6.160863in}{3.682092in}}{\pgfqpoint{6.133086in}{3.682092in}}%
\pgfpathlineto{\pgfqpoint{5.043754in}{3.682092in}}%
\pgfpathquadraticcurveto{\pgfqpoint{5.015976in}{3.682092in}}{\pgfqpoint{5.015976in}{3.654314in}}%
\pgfpathlineto{\pgfqpoint{5.015976in}{3.251536in}}%
\pgfpathquadraticcurveto{\pgfqpoint{5.015976in}{3.223759in}}{\pgfqpoint{5.043754in}{3.223759in}}%
\pgfpathlineto{\pgfqpoint{5.043754in}{3.223759in}}%
\pgfpathclose%
\pgfusepath{stroke,fill}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.886275,0.290196,0.200000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{5.210421in}{3.501536in}}%
\pgfpathlineto{\pgfqpoint{5.210421in}{3.640425in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetrectcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.886275,0.290196,0.200000}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{5.071532in}{3.570981in}}%
\pgfpathlineto{\pgfqpoint{5.349310in}{3.570981in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{textcolor}%
\pgfsetfillcolor{textcolor}%
\pgftext[x=5.460421in,y=3.522370in,left,base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle \alpha(0)\) = 1}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetbuttcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.203922,0.541176,0.741176}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{5.210421in}{3.293203in}}%
\pgfpathlineto{\pgfqpoint{5.210421in}{3.432092in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\pgfsetrectcap%
\pgfsetroundjoin%
\pgfsetlinewidth{1.505625pt}%
\definecolor{currentstroke}{rgb}{0.203922,0.541176,0.741176}%
\pgfsetstrokecolor{currentstroke}%
\pgfsetdash{}{0pt}%
\pgfpathmoveto{\pgfqpoint{5.071532in}{3.362647in}}%
\pgfpathlineto{\pgfqpoint{5.349310in}{3.362647in}}%
\pgfusepath{stroke}%
\end{pgfscope}%
\begin{pgfscope}%
\definecolor{textcolor}{rgb}{0.000000,0.000000,0.000000}%
\pgfsetstrokecolor{textcolor}%
\pgfsetfillcolor{textcolor}%
\pgftext[x=5.460421in,y=3.314036in,left,base]{\color{textcolor}\sffamily\fontsize{10.000000}{12.000000}\selectfont \(\displaystyle \alpha(0)\) = 0.5}%
\end{pgfscope}%
\end{pgfpicture}%
\makeatother%
\endgroup%

View file

@ -1,925 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="467.244556pt" height="288.773017pt" viewBox="0 0 467.244556 288.773017" xmlns="http://www.w3.org/2000/svg" version="1.1">
<metadata>
<rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<cc:Work>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:date>1980-01-01T00:00:00+00:00</dc:date>
<dc:format>image/svg+xml</dc:format>
<dc:creator>
<cc:Agent>
<dc:title>Matplotlib v3.5.2, https://matplotlib.org/</dc:title>
</cc:Agent>
</dc:creator>
</cc:Work>
</rdf:RDF>
</metadata>
<defs>
<style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>
</defs>
<g id="figure_1">
<g id="patch_1">
<path d="M 0 288.773017
L 467.244556 288.773017
L 467.244556 0
L 0 0
z
" style="fill: #ffffff"/>
</g>
<g id="axes_1">
<g id="patch_2">
<path d="M 93.7874 227.110617
L 448.582156 227.110617
L 448.582156 18.6624
L 93.7874 18.6624
z
" style="fill: #e5e5e5"/>
</g>
<g id="matplotlib.axis_1">
<g id="xtick_1">
<g id="line2d_1">
<path d="M 145.752289 227.110617
L 145.752289 18.6624
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_2">
<defs>
<path id="mcdb5fb23df" d="M 0 0
L 0 3.5
" style="stroke: #000000; stroke-width: 0.8"/>
</defs>
<g>
<use xlink:href="#mcdb5fb23df" x="145.752289" y="227.110617" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_1">
<!-- 2 -->
<g transform="translate(141.171289 245.052367)scale(0.144 -0.144)">
<defs>
<path id="DejaVuSans-32" d="M 1228 531
L 3431 531
L 3431 0
L 469 0
L 469 531
Q 828 903 1448 1529
Q 2069 2156 2228 2338
Q 2531 2678 2651 2914
Q 2772 3150 2772 3378
Q 2772 3750 2511 3984
Q 2250 4219 1831 4219
Q 1534 4219 1204 4116
Q 875 4013 500 3803
L 500 4441
Q 881 4594 1212 4672
Q 1544 4750 1819 4750
Q 2544 4750 2975 4387
Q 3406 4025 3406 3419
Q 3406 3131 3298 2873
Q 3191 2616 2906 2266
Q 2828 2175 2409 1742
Q 1991 1309 1228 531
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#DejaVuSans-32"/>
</g>
</g>
</g>
<g id="xtick_2">
<g id="line2d_3">
<path d="M 217.427997 227.110617
L 217.427997 18.6624
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_4">
<g>
<use xlink:href="#mcdb5fb23df" x="217.427997" y="227.110617" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_2">
<!-- 4 -->
<g transform="translate(212.846997 245.052367)scale(0.144 -0.144)">
<defs>
<path id="DejaVuSans-34" d="M 2419 4116
L 825 1625
L 2419 1625
L 2419 4116
z
M 2253 4666
L 3047 4666
L 3047 1625
L 3713 1625
L 3713 1100
L 3047 1100
L 3047 0
L 2419 0
L 2419 1100
L 313 1100
L 313 1709
L 2253 4666
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#DejaVuSans-34"/>
</g>
</g>
</g>
<g id="xtick_3">
<g id="line2d_5">
<path d="M 289.103705 227.110617
L 289.103705 18.6624
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_6">
<g>
<use xlink:href="#mcdb5fb23df" x="289.103705" y="227.110617" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_3">
<!-- 6 -->
<g transform="translate(284.522705 245.052367)scale(0.144 -0.144)">
<defs>
<path id="DejaVuSans-36" d="M 2113 2584
Q 1688 2584 1439 2293
Q 1191 2003 1191 1497
Q 1191 994 1439 701
Q 1688 409 2113 409
Q 2538 409 2786 701
Q 3034 994 3034 1497
Q 3034 2003 2786 2293
Q 2538 2584 2113 2584
z
M 3366 4563
L 3366 3988
Q 3128 4100 2886 4159
Q 2644 4219 2406 4219
Q 1781 4219 1451 3797
Q 1122 3375 1075 2522
Q 1259 2794 1537 2939
Q 1816 3084 2150 3084
Q 2853 3084 3261 2657
Q 3669 2231 3669 1497
Q 3669 778 3244 343
Q 2819 -91 2113 -91
Q 1303 -91 875 529
Q 447 1150 447 2328
Q 447 3434 972 4092
Q 1497 4750 2381 4750
Q 2619 4750 2861 4703
Q 3103 4656 3366 4563
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#DejaVuSans-36"/>
</g>
</g>
</g>
<g id="xtick_4">
<g id="line2d_7">
<path d="M 360.779414 227.110617
L 360.779414 18.6624
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_8">
<g>
<use xlink:href="#mcdb5fb23df" x="360.779414" y="227.110617" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_4">
<!-- 8 -->
<g transform="translate(356.198414 245.052367)scale(0.144 -0.144)">
<defs>
<path id="DejaVuSans-38" d="M 2034 2216
Q 1584 2216 1326 1975
Q 1069 1734 1069 1313
Q 1069 891 1326 650
Q 1584 409 2034 409
Q 2484 409 2743 651
Q 3003 894 3003 1313
Q 3003 1734 2745 1975
Q 2488 2216 2034 2216
z
M 1403 2484
Q 997 2584 770 2862
Q 544 3141 544 3541
Q 544 4100 942 4425
Q 1341 4750 2034 4750
Q 2731 4750 3128 4425
Q 3525 4100 3525 3541
Q 3525 3141 3298 2862
Q 3072 2584 2669 2484
Q 3125 2378 3379 2068
Q 3634 1759 3634 1313
Q 3634 634 3220 271
Q 2806 -91 2034 -91
Q 1263 -91 848 271
Q 434 634 434 1313
Q 434 1759 690 2068
Q 947 2378 1403 2484
z
M 1172 3481
Q 1172 3119 1398 2916
Q 1625 2713 2034 2713
Q 2441 2713 2670 2916
Q 2900 3119 2900 3481
Q 2900 3844 2670 4047
Q 2441 4250 2034 4250
Q 1625 4250 1398 4047
Q 1172 3844 1172 3481
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#DejaVuSans-38"/>
</g>
</g>
</g>
<g id="xtick_5">
<g id="line2d_9">
<path d="M 432.455122 227.110617
L 432.455122 18.6624
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_10">
<g>
<use xlink:href="#mcdb5fb23df" x="432.455122" y="227.110617" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_5">
<!-- 10 -->
<g transform="translate(423.293122 245.052367)scale(0.144 -0.144)">
<defs>
<path id="DejaVuSans-31" d="M 794 531
L 1825 531
L 1825 4091
L 703 3866
L 703 4441
L 1819 4666
L 2450 4666
L 2450 531
L 3481 531
L 3481 0
L 794 0
L 794 531
z
" transform="scale(0.015625)"/>
<path id="DejaVuSans-30" d="M 2034 4250
Q 1547 4250 1301 3770
Q 1056 3291 1056 2328
Q 1056 1369 1301 889
Q 1547 409 2034 409
Q 2525 409 2770 889
Q 3016 1369 3016 2328
Q 3016 3291 2770 3770
Q 2525 4250 2034 4250
z
M 2034 4750
Q 2819 4750 3233 4129
Q 3647 3509 3647 2328
Q 3647 1150 3233 529
Q 2819 -91 2034 -91
Q 1250 -91 836 529
Q 422 1150 422 2328
Q 422 3509 836 4129
Q 1250 4750 2034 4750
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#DejaVuSans-31"/>
<use xlink:href="#DejaVuSans-30" x="63.623047"/>
</g>
</g>
</g>
<g id="text_6">
<!-- $\Delta$ -->
<g transform="translate(265.223178 265.177217)scale(0.1728 -0.1728)">
<defs>
<path id="DejaVuSans-394" d="M 2188 4044
L 906 525
L 3472 525
L 2188 4044
z
M 50 0
L 1831 4666
L 2547 4666
L 4325 0
L 50 0
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#DejaVuSans-394" transform="translate(0 0.09375)"/>
</g>
</g>
</g>
<g id="matplotlib.axis_2">
<g id="ytick_1">
<g id="line2d_11">
<path d="M 93.7874 207.584576
L 448.582156 207.584576
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_12">
<defs>
<path id="m6b956cf385" d="M 0 0
L -3.5 0
" style="stroke: #000000; stroke-width: 0.8"/>
</defs>
<g>
<use xlink:href="#m6b956cf385" x="93.7874" y="207.584576" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_7">
<!-- 0.07 -->
<g transform="translate(42.65815 213.055451)scale(0.144 -0.144)">
<defs>
<path id="DejaVuSans-2212" d="M 678 2272
L 4684 2272
L 4684 1741
L 678 1741
L 678 2272
z
" transform="scale(0.015625)"/>
<path id="DejaVuSans-2e" d="M 684 794
L 1344 794
L 1344 0
L 684 0
L 684 794
z
" transform="scale(0.015625)"/>
<path id="DejaVuSans-37" d="M 525 4666
L 3525 4666
L 3525 4397
L 1831 0
L 1172 0
L 2766 4134
L 525 4134
L 525 4666
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#DejaVuSans-2212"/>
<use xlink:href="#DejaVuSans-30" x="83.789062"/>
<use xlink:href="#DejaVuSans-2e" x="147.412109"/>
<use xlink:href="#DejaVuSans-30" x="179.199219"/>
<use xlink:href="#DejaVuSans-37" x="242.822266"/>
</g>
</g>
</g>
<g id="ytick_2">
<g id="line2d_13">
<path d="M 93.7874 177.599812
L 448.582156 177.599812
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_14">
<g>
<use xlink:href="#m6b956cf385" x="93.7874" y="177.599812" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_8">
<!-- 0.06 -->
<g transform="translate(42.65815 183.070687)scale(0.144 -0.144)">
<use xlink:href="#DejaVuSans-2212"/>
<use xlink:href="#DejaVuSans-30" x="83.789062"/>
<use xlink:href="#DejaVuSans-2e" x="147.412109"/>
<use xlink:href="#DejaVuSans-30" x="179.199219"/>
<use xlink:href="#DejaVuSans-36" x="242.822266"/>
</g>
</g>
</g>
<g id="ytick_3">
<g id="line2d_15">
<path d="M 93.7874 147.615048
L 448.582156 147.615048
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_16">
<g>
<use xlink:href="#m6b956cf385" x="93.7874" y="147.615048" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_9">
<!-- 0.05 -->
<g transform="translate(42.65815 153.085923)scale(0.144 -0.144)">
<defs>
<path id="DejaVuSans-35" d="M 691 4666
L 3169 4666
L 3169 4134
L 1269 4134
L 1269 2991
Q 1406 3038 1543 3061
Q 1681 3084 1819 3084
Q 2600 3084 3056 2656
Q 3513 2228 3513 1497
Q 3513 744 3044 326
Q 2575 -91 1722 -91
Q 1428 -91 1123 -41
Q 819 9 494 109
L 494 744
Q 775 591 1075 516
Q 1375 441 1709 441
Q 2250 441 2565 725
Q 2881 1009 2881 1497
Q 2881 1984 2565 2268
Q 2250 2553 1709 2553
Q 1456 2553 1204 2497
Q 953 2441 691 2322
L 691 4666
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#DejaVuSans-2212"/>
<use xlink:href="#DejaVuSans-30" x="83.789062"/>
<use xlink:href="#DejaVuSans-2e" x="147.412109"/>
<use xlink:href="#DejaVuSans-30" x="179.199219"/>
<use xlink:href="#DejaVuSans-35" x="242.822266"/>
</g>
</g>
</g>
<g id="ytick_4">
<g id="line2d_17">
<path d="M 93.7874 117.630285
L 448.582156 117.630285
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_18">
<g>
<use xlink:href="#m6b956cf385" x="93.7874" y="117.630285" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_10">
<!-- 0.04 -->
<g transform="translate(42.65815 123.10116)scale(0.144 -0.144)">
<use xlink:href="#DejaVuSans-2212"/>
<use xlink:href="#DejaVuSans-30" x="83.789062"/>
<use xlink:href="#DejaVuSans-2e" x="147.412109"/>
<use xlink:href="#DejaVuSans-30" x="179.199219"/>
<use xlink:href="#DejaVuSans-34" x="242.822266"/>
</g>
</g>
</g>
<g id="ytick_5">
<g id="line2d_19">
<path d="M 93.7874 87.645521
L 448.582156 87.645521
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_20">
<g>
<use xlink:href="#m6b956cf385" x="93.7874" y="87.645521" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_11">
<!-- 0.03 -->
<g transform="translate(42.65815 93.116396)scale(0.144 -0.144)">
<defs>
<path id="DejaVuSans-33" d="M 2597 2516
Q 3050 2419 3304 2112
Q 3559 1806 3559 1356
Q 3559 666 3084 287
Q 2609 -91 1734 -91
Q 1441 -91 1130 -33
Q 819 25 488 141
L 488 750
Q 750 597 1062 519
Q 1375 441 1716 441
Q 2309 441 2620 675
Q 2931 909 2931 1356
Q 2931 1769 2642 2001
Q 2353 2234 1838 2234
L 1294 2234
L 1294 2753
L 1863 2753
Q 2328 2753 2575 2939
Q 2822 3125 2822 3475
Q 2822 3834 2567 4026
Q 2313 4219 1838 4219
Q 1578 4219 1281 4162
Q 984 4106 628 3988
L 628 4550
Q 988 4650 1302 4700
Q 1616 4750 1894 4750
Q 2613 4750 3031 4423
Q 3450 4097 3450 3541
Q 3450 3153 3228 2886
Q 3006 2619 2597 2516
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#DejaVuSans-2212"/>
<use xlink:href="#DejaVuSans-30" x="83.789062"/>
<use xlink:href="#DejaVuSans-2e" x="147.412109"/>
<use xlink:href="#DejaVuSans-30" x="179.199219"/>
<use xlink:href="#DejaVuSans-33" x="242.822266"/>
</g>
</g>
</g>
<g id="ytick_6">
<g id="line2d_21">
<path d="M 93.7874 57.660757
L 448.582156 57.660757
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_22">
<g>
<use xlink:href="#m6b956cf385" x="93.7874" y="57.660757" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_12">
<!-- 0.02 -->
<g transform="translate(42.65815 63.131632)scale(0.144 -0.144)">
<use xlink:href="#DejaVuSans-2212"/>
<use xlink:href="#DejaVuSans-30" x="83.789062"/>
<use xlink:href="#DejaVuSans-2e" x="147.412109"/>
<use xlink:href="#DejaVuSans-30" x="179.199219"/>
<use xlink:href="#DejaVuSans-32" x="242.822266"/>
</g>
</g>
</g>
<g id="ytick_7">
<g id="line2d_23">
<path d="M 93.7874 27.675993
L 448.582156 27.675993
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #ffffff; stroke-width: 0.8; stroke-linecap: square"/>
</g>
<g id="line2d_24">
<g>
<use xlink:href="#m6b956cf385" x="93.7874" y="27.675993" style="stroke: #000000; stroke-width: 0.8"/>
</g>
</g>
<g id="text_13">
<!-- 0.01 -->
<g transform="translate(42.65815 33.146868)scale(0.144 -0.144)">
<use xlink:href="#DejaVuSans-2212"/>
<use xlink:href="#DejaVuSans-30" x="83.789062"/>
<use xlink:href="#DejaVuSans-2e" x="147.412109"/>
<use xlink:href="#DejaVuSans-30" x="179.199219"/>
<use xlink:href="#DejaVuSans-31" x="242.822266"/>
</g>
</g>
</g>
<g id="text_14">
<!-- $P_\mathrm{max}$ -->
<g transform="translate(35.06445 141.548908)rotate(-90)scale(0.1728 -0.1728)">
<defs>
<path id="DejaVuSans-Oblique-50" d="M 1081 4666
L 2541 4666
Q 3178 4666 3512 4369
Q 3847 4072 3847 3500
Q 3847 2731 3353 2303
Q 2859 1875 1966 1875
L 1172 1875
L 806 0
L 172 0
L 1081 4666
z
M 1613 4147
L 1275 2394
L 2069 2394
Q 2606 2394 2893 2669
Q 3181 2944 3181 3456
Q 3181 3784 2986 3965
Q 2791 4147 2438 4147
L 1613 4147
z
" transform="scale(0.015625)"/>
<path id="DejaVuSans-6d" d="M 3328 2828
Q 3544 3216 3844 3400
Q 4144 3584 4550 3584
Q 5097 3584 5394 3201
Q 5691 2819 5691 2113
L 5691 0
L 5113 0
L 5113 2094
Q 5113 2597 4934 2840
Q 4756 3084 4391 3084
Q 3944 3084 3684 2787
Q 3425 2491 3425 1978
L 3425 0
L 2847 0
L 2847 2094
Q 2847 2600 2669 2842
Q 2491 3084 2119 3084
Q 1678 3084 1418 2786
Q 1159 2488 1159 1978
L 1159 0
L 581 0
L 581 3500
L 1159 3500
L 1159 2956
Q 1356 3278 1631 3431
Q 1906 3584 2284 3584
Q 2666 3584 2933 3390
Q 3200 3197 3328 2828
z
" transform="scale(0.015625)"/>
<path id="DejaVuSans-61" d="M 2194 1759
Q 1497 1759 1228 1600
Q 959 1441 959 1056
Q 959 750 1161 570
Q 1363 391 1709 391
Q 2188 391 2477 730
Q 2766 1069 2766 1631
L 2766 1759
L 2194 1759
z
M 3341 1997
L 3341 0
L 2766 0
L 2766 531
Q 2569 213 2275 61
Q 1981 -91 1556 -91
Q 1019 -91 701 211
Q 384 513 384 1019
Q 384 1609 779 1909
Q 1175 2209 1959 2209
L 2766 2209
L 2766 2266
Q 2766 2663 2505 2880
Q 2244 3097 1772 3097
Q 1472 3097 1187 3025
Q 903 2953 641 2809
L 641 3341
Q 956 3463 1253 3523
Q 1550 3584 1831 3584
Q 2591 3584 2966 3190
Q 3341 2797 3341 1997
z
" transform="scale(0.015625)"/>
<path id="DejaVuSans-78" d="M 3513 3500
L 2247 1797
L 3578 0
L 2900 0
L 1881 1375
L 863 0
L 184 0
L 1544 1831
L 300 3500
L 978 3500
L 1906 2253
L 2834 3500
L 3513 3500
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#DejaVuSans-Oblique-50" transform="translate(0 0.09375)"/>
<use xlink:href="#DejaVuSans-6d" transform="translate(60.302734 -16.3125)scale(0.7)"/>
<use xlink:href="#DejaVuSans-61" transform="translate(128.491211 -16.3125)scale(0.7)"/>
<use xlink:href="#DejaVuSans-78" transform="translate(171.386719 -16.3125)scale(0.7)"/>
</g>
</g>
</g>
<g id="LineCollection_1">
<path clip-path="url(#p3a29132fce)" style="fill: none; stroke: #e24a33; stroke-width: 1.5"/>
<path d="M 145.752289 88.855127
L 145.752289 87.709789
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #e24a33; stroke-width: 1.5"/>
<path d="M 181.590143 136.794138
L 181.590143 135.415118
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #e24a33; stroke-width: 1.5"/>
<path d="M 217.427997 175.244042
L 217.427997 173.673834
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #e24a33; stroke-width: 1.5"/>
<path d="M 253.265851 206.499765
L 253.265851 204.812129
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #e24a33; stroke-width: 1.5"/>
<path d="M 289.103705 217.635698
L 289.103705 215.873355
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #e24a33; stroke-width: 1.5"/>
<path d="M 324.941559 202.251077
L 324.941559 200.597719
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #e24a33; stroke-width: 1.5"/>
<path d="M 360.779414 173.966521
L 360.779414 172.353682
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #e24a33; stroke-width: 1.5"/>
<path d="M 396.617268 166.556624
L 396.617268 164.976897
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #e24a33; stroke-width: 1.5"/>
<path d="M 432.455122 125.134884
L 432.455122 123.676434
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #e24a33; stroke-width: 1.5"/>
</g>
<g id="LineCollection_2">
<path d="M 109.914434 28.750131
L 109.914434 28.137319
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #348abd; stroke-width: 1.5"/>
<path d="M 145.752289 75.131154
L 145.752289 74.449082
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #348abd; stroke-width: 1.5"/>
<path d="M 181.590143 120.417816
L 181.590143 119.529232
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #348abd; stroke-width: 1.5"/>
<path d="M 217.427997 137.180434
L 217.427997 136.209189
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #348abd; stroke-width: 1.5"/>
<path d="M 253.265851 144.134229
L 253.265851 143.13897
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #348abd; stroke-width: 1.5"/>
<path d="M 289.103705 138.290024
L 289.103705 137.297098
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #348abd; stroke-width: 1.5"/>
<path d="M 324.941559 125.265363
L 324.941559 124.346984
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #348abd; stroke-width: 1.5"/>
<path d="M 360.779414 105.33344
L 360.779414 104.461104
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #348abd; stroke-width: 1.5"/>
<path d="M 396.617268 99.110163
L 396.617268 98.263443
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #348abd; stroke-width: 1.5"/>
<path d="M 432.455122 74.62724
L 432.455122 73.855001
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #348abd; stroke-width: 1.5"/>
</g>
<g id="line2d_25">
<path d="M 145.752289 88.282458
L 181.590143 136.104628
L 217.427997 174.458938
L 253.265851 205.655947
L 289.103705 216.754526
L 324.941559 201.424398
L 360.779414 173.160101
L 396.617268 165.76676
L 432.455122 124.405659
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #e24a33; stroke-width: 1.5; stroke-linecap: square"/>
</g>
<g id="line2d_26">
<path d="M 109.914434 28.443725
L 145.752289 74.790118
L 181.590143 119.973524
L 217.427997 136.694811
L 253.265851 143.6366
L 289.103705 137.793561
L 324.941559 124.806174
L 360.779414 104.897272
L 396.617268 98.686803
L 432.455122 74.241121
" clip-path="url(#p3a29132fce)" style="fill: none; stroke: #348abd; stroke-width: 1.5; stroke-linecap: square"/>
</g>
<g id="patch_3">
<path d="M 93.7874 227.110617
L 93.7874 18.6624
" style="fill: none; stroke: #ffffff; stroke-linejoin: miter; stroke-linecap: square"/>
</g>
<g id="patch_4">
<path d="M 448.582156 227.110617
L 448.582156 18.6624
" style="fill: none; stroke: #ffffff; stroke-linejoin: miter; stroke-linecap: square"/>
</g>
<g id="patch_5">
<path d="M 93.7874 227.110617
L 448.582156 227.110617
" style="fill: none; stroke: #ffffff; stroke-linejoin: miter; stroke-linecap: square"/>
</g>
<g id="patch_6">
<path d="M 93.7874 18.6624
L 448.582156 18.6624
" style="fill: none; stroke: #ffffff; stroke-linejoin: miter; stroke-linecap: square"/>
</g>
<g id="legend_1">
<g id="patch_7">
<path d="M 358.182156 56.01865
L 441.582156 56.01865
Q 443.582156 56.01865 443.582156 54.01865
L 443.582156 25.6624
Q 443.582156 23.6624 441.582156 23.6624
L 358.182156 23.6624
Q 356.182156 23.6624 356.182156 25.6624
L 356.182156 54.01865
Q 356.182156 56.01865 358.182156 56.01865
z
" style="fill: #e5e5e5; opacity: 0.8; stroke: #cccccc; stroke-width: 0.5; stroke-linejoin: miter"/>
</g>
<g id="LineCollection_3">
<path d="M 370.182156 36.760838
L 370.182156 26.760838
" style="fill: none; stroke: #e24a33; stroke-width: 1.5"/>
</g>
<g id="line2d_27">
<path d="M 360.182156 31.760838
L 380.182156 31.760838
" style="fill: none; stroke: #e24a33; stroke-width: 1.5; stroke-linecap: square"/>
</g>
<g id="line2d_28"/>
<g id="text_15">
<!-- $\alpha(0)$ = 1 -->
<g transform="translate(388.182156 35.260838)scale(0.1 -0.1)">
<defs>
<path id="DejaVuSans-Oblique-3b1" d="M 2619 1628
L 2622 2350
Q 2625 3088 2069 3091
Q 1653 3094 1394 2747
Q 1069 2319 959 1747
Q 825 1059 994 731
Q 1169 397 1547 397
Q 1966 397 2319 1063
L 2619 1628
z
M 2166 3578
Q 3141 3594 3128 2584
Q 3128 2584 3616 3500
L 4128 3500
L 3119 1603
L 3109 919
Q 3109 766 3194 638
Q 3291 488 3391 488
L 3669 488
L 3575 0
L 3228 0
Q 2934 0 2722 263
Q 2622 394 2619 669
Q 2416 334 2066 50
Q 1900 -81 1453 -78
Q 722 -72 456 397
Q 184 884 353 1747
Q 534 2675 1009 3097
Q 1544 3569 2166 3578
z
" transform="scale(0.015625)"/>
<path id="DejaVuSans-28" d="M 1984 4856
Q 1566 4138 1362 3434
Q 1159 2731 1159 2009
Q 1159 1288 1364 580
Q 1569 -128 1984 -844
L 1484 -844
Q 1016 -109 783 600
Q 550 1309 550 2009
Q 550 2706 781 3412
Q 1013 4119 1484 4856
L 1984 4856
z
" transform="scale(0.015625)"/>
<path id="DejaVuSans-29" d="M 513 4856
L 1013 4856
Q 1481 4119 1714 3412
Q 1947 2706 1947 2009
Q 1947 1309 1714 600
Q 1481 -109 1013 -844
L 513 -844
Q 928 -128 1133 580
Q 1338 1288 1338 2009
Q 1338 2731 1133 3434
Q 928 4138 513 4856
z
" transform="scale(0.015625)"/>
<path id="DejaVuSans-20" transform="scale(0.015625)"/>
<path id="DejaVuSans-3d" d="M 678 2906
L 4684 2906
L 4684 2381
L 678 2381
L 678 2906
z
M 678 1631
L 4684 1631
L 4684 1100
L 678 1100
L 678 1631
z
" transform="scale(0.015625)"/>
</defs>
<use xlink:href="#DejaVuSans-Oblique-3b1" transform="translate(0 0.125)"/>
<use xlink:href="#DejaVuSans-28" transform="translate(65.917969 0.125)"/>
<use xlink:href="#DejaVuSans-30" transform="translate(104.931641 0.125)"/>
<use xlink:href="#DejaVuSans-29" transform="translate(168.554688 0.125)"/>
<use xlink:href="#DejaVuSans-20" transform="translate(207.568359 0.125)"/>
<use xlink:href="#DejaVuSans-3d" transform="translate(239.355469 0.125)"/>
<use xlink:href="#DejaVuSans-20" transform="translate(323.144531 0.125)"/>
<use xlink:href="#DejaVuSans-31" transform="translate(354.931641 0.125)"/>
</g>
</g>
<g id="LineCollection_4">
<path d="M 370.182156 51.438963
L 370.182156 41.438963
" style="fill: none; stroke: #348abd; stroke-width: 1.5"/>
</g>
<g id="line2d_29">
<path d="M 360.182156 46.438963
L 380.182156 46.438963
" style="fill: none; stroke: #348abd; stroke-width: 1.5; stroke-linecap: square"/>
</g>
<g id="line2d_30"/>
<g id="text_16">
<!-- $\alpha(0)$ = 0.5 -->
<g transform="translate(388.182156 49.938963)scale(0.1 -0.1)">
<use xlink:href="#DejaVuSans-Oblique-3b1" transform="translate(0 0.125)"/>
<use xlink:href="#DejaVuSans-28" transform="translate(65.917969 0.125)"/>
<use xlink:href="#DejaVuSans-30" transform="translate(104.931641 0.125)"/>
<use xlink:href="#DejaVuSans-29" transform="translate(168.554688 0.125)"/>
<use xlink:href="#DejaVuSans-20" transform="translate(207.568359 0.125)"/>
<use xlink:href="#DejaVuSans-3d" transform="translate(239.355469 0.125)"/>
<use xlink:href="#DejaVuSans-20" transform="translate(323.144531 0.125)"/>
<use xlink:href="#DejaVuSans-30" transform="translate(354.931641 0.125)"/>
<use xlink:href="#DejaVuSans-2e" transform="translate(418.554688 0.125)"/>
<use xlink:href="#DejaVuSans-35" transform="translate(450.341797 0.125)"/>
</g>
</g>
</g>
</g>
</g>
<defs>
<clipPath id="p3a29132fce">
<rect x="93.7874" y="18.6624" width="354.794756" height="208.448217"/>
</clipPath>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 80 KiB

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 35 KiB

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 184 KiB

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 449 KiB

View file

@ -43,7 +43,9 @@ with_friction_y.description = r"With Friction $\sigma_y$"
models = [with_friction, with_friction_y, without_friction]
aux.integrate_multi(models, 2000)
print(es.models_table(models))
aux.integrate_multi(models, 10_000)
es.ergo(5)

View file

@ -0,0 +1,224 @@
import energy_shovel as es
import numpy as np
import qutip as qt
import matplotlib.pyplot as plt
import utilities as ut
import figsaver as fs
import hiro_models.model_auxiliary as aux
import plot_utils as pu
import ray
ray.shutdown()
ray.init(address="auto")
from hops.util.logging_setup import logging_setup
import logging
logging_setup(logging.INFO, show_stocproc=False)
from hops.util.dynamic_matrix import SmoothStep, Periodic, Harmonic, ConstantMatrix, Piecewise
L_op = (1 / 2 * qt.sigmax()).full()
from hiro_models.utility import StocProcTolerances
from hiro_models.one_qubit_model import QubitModel
H = 1 / 2 * (ConstantMatrix(qt.sigmaz() + 1))
t_max = 20
models = [
QubitModel(
δ=0.8,
ω_c=1,
t=np.linspace(0, t_max, 1000),
ψ_0=qt.basis([2], [0]),
description=f"Testing the time dependent coupling with smooth step.",
k_max=4,
bcf_terms=7,
truncation_scheme="simplex",
driving_process_tolerance=StocProcTolerances(1e-6, 1e-6),
thermal_process_tolerance=StocProcTolerances(1e-3, 1e-3),
T=0,
L=SmoothStep(L_op, 0, 8, s) if s is not None else Piecewise([ConstantMatrix(np.zeros((2,2))), ConstantMatrix(L_op)], [0, 4, np.inf]),
H=H,
)
for s in (None, 0, 1, 2, 3)
]
print(es.models_table(models))
tt = np.linspace(0, 8, 1000)
for model in models:
plt.plot(
tt,
model.L.operator_norm(tt),
label=model.L.order if isinstance(model.L, SmoothStep) else "sudden",
)
plt.legend(title="Smoothness")
plt.xlabel(r"$\tau$")
plt.ylabel(r"$||L||$")
fs.export_fig("modulation_protocols_init", x_scaling=.4, tikz=False)
fs.tex_value(
models[0].bcf_scale * models[0].full_thermal_bcf(0).real,
prec=1,
prefix="α(0)=",
save="init_slip_alpha",
), fs.tex_value(models[0].ω_c, prec=1, prefix="ω_c=", save="initial_slip_cuttoff")
import gc; gc.collect()
aux.integrate_multi(models, 10_000)
for model in models:
_, ax = pu.plot_energy_overview(model)
ax.plot(model.t, model.L.operator_norm(model.t) * np.sqrt(model.δ))
ax.legend()
fig, ax = plt.subplots()
for model, data in aux.model_data_iterator(models):
flow = model.bath_energy_flow(data)
pu.plot_with_σ(
model.t,
flow,
ax=ax,
label=model.L.order if isinstance(model.L, SmoothStep) else "sudden",
bath=0,
)
ax.legend()
fig, ax = plt.subplots()
for model, data in aux.model_data_iterator(models):
flow = model.interaction_energy(data)
pu.plot_with_σ(
model.t,
flow,
ax=ax,
label=model.L.order if isinstance(model.L, SmoothStep) else "sudden",
bath=0,
)
ax.legend()
pu.plot_multi_energy_overview(
models,
label_fn=lambda model: model.L.order if isinstance(model.L, SmoothStep) else "sudden"
)
fs.export_fig("init_overview", y_scaling=.6)
fig, ax = plt.subplots()
for model, data in aux.model_data_iterator(models):
flow = model.total_energy_from_power(data)
pu.plot_with_σ(
model.t,
flow,
ax=ax,
label=model.L.order if isinstance(model.L, SmoothStep) else "sudden",
)
ax.legend(title="Smoothness")
ax.set_xlabel(r"$\tau$")
ax.set_ylabel(r"$\langle H\rangle$")
fs.export_fig("total_init", x_scaling=.5)
fig, ax = plt.subplots()
for model, data in aux.model_data_iterator(models):
flow = model.system_energy(data)
pu.plot_with_σ(
model.t,
flow,
ax=ax,
label=model.L.order if isinstance(model.L, SmoothStep) else "sudden",
)
ax.legend()
fig, ax = plt.subplots()
for model, data in aux.model_data_iterator(models):
flow = model.total_energy_from_power(data)
pu.plot_with_σ(
model.t,
flow,
ax=ax,
label=model.L.order if isinstance(model.L, SmoothStep) else "sudden",
)
ax.legend()
from hopsflow.util import integrate_array
import scipy
fig, ax = plt.subplots()
pure_dephasing = []
pure_dephasing_int = []
ax.tick_params(axis='y', which='major', pad=10)
for model in models:
L = model.L
L_fun = L.factor if isinstance(L, SmoothStep) else lambda t: np.heaviside(t - 1, 0)
# plt.plot(model.t, L_deriv(model.t))
# plt.plot(model.t, L_fun(model.t))
def α_dot(t):
return -2j * model.ω_c / (1 + 1j * model.ω_c * t) ** 3
def α(t):
return 1 / (1 + 1j * model.ω_c * t) ** 2
def integrand(s, t):
return np.prod(L_fun(np.array([s, t]))) * α_dot(t - s).imag / 4
def integrand_int(s, t):
return np.prod(L_fun(np.array([s, t]))) * α(t - s).imag / 4
res = np.array([scipy.integrate.quad(integrand, 0, t, (t,))[0] for t in model.t])
pure_dephasing.append(res)
pure_dephasing_int.append(
np.array([scipy.integrate.quad(integrand_int, 0, t, (t,))[0] for t in model.t])
)
with aux.get_data(model) as data:
if not isinstance(model.L, SmoothStep):
continue
_, _, (line, _) = pu.plot_with_σ(
model.t,
abs(-1 * model.bath_energy_flow(data)),
bath=0,
ax=ax,
label=(fr"$s={model.L.order}$")
if isinstance(model.L, SmoothStep)
else "sudden",
)
ax.plot(
model.t,
abs(-res * model.bcf_scale * model.bcf._c1 * 2),
linestyle="--",
color=line[0].get_color(),
)
# fs.plot_with_σ(
# model.t,
# -1 * model.interaction_energy(data),
# linestyle="-.",
# bath=0,
# ax=ax,
# color=line[0].get_color(),
# )
ax.set_xlim(0.2, 6)
ax.set_ylim(1e-8, 0.3)
ax.set_xscale("log")
ax.set_yscale("log")
ax.legend(loc="upper left")
ax.set_xlabel(r"$\tau$")
ax.set_ylabel(r"$-J$")
# inset = ax.inset_axes([.48, .15, .47, .45])
# for model in models:
# inset.plot(model.t, model.L.operator_norm(model.t), linewidth=1)
# inset.set_xlim(0.2, 2)
# inset.set_xlabel(r"$\tau$", labelpad=-1.5)
# inset.set_ylabel(r"$||L||$")
# inset.set_xscale("log")
# for i, tick in enumerate(inset.xaxis.get_ticklabels()):
# if i % 2 != 0:
# tick.set_visible(False)
fs.export_fig("initial_slip_modcoup", x_scaling=.5)

View file

@ -9,7 +9,7 @@ import plot_utils as pu
import ray
ray.shutdown()
ray.init()
ray.init(address="auto")
from hops.util.logging_setup import logging_setup
import logging
@ -50,7 +50,7 @@ for Δ in Δs:
Δ_models[1].bcf(0) * Δ_models[-1].bcf_scale
aux.integrate_multi(Δ_models, 2000)
aux.integrate_multi(Δ_models, 1)
dim_models = len(δs)
power = np.zeros((len(Δs), dim_models))
@ -103,7 +103,12 @@ im = a.imshow(
aspect="auto",
origin="lower",
cmap="plasma",
extent=[δs.min(), δs.max(), min(Δs), max(Δs)],
extent=[
δs.min() - (δs[1] - δs[0]) / 2,
δs.max() + (δs[1] - δs[0]) / 2,
min(Δs) - ((Δs[1] - Δs[0]) / 2),
max(Δs) + ((Δs[1] - Δs[0]) / 2),
],
)
f.colorbar(im, ax=a)
@ -114,7 +119,12 @@ im2 = a2.imshow(
aspect="auto",
origin="lower",
cmap="plasma",
extent=[δs.min(), δs.max(), min(Δs), max(Δs)],
extent=[
δs.min() - (δs[1] - δs[0]) / 2,
δs.max() + (δs[1] - δs[0]) / 2,
min(Δs) - ((Δs[1] - Δs[0]) / 2),
max(Δs) + ((Δs[1] - Δs[0]) / 2),
],
)
f.colorbar(im2, ax=a2)
a.set_ylabel(r"$\Delta$")
@ -125,7 +135,7 @@ a.set_title(r"$\bar{P}$")
a2.set_title(r"$\bar{P}/\bar{P}_{\mathrm{\max},\alpha}$")
fs.export_fig("power_heatmap", f, tikz=False)
for model, data in aux.model_data_iterator(Δ_models):
for model, data in aux.model_data_iterator(Δ_models[-1:]):
inter = model.interaction_energy(data)
print(abs(inter.value).max())
@ -133,7 +143,6 @@ dim_models = len(δs)
interactions = np.zeros((len(Δs), dim_models))
ensemble_arg = dict(overwrite_cache=False)
fig, ax = plt.subplots()
for (model, data), Δ, strobe_t, strobe_indices, idx in zip(
aux.model_data_iterator(Δ_models),
np.array([[Δ]*len(δs) for Δ in Δs]).flatten(),
@ -143,3 +152,56 @@ for (model, data), Δ, strobe_t, strobe_indices, idx in zip(
):
interaction = model.interaction_energy(data, **ensemble_arg)
interactions[int(idx/dim_models), idx % dim_models] = abs(interaction.value).max()
f, (a, a2) = plt.subplots(ncols=2)
im = a.imshow(
interactions,
interpolation="gaussian",
interpolation_stage="data",
aspect="auto",
origin="lower",
cmap="plasma",
extent=[
δs.min() - (δs[1] - δs[0]) / 2,
δs.max() + (δs[1] - δs[0]) / 2,
min(Δs) - ((Δs[1] - Δs[0]) / 2),
max(Δs) + ((Δs[1] - Δs[0]) / 2),
],
)
f.colorbar(im, ax=a)
a.set_ylabel(r"$\Delta$")
a.set_xlabel(r"$\alpha_\beta(0)$")
a.set_title(r"$|\langle{H_{\mathrm{I}}}\rangle|_\mathrm{max}$")
for i in range(len(Δs)):
ints = interactions[i, :]
a2.plot(δs - δs[0], ints - ints[0], label=rf"${Δs[i]}$")
a2.plot(δs - δs[0],(δs - δs[0]) / 5, color="grey", linestyle="dashed")
a2.set_yscale("log")
a2.set_xscale("log")
a2.set_ylabel(r"$|\langle{H_{\mathrm{I}}}\rangle|_\mathrm{max}|$")
a2.set_xlabel(r"$\alpha_\beta(0)$")
a2.legend(ncol=3, title=r"$\Delta=$", fontsize="x-small")
fs.export_fig("interaction_nontuned")
f, (a) = plt.subplots()
im = a.imshow(
abs((power / power.max()) - interactions / interactions.max()),
interpolation="gaussian",
interpolation_stage="data",
aspect="auto",
origin="lower",
cmap="plasma",
extent=[
δs.min() - (δs[1] - δs[0]) / 2,
δs.max() + (δs[1] - δs[0]) / 2,
min(Δs) - ((Δs[1] - Δs[0]) / 2),
max(Δs) + ((Δs[1] - Δs[0]) / 2),
],
)
f.colorbar(im, ax=a)
a.set_ylabel(r"$\Delta$")
a.set_xlabel(r"$\alpha_\beta(0)$")
print(es.models_table(Δ_models, tablefmt="latex_raw", data_path=".data_taurus"))

View file

@ -0,0 +1,181 @@
import energy_shovel as es
import numpy as np
import qutip as qt
import matplotlib.pyplot as plt
import utilities as ut
import figsaver as fs
import hiro_models.model_auxiliary as aux
import plot_utils as pu
import ray
ray.shutdown()
ray.init(address="auto")
from hops.util.logging_setup import logging_setup
import logging
logging_setup(logging.INFO, show_stocproc=False)
from hops.util.dynamic_matrix import SmoothStep, Periodic, Harmonic, ConstantMatrix
Δs = [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
] # np.sort(np.concatenate((np.linspace(1, 5, 20), np.linspace(5, 7, int(20/5 * 2)))))
Δ_models = []
strobe_ts = []
strobe_indices_s = []
δs = np.linspace(0.05, .5, 10)
for Δ in Δs:
for δ in δs:
proto, strobe_t, strobe_indices = es.optimize_for_interaction_energy(
δ,
int(Δ / (2 * np.pi) * 10),
500,
Δ=Δ,
periods=int(Δ / (2 * np.pi) * 20),
k_max=6,
bcf_terms=7,
modulate_system=False,
bcf_norm_method="unit_therm",
δ=0.5,
)
strobe_ts.append(strobe_t)
strobe_indices_s.append(strobe_indices)
Δ_models.append(proto)
Δ_models[1].bcf(0) * Δ_models[-1].bcf_scale
aux.integrate_multi(Δ_models, 2000)
dim_models = len(δs)
power = np.zeros((len(Δs), dim_models))
# final_e_error = [[], []]
ensemble_arg = dict(overwrite_cache=False)
for (model, data), Δ, strobe_t, strobe_indices, idx in zip(
aux.model_data_iterator(Δ_models, data_path=".data_taurus"),
np.array([[Δ]*len(δs) for Δ in Δs]).flatten(),
strobe_ts,
strobe_indices_s,
range(len(Δ_models))
):
energies = model.total_energy_from_power(data, **ensemble_arg)
powers = energies.value[strobe_indices[1:]] * (1/strobe_t[1:])
power[int(idx/dim_models), idx % dim_models] = np.amax(abs(powers[powers <= 0]), initial=0)
# fs.plot_energy_overview(model, ensemble_args=ensemble_arg)
# fig, ax = plt.subplots()
# fs.plot_with_σ(model.t, model.energy_change_from_interaction_power(data, **ensemble_arg).for_bath(0), ax=ax)
# fs.plot_with_σ(model.t, model.energy_change_from_system_power(data, **ensemble_arg), ax=ax)
# fs.plot_with_σ(model.t, model.total_energy_from_power(data, **ensemble_arg), ax=ax)
# fs.plot_with_σ(model.t, model.interaction_power(data, **ensemble_arg).for_bath(0), ax=ax)
# fs.plot_with_σ(model.t, model.total_energy(data, **ensemble_arg), ax=ax)
# ax.plot(model.t, model.L.derivative()(model.t)[:,0,1])
# ax.plot(model.t, model.L(model.t)[:,0,1])
# print(strobe_t[1])
# plt.ylabel(r"$\frac{\Delta E}{T}$")
# ax.set_xlabel(r"$\Delta$")
# ax.set_ylabel(r"$P_\mathrm{max}$")
# for i, energy, σ in zip(itertools.count(0), final_e, final_e_error):
# ax.errorbar(Δs, energy, σ, label=rf"$\alpha(0)$ = {δs[i]}")
# ax.legend()
# fs.export_fig("delta_dependence")
normed_power = power.copy()
for i in range(dim_models):
normed_power[:, i] /= power[:, i].max()
for i in range(dim_models):
plt.plot(Δs, power[:, i])
f, (a, a2) = plt.subplots(ncols=2, sharey=True)
im = a.imshow(
power,
interpolation="gaussian",
interpolation_stage="data",
aspect="auto",
origin="lower",
cmap="plasma",
extent=[
δs.min() - (δs[1] - δs[0]) / 2,
δs.max() + (δs[1] - δs[0]) / 2,
min(Δs) - ((Δs[1] - Δs[0]) / 2),
max(Δs) + ((Δs[1] - Δs[0]) / 2),
],
)
f.colorbar(im, ax=a)
im2 = a2.imshow(
normed_power,
interpolation="gaussian",
interpolation_stage="data",
aspect="auto",
origin="lower",
cmap="plasma",
extent=[
δs.min() - (δs[1] - δs[0]) / 2,
δs.max() + (δs[1] - δs[0]) / 2,
min(Δs) - ((Δs[1] - Δs[0]) / 2),
max(Δs) + ((Δs[1] - Δs[0]) / 2),
],
)
f.colorbar(im2, ax=a2)
a.set_ylabel(r"$\Delta$")
for ax in (a, a2):
ax.set_xlabel(r"$\langle H_\mathrm{I}\rangle_\mathrm{max}$")
a.set_title(r"$\bar{P}$")
a2.set_title(r"$\bar{P}/\bar{P}_{\mathrm{\max},\alpha}$")
fs.export_fig("power_en_heatmap", f, tikz=False)
for model, data in aux.model_data_iterator(Δ_models):
inter = model.interaction_energy(data)
print(abs(inter.value).max())
dim_models = len(δs)
interactions = np.zeros((len(Δs), dim_models))
#ensemble_arg = dict(overwrite_cache=False)
for (model, data), Δ, strobe_t, strobe_indices, idx in zip(
aux.model_data_iterator(Δ_models, data_path=".data_taurus"),
np.array([[Δ]*len(δs) for Δ in Δs]).flatten(),
strobe_ts,
strobe_indices_s,
range(len(Δ_models))
):
interaction = model.interaction_energy(data)
interactions[int(idx/dim_models), idx % dim_models] = abs(interaction.value).max()
f, (a) = plt.subplots()
target = np.repeat([δs], len(Δs), axis=0)
im = a.imshow(
np.abs(interactions - target)[1:,:] / target[1:,:],
interpolation="gaussian",
interpolation_stage="data",
aspect="auto",
origin="lower",
cmap="plasma",
extent=[
δs.min() - (δs[1] - δs[0]) / 2,
δs.max() + (δs[1] - δs[0]) / 2,
min(Δs[1:]) - ((Δs[1] - Δs[0]) / 2),
max(Δs) + ((Δs[1] - Δs[0]) / 2),
],
)
f.colorbar(im, ax=a)
a.set_ylabel(r"$\Delta$")
a.set_xlabel(r"$\langle H_\mathrm{I}\rangle_\mathrm{max,target}$")
a.set_title(r"Difference $|\langle{H_{\mathrm{I}}}\rangle|_\mathrm{max}$ from $\langle H_\mathrm{I}\rangle_\mathrm{max,target}$")
fs.export_fig("interaction_tuning_success_detail")
print(es.models_table(Δ_models, tablefmt="latex_raw", data_path=".data_taurus"))

View file

@ -9,7 +9,7 @@ import plot_utils as pu
import ray
ray.shutdown()
ray.init()
ray.init(address="auto")
from hops.util.logging_setup import logging_setup
import logging
@ -19,52 +19,107 @@ from hops.util.dynamic_matrix import SmoothStep, Periodic, Harmonic, ConstantMat
tunings = np.linspace(-0.5, 0.5, 9)
δs = [0.5, 1.1, 2]
tune_models = []
strobe_indices = []
Δ = 5
for tune in tunings:
proto, strobe_t, strobe_i = es.energy_shovel(
Δ,
periods=10,
modulate_system=False,
detune=tune,
bcf_norm_method="unit_therm",
δ=.8,
# k_max=3,
# bcf_terms=5,
)
for δ in δs:
for tune in tunings:
proto, strobe_t, strobe_i = es.energy_shovel(
Δ,
periods=8,
modulate_system=False,
detune=tune,
bcf_norm_method="sd_peak",
δ=δ,
# bcf_terms=5,
)
tune_models.append(proto)
strobe_indices.append(strobe_i)
tune_models.append(proto)
strobe_indices.append(strobe_i)
ωs = np.linspace(tune_models[0].H.max_operator_norm(10) + Δ - 2, 10, 1000)
for model in tune_models[:len(tunings)]:
plt.plot(ωs, model.full_thermal_spectral_density(ωs) * model.bcf_scale)
plt.plot(ωs, model.spectral_density(ωs) * model.bcf_scale)
plt.axvline(model.H.max_operator_norm(10) + Δ)
plt.xlabel(r"$\omega$")
plt.ylabel(r"$J(\omega)$")
fs.export_fig("spectral_densities_tuning")
import gc
gc.collect()
aux.integrate_multi(tune_models, 2000)
from hopsflow.util import EnsembleValue
final_e = []
for (model, data), tune in zip(aux.model_data_iterator(tune_models), tunings):
final_e.append((model.total_energy_from_power(data)).value[strobe_indices].min())
therm_sd = []
sd = []
for model in tune_models:
therm_sd.append(
model.full_thermal_spectral_density(model.H.max_operator_norm(10) + Δ)
* model.bcf_scale
)
sd.append(
model.spectral_density(model.H.max_operator_norm(10) + Δ) * model.bcf_scale
)
plt.ylabel(r"$\Delta E$")
plt.xlabel(r"$\delta$")
plt.plot(tunings, final_e, linestyle="none", marker="o")
for (model, data), tune, strobe_i in zip(
aux.model_data_iterator(tune_models), np.tile(tunings, len(δs)), strobe_indices
):
energies = model.total_energy_from_power(data)
powers = energies.slice(strobe_i[1:]) * (1 / model.t[strobe_i[1:]])
powers = powers.slice(powers.value <= 0)
if len(powers.value) and (np.argmax(abs(powers.value)) == (len(powers.value)) - 1):
print("need more time")
else:
print("ok")
final_e.append(abs(powers).max if len(powers.value) else EnsembleValue((0,0,0)))
plt.plot(
tune_models[0].t,
np.abs(tune_models[0].bcf(tune_models[0].t)
+ 2 * tune_models[0].thermal_correlations(tune_models[0].t).real),
)
plt.plot(
tune_models[0].t,
np.abs(tune_models[0].bcf(tune_models[0].t)
+ 0 * tune_models[0].thermal_correlations(tune_models[0].t).real),
fig, (ax, ax2) = plt.subplots(ncols=2)
ωs = np.linspace(model.H.max_operator_norm(10) + Δ - 2, 10, 1000)
for model in tune_models[: len(tunings)]:
lines = ax2.plot(ωs, model.spectral_density(ωs) * model.bcf_scale)
ax2.plot(
ωs,
model.full_thermal_spectral_density(ωs) * model.bcf_scale,
color=pu.lighten_color(lines[0].get_color(), 0.5),
linestyle="dashed",
)
vline = ax2.axvline(model.H.max_operator_norm(10) + Δ)
ax2.set_xlabel(r"$\omega$")
ax2.set_ylabel(r"$J(\omega)$")
ax2.text(
model.H.max_operator_norm(10) + Δ + 0.15,
0.01,
r"$1+\Delta$",
color=vline.get_color(),
)
ωs = np.linspace(1e-3, 10, 1000)
def nonzero_density(ωs, model):
return model.spectral_density(ωs) * (1 + 1/np.expm1(ωs / model.T))
for tuning, model in zip(tunings, tune_models):
freqs = np.array([Δ + 1, 2*Δ + 1])
line = plt.plot(tuning, nonzero_density(freqs[0], model), label=tuning, markersize=2, marker="o")
plt.plot(tuning, nonzero_density(freqs[1], model), color=line[0].get_color(), markersize=4, marker="*")
#plt.plot(ωs, nonzero_density(ωs, model))
ax.set_ylabel(r"$|P_\mathrm{max}|$ relative")
ax.set_xlabel(r"$\delta$")
normed_sds = therm_sd[: len(tunings)] / max(therm_sd[: len(tunings)])
for i, δ in enumerate(δs):
num_tunings = len(tunings)
e = final_e[num_tunings * i : num_tunings * (i + 1)]
ax.errorbar(
tunings,
[_.value for _ in e],
yerr=[_.σ for _ in e],
# / max(final_e[num_tunings * i : num_tunings * (i + 1)]),
linestyle="--",
marker="o",
markersize=3,
label=rf"$J_\mathrm{{peak}}={δ}$",
)
plt.legend()
ax.legend()
# plt.axhline(1)
# plt.plot(tunings, normed_sds, linestyle="none", marker="*")
# plt.plot(tunings, sd / max(sd), linestyle="none", marker="o")
fs.export_fig("modulation_tuning")
print(es.models_table(tune_models, tablefmt="latex_raw"))

View file

@ -10,14 +10,14 @@ for ω_c in ωs:
Δ,
periods=3,
modulate_system=False,
δ=0.1,
δ=0.01,
ω_c = ω_c,
)
proto.k_max = 5
proto.therm_method = "fft"
goal = 0.4
goal = 0.01
def cost(δ):
@ -48,8 +48,3 @@ for ω_c in ωs:
final.therm_method = "fft"
ω_models.append(final.copy())
aux.integrate_multi(ω_models, 10_000)
from pprint import pprint
print_diff_tbl(ω_models)

View file

@ -1 +1 @@
\(α(0)=0.4\)
\(α(0)=1.6\)

View file

@ -0,0 +1,457 @@
#+PROPERTY: header-args :session 09_one_qubit_cc :kernel python :pandoc no :async yes :tangle otto_motor_cc.py
Herein I'll try to get a basic two-bath cycle running and touch base
with the markovian result.
* Boilerplate
#+begin_src jupyter-python :results none
import figsaver as fs
import plot_utils as pu
from hiro_models.one_qubit_model import QubitModelMutliBath, StocProcTolerances
import hiro_models.model_auxiliary as aux
import numpy as np
import qutip as qt
import utilities as ut
import stocproc
import matplotlib.pyplot as plt
#+end_src
Init ray and silence stocproc.
#+begin_src jupyter-python
import ray
ray.shutdown()
ray.init(address="141.30.17.16:6379")
# ray.init(address='auto')
# ray.init()
#+end_src
#+RESULTS:
: RayContext(dashboard_url='', python_version='3.9.13', ray_version='1.13.0', ray_commit='e4ce38d001dbbe09cd21c497fedd03d692b2be3e', address_info={'node_ip_address': '141.30.17.225', 'raylet_ip_address': '141.30.17.225', 'redis_address': None, 'object_store_address': '/tmp/ray/session_2022-08-03_14-53-16_736667_825118/sockets/plasma_store.8', 'raylet_socket_name': '/tmp/ray/session_2022-08-03_14-53-16_736667_825118/sockets/raylet.4', 'webui_url': '', 'session_dir': '/tmp/ray/session_2022-08-03_14-53-16_736667_825118', 'metrics_export_port': 42364, 'gcs_address': '141.30.17.16:6379', 'address': '141.30.17.16:6379', 'node_id': 'beae439b1647007190930f56aac60773867f3d5f7a8f4794048c1fc4'})
#+begin_src jupyter-python :results none
from hops.util.logging_setup import logging_setup
import logging
logging_setup(logging.INFO)
#+end_src
* Cycle
#+begin_src jupyter-python :results none
from hops.util.dynamic_matrix import SmoothStep, Periodic, ConstantMatrix, ScaleTime, Shift, Piecewise
#+end_src
Now we build a basic otto cycle.
Let's lay down some basic functionality.
#+begin_src jupyter-python
H_op = 2*(1/2 * (qt.sigmaz() + qt.identity(2))).full()
L_op = (1/2 * qt.sigmax()).full()
L_op_2 = (1/2 * qt.sigmax()).full()
print(H_op, L_op, sep="\n")
#+end_src
#+RESULTS:
: [[2.+0.j 0.+0.j]
: [0.+0.j 0.+0.j]]
: [[0. +0.j 0.5+0.j]
: [0.5+0.j 0. +0.j]]
#+begin_src jupyter-python :results none
t_compression = .1
t_expansion = .1
comp_ratio = .5
hot_switch_ratio = .8
cold_switch_ratio = .8
t_hot = (1 - t_expansion - t_compression) / 2
t_hot_switch = t_hot * hot_switch_ratio / 2
t_cold = (1 - t_expansion - t_compression) / 2
t_cold_switch = t_cold * cold_switch_ratio / 2
t = np.linspace(0, 10, 1000)
#+end_src
** Expansion
#+begin_src jupyter-python
H_exp = SmoothStep(comp_ratio * H_op, 0, t_expansion, 2) + H_op * (1 - comp_ratio)
tt = np.linspace(0, 1, 1000)
plt.plot(tt, H_exp.operator_norm(tt))
#+end_src
#+RESULTS:
:RESULTS:
| <matplotlib.lines.Line2D | at | 0x7f67d7b16790> |
[[file:./.ob-jupyter/3881c6a1296c890600f44f323bf7cada34796a52.svg]]
:END:
** Hot Thermalization
#+begin_src jupyter-python
L_hot = SmoothStep(L_op, t_expansion, t_expansion + t_hot_switch, 2) - SmoothStep(
L_op, t_expansion + t_hot - t_hot_switch, t_expansion + t_hot, 2
)
plt.plot(tt, L_hot.operator_norm(tt))
#+end_src
#+RESULTS:
:RESULTS:
| <matplotlib.lines.Line2D | at | 0x7f67c9712d30> |
[[file:./.ob-jupyter/a8a9a5f92e8a831280abac54b86a8eadd04d250f.svg]]
:END:
** Compression
#+begin_src jupyter-python
H_comp = ConstantMatrix(H_op) - SmoothStep(comp_ratio * H_op, t_expansion + t_hot, t_expansion + t_hot + t_compression, 2)
plt.plot(tt, H_comp.operator_norm(tt))
#+end_src
#+RESULTS:
:RESULTS:
| <matplotlib.lines.Line2D | at | 0x7f67c968d460> |
[[file:./.ob-jupyter/8d1cc1652c0ecdb3dca2edebf34084aac2e294e8.svg]]
:END:
** Cold Thermalization
#+begin_src jupyter-python
L_cold = SmoothStep(L_op_2, t_expansion + t_hot + t_compression, t_expansion + t_hot + t_compression + t_cold_switch, 3) - SmoothStep(
L_op_2, t_expansion + t_hot + t_compression + t_cold - t_cold_switch, 1, 2
)
plt.plot(tt, L_cold.operator_norm(tt))
#+end_src
#+RESULTS:
:RESULTS:
| <matplotlib.lines.Line2D | at | 0x7f67c9670820> |
[[file:./.ob-jupyter/daaeec41ab4cf2b98f03da09f332c7306ea767d8.svg]]
:END:
** Full Cycle
Now we turn the system around after each fill-cycle.
#+begin_src jupyter-python
H_cyc = Periodic(Piecewise([H_exp, H_comp], [0, t_expansion, 1]), 1)
L = [Periodic(L_i, 1) for L_i in (L_cold, L_hot)]
period = 1
scale = .05
H_cyc, *L = [ScaleTime(op, scale) for op in [H_cyc, *L]]
ω_mod = 2*np.pi / (period) * scale
ω_mod
t_cycle = period/scale
periods = 8
t_max = t_cycle * periods
dt = .1
t = np.linspace(0, t_cycle, 1000)
plt.plot(t, H_cyc.operator_norm(t) - 1, label=r"$f(\tau)$")
plt.plot(t, L[0].operator_norm(t) * 2, label=r"$h_{c}(\tau)$")
plt.plot(t, L[1].operator_norm(t) * 2, label=r"$h_{h}(\tau)$")
plt.xlabel(r"$\tau$")
plt.legend()
fs.export_fig("modulation", x_scaling=.5, y_scaling=.35)
#+end_src
#+RESULTS:
[[file:./.ob-jupyter/e48d9ad285307403060fc060162f096c7c46ba4d.svg]]
** Shifts
#+begin_src jupyter-python
from scipy.optimize import minimize_scalar
ref_model = QubitModelMutliBath(
ω_c=[1] * 2,
T=[1, 20],
)
shifts = []
scales = []
for i, t_exp in enumerate([0, t_expansion / scale]):
ω_exp = H_cyc.operator_norm(i * t_cycle / 3)
print(ω_exp)
def objective(ω_s):
ref_model.ω_s[i] = ω_s
return -ref_model.full_thermal_spectral_density(i)(ω_exp)
res = minimize_scalar(
objective, 1, method="bounded", bounds=(0.01, ω_exp), options=dict(maxiter=100)
)
shifts.append(res.x)
scales.append(-res.fun)
ω = np.linspace(0.01, 3, 1000)
lines = plt.plot(
ω,
ref_model.full_thermal_spectral_density(i)(ω) / -res.fun,
label=["Cold", "Hot"][i],
)
plt.plot(
ω_exp,
ref_model.full_thermal_spectral_density(i)(ω_exp) / -res.fun,
marker="o",
color=lines[0].get_color(),
)
plt.legend()
plt.xlabel(r"$\omega$")
plt.ylabel("Arbitrary Units")
print(shifts, scales)
fs.export_fig("spectral_densities", x_scaling=.5, y_scaling=.35)
shifts = [0.01000577876575025, 1.0000001111768948]
scales = [0.5819473793333508, 3.865799283487837]
#+end_src
#+RESULTS:
:RESULTS:
: 1.0
: 2.0
: [0.01000577876575025, 1.0000001111768948] [0.5819473793333508, 3.865799283487837]
[[file:./.ob-jupyter/388a36ef461b90e864fa2e9850f2127b9d48b5b1.svg]]
:END:
* Model
#+begin_src jupyter-python :results none
model = QubitModelMutliBath(
δ=list(1/np.array(scales) * .1/2),#[.05*4, .01*4],
ω_c=ref_model.ω_c,
ω_s=shifts,#[H_cyc.operator_norm(0) - 1, H_cyc.operator_norm(t_expansion/scale) - 1],
t=ut.linspace_with_strobe(0, t_max, int(t_max // dt), ω_mod),
ψ_0=(qt.basis([2], [0])*0 + qt.basis([2], [1])*1),
description=f"A simple otto cycle.",
k_max=4,
bcf_terms=[6]*2,
truncation_scheme="simplex",
driving_process_tolerances=[StocProcTolerances(1e-3, 1e-3)] * 2,
thermal_process_tolerances=[StocProcTolerances(1e-3, 1e-3)] * 2,
T = ref_model.T, #= [1, 20],
L = [ConstantMatrix(L_op), ConstantMatrix(L_op_2)],
H = H_cyc,
therm_methods=["fft", "fft"],
)
#+end_src
#+begin_src jupyter-python
aux.integrate(model, 10000)
#+end_src
#+RESULTS:
:RESULTS:
#+begin_example
[INFO hops.core.integration 472774] Using 24 integrators.
[INFO hops.core.integration 472774] Some 1000 trajectories have to be integrated.
[INFO hops.core.integration 472774] Using 1820 hierarchy states.
100% 1000/1000 [06:50<00:00, 2.44it/s]
[INFO hops.core.integration 472774] Choosing the nonlinear integrator.
[INFO hops.core.integration 472774] Using 24 integrators.
[INFO hops.core.integration 472774] Some 9000 trajectories have to be integrated.
[INFO hops.core.integration 472774] Using 1820 hierarchy states.
67% 6025/9000 [40:11<19:50, 2.50it/s][INFO hops.core.signal_delay 472774] caught sig 'SIGINT'
67% 6031/9000 [40:15<19:49, 2.50it/s]
2022-09-01 12:51:33,312 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,314 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,315 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,317 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,318 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,320 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,321 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,323 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,324 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,329 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,332 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,335 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,336 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,339 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,342 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,344 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,345 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,346 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,348 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,349 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,350 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,351 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
2022-09-01 12:51:33,353 ERROR worker.py:94 -- Unhandled error (suppress with 'RAY_IGNORE_UNHANDLED_ERRORS=1'): The worker died unexpectedly while executing this task. Check python-core-worker-*.log files for more information.
[INFO hops.core.signal_delay 472774] caught 1 signal(s)
[INFO hops.core.signal_delay 472774] emit signal 'SIGINT'
#+end_example
# [goto error]
#+begin_example
---------------------------------------------------------------------------
KeyboardInterrupt Traceback (most recent call last)
Input In [24], in <cell line: 1>()
----> 1 aux.integrate(model, 10000)
File ~/src/two_qubit_model/hiro_models/model_auxiliary.py:110, in integrate(model, n, data_path, clear_pd)
 100 # with model_db(data_path) as db:
 101 # if hash in db and "data" db[hash]
 103 supervisor = HOPSSupervisor(
 104 model.hops_config,
 105 n,
 106 data_path=data_path,
 107 data_name=hash,
 108 )
--> 110 supervisor.integrate(clear_pd)
 112 with supervisor.get_data(True) as data:
 113 with model_db(data_path) as db:
File ~/src/hops/hops/core/integration.py:1288, in HOPSSupervisor.integrate(self, clear_pd)
 1285 break
 1287 integration.update()
-> 1288 data.new_samples(
 1289 idx=index,
 1290 incomplete=incomplete,
 1291 psi0=psi0,
 1292 aux_states=aux_states,
 1293 stoc_proc=stoc_proc,
 1294 result_type=self.params.HiP.result_type,
 1295 normed=self._normed_average,
 1296 rng_seed=seed,
 1297 )
File ~/src/hops/hops/core/signal_delay.py:87, in sig_delay.__exit__(self, exc_type, exc_val, exc_tb)
 84 if len(self.sigh.sigs_caught) > 0 and self.handler is not None:
 85 self.handler(self.sigh.sigs_caught)
---> 87 self._restore()
File ~/src/hops/hops/core/signal_delay.py:68, in sig_delay._restore(self)
 66 for i, s in enumerate(self.sigs):
 67 signal.signal(s, self.old_handlers[i])
---> 68 self.sigh.emit()
File ~/src/hops/hops/core/signal_delay.py:42, in SigHandler.emit(self)
 40 for s in self.sigs_caught:
 41 log.info("emit signal '{}'".format(SIG_MAP[s]))
---> 42 os.kill(os.getpid(), s)
KeyboardInterrupt:
#+end_example
:END:
#+begin_src jupyter-python
model.full_thermal_bcf(0)(0) * model.bcf_scales[0]
#+end_src
#+RESULTS:
| 0.37969344545116374+0j |
#+begin_src jupyter-python
f, a = pu.plot_energy_overview(model, strobe_frequency=ω_mod, hybrid=True, bath_names=["C","H"])
# a.plot(model.t, model.L[0].operator_norm(model.t))
# a.plot(model.t, model.L[1].operator_norm(model.t))
a.set_xlabel(r"$\tau$")
a.legend()
fs.export_fig("energy_strobe_continuous", y_scaling=.6)
#+end_src
#+RESULTS:
[[file:./.ob-jupyter/1923d2fe4898092052cb87ef9f4d3f83f90c9829.svg]]
#+begin_src jupyter-python
fig, ax = plt.subplots()
with aux.get_data(model) as data:
power = model.interaction_power(data).sum_baths()
power_sys = model.system_power(data).sum_baths()
energy = model.total_energy_from_power(data)
ax.plot([], [])
pu.plot_with_σ(model.t, power_sys, ax=ax, label="System")
ax.legend()
ax.set_title("Power")
ax.set_xlabel(r"$\tau$")
fs.export_fig("power_continuous", y_scaling=0.4)
#+end_src
#+RESULTS:
[[file:./.ob-jupyter/c1bd0d8af02b19644d1e6734ab62579d3f62c6b8.svg]]
#+begin_src jupyter-python
steady_index = 2
cycle_times, cycle_indices = ut.strobe_times(model.t, ω_mod)
with aux.get_data(model) as data:
total_energies = model.total_energy_from_power(data).slice(
cycle_indices[steady_index:]
)
hot_bath_energies = (
model.bath_energy(data).for_bath(1).slice(cycle_indices[steady_index:])
)
e_diff = total_energies.slice(0) - total_energies.slice(-1)
mean_power = e_diff * (1 / (model.t[-1] - cycle_times[steady_index]))
efficiency = e_diff * (
1 / (hot_bath_energies.slice(0) - hot_bath_energies.slice(-1)).value
)
mean_power.value, mean_power.σ, efficiency.value
fs.tex_value(mean_power.value, err=mean_power.σ, prefix=r"\bar{P}="), fs.tex_value(
efficiency.value * 100, prefix=r"η=", suffix=r"\%"
)
#+end_src
#+RESULTS:
| \(\bar{P}=0.001280\pm 0.000018\) | \(η=4\%\) |
#+begin_src jupyter-python
with aux.get_data(model) as data:
ρ = data.rho_t_accum.mean[:]
σ_ρ = data.rho_t_accum.ensemble_std[:]
plt.plot(model.t[100:], abs(ρ[100:, 0, 1]) / abs(ρ[100:, 0, 0]))
plt.yscale("log")
plt.xlabel(r"$\tau$")
plt.ylabel(r"$|\rho_{01}| / \rho_{00}$")
fs.export_fig("coherences")
xs = np.einsum("tij,ji->t", ρ, qt.sigmax().full())
ys = np.einsum("tij,ji->t", ρ, qt.sigmay().full())
zs = np.einsum("tij,ji->t", ρ, qt.sigmaz().full())
#+end_src
#+RESULTS:
[[file:./.ob-jupyter/248a8051f703aa359f429c45da6aef5897840514.svg]]
#+begin_src jupyter-python
steady_index = 1
cycle_times, cycle_indices = ut.strobe_times(model.t, ω_mod)
with aux.get_data(model) as data:
hot_bath_energies = (
model.bath_energy(data).for_bath(1).slice(cycle_indices[steady_index:])
)
cold_bath_energies = (
model.bath_energy(data).for_bath(0).slice(cycle_indices[steady_index:])
)
hot_diff = (hot_bath_energies.slice(slice(1,-1, 1)) - hot_bath_energies.slice(slice(0,-2, 1))) * (1/model.T[1])
cold_diff = (cold_bath_energies.slice(slice(1,-1, 1)) - cold_bath_energies.slice(slice(0,-2, 1))) * (1/model.T[0])
gibbs = hot_diff.mean + cold_diff.mean
print(fs.tex_value(gibbs.value, err=gibbs.σ))
print(gibbs.value / gibbs.σ)
#+end_src
#+RESULTS:
: \(0.6198\pm 0.0021\)
: 299.1098863449865
#+begin_src jupyter-python
b = qt.Bloch()
b.add_points([xs, ys, zs])
b.view = [20, 20]
b.point_size = [0.01]
b.sphere_alpha = 0.01
b.render()
# fs.export_fig("bloch", fig=b.fig)
b.fig
#+end_src
#+RESULTS:
:RESULTS:
: /nix/store/9fp3glm79h56gz17w052rlqw3gwcza7i-python3-3.9.13-env/lib/python3.9/site-packages/IPython/core/pylabtools.py:151: UserWarning: There are no gridspecs with layoutgrids. Possibly did not call parent GridSpec with the "figure" keyword
: fig.canvas.print_figure(bytes_io, **kw)
[[file:./.ob-jupyter/d500fa74b313f80e765d832c14618e0311e6ae26.svg]]
:END:

View file

@ -24,7 +24,7 @@ Init ray and silence stocproc.
#+end_src
#+RESULTS:
: RayContext(dashboard_url='', python_version='3.9.13', ray_version='1.13.0', ray_commit='e4ce38d001dbbe09cd21c497fedd03d692b2be3e', address_info={'node_ip_address': '141.30.17.225', 'raylet_ip_address': '141.30.17.225', 'redis_address': None, 'object_store_address': '/tmp/ray/session_2022-08-25_14-28-33_210699_311404/sockets/plasma_store', 'raylet_socket_name': '/tmp/ray/session_2022-08-25_14-28-33_210699_311404/sockets/raylet', 'webui_url': '', 'session_dir': '/tmp/ray/session_2022-08-25_14-28-33_210699_311404', 'metrics_export_port': 51335, 'gcs_address': '141.30.17.225:49191', 'address': '141.30.17.225:49191', 'node_id': 'f56218ac6f7953fb2918fe3d9901e37b9d6eb39dbcb570c6f6b3d37b'})
: RayContext(dashboard_url='', python_version='3.9.13', ray_version='1.13.0', ray_commit='e4ce38d001dbbe09cd21c497fedd03d692b2be3e', address_info={'node_ip_address': '141.30.17.225', 'raylet_ip_address': '141.30.17.225', 'redis_address': None, 'object_store_address': '/tmp/ray/session_2022-08-31_16-13-49_406995_81357/sockets/plasma_store', 'raylet_socket_name': '/tmp/ray/session_2022-08-31_16-13-49_406995_81357/sockets/raylet', 'webui_url': '', 'session_dir': '/tmp/ray/session_2022-08-31_16-13-49_406995_81357', 'metrics_export_port': 53031, 'gcs_address': '141.30.17.225:48046', 'address': '141.30.17.225:48046', 'node_id': 'ee259897128c1f933240fc43cc27f9c53503a2813340d340a649383c'})
#+begin_src jupyter-python :results none
from hops.util.logging_setup import logging_setup
@ -76,8 +76,8 @@ Let's lay down some basic functionality.
#+RESULTS:
:RESULTS:
| <matplotlib.lines.Line2D | at | 0x7f08c50754c0> |
[[file:./.ob-jupyter/1fdbf5e8f0e4baea901a45cd3b8e07fdffa55dc0.svg]]
| <matplotlib.lines.Line2D | at | 0x7f7dbad918e0> |
[[file:./.ob-jupyter/8d84ee4e94b1da8212a9743e74031d0de30409c8.svg]]
:END:
** Hot Thermalization
@ -90,8 +90,8 @@ Let's lay down some basic functionality.
#+RESULTS:
:RESULTS:
| <matplotlib.lines.Line2D | at | 0x7f08b69cbe50> |
[[file:./.ob-jupyter/c329795210622a56c5cc54daccb1843b5adc48ca.svg]]
| <matplotlib.lines.Line2D | at | 0x7f7dbc933ee0> |
[[file:./.ob-jupyter/d356101136a1a781207e8ebd8d7eff13b68887c9.svg]]
:END:
** Compression
@ -102,8 +102,8 @@ Let's lay down some basic functionality.
#+RESULTS:
:RESULTS:
| <matplotlib.lines.Line2D | at | 0x7f08b69454f0> |
[[file:./.ob-jupyter/7ed97af88f090ad1bb3b943711a34408dc1a9072.svg]]
| <matplotlib.lines.Line2D | at | 0x7f7dbac86ee0> |
[[file:./.ob-jupyter/76974bf650add560ccc03e012578ed902fc5bb5e.svg]]
:END:
** Cold Thermalization
@ -116,8 +116,8 @@ Let's lay down some basic functionality.
#+RESULTS:
:RESULTS:
| <matplotlib.lines.Line2D | at | 0x7f08b692ca90> |
[[file:./.ob-jupyter/b429a448a8d92927925baa9ce7d054721d70a9e1.svg]]
| <matplotlib.lines.Line2D | at | 0x7f7dba9ae670> |
[[file:./.ob-jupyter/3ed7dd6e3a5c05c6b241e4297ee268aee47fdf3b.svg]]
:END:
** Full Cycle
@ -139,15 +139,15 @@ Now we turn the system around after each fill-cycle.
t = np.linspace(0, t_cycle, 1000)
plt.plot(t, H_cyc.operator_norm(t) - 1, label=r"$f(\tau)$")
plt.plot(t, L[0].operator_norm(t) * 2, label=r"$g_{c}(\tau)$")
plt.plot(t, L[1].operator_norm(t) * 2, label=r"$g_{h}(\tau)$")
plt.plot(t, L[0].operator_norm(t) * 2, label=r"$h_{c}(\tau)$")
plt.plot(t, L[1].operator_norm(t) * 2, label=r"$h_{h}(\tau)$")
plt.xlabel(r"$\tau$")
plt.legend()
fs.export_fig("modulation", x_scaling=.5, y_scaling=.35)
#+end_src
#+RESULTS:
[[file:./.ob-jupyter/5c1a8c11fde4110a9bba10a2d2b1da3401ec327a.svg]]
[[file:./.ob-jupyter/90e7ba4c8592f0c233d87f7bfa533367dce77823.svg]]
** Shifts
#+begin_src jupyter-python
@ -191,9 +191,9 @@ Now we turn the system around after each fill-cycle.
plt.xlabel(r"$\omega$")
plt.ylabel("Arbitrary Units")
print(shifts, scales)
# fs.export_fig("spectral_densities", x_scaling=.5, y_scaling=.35)
# shifts = [0.010005778765750251, 0.5000003902186526]
# scales = [0.3656483223378975, 3.198956858189882]
fs.export_fig("spectral_densities", x_scaling=.5, y_scaling=.35)
shifts = [0.01000577876575025, 1.0000001111768948]
scales = [0.5819473793333508, 3.865799283487837]
#+end_src
#+RESULTS:
@ -201,7 +201,7 @@ Now we turn the system around after each fill-cycle.
: 1.0
: 2.0
: [0.01000577876575025, 1.0000001111768948] [0.5819473793333508, 3.865799283487837]
[[file:./.ob-jupyter/f64b53223d96a7adadf180096f9af5938cbb2d60.svg]]
[[file:./.ob-jupyter/c80e410ccf978d57f58fb423e1bb9c7d2da121f8.svg]]
:END:
@ -237,41 +237,37 @@ Now we turn the system around after each fill-cycle.
#+end_src
#+RESULTS:
| 0.6043008870314562+0j |
| 0.37969344545116374+0j |
#+begin_src jupyter-python
f, a = pu.plot_energy_overview(model, strobe_frequency=ω_mod, hybrid=True)
# a.plot(model.t, model.H.operator_norm(model.t))
f, a = pu.plot_energy_overview(model, strobe_frequency=ω_mod, hybrid=True, bath_names=["C","H"])
# a.plot(model.t, model.L[0].operator_norm(model.t))
# a.plot(model.t, model.L[1].operator_norm(model.t))
a.set_xlabel(r"$\tau$")
a.legend()
#fs.export_fig("energy_strobe", y_scaling=.6)
fs.export_fig("energy_strobe", y_scaling=.6)
#+end_src
#+RESULTS:
:RESULTS:
: <matplotlib.legend.Legend at 0x7f08af06dc70>
[[file:./.ob-jupyter/d00d2d44c36070dc6d2af0c0850f30355fd5bf36.svg]]
:END:
[[file:./.ob-jupyter/1995b28cb61148b2f5adcba1fed656a15f64d4ed.svg]]
#+begin_src jupyter-python
fig, ax = plt.subplots()
with aux.get_data(model) as data:
power = model.interaction_power(data).sum_baths()
power_sys = model.system_power(data).sum_baths()
energy = model.total_energy_from_power(data)
pu.plot_with_σ(model.t, power, ax=ax, label="Interaction")
pu.plot_with_σ(model.t, power_sys, ax=ax, label="System")
power = model.interaction_power(data).sum_baths()
power_sys = model.system_power(data).sum_baths()
energy = model.total_energy_from_power(data)
pu.plot_with_σ(model.t, power, ax=ax, label="Interaction")
pu.plot_with_σ(model.t, power_sys, ax=ax, label="System")
ax.legend()
ax.set_title("Power")
ax.set_xlabel(r"$\tau$")
fs.export_fig("power", y_scaling=.4)
fs.export_fig("power", y_scaling=0.4)
#+end_src
#+RESULTS:
[[file:./.ob-jupyter/a920807166eb55c5dcb225c6c41cd01ca5c2df89.svg]]
[[file:./.ob-jupyter/0574f89991f03ba304cb863e8950a13c89e211f8.svg]]
#+begin_src jupyter-python
@ -293,46 +289,97 @@ Now we turn the system around after each fill-cycle.
1 / (hot_bath_energies.slice(0) - hot_bath_energies.slice(-1)).value
)
mean_power.value, mean_power.σ, efficiency.value
fs.tex_value(mean_power.value, err=mean_power.σ, prefix=r"\bar{P}="), fs.tex_value(
efficiency.value * 100, prefix=r"η=", suffix=r"\%"
)
#+end_src
#+RESULTS:
| 0.0019806021074448648 | 2.3085106663538818e-05 | 0.1975630167587971 |
| \(\bar{P}=0.002468\pm 0.000021\) | \(η=29\%\) |
#+begin_src jupyter-python
steady_index = 3
cycle_times, cycle_indices = ut.strobe_times(model.t, ω_mod)
with aux.get_data(model) as data:
total_energies = model.energy_change_from_system_power(data).slice(
cycle_indices[steady_index:]
)
hot_bath_energies = (
model.bath_energy(data).for_bath(1).slice(cycle_indices[steady_index:])
)
e_diff = total_energies.slice(0) - total_energies.slice(-1)
mean_power = e_diff * (1 / (model.t[-1] - cycle_times[steady_index]))
efficiency = e_diff * (
1 / (hot_bath_energies.slice(0) - hot_bath_energies.slice(-1)).value
)
fs.tex_value(mean_power.value, err=mean_power.σ, prefix=r"\bar{P}="), fs.tex_value(
efficiency.value * 100, prefix=r"η=", suffix=r"\%"
)
#+end_src
#+RESULTS:
| \(\bar{P}=0.004337\pm 0.000018\) | \(η=52\%\) |
#+begin_src jupyter-python
with aux.get_data(model) as data:
ρ = data.rho_t_accum.mean[:]
σ_ρ = data.rho_t_accum.ensemble_std[:]
plt.plot(model.t, ρ[:, 0, 0])
plt.plot(model.t[100:], abs(ρ[100:, 0, 1]) / abs(ρ[100:, 0, 0]))
plt.yscale("log")
plt.xlabel(r"$\tau$")
plt.ylabel(r"$|\rho_{01}| / \rho_{00}$")
fs.export_fig("coherences")
xs = np.einsum("tij,ji->t", ρ, qt.sigmax().full())
ys = np.einsum("tij,ji->t", ρ, qt.sigmay().full())
zs = np.einsum("tij,ji->t", ρ, qt.sigmaz().full())
#+end_src
#+RESULTS:
:RESULTS:
: /nix/store/9fp3glm79h56gz17w052rlqw3gwcza7i-python3-3.9.13-env/lib/python3.9/site-packages/matplotlib/cbook/__init__.py:1298: ComplexWarning: Casting complex values to real discards the imaginary part
: return np.asarray(x, float)
[[file:./.ob-jupyter/d7b074c74ef3761fe491ad92283655746125d59e.svg]]
:END:
[[file:./.ob-jupyter/d4d4877be23c1ab2702685d16a8e4a1ba1594347.svg]]
#+begin_src jupyter-python
steady_index = 3
cycle_times, cycle_indices = ut.strobe_times(model.t, ω_mod)
with aux.get_data(model) as data:
hot_bath_energies = (
model.bath_energy(data).for_bath(1).slice(cycle_indices[steady_index:])
)
cold_bath_energies = (
model.bath_energy(data).for_bath(0).slice(cycle_indices[steady_index:])
)
hot_diff = (hot_bath_energies.slice(slice(1,-1, 1)) - hot_bath_energies.slice(slice(0,-2, 1))) * (1/model.T[1])
cold_diff = (cold_bath_energies.slice(slice(1,-1, 1)) - cold_bath_energies.slice(slice(0,-2, 1))) * (1/model.T[0])
gibbs = hot_diff.mean + cold_diff.mean
print(fs.tex_value(gibbs.value, err=gibbs.σ))
print(gibbs.value / gibbs.σ)
#+end_src
#+RESULTS:
: \(0.1096\pm 0.0008\)
: 137.4959836253038
#+begin_src jupyter-python
%matplotlib inline
b = qt.Bloch()
b.add_points([xs, ys, zs])
b.view = [20, 20]
b.point_size = [0.1]
b.sphere_alpha = 0.1
b.size = [20, 20]
b.point_size = [0.01]
b.sphere_alpha = 0.01
b.render()
b.fig
fs.export_fig("bloch", fig=b.fig)
#+end_src
#+RESULTS:
:RESULTS:
: /nix/store/9fp3glm79h56gz17w052rlqw3gwcza7i-python3-3.9.13-env/lib/python3.9/site-packages/qutip/bloch.py:639: UserWarning: There are no gridspecs with layoutgrids. Possibly did not call parent GridSpec with the "figure" keyword
: self.fig.canvas.draw()
: /nix/store/9fp3glm79h56gz17w052rlqw3gwcza7i-python3-3.9.13-env/lib/python3.9/site-packages/IPython/core/pylabtools.py:151: UserWarning: There are no gridspecs with layoutgrids. Possibly did not call parent GridSpec with the "figure" keyword
: fig.canvas.print_figure(bytes_io, **kw)
[[file:./.ob-jupyter/072aab236948e2e79dc6a892c44f33144b4fd2d9.svg]]
:END:

View file

@ -2,11 +2,11 @@
"nodes": {
"flake-utils": {
"locked": {
"lastModified": 1656928814,
"narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=",
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {
@ -17,11 +17,11 @@
},
"flake-utils_2": {
"locked": {
"lastModified": 1656928814,
"narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=",
"lastModified": 1659877975,
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249",
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
"type": "github"
},
"original": {
@ -32,11 +32,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1660305968,
"narHash": "sha256-r0X1pZCSEA6mzt5OuTA7nHuLmvnbkwgpFAh1iLIx4GU=",
"lastModified": 1664281702,
"narHash": "sha256-haixZ4TJLu1Dciow54wrHrHvlGDVr5sW6MTeAV/ZLuI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c4a0efdd5a728e20791b8d8d2f26f90ac228ee8d",
"rev": "7e52b35fe98481a279d89f9c145f8076d049d2b9",
"type": "github"
},
"original": {
@ -47,11 +47,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1658311025,
"narHash": "sha256-GqagY5YmaZB3YaO41kKcQhe5RcpS83wnsW8iCu5Znqo=",
"lastModified": 1660546381,
"narHash": "sha256-rEzCjeWVGhK5AyHxm1zet0lF6+AVSW3JuU5LAU2SMYU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "cd8d1784506a7c7eb0796772b73437e0b82fad57",
"rev": "eb642f80f9aecc19312909e08601a3c2020b5ce2",
"type": "github"
},
"original": {
@ -66,11 +66,11 @@
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1657626303,
"narHash": "sha256-O/JJ0hSBCmlx0oP8QGAlRrWn0BvlC5cj7/EZ0CCWHTU=",
"lastModified": 1660542485,
"narHash": "sha256-XfklMwJMLB7bLI5ZnQTrNaK7KyBnElLGoWOL++XO3zk=",
"owner": "nix-community",
"repo": "poetry2nix",
"rev": "920ba682377d5c0d87945c5eb6141ab8447ca509",
"rev": "8b6239cf2ded121f8f3d570d2563d69f05d4208f",
"type": "github"
},
"original": {
@ -94,11 +94,11 @@
"poetry2nix": "poetry2nix"
},
"locked": {
"lastModified": 1658314126,
"narHash": "sha256-rEoZSb8bBafEd6m3xu/yQtSFlP8GZxKN15YqMZkeMaQ=",
"lastModified": 1660547406,
"narHash": "sha256-ZRLGxqHmX5xtCBPCt1pb2E3Z70IEmMT3TA+JruosF4Q=",
"owner": "vale981",
"repo": "hiro-flake-utils",
"rev": "316cd25ffd9d7afd331cbbc1429f62f30567e288",
"rev": "dd1e89c5fabbca9a3dbec91cab3e3e3867da10fc",
"type": "github"
},
"original": {

View file

@ -69,8 +69,8 @@ dt = .1
t = np.linspace(0, t_cycle, 1000)
plt.plot(t, H_cyc.operator_norm(t) - 1, label=r"$f(\tau)$")
plt.plot(t, L[0].operator_norm(t) * 2, label=r"$g_{c}(\tau)$")
plt.plot(t, L[1].operator_norm(t) * 2, label=r"$g_{h}(\tau)$")
plt.plot(t, L[0].operator_norm(t) * 2, label=r"$h_{c}(\tau)$")
plt.plot(t, L[1].operator_norm(t) * 2, label=r"$h_{h}(\tau)$")
plt.xlabel(r"$\tau$")
plt.legend()
fs.export_fig("modulation", x_scaling=.5, y_scaling=.35)
@ -115,9 +115,9 @@ plt.legend()
plt.xlabel(r"$\omega$")
plt.ylabel("Arbitrary Units")
print(shifts, scales)
# fs.export_fig("spectral_densities", x_scaling=.5, y_scaling=.35)
# shifts = [0.010005778765750251, 0.5000003902186526]
# scales = [0.3656483223378975, 3.198956858189882]
fs.export_fig("spectral_densities", x_scaling=.5, y_scaling=.35)
shifts = [0.01000577876575025, 1.0000001111768948]
scales = [0.5819473793333508, 3.865799283487837]
model = QubitModelMutliBath(
δ=list(1/np.array(scales) * .1/2),#[.05*4, .01*4],
@ -141,26 +141,25 @@ aux.integrate(model, 10000)
model.full_thermal_bcf(0)(0) * model.bcf_scales[0]
f, a = pu.plot_energy_overview(model, strobe_frequency=ω_mod, hybrid=True)
# a.plot(model.t, model.H.operator_norm(model.t))
f, a = pu.plot_energy_overview(model, strobe_frequency=ω_mod, hybrid=True, bath_names=["C","H"])
# a.plot(model.t, model.L[0].operator_norm(model.t))
# a.plot(model.t, model.L[1].operator_norm(model.t))
a.set_xlabel(r"$\tau$")
a.legend()
#fs.export_fig("energy_strobe", y_scaling=.6)
fs.export_fig("energy_strobe", y_scaling=.6)
fig, ax = plt.subplots()
with aux.get_data(model) as data:
power = model.interaction_power(data).sum_baths()
power_sys = model.system_power(data).sum_baths()
energy = model.total_energy_from_power(data)
pu.plot_with_σ(model.t, power, ax=ax, label="Interaction")
pu.plot_with_σ(model.t, power_sys, ax=ax, label="System")
power = model.interaction_power(data).sum_baths()
power_sys = model.system_power(data).sum_baths()
energy = model.total_energy_from_power(data)
pu.plot_with_σ(model.t, power, ax=ax, label="Interaction")
pu.plot_with_σ(model.t, power_sys, ax=ax, label="System")
ax.legend()
ax.set_title("Power")
ax.set_xlabel(r"$\tau$")
fs.export_fig("power", y_scaling=.4)
fs.export_fig("power", y_scaling=0.4)
steady_index = 3
cycle_times, cycle_indices = ut.strobe_times(model.t, ω_mod)
@ -181,19 +180,67 @@ efficiency = e_diff * (
)
mean_power.value, mean_power.σ, efficiency.value
fs.tex_value(mean_power.value, err=mean_power.σ, prefix=r"\bar{P}="), fs.tex_value(
efficiency.value * 100, prefix=r"η=", suffix=r"\%"
)
steady_index = 3
cycle_times, cycle_indices = ut.strobe_times(model.t, ω_mod)
with aux.get_data(model) as data:
total_energies = model.energy_change_from_system_power(data).slice(
cycle_indices[steady_index:]
)
hot_bath_energies = (
model.bath_energy(data).for_bath(1).slice(cycle_indices[steady_index:])
)
e_diff = total_energies.slice(0) - total_energies.slice(-1)
mean_power = e_diff * (1 / (model.t[-1] - cycle_times[steady_index]))
efficiency = e_diff * (
1 / (hot_bath_energies.slice(0) - hot_bath_energies.slice(-1)).value
)
fs.tex_value(mean_power.value, err=mean_power.σ, prefix=r"\bar{P}="), fs.tex_value(
efficiency.value * 100, prefix=r"η=", suffix=r"\%"
)
with aux.get_data(model) as data:
ρ = data.rho_t_accum.mean[:]
σ_ρ = data.rho_t_accum.ensemble_std[:]
plt.plot(model.t, ρ[:, 0, 0])
plt.plot(model.t[100:], abs(ρ[100:, 0, 1]) / abs(ρ[100:, 0, 0]))
plt.yscale("log")
plt.xlabel(r"$\tau$")
plt.ylabel(r"$|\rho_{01}| / \rho_{00}$")
fs.export_fig("coherences")
xs = np.einsum("tij,ji->t", ρ, qt.sigmax().full())
ys = np.einsum("tij,ji->t", ρ, qt.sigmay().full())
zs = np.einsum("tij,ji->t", ρ, qt.sigmaz().full())
steady_index = 3
cycle_times, cycle_indices = ut.strobe_times(model.t, ω_mod)
with aux.get_data(model) as data:
hot_bath_energies = (
model.bath_energy(data).for_bath(1).slice(cycle_indices[steady_index:])
)
cold_bath_energies = (
model.bath_energy(data).for_bath(0).slice(cycle_indices[steady_index:])
)
hot_diff = (hot_bath_energies.slice(slice(1,-1, 1)) - hot_bath_energies.slice(slice(0,-2, 1))) * (1/model.T[1])
cold_diff = (cold_bath_energies.slice(slice(1,-1, 1)) - cold_bath_energies.slice(slice(0,-2, 1))) * (1/model.T[0])
gibbs = hot_diff.mean + cold_diff.mean
print(fs.tex_value(gibbs.value, err=gibbs.σ))
print(gibbs.value / gibbs.σ)
%matplotlib inline
b = qt.Bloch()
b.add_points([xs, ys, zs])
b.view = [20, 20]
b.point_size = [0.1]
b.sphere_alpha = 0.1
b.size = [20, 20]
b.point_size = [0.01]
b.sphere_alpha = 0.01
b.render()
b.fig
fs.export_fig("bloch", fig=b.fig)

View file

@ -0,0 +1,226 @@
import figsaver as fs
import plot_utils as pu
from hiro_models.one_qubit_model import QubitModelMutliBath, StocProcTolerances
import hiro_models.model_auxiliary as aux
import numpy as np
import qutip as qt
import utilities as ut
import stocproc
import matplotlib.pyplot as plt
import ray
ray.shutdown()
ray.init(address="141.30.17.16:6379")
# ray.init(address='auto')
# ray.init()
from hops.util.logging_setup import logging_setup
import logging
logging_setup(logging.INFO)
from hops.util.dynamic_matrix import SmoothStep, Periodic, ConstantMatrix, ScaleTime, Shift, Piecewise
H_op = 2*(1/2 * (qt.sigmaz() + qt.identity(2))).full()
L_op = (1/2 * qt.sigmax()).full()
L_op_2 = (1/2 * qt.sigmax()).full()
print(H_op, L_op, sep="\n")
t_compression = .1
t_expansion = .1
comp_ratio = .5
hot_switch_ratio = .8
cold_switch_ratio = .8
t_hot = (1 - t_expansion - t_compression) / 2
t_hot_switch = t_hot * hot_switch_ratio / 2
t_cold = (1 - t_expansion - t_compression) / 2
t_cold_switch = t_cold * cold_switch_ratio / 2
t = np.linspace(0, 10, 1000)
H_exp = SmoothStep(comp_ratio * H_op, 0, t_expansion, 2) + H_op * (1 - comp_ratio)
tt = np.linspace(0, 1, 1000)
plt.plot(tt, H_exp.operator_norm(tt))
L_hot = SmoothStep(L_op, t_expansion, t_expansion + t_hot_switch, 2) - SmoothStep(
L_op, t_expansion + t_hot - t_hot_switch, t_expansion + t_hot, 2
)
plt.plot(tt, L_hot.operator_norm(tt))
H_comp = ConstantMatrix(H_op) - SmoothStep(comp_ratio * H_op, t_expansion + t_hot, t_expansion + t_hot + t_compression, 2)
plt.plot(tt, H_comp.operator_norm(tt))
L_cold = SmoothStep(L_op_2, t_expansion + t_hot + t_compression, t_expansion + t_hot + t_compression + t_cold_switch, 3) - SmoothStep(
L_op_2, t_expansion + t_hot + t_compression + t_cold - t_cold_switch, 1, 2
)
plt.plot(tt, L_cold.operator_norm(tt))
H_cyc = Periodic(Piecewise([H_exp, H_comp], [0, t_expansion, 1]), 1)
L = [Periodic(L_i, 1) for L_i in (L_cold, L_hot)]
period = 1
scale = .05
H_cyc, *L = [ScaleTime(op, scale) for op in [H_cyc, *L]]
ω_mod = 2*np.pi / (period) * scale
ω_mod
t_cycle = period/scale
periods = 8
t_max = t_cycle * periods
dt = .1
t = np.linspace(0, t_cycle, 1000)
plt.plot(t, H_cyc.operator_norm(t) - 1, label=r"$f(\tau)$")
plt.plot(t, L[0].operator_norm(t) * 2, label=r"$h_{c}(\tau)$")
plt.plot(t, L[1].operator_norm(t) * 2, label=r"$h_{h}(\tau)$")
plt.xlabel(r"$\tau$")
plt.legend()
fs.export_fig("modulation", x_scaling=.5, y_scaling=.35)
from scipy.optimize import minimize_scalar
ref_model = QubitModelMutliBath(
ω_c=[1] * 2,
T=[1, 20],
)
shifts = []
scales = []
for i, t_exp in enumerate([0, t_expansion / scale]):
ω_exp = H_cyc.operator_norm(i * t_cycle / 3)
print(ω_exp)
def objective(ω_s):
ref_model.ω_s[i] = ω_s
return -ref_model.full_thermal_spectral_density(i)(ω_exp)
res = minimize_scalar(
objective, 1, method="bounded", bounds=(0.01, ω_exp), options=dict(maxiter=100)
)
shifts.append(res.x)
scales.append(-res.fun)
ω = np.linspace(0.01, 3, 1000)
lines = plt.plot(
ω,
ref_model.full_thermal_spectral_density(i)(ω) / -res.fun,
label=["Cold", "Hot"][i],
)
plt.plot(
ω_exp,
ref_model.full_thermal_spectral_density(i)(ω_exp) / -res.fun,
marker="o",
color=lines[0].get_color(),
)
plt.legend()
plt.xlabel(r"$\omega$")
plt.ylabel("Arbitrary Units")
print(shifts, scales)
fs.export_fig("spectral_densities", x_scaling=.5, y_scaling=.35)
shifts = [0.01000577876575025, 1.0000001111768948]
scales = [0.5819473793333508, 3.865799283487837]
model = QubitModelMutliBath(
δ=list(1/np.array(scales) * .1/2),#[.05*4, .01*4],
ω_c=ref_model.ω_c,
ω_s=shifts,#[H_cyc.operator_norm(0) - 1, H_cyc.operator_norm(t_expansion/scale) - 1],
t=ut.linspace_with_strobe(0, t_max, int(t_max // dt), ω_mod),
ψ_0=(qt.basis([2], [0])*0 + qt.basis([2], [1])*1),
description=f"A simple otto cycle.",
k_max=4,
bcf_terms=[6]*2,
truncation_scheme="simplex",
driving_process_tolerances=[StocProcTolerances(1e-3, 1e-3)] * 2,
thermal_process_tolerances=[StocProcTolerances(1e-3, 1e-3)] * 2,
T = ref_model.T, #= [1, 20],
L = [ConstantMatrix(L_op), ConstantMatrix(L_op_2)],
H = H_cyc,
therm_methods=["fft", "fft"],
)
aux.integrate(model, 10000)
model.full_thermal_bcf(0)(0) * model.bcf_scales[0]
f, a = pu.plot_energy_overview(model, strobe_frequency=ω_mod, hybrid=True, bath_names=["C","H"])
# a.plot(model.t, model.L[0].operator_norm(model.t))
# a.plot(model.t, model.L[1].operator_norm(model.t))
a.set_xlabel(r"$\tau$")
a.legend()
fs.export_fig("energy_strobe_continuous", y_scaling=.6)
fig, ax = plt.subplots()
with aux.get_data(model) as data:
power = model.interaction_power(data).sum_baths()
power_sys = model.system_power(data).sum_baths()
energy = model.total_energy_from_power(data)
ax.plot([], [])
pu.plot_with_σ(model.t, power_sys, ax=ax, label="System")
ax.legend()
ax.set_title("Power")
ax.set_xlabel(r"$\tau$")
fs.export_fig("power_continuous", y_scaling=0.4)
steady_index = 2
cycle_times, cycle_indices = ut.strobe_times(model.t, ω_mod)
with aux.get_data(model) as data:
total_energies = model.total_energy_from_power(data).slice(
cycle_indices[steady_index:]
)
hot_bath_energies = (
model.bath_energy(data).for_bath(1).slice(cycle_indices[steady_index:])
)
e_diff = total_energies.slice(0) - total_energies.slice(-1)
mean_power = e_diff * (1 / (model.t[-1] - cycle_times[steady_index]))
efficiency = e_diff * (
1 / (hot_bath_energies.slice(0) - hot_bath_energies.slice(-1)).value
)
mean_power.value, mean_power.σ, efficiency.value
fs.tex_value(mean_power.value, err=mean_power.σ, prefix=r"\bar{P}="), fs.tex_value(
efficiency.value * 100, prefix=r"η=", suffix=r"\%"
)
with aux.get_data(model) as data:
ρ = data.rho_t_accum.mean[:]
σ_ρ = data.rho_t_accum.ensemble_std[:]
plt.plot(model.t[100:], abs(ρ[100:, 0, 1]) / abs(ρ[100:, 0, 0]))
plt.yscale("log")
plt.xlabel(r"$\tau$")
plt.ylabel(r"$|\rho_{01}| / \rho_{00}$")
fs.export_fig("coherences")
xs = np.einsum("tij,ji->t", ρ, qt.sigmax().full())
ys = np.einsum("tij,ji->t", ρ, qt.sigmay().full())
zs = np.einsum("tij,ji->t", ρ, qt.sigmaz().full())
steady_index = 1
cycle_times, cycle_indices = ut.strobe_times(model.t, ω_mod)
with aux.get_data(model) as data:
hot_bath_energies = (
model.bath_energy(data).for_bath(1).slice(cycle_indices[steady_index:])
)
cold_bath_energies = (
model.bath_energy(data).for_bath(0).slice(cycle_indices[steady_index:])
)
hot_diff = (hot_bath_energies.slice(slice(1,-1, 1)) - hot_bath_energies.slice(slice(0,-2, 1))) * (1/model.T[1])
cold_diff = (cold_bath_energies.slice(slice(1,-1, 1)) - cold_bath_energies.slice(slice(0,-2, 1))) * (1/model.T[0])
gibbs = hot_diff.mean + cold_diff.mean
print(fs.tex_value(gibbs.value, err=gibbs.σ))
print(gibbs.value / gibbs.σ)
b = qt.Bloch()
b.add_points([xs, ys, zs])
b.view = [20, 20]
b.point_size = [0.01]
b.sphere_alpha = 0.01
b.render()
# fs.export_fig("bloch", fig=b.fig)
b.fig

File diff suppressed because it is too large Load diff

View file

@ -1,64 +1,17 @@
import figsaver as fs
from hiro_models.one_qubit_model import QubitModelMutliBath, StocProcTolerances
import hiro_models.model_auxiliary as aux
from hops.util.utilities import relative_entropy, relative_entropy_single, entropy, trace_distance
from hopsflow.util import EnsembleValue
import numpy as np
import qutip as qt
import scipy
import utilities as ut
from hops.util.dynamic_matrix import SmoothStep, Periodic, Harmonic, ConstantMatrix, Piecewise, Shift
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
import plot_utils as pu
import ray
ray.shutdown()
ray.init()
from hops.util.logging_setup import logging_setup
import logging
logging_setup(logging.INFO, show_stocproc=False)
from anti_zeno_engine import *
(
model,
params
) = anti_zeno_engine(
Δ=11,
ε=1,#.1,
ω_c=1,
ε_couple=.68,
n=35,
detune=.5,
ω_0=20,
T_c=5e3,
T_h=5e4,
δ=[3.2*.01/10, 1.08*.01/10],
γ=.2,
switch_cycles=1,
therm_initial_state=False,
ε_init=.001/2,
terms=7,
dt=0.01/2,
sp_tol=1e-4,
init_time_steps=10,
interpolation_multiplier=10,
)
model.k_max = 3
ts = model.t # np.linspace(0,10,1000)
proc = model.thermal_process(1)
import hops
z=hops.core.utility.uni_to_gauss(np.random.rand(proc.get_num_y() * 2))
proc.new_process(z)
pu.plot_complex(ts, proc(ts) * model.bcf_scales[1])
params.cycles
aux.integrate(model, 10)
%matplotlib tk
flow, interaction, int_pow, system, sys_pow = model.all_energies_online_from_cache()
fig, ax = plt.subplots()
print(sys_pow.N)
# pu.plot_with_σ(model.t, (sys_pow+int_pow.sum_baths()).integrate(model.t), ax=ax)
pu.plot_with_σ(model.t, (sys_pow+int_pow.sum_baths()), ax=ax)
# pu.plot_with_σ(model.t, (-1 * flow).sum_baths().integrate(model.t) + interaction.sum_baths() + system + 10, ax=ax)
# with aux.get_data(model) as data:
# #pu.plot_with_σ(model.t, model.total_energy_from_power(data), ax=ax)
# pu.plot_with_σ(model.t, model.interaction_energy(data).sum_baths() - interaction.sum_baths(), ax=ax)
# pu.plot_with_σ(model.t, model.interaction_power(data).sum_baths() - int_pow.sum_baths(), ax=ax)
# pu.plot_with_σ(model.t, model.system_energy(data).sum_baths() - system.sum_baths(), ax=ax)
# pu.plot_with_σ(model.t, model.system_power(data).sum_baths() - sys_pow.sum_baths(), ax=ax)
# pu.plot_with_σ(model.t, model.bath_energy_flow(data).sum_baths() - flow.sum_baths(), ax=ax)
plot_az_coupling_diagram(model, params)
@ -71,3 +24,5 @@ plot_excited_state(model, params, with_init=True)
plot_coherences(model, params)
plot_power_output(model, params, steady_index=0)
model.hexhash

View file

@ -0,0 +1,2 @@
from model_gap import *
print(model.all_energies_online("results.fifo"))

View file

@ -17,6 +17,7 @@ import figsaver as fs
import matplotlib.pyplot as plt
import hiro_models.model_auxiliary as aux
from hopsflow.util import EnsembleValue
from brokenaxes import brokenaxes
def anti_zeno_engine(
@ -44,6 +45,8 @@ def anti_zeno_engine(
sp_tol=1e-5,
init_time_steps=None,
interpolation_multiplier=1,
cut_end=False,
initial_gap=True,
):
# τ_bath = 1 / ω_c
τ_mod = 2 * np.pi / Δ
@ -89,7 +92,11 @@ def anti_zeno_engine(
int((τ_c + 2 * Δ_switch) / dt),
Δ,
),
np.linspace((τ_c + τ_off) * (i) + τ_c, (τ_c + τ_off) * (i + 1), 10),
np.linspace(
(τ_c + τ_off) * (i) + τ_c,
(τ_c + (τ_off if ((not cut_end) or i < (n - 1)) else 0)) * (i + 1),
10,
),
]
)
for i in range(n)
@ -100,7 +107,8 @@ def anti_zeno_engine(
initializing_period = (
int(-(np.log(ε_init) / (smallest_exponent * τ_mod) + 1)) * τ_mod
)
t_max += initializing_period + τ_off
τ_off_init = τ_off if initial_gap else 0
t_max += initializing_period + τ_off_init
H = Piecewise(
[
ω_0 * ConstantMatrix(H_mat)
@ -119,10 +127,10 @@ def anti_zeno_engine(
ω_0 * ConstantMatrix(H_mat),
Shift(
H,
initializing_period + τ_off,
initializing_period + τ_off_init,
),
],
[0, initializing_period, initializing_period + τ_off, np.inf],
[0, initializing_period, initializing_period + τ_off_init, np.inf],
)
L = Piecewise(
@ -145,13 +153,13 @@ def anti_zeno_engine(
ConstantMatrix(np.zeros((2, 2))),
Shift(
L,
initializing_period + τ_off,
initializing_period + τ_off_init,
),
],
[0, initializing_period, initializing_period + τ_off, np.inf],
[0, initializing_period, initializing_period + τ_off_init, np.inf],
)
ts = [times + initializing_period + τ_off for times in ts]
ts = [times + initializing_period + τ_off_init for times in ts]
ts.insert(
0,
np.concatenate(
@ -162,7 +170,9 @@ def anti_zeno_engine(
init_time_steps or int((initializing_period + Δ_switch) / (dt)),
Δ,
),
np.linspace(initializing_period, initializing_period + τ_off, 10),
np.linspace(
initializing_period, initializing_period + τ_off_init, 10
),
]
),
)
@ -214,6 +224,7 @@ def anti_zeno_engine(
τ_s=τ_mod,
λ=γ,
δ=detune,
τ_off_init=τ_off_init if ε_init else 0,
)
return (model, model_params)
@ -274,11 +285,25 @@ def plot_az_sd_overview(model, params, ax=None):
@wrap_plot
def plot_total_power(model, params, ax=None):
with aux.get_data(model) as data:
mask = model.t > params.τ_init
plot_with_σ(
model.t[mask], model.total_power(data, gc_sleep=0).slice(mask), ax=ax
)
flow, interaction, int_pow, system, sys_pow = model.all_energies_online_from_cache()
tot_power = (int_pow + sys_pow).sum_baths()
mask = model.t > params.τ_init
plot_with_σ(model.t[mask], tot_power.slice(mask), ax=ax)
@wrap_plot
def plot_flow(model, params, ax=None):
flow, interaction, int_pow, system, sys_pow = model.all_energies_online_from_cache()
mask = model.t > params.τ_init
plot_with_σ(
model.t[mask], flow.for_bath(0).slice(mask), ax=ax, label="cold", alpha=0.5
)
plot_with_σ(
model.t[mask], flow.for_bath(1).slice(mask), ax=ax, label="hot", alpha=0.5
)
ax.legend()
@wrap_plot
@ -319,11 +344,10 @@ def plot_coherences(model, params, ax=None):
)
def plot_power_output(model, params, steady_index=0):
fig, ax = plt.subplots()
def get_powers(model, params):
ts_begin = (
params.τ_init
+ params.τ_off
+ (params.τ_off_init)
+ ((params.τ_c + params.τ_off) * np.arange(0, params.n))
)
ts_end = params.τ_c + ts_begin
@ -333,9 +357,22 @@ def plot_power_output(model, params, steady_index=0):
ts_end = model.t[ind_end]
# #plt.plot(model.t, model.L[0].operator_norm(model.t))
flow, interaction, int_pow, system, sys_pow = model.all_energies_online_from_cache()
tot_power = (int_pow + sys_pow).sum_baths()
powers = []
with aux.get_data(model) as data:
tot_power = model.total_power(data, gc_sleep=0).sum_baths()
for begin, end in zip(ind_begin, ind_end):
part_power = (tot_power.slice(slice(begin, end))).mean
powers.append(part_power)
return powers, tot_power, (ts_begin, ts_end), (ind_begin, ind_end)
def plot_power_output(model, params, steady_index=0):
fig, ax = plt.subplots()
powers, tot_power, (ts_begin, ts_end), (ind_begin, ind_end) = get_powers(
model, params
)
for t in ts_begin:
plt.axvline(t, linestyle="dashed", color="orangered", linewidth=1)
@ -356,11 +393,7 @@ def plot_power_output(model, params, steady_index=0):
# ),
# )
powers = []
for begin, end in zip(ind_begin, ind_end):
part_power = (tot_power.slice(slice(begin, end))).mean
powers.append(part_power)
for begin, end, part_power in zip(ind_begin, ind_end, powers):
plot_with_σ(
model.t[[begin, end]],
EnsembleValue(
@ -372,7 +405,6 @@ def plot_power_output(model, params, steady_index=0):
color="black",
ax=ax,
)
power = sum(powers[steady_index:]) * (1 / (len(powers[steady_index:])))
ax.set_ylabel(r"$\langle{P}\rangle$")

View file

@ -0,0 +1,167 @@
#+PROPERTY: header-args :session 10_anti_zeno_engine_cc :kernel python :pandoc no :async yes :tangle 10_first_anti_zeno_cc.py
Here we try to reproduce the anti zeno engine from the paper.
* Boilerplate
#+begin_src jupyter-python :results none
import figsaver as fs
from hiro_models.one_qubit_model import QubitModelMutliBath, StocProcTolerances
import hiro_models.model_auxiliary as aux
from hops.util.utilities import relative_entropy, relative_entropy_single, entropy, trace_distance
from hopsflow.util import EnsembleValue
import numpy as np
import qutip as qt
import scipy
import utilities as ut
from hops.util.dynamic_matrix import SmoothStep, Periodic, Harmonic, ConstantMatrix, Piecewise, Shift
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
import plot_utils as pu
#+end_src
Init ray and silence stocproc.
#+begin_src jupyter-python
import ray
ray.shutdown()
ray.init()
#+end_src
#+RESULTS:
: RayContext(dashboard_url='', python_version='3.9.13', ray_version='1.13.0', ray_commit='e4ce38d001dbbe09cd21c497fedd03d692b2be3e', address_info={'node_ip_address': '141.30.17.225', 'raylet_ip_address': '141.30.17.225', 'redis_address': None, 'object_store_address': '/tmp/ray/session_2022-08-26_09-16-24_372243_434989/sockets/plasma_store', 'raylet_socket_name': '/tmp/ray/session_2022-08-26_09-16-24_372243_434989/sockets/raylet', 'webui_url': '', 'session_dir': '/tmp/ray/session_2022-08-26_09-16-24_372243_434989', 'metrics_export_port': 64820, 'gcs_address': '141.30.17.225:62541', 'address': '141.30.17.225:62541', 'node_id': 'b13e6e8fe3cb7e0a8e40b763d39febfe0bac4a37ea2d205950b6dc19'})
#+begin_src jupyter-python :results none
from hops.util.logging_setup import logging_setup
import logging
logging_setup(logging.INFO, show_stocproc=False)
#+end_src
* Model Definition
#+begin_src jupyter-python :results none
from anti_zeno_engine import *
#+end_src
#+begin_src jupyter-python
(
model,
params
) = anti_zeno_engine(
Δ=11,
ε=1,#.1,
ω_c=1,
ε_couple=.68,
n=35,
detune=.5,
ω_0=20,
T_c=5e3,
T_h=5e4,
δ=[3.2*.01/10, 1.08*.01/10],
γ=.2,
switch_cycles=1,
therm_initial_state=False,
ε_init=.000001/2,
terms=7,
dt=0.01/2,
sp_tol=1e-4,
init_time_steps=10,
interpolation_multiplier=10,
)
model.k_max = 3
#+end_src
#+RESULTS:
#+begin_src jupyter-python
ts = model.t # np.linspace(0,10,1000)
proc = model.thermal_process(1)
import hops
z=hops.core.utility.uni_to_gauss(np.random.rand(proc.get_num_y() * 2))
proc.new_process(z)
pu.plot_complex(ts, proc(ts) * model.bcf_scales[1])
#+end_src
#+RESULTS:
:RESULTS:
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:> |
[[file:./.ob-jupyter/458ed32f5b39dff70d717cc2593889573946a962.svg]]
:END:
#+begin_src jupyter-python
params.cycles
#+end_src
#+RESULTS:
: 10
#+begin_src jupyter-python
aux.integrate(model, 10)
#+end_src
#+RESULTS:
: [INFO hops.core.integration 14258] Choosing the nonlinear integrator.
: [INFO hops.core.integration 14258] Using 8 integrators.
: [INFO hops.core.integration 14258] Some 9 trajectories have to be integrated.
: [INFO hops.core.integration 14258] Using 680 hierarchy states.
: 0% 0/9 [00:00<?, ?it/s]
#+begin_src jupyter-python
plot_az_coupling_diagram(model, params)
#+end_src
#+RESULTS:
:RESULTS:
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:xlabel= | $\tau$ | > |
[[file:./.ob-jupyter/d8096351b2e0cbfa172b5abc8c138522375e6205.svg]]
:END:
#+begin_src jupyter-python
plot_az_sd_overview(model, params)
#+end_src
#+RESULTS:
:RESULTS:
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:xlabel= | $\omega$ | ylabel= | Spectral Density | > |
[[file:./.ob-jupyter/afa180fb667b63a127dbecc86f43980e65eabb6a.svg]]
:END:
#+begin_src jupyter-python
plot_total_power(model, params)
#+end_src
#+RESULTS:
:RESULTS:
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:> |
[[file:./.ob-jupyter/ad693ff3d3c543c7fc8bcf66c226d1ee53e1f3b9.svg]]
:END:
#+begin_src jupyter-python
plot_excited_state(model, params, with_init=True)
#+end_src
#+RESULTS:
:RESULTS:
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:> |
[[file:./.ob-jupyter/5ab38efefb7c03476efb3dea22c64715e4c7131f.svg]]
:END:
#+begin_src jupyter-python
plot_coherences(model, params)
#+end_src
#+RESULTS:
:RESULTS:
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:> |
[[file:./.ob-jupyter/b53ff9a196a6e3f854b4fac57edc3a4f6341ab5c.svg]]
:END:
#+begin_src jupyter-python
plot_power_output(model, params, steady_index=0)
#+end_src
#+RESULTS:
:RESULTS:
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:title= | (center : \(\bar{P}=0.00043\pm 0.00015\)) | xlabel= | $\tau$ | ylabel= | $\langle{P}\rangle$ | > | EnsembleValue | (((20000 0.00043025179411284724 0.00014964069641804805))) |
[[file:./.ob-jupyter/857d74261d2e1c38fc8bb26c43a46e15552ede09.svg]]
:END:

View file

@ -0,0 +1,169 @@
#+PROPERTY: header-args :session 10_anti_zeno_engine_cc_a1 :kernel python :pandoc no :async yes
Here we try to reproduce the anti zeno engine from the paper.
* Boilerplate
#+begin_src jupyter-python :results none
import figsaver as fs
from hiro_models.one_qubit_model import QubitModelMutliBath, StocProcTolerances
import hiro_models.model_auxiliary as aux
from hops.util.utilities import relative_entropy, relative_entropy_single, entropy, trace_distance
from hopsflow.util import EnsembleValue
import numpy as np
import qutip as qt
import scipy
import utilities as ut
from hops.util.dynamic_matrix import SmoothStep, Periodic, Harmonic, ConstantMatrix, Piecewise, Shift
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
import plot_utils as pu
#+end_src
Init ray and silence stocproc.
#+begin_src jupyter-python
import ray
ray.shutdown()
ray.init()
#+end_src
#+RESULTS:
: RayContext(dashboard_url='', python_version='3.9.13', ray_version='1.13.0', ray_commit='e4ce38d001dbbe09cd21c497fedd03d692b2be3e', address_info={'node_ip_address': '192.168.100.170', 'raylet_ip_address': '192.168.100.170', 'redis_address': None, 'object_store_address': '/tmp/ray/session_2022-08-14_15-01-34_034850_14258/sockets/plasma_store', 'raylet_socket_name': '/tmp/ray/session_2022-08-14_15-01-34_034850_14258/sockets/raylet', 'webui_url': '', 'session_dir': '/tmp/ray/session_2022-08-14_15-01-34_034850_14258', 'metrics_export_port': 45019, 'gcs_address': '192.168.100.170:53722', 'address': '192.168.100.170:53722', 'node_id': '2369bf21ce3f134ac9781d678096447e25ad28328ed1d38ad4f5c777'})
#+begin_src jupyter-python :results none
from hops.util.logging_setup import logging_setup
import logging
logging_setup(logging.INFO, show_stocproc=False)
#+end_src
* Model Definition
#+begin_src jupyter-python :results none
from anti_zeno_engine import *
#+end_src
#+begin_src jupyter-python
(
model,
params
) = anti_zeno_engine(
Δ=11,
ε=1,#.1,
ω_c=1,
ε_couple=.0001,
n=1,
detune=.5,
ω_0=20,
T_c=1e3,
T_h=1e4,
δ=[3.2*.01/4, 1.08*.01/4],
γ=.2,
switch_cycles=1,
therm_initial_state=False,
ε_init=.000001/2,
terms=7,
dt=0.01/2,
sp_tol=1e-4,
init_time_steps=10,
interpolation_multiplier=10,
)
model.k_max = 3
#+end_src
#+RESULTS:
#+begin_src jupyter-python
ts = np.linspace(0, 10,10000)
proc = model.thermal_process(1)
import hops
z=hops.core.utility.uni_to_gauss(np.random.rand(proc.get_num_y() * 2))
proc.new_process(z)
pu.plot_complex(ts, proc(ts) * model.bcf_scales[1])
#+end_src
#+RESULTS:
:RESULTS:
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:> |
[[file:./.ob-jupyter/5a5fd86ed7017c5c1463a913f499d16f0a3548ba.svg]]
:END:
#+begin_src jupyter-python
params.cycles
#+end_src
#+RESULTS:
: 122
#+begin_src jupyter-python
aux.integrate(model, 10)
#+end_src
#+RESULTS:
: [INFO hops.core.integration 14258] Choosing the nonlinear integrator.
: [INFO hops.core.integration 14258] Using 8 integrators.
: [INFO hops.core.integration 14258] Some 9 trajectories have to be integrated.
: [INFO hops.core.integration 14258] Using 680 hierarchy states.
: 0% 0/9 [00:00<?, ?it/s]
#+begin_src jupyter-python
plot_az_coupling_diagram(model, params)
#+end_src
#+RESULTS:
:RESULTS:
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:xlabel= | $\tau$ | > |
[[file:./.ob-jupyter/f789db8fd41ef3fb8e2164aa765dbf59b1194d8a.svg]]
:END:
#+begin_src jupyter-python
plot_az_sd_overview(model, params)
#+end_src
#+RESULTS:
:RESULTS:
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:xlabel= | $\omega$ | ylabel= | Spectral Density | > |
[[file:./.ob-jupyter/72171789917e708625d5f5be4306c70391d41599.svg]]
:END:
#+begin_src jupyter-python
plot_total_power(model, params)
#+end_src
#+RESULTS:
:RESULTS:
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:> |
[[file:./.ob-jupyter/63a1770854b71f5dcda8e4144bd16326fc9f88ec.svg]]
:END:
#+begin_src jupyter-python
plot_excited_state(model, params, with_init=True)
#+end_src
#+RESULTS:
:RESULTS:
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:> |
[[file:./.ob-jupyter/6e0b8aa8971299bc06267feb6a9281a1ceb11220.svg]]
:END:
#+begin_src jupyter-python
plot_coherences(model, params)
#+end_src
#+RESULTS:
:RESULTS:
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:> |
[[file:./.ob-jupyter/ff290ee0e7503e3c6873e276c6d82524702c68e9.svg]]
:END:
#+begin_src jupyter-python
plot_power_output(model, params, steady_index=0)
#+end_src
#+RESULTS:
:RESULTS:
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:title= | (center : \(\bar{P}=-0.00092\pm 0.00015\)) | xlabel= | $\tau$ | ylabel= | $\langle{P}\rangle$ | > | EnsembleValue | (((40000 -0.000918483945087149 0.00014770367528033136))) |
[[file:./.ob-jupyter/1b13cea34f14a105c448c7131c897fcb5e3048f3.svg]]
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:title= | (center : \(\bar{P}=-0.00092\pm 0.00015\)) | xlabel= | $\tau$ | ylabel= | $\langle{P}\rangle$ | > | EnsembleValue | (((40000 -0.000918483945087149 0.00014770367528033136))) |
[[file:./.ob-jupyter/b119ba866ff1a9d4cfc2944bbff78dbfebe743c8.svg]]
:END:

View file

@ -5,10 +5,23 @@
import matplotlib.pyplot as plt
import numpy as np
import figsaver as fs
import plot_utils as pu
#+end_src
#+RESULTS:
#+begin_src jupyter-python
tt = np.linspace(0,20,1000)
f, a = pu.plot_complex(tt, 1/(1 + 1j *tt)**2)
a.axhline(0, color="gray")
a.set_xlabel("$\tau$")
fs.export_fig("ohmic_bcf_example")
#+end_src
#+RESULTS:
[[file:./.ob-jupyter/26bc0805aafe2726c138e8cf7d9377eddc9cc5cf.svg]]
#+begin_src jupyter-python :results none
def J(ω):
return np.exp(-(ω)) * (ω)
@ -37,11 +50,11 @@
#plt.plot(ts, np.abs(refecene(ts))/np.abs(refecene(ts).max()), label=N)
plt.legend()
plt.legend(title=r"$N$")
plt.yscale("log")
plt.xscale("log")
plt.xlabel("$τ$")
plt.ylabel(r"$\frac{α_N(τ) - α(τ)}{α_N(τ)}$")
plt.xlabel(r"$\tau$")
plt.ylabel(r"$\frac{\alpha_N(\tau) - \alpha(\tau)}{\alpha_N(\tau)}$")
# tikzplotlib.clean_figure()
# tikzplotlib.save("test.tex", axis_width="\\figW", axis_height="\\figH", textsize=5)
fs.export_fig("bcf_approx")
@ -49,15 +62,54 @@
#+RESULTS:
:RESULTS:
: /nix/store/akzgacnj2l97sldws5cnxjlgv27317xd-python3-3.9.13-env/lib/python3.9/site-packages/tikzplotlib/_cleanfigure.py:613: RuntimeWarning: divide by zero encountered in log10
: /nix/store/jhaz6wa06sid3pc6c0g3wmid421vldwj-python3-3.9.13-env/lib/python3.9/site-packages/tikzplotlib/_cleanfigure.py:613: RuntimeWarning: divide by zero encountered in log10
: xData = np.log10(xData)
: /nix/store/akzgacnj2l97sldws5cnxjlgv27317xd-python3-3.9.13-env/lib/python3.9/site-packages/tikzplotlib/_cleanfigure.py:616: RuntimeWarning: divide by zero encountered in log10
: /nix/store/jhaz6wa06sid3pc6c0g3wmid421vldwj-python3-3.9.13-env/lib/python3.9/site-packages/tikzplotlib/_cleanfigure.py:616: RuntimeWarning: divide by zero encountered in log10
: yData = np.log10(yData)
: /nix/store/akzgacnj2l97sldws5cnxjlgv27317xd-python3-3.9.13-env/lib/python3.9/site-packages/tikzplotlib/_cleanfigure.py:1285: RuntimeWarning: invalid value encountered in multiply
: /nix/store/jhaz6wa06sid3pc6c0g3wmid421vldwj-python3-3.9.13-env/lib/python3.9/site-packages/tikzplotlib/_cleanfigure.py:1285: RuntimeWarning: invalid value encountered in multiply
: detA = -(X2[:, 0] - X1[:, 0]) * (X4[1] - X3[1]) + (X2[:, 1] - X1[:, 1]) * (
: /nix/store/akzgacnj2l97sldws5cnxjlgv27317xd-python3-3.9.13-env/lib/python3.9/site-packages/tikzplotlib/_cleanfigure.py:1297: RuntimeWarning: invalid value encountered in matmul
: /nix/store/jhaz6wa06sid3pc6c0g3wmid421vldwj-python3-3.9.13-env/lib/python3.9/site-packages/tikzplotlib/_cleanfigure.py:1297: RuntimeWarning: invalid value encountered in matmul
: Lambda[id_detA, 0] = (rhs[id_detA, :] @ Rotate @ (X4 - X3).T) / detA[id_detA]
: /nix/store/akzgacnj2l97sldws5cnxjlgv27317xd-python3-3.9.13-env/lib/python3.9/site-packages/tikzplotlib/_cleanfigure.py:1300: RuntimeWarning: invalid value encountered in matmul
: /nix/store/jhaz6wa06sid3pc6c0g3wmid421vldwj-python3-3.9.13-env/lib/python3.9/site-packages/tikzplotlib/_cleanfigure.py:1300: RuntimeWarning: invalid value encountered in matmul
: -(X2[id_detA, :] - X1[id_detA, :]) @ Rotate * rhs[id_detA, :], axis=1
[[file:./.ob-jupyter/c0862d837dbdc839685fe05cf1b7de6c3728f24c.svg]]
[[file:./.ob-jupyter/39e2cd547191a44e40edeb983d34a7ae20b8d2f8.svg]]
:END:
#+begin_src jupyter-python
from hiro_models.one_qubit_model import QubitModel
import hops
t = np.linspace(0, 3, 1000)
long_model = QubitModel(ω_c=0.5, bcf_norm_method="unit", t=t)
short_model = QubitModel(ω_c=3, bcf_norm_method="unit", t=t)
f, (ax1, ax2) = plt.subplots(ncols=2)
for model in [long_model, short_model]:
proc = model.driving_process
color = None
label = True
for _ in range(10):
z = hops.core.utility.uni_to_gauss(np.random.rand(proc.get_num_y() * 2))
proc.calc_deriv = True
proc.new_process(z)
lines = ax1.plot(long_model.t, proc(long_model.t).real, alpha=0.5, color=color, label=rf"$\omega_c={model.ω_c}$" if label else None)
lines = ax2.plot(long_model.t, proc.dot(long_model.t).real, alpha=0.5, color=color)
color = lines[0].get_color()
label = False
ax1.legend()
ax1.set_xlabel(r"$\tau$")
ax1.set_ylabel(r"$\Re \eta^\ast$")
ax2.set_xlabel(r"$\tau$")
ax2.set_ylabel(r"$\partial_t \Re {\eta}^\ast$")
fs.export_fig("stocproc_comparison", tikz=False)
#+end_src
#+RESULTS:
:RESULTS:
: stocproc.stocproc - INFO - Loaded instance from cache.
: INFO:stocproc.stocproc:Loaded instance from cache.
: stocproc.stocproc - INFO - Loaded instance from cache.
: INFO:stocproc.stocproc:Loaded instance from cache.
[[file:./.ob-jupyter/01e08d1f2965621ed6e74a15578aab7fa5b234bb.svg]]
:END:

View file

@ -1,375 +0,0 @@
% This file was created with tikzplotlib v0.10.1.
\begin{tikzpicture}
\definecolor{crimson2143940}{RGB}{214,39,40}
\definecolor{darkgray176}{RGB}{176,176,176}
\definecolor{darkorange25512714}{RGB}{255,127,14}
\definecolor{forestgreen4416044}{RGB}{44,160,44}
\definecolor{lightgray204}{RGB}{204,204,204}
\definecolor{mediumpurple148103189}{RGB}{148,103,189}
\definecolor{steelblue31119180}{RGB}{31,119,180}
\begin{axis}[
height=\figH,
legend cell align={left},
legend style={
fill opacity=0.8,
draw opacity=1,
text opacity=1,
at={(0.97,0.03)},
anchor=south east,
draw=lightgray204
},
log basis x={10},
log basis y={10},
tick align=outside,
tick pos=left,
width=\figW,
x grid style={darkgray176},
xlabel={\(\displaystyle τ\)},
xmin=0.00925843821720426, xmax=216235.390357936,
xmode=log,
xtick style={color=black},
xtick={0.0001,0.001,0.01,0.1,1,10,100,1000,10000,100000,1000000,10000000},
xticklabels={
\(\displaystyle {10^{-4}}\),
\(\displaystyle {10^{-3}}\),
\(\displaystyle {10^{-2}}\),
\(\displaystyle {10^{-1}}\),
\(\displaystyle {10^{0}}\),
\(\displaystyle {10^{1}}\),
\(\displaystyle {10^{2}}\),
\(\displaystyle {10^{3}}\),
\(\displaystyle {10^{4}}\),
\(\displaystyle {10^{5}}\),
\(\displaystyle {10^{6}}\),
\(\displaystyle {10^{7}}\)
},
y grid style={darkgray176},
ylabel={\(\displaystyle \frac{α_N(τ) - α(τ)}{α_N(τ)}\)},
ymin=1.89338514095501e-10, ymax=4.50875041548238,
ymode=log,
ytick style={color=black},
ytick={1e-12,1e-10,1e-08,1e-06,0.0001,0.01,1,100,10000},
yticklabels={
\(\displaystyle {10^{-12}}\),
\(\displaystyle {10^{-10}}\),
\(\displaystyle {10^{-8}}\),
\(\displaystyle {10^{-6}}\),
\(\displaystyle {10^{-4}}\),
\(\displaystyle {10^{-2}}\),
\(\displaystyle {10^{0}}\),
\(\displaystyle {10^{2}}\),
\(\displaystyle {10^{4}}\)
}
]
\addplot [very thin, steelblue31119180]
table {%
0.0200200229883194 0.0530884489417076
0.120120137929916 0.316222727298737
0.200200229883194 0.520052075386047
0.280280262231827 0.713564157485962
0.36036029458046 0.892954349517822
0.44044041633606 1.05473804473877
0.520520448684692 1.19583809375763
0.60060065984726 1.3136693239212
0.660660684108734 1.38553583621979
0.720720708370209 1.44254744052887
0.780780792236328 1.48430323600769
0.840840697288513 1.5106303691864
0.900900840759277 1.52159774303436
0.960960865020752 1.51752424240112
1.02804470062256 1.49591112136841
1.08651566505432 1.46328723430634
1.1456686258316 1.41834664344788
1.2080420255661 1.35947167873383
1.27381145954132 1.28675925731659
1.3431613445282 1.20130228996277
1.42283058166504 1.0970618724823
1.52469575405121 0.965667843818665
1.66810047626495 0.818597316741943
1.72678077220917 0.782572627067566
1.77112090587616 0.767328381538391
1.81241738796234 0.762762427330017
1.85040688514709 0.766493916511536
1.89355194568634 0.779110312461853
1.94665610790253 0.804872393608093
2.02444672584534 0.856867253780365
2.27696967124939 1.04423749446869
2.36796021461487 1.09169769287109
2.44561672210693 1.118035197258
2.52000498771667 1.13027012348175
2.5906777381897 1.13034582138062
2.66333270072937 1.11962509155273
2.74434304237366 1.09669423103333
2.84743905067444 1.05546116828918
3.20320320129395 0.92030656337738
3.27729511260986 0.913108587265015
3.3459894657135 0.915398240089417
3.42400646209717 0.927310526371002
3.53629565238953 0.956874251365662
3.82456970214844 1.0399763584137
3.93182873725891 1.05535018444061
4.032790184021 1.05806541442871
4.13634347915649 1.0495765209198
4.26426362991333 1.02708315849304
4.63090229034424 0.958759069442749
4.73887920379639 0.95562219619751
4.84937334060669 0.962995409965515
5.00500440597534 0.985859870910645
5.26892042160034 1.02546846866608
5.40540504455566 1.03280889987946
5.54554557800293 1.02790105342865
5.71158695220947 1.00986015796661
6.02254152297974 0.975616276264191
6.16296625137329 0.97347891330719
6.30666542053223 0.981680810451508
6.80680704116821 1.02100551128387
6.96696758270264 1.01658034324646
7.20871448516846 0.997317969799042
7.44744634628296 0.982744693756104
7.61871910095215 0.983814299106598
7.83238363265991 0.996646702289581
8.12812805175781 1.01357758045197
8.31610488891602 1.01298630237579
8.56905364990234 0.99982351064682
8.85007286071777 0.987436592578888
9.05642604827881 0.989878714084625
9.68968963623047 1.00984025001526
10 0.997813880443573
10.2902889251709 0.990260004997253
10.5505504608154 0.995955348014832
10.9709711074829 1.00819671154022
11.2312326431274 1.00366950035095
11.6916904449463 0.992430627346039
11.9919900894165 0.998606026172638
12.3723726272583 1.00649011135101
12.6926927566528 1.00076770782471
13.0930948257446 0.993988156318665
13.4534530639648 1.00087738037109
13.8138151168823 1.00505948066711
14.7747745513916 0.999440491199493
15.215217590332 1.00406575202942
16.136137008667 0.999170303344727
16.6166191101074 1.00328993797302
17.4974975585938 0.998998641967773
18.0380401611328 1.00251471996307
18.8388366699219 0.998652875423431
19.4594612121582 1.00184547901154
20.0000019073486 0.997413516044617
};
\addlegendentry{1e+01}
\addplot [very thin, darkorange25512714]
table {%
0.0200200229883194 0.000570680713281035
0.220220178365707 0.00631337705999613
0.400400370359421 0.0116288904100657
0.580580532550812 0.0171990003436804
0.780780792236328 0.0238082893192768
0.9809809923172 0.0309738740324974
1.21923112869263 0.0403578542172909
1.48148155212402 0.0518976822495461
1.78752589225769 0.0671020448207855
2.16938376426697 0.0888119786977768
2.66947841644287 0.121852114796638
3.47168707847595 0.185089647769928
5.62562561035156 0.40007957816124
6.62662696838379 0.510061740875244
7.54754686355591 0.60944265127182
8.45136451721191 0.700953245162964
9.31041431427002 0.779246747493744
10.1501502990723 0.845437407493591
10.9709711074829 0.898977518081665
11.7917919158936 0.94095253944397
12.6212148666382 0.971767067909241
13.4734754562378 0.992093205451965
14.3600902557373 1.00254690647125
15.335334777832 1.0038970708847
16.5165138244629 0.995677351951599
18.438440322876 0.972905099391937
20.479118347168 0.954516470432281
21.9452934265137 0.951633512973785
23.4082736968994 0.957495629787445
25.5509700775146 0.975386261940002
28.5401039123535 0.997450768947601
30.4427261352539 1.00104987621307
32.7729530334473 0.995305776596069
37.288215637207 0.98304682970047
39.9578018188477 0.987719357013702
45.6730079650879 1.00045931339264
49.3962097167969 0.995027422904968
53.422924041748 0.991650223731995
66.6536331176758 0.995191276073456
71.4255905151367 0.997133791446686
77.9635925292969 0.999415755271912
86.6838073730469 0.998108386993408
94.1833190917969 0.999061703681946
100 0.997806787490845
};
\addlegendentry{1e+02}
\addplot [very thin, forestgreen4416044]
table {%
0.0200200229883194 5.62030209039222e-06
0.220220178365707 6.21936414972879e-05
0.400400370359421 0.000114629743620753
0.580580532550812 0.000169705541338772
0.76076078414917 0.000228481585509144
0.960960865020752 0.000299268576782197
1.18870759010315 0.000388153974199668
1.43270301818848 0.000494676874950528
1.71488189697266 0.000634031952358782
2.04204201698303 0.000819059670902789
2.4424421787262 0.00108186306897551
2.94294285774231 0.00146908371243626
3.62362360954285 0.0021035517565906
4.58458423614502 0.0032148496247828
6.08608627319336 0.00546115403994918
8.86886882781982 0.0112676480785012
35.2003173828125 0.162518322467804
44.8385581970215 0.252445876598358
54.0421676635742 0.348543375730515
63.3580513000488 0.450913280248642
72.2534866333008 0.548829972743988
80.7061920166016 0.638234496116638
89.5265808105469 0.72439581155777
97.9469680786133 0.797350883483887
106.420951843262 0.859851956367493
114.831230163574 0.910101354122162
123.052383422852 0.947668731212616
130.953521728516 0.973407864570618
139.361892700195 0.990610182285309
148.310256958008 0.999013125896454
158.928283691406 0.998692393302917
171.488235473633 0.989047110080719
215.443435668945 0.95304536819458
230.867752075195 0.955463528633118
249.113006591797 0.96752268075943
294.082000732422 0.998351693153381
315.136291503906 0.999211728572845
347.168609619141 0.989055514335632
377.204376220703 0.983519196510315
404.209686279297 0.988108217716217
460.960418701172 0.999991476535797
500.840728759766 0.994630336761475
540.421691894531 0.991938531398773
665.001770019531 0.995822787284851
712.611511230469 0.996343374252319
790.492858886719 0.999084174633026
870.843200683594 0.997841835021973
952.750366210938 0.998910844326019
1000 0.997648477554321
};
\addlegendentry{1e+03}
\addplot [very thin, crimson2143940]
table {%
0.0200200229883194 5.61034525503601e-08
0.220220178365707 6.20836658526969e-07
0.400400370359421 1.14427734843048e-06
0.580580532550812 1.69407962857804e-06
0.76076078414917 2.28084172704257e-06
0.960960865020752 2.98753616334579e-06
1.18118119239807 3.84408167519723e-06
1.42142140865326 4.88663226860808e-06
1.70170187950134 6.26106248091673e-06
2.02202200889587 8.05738636699971e-06
2.42317295074463 1.06672814581543e-05
2.92292261123657 1.4504327737086e-05
3.58358407020569 2.0605604731827e-05
4.52452373504639 3.13595519401133e-05
5.98104095458984 5.28487653355114e-05
8.54854869842529 0.000105150706076529
14.3343353271484 0.000290646334178746
38.1576461791992 0.00204116269014776
166.810089111328 0.038386631757021
266.947845458984 0.0959442257881165
365.226654052734 0.17347177863121
459.899291992188 0.263364732265472
553.0224609375 0.361436039209366
646.860778808594 0.464776039123535
735.981384277344 0.562472403049469
822.081420898438 0.652581214904785
909.827087402344 0.736820816993713
997.698059082031 0.810925543308258
1084.0146484375 0.872016489505768
1166.98999023438 0.919003963470459
1244.78735351562 0.952542722225189
1327.77099609375 0.977624654769897
1416.28674316406 0.993412911891937
1510.70336914062 0.999795496463776
1611.41430664062 0.99761289358139
1750.82690429688 0.985440492630005
2105.34497070312 0.954312384128571
2245.69750976562 0.953376352787018
2417.59350585938 0.961674928665161
3044.27270507812 0.999955236911774
3277.29516601562 0.996050477027893
3798.21533203125 0.983582615852356
4088.9482421875 0.989397346973419
4567.30078125 0.999957740306854
4916.90283203125 0.996340095996857
5391.7734375 0.991844594478607
6727.1005859375 0.995344817638397
7242.02392578125 0.997393310070038
7868.57275390625 0.999349117279053
8708.4326171875 0.997791707515717
9549.486328125 0.998842895030975
10000 0.997636675834656
};
\addlegendentry{1e+04}
\addplot [very thin, mediumpurple148103189]
table {%
0.0200200229883194 5.60935353721703e-10
0.220220178365707 6.20724849298426e-09
0.400400370359421 1.1440524083639e-08
0.580580532550812 1.69377276648675e-08
0.76076078414917 2.28043361971686e-08
0.960960865020752 2.98699838197081e-08
1.18870759010315 3.87428435999482e-08
1.4294046163559 4.92249085937146e-08
1.70170187950134 6.25994900360638e-08
2.02202200889587 8.05595377073587e-08
2.42876434326172 1.0704697217534e-07
2.92292261123657 1.45017949648718e-07
3.5938138961792 2.07058675982807e-07
4.52538585662842 3.13652662953245e-07
5.98598480224609 5.29233261659101e-07
8.52964496612549 1.04683647350612e-06
14.2742729187012 2.88220212496526e-06
36.021068572998 1.82042713277042e-05
1897.92199707031 0.0494529865682125
2873.8125 0.110471002757549
3833.39526367188 0.189632430672646
4771.76171875 0.280941426753998
5672.2275390625 0.3768530189991
6588.9892578125 0.478028833866119
7479.52392578125 0.575257658958435
8393.130859375 0.669743180274963
9203.732421875 0.746223866939545
9976.98046875 0.810854315757751
10815.1923828125 0.870359301567078
11589.482421875 0.91490638256073
12419.21875 0.951441287994385
13308.3447265625 0.978322863578796
14097.7216796875 0.992583751678467
14933.9365234375 0.99931675195694
16003.0986328125 0.998214423656464
17347.591796875 0.987163960933685
21346.638671875 0.953467428684235
22874.90234375 0.954549729824066
24512.607421875 0.964147806167603
29817.720703125 0.999229550361633
31952.48828125 0.998376071453094
39318.27734375 0.985254168510437
47827.7421875 0.998568713665009
54921.18359375 0.992645859718323
63797.66796875 0.998595297336578
70770.0859375 0.995873093605042
79414.53125 0.998893857002258
87084.3203125 0.9977867603302
95494.859375 0.998847246170044
100000 0.99763560295105
};
\addlegendentry{1e+05}
\end{axis}
\end{tikzpicture}

View file

@ -32,11 +32,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1660485612,
"narHash": "sha256-sSLW1KaB1adKTJn9+Ja3h3AaS7QCZyhUKiSUStcLg80=",
"lastModified": 1661720780,
"narHash": "sha256-AJNGyaB2eKZAYaPNjBZOzap87yL+F9ZLaFzzMkvega0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6512b21eabb4d52e87ea2edcf31a288e67b2e4f8",
"rev": "a63021a330d8d33d862a8e29924b42d73037dd37",
"type": "github"
},
"original": {
@ -47,11 +47,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1660546381,
"narHash": "sha256-rEzCjeWVGhK5AyHxm1zet0lF6+AVSW3JuU5LAU2SMYU=",
"lastModified": 1661848632,
"narHash": "sha256-TZ0bBXckz5LVrYBup1rCv/o3qg0VKWnhQIQHJiX1nI0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "eb642f80f9aecc19312909e08601a3c2020b5ce2",
"rev": "d4b68195fd0bd3559f58b23e130f8b4e0b2a6e19",
"type": "github"
},
"original": {
@ -62,36 +62,36 @@
},
"poetry2nix": {
"inputs": {
"flake-utils": "flake-utils_2",
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1660542485,
"narHash": "sha256-XfklMwJMLB7bLI5ZnQTrNaK7KyBnElLGoWOL++XO3zk=",
"owner": "nix-community",
"repo": "poetry2nix",
"rev": "8b6239cf2ded121f8f3d570d2563d69f05d4208f",
"type": "github"
"lastModified": 1661849972,
"narHash": "sha256-W35hlAYSrJBJW5N2rr6N9MT1VMKWbOq1Fl0Lmd0Q9CA=",
"path": "/home/hiro/src/poetry2nix",
"type": "path"
},
"original": {
"owner": "nix-community",
"repo": "poetry2nix",
"type": "github"
"path": "/home/hiro/src/poetry2nix",
"type": "path"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs",
"poetry2nix": "poetry2nix",
"utils": "utils"
}
},
"utils": {
"inputs": {
"flake-utils": "flake-utils",
"flake-utils": "flake-utils_2",
"nixpkgs": [
"nixpkgs"
],
"poetry2nix": "poetry2nix"
"poetry2nix": [
"poetry2nix"
]
},
"locked": {
"lastModified": 1660547406,

View file

@ -3,8 +3,10 @@
inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable";
poetry2nix.url = "path:/home/hiro/src/poetry2nix";
utils.url = "github:vale981/hiro-flake-utils";
utils.inputs.nixpkgs.follows = "nixpkgs";
utils.inputs.poetry2nix.follows = "poetry2nix";
};
outputs = { self, utils, nixpkgs, ... }:
@ -20,10 +22,10 @@
python = pkgs: pkgs.python39Full;
shellOverride = (pkgs: oldAttrs: {
shellHook = ''
export PYTHONPATH=/home/hiro/src/two_qubit_model/:$PYTHONPATH
export PYTHONPATH=/home/hiro/src/hops/:$PYTHONPATH
export PYTHONPATH=/home/hiro/src/hopsflow/:$PYTHONPATH
export PYTHONPATH=/home/hiro/src/stocproc/:$PYTHONPATH
# export PYTHONPATH=/home/hiro/src/two_qubit_model/:$PYTHONPATH
# export PYTHONPATH=/home/hiro/src/hops/:$PYTHONPATH
# export PYTHONPATH=/home/hiro/src/hopsflow/:$PYTHONPATH
# export PYTHONPATH=/home/hiro/src/stocproc/:$PYTHONPATH
export LD_LIBRARY_PATH="${(pkgs.lib.makeLibraryPath [pkgs.arb])}"
# '';

View file

@ -0,0 +1,2 @@
from model import *
aux.integrate(model, 10, stream_file="results.fifo")

View file

@ -0,0 +1,5 @@
from model_gap import *
import ray
ray.shutdown()
ray.init()
aux.integrate(model, 10_000, stream_file="results.fifo")

View file

@ -27,12 +27,12 @@ from anti_zeno_engine import *
ε=1,#.1,
ω_c=1,
ε_couple=.68,
n=20,
n=5,
detune=.5,
ω_0=20,
T_c=5e3,
T_h=5e4,
δ=[3.2*.01/10, 1.08*.01/10],
T_c=10,
T_h=100,
δ=[3.2/2.5, 1.08/2],
γ=.2,
switch_cycles=1,
therm_initial_state=False,
@ -43,4 +43,4 @@ from anti_zeno_engine import *
init_time_steps=10,
interpolation_multiplier=10,
)
model.k_max = 3
model.k_max = 4

View file

@ -0,0 +1,49 @@
import figsaver as fs
from hiro_models.one_qubit_model import QubitModelMutliBath, StocProcTolerances
import hiro_models.model_auxiliary as aux
from hops.util.utilities import relative_entropy, relative_entropy_single, entropy, trace_distance
from hopsflow.util import EnsembleValue
import numpy as np
import qutip as qt
import scipy
import utilities as ut
from hops.util.dynamic_matrix import SmoothStep, Periodic, Harmonic, ConstantMatrix, Piecewise, Shift
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
import plot_utils as pu
from hops.util.logging_setup import logging_setup
import logging
logging_setup(logging.INFO, show_stocproc=False)
from anti_zeno_engine import *
import anti_zeno_engine as az
(
model,
params
) = anti_zeno_engine(
Δ=11,
ε=.001,#.1,
ω_c=.8,
ε_couple=.85,
n=2,
detune=.6,
ω_0=20,
T_c=5,
T_h=20,
δ=[2.5, 2],
γ=.1,
switch_cycles=1,
therm_initial_state=False,
ε_init=.00001,
terms=7,
dt=0.01/2,
sp_tol=1e-4,
init_time_steps=10,
interpolation_multiplier=10,
cut_end=True,
initial_gap=False
)
model.k_max = 4

View file

@ -43,12 +43,10 @@
#+end_src
#+begin_src jupyter-python
%matplotlib inline
c = coef(10)
import figsaver as fs
# from matplotlib.colors import LogNorm
fig, ax = plt.subplots()
fig.set_size_inches(fs.get_figsize(fraction=1))
ms = ax.matshow(c)
fig.colorbar(ms)
ax.set_xlabel("$k$")
@ -58,14 +56,14 @@
#+RESULTS:
:RESULTS:
[[file:./.ob-jupyter/5d755e0618ed8699c41488f4d4a6627183b5d741.svg]]
[[file:./.ob-jupyter/15195a262630c4eff09cc1c25e629c2e4fd3307c.svg]]
: /nix/store/jhaz6wa06sid3pc6c0g3wmid421vldwj-python3-3.9.13-env/lib/python3.9/site-packages/tikzplotlib/_cleanfigure.py:166: UserWarning: Cleaning Line Collections (scatter plot) is not supported yet.
: warnings.warn(
[[file:./.ob-jupyter/531dce055bc42c918a0488082af2995f3d1d694c.svg]]
:END:
#+begin_src jupyter-python
fig = plt.figure()
fig.set_size_inches(fs.get_figsize(fraction=1))
import scipy
for order in 10 ** np.arange(1, 4):
@ -107,11 +105,13 @@
#+RESULTS:
:RESULTS:
: /tmp/ipykernel_129770/256163567.py:11: UserWarning: marker is redundantly defined by the 'marker' keyword argument and the fmt string "--o" (-> marker='o'). The keyword argument will take precedence.
: /tmp/ipykernel_572734/2027820373.py:10: UserWarning: marker is redundantly defined by the 'marker' keyword argument and the fmt string "--o" (-> marker='o'). The keyword argument will take precedence.
: plt.plot(
: /nix/store/av32kn66py1m065lq75rmmlxrsqvgbaa-python3-3.9.13-env/lib/python3.9/site-packages/scipy/stats/_discrete_distns.py:69: RuntimeWarning: divide by zero encountered in _binom_pdf
: /tmp/ipykernel_572734/2027820373.py:10: UserWarning: marker is redundantly defined by the 'marker' keyword argument and the fmt string "--o" (-> marker='o'). The keyword argument will take precedence.
: plt.plot(
: /nix/store/jhaz6wa06sid3pc6c0g3wmid421vldwj-python3-3.9.13-env/lib/python3.9/site-packages/scipy/stats/_discrete_distns.py:78: RuntimeWarning: divide by zero encountered in _binom_pdf
: return _boost._binom_pdf(x, n, p)
[[file:./.ob-jupyter/625ccae9f05819d713eacd97b4a4064fdddc1c72.svg]]
[[file:./.ob-jupyter/c0c0a867b86da64af2f24ee48e9744f58062458a.svg]]
:END:
#+begin_src jupyter-python

View file

@ -1,6 +1,12 @@
#!/usr/bin/env bash
sshfs -oIdentityFile=~/.ssh/id_ed25519_taurus s8896854@taurusexport.hrsk.tu-dresden.de:/lustre/ssd/ws/s8896854-10_ssd/.data/ .data
sshfs -oIdentityFile=~/.ssh/id_ed25519_taurus s8896854@taurusexport.hrsk.tu-dresden.de:/beegfs/ws/0/s8896854-m_10t/project/python/energy_flow_proper/10_antizeno_engine/results results
sshfs s4498638@taurusexport.hrsk.tu-dresden.de:/lustre/ssd/ws/s4498638-m_10t/project/python/energy_flow_proper/10_antizeno_engine/.data/ .data
sshfs s4498638@taurusexport.hrsk.tu-dresden.de:/lustre/ssd/ws/s4498638-m_10t/project/python/energy_flow_proper/10_antizeno_engine/results results
sshfs s4498638@taurusexport.hrsk.tu-dresden.de:/lustre/ssd/ws/s4498638-m_10t/project/python/energy_flow_proper/10_antizeno_engine/ taurus
sshfs -oIdentityFile=~/.ssh/id_ed25519_taurus s8896854@taurusexport.hrsk.tu-dresden.de:/beegfs/ws/0/s8896854-m_10t/project/python/energy_flow_proper/10_antizeno_engine/ taurus
# sshfs -oIdentityFile=~/.ssh/id_ed25519_taurus s8896854@taurusexport.hrsk.tu-dresden.de:/lustre/ssd/ws/s8896854-10_ssd/.data/ .data
# sshfs -oIdentityFile=~/.ssh/id_ed25519_taurus s8896854@taurusexport.hrsk.tu-dresden.de:/beegfs/ws/0/s8896854-m_10t/project/python/energy_flow_proper/10_antizeno_engine/results results
# sshfs -oIdentityFile=~/.ssh/id_ed25519_taurus s8896854@taurusexport.hrsk.tu-dresden.de:/beegfs/ws/0/s8896854-m_10t/project/python/energy_flow_proper/10_antizeno_engine/ taurus

File diff suppressed because it is too large Load diff

View file

@ -7,9 +7,9 @@ license = "GPLv3"
[tool.poetry.dependencies]
python = ">=3.9,<3.11"
# hops = { git = "git@gitlab.hrz.tu-chemnitz.de:s8896854--tu-dresden.de/hops.git", branch="use_new_stocproc_for_10" }
# stocproc = { git = "git@github.com:vale981/stocproc.git", branch="fix_relative" }
# hopsflow = { git = "git@github.com:vale981/hopsflow.git", branch="fix_for_10" }
hops = { git = "git@gitlab.hrz.tu-chemnitz.de:s8896854--tu-dresden.de/hops.git", branch="online_calculation" }
stocproc = { git = "git@github.com:vale981/stocproc.git", branch="master" }
hopsflow = { git = "git@github.com:vale981/hopsflow.git", branch="online_calculation" }
hiro_models = { git = "git@github.com:vale981/two_qubit_model.git", branch="online_calculation" }
matplotlib = "^3.5.0"
jupyter = "^1.0.0"
@ -22,6 +22,7 @@ statsmodels = "^0.13.2"
protobuf = "==3.20.1"
tabulate = "^0.8.9"
tikzplotlib = "^0.10.1"
brokenaxes = "^0.5.0"
[tool.poetry.dev-dependencies]
black = "^21.12b0"

View file

@ -25,9 +25,10 @@ Here we try to reproduce the anti zeno engine from the paper.
logging_setup(logging.INFO, show_stocproc=False)
#+end_src
* Model Definition
* TODO Model Definition
#+begin_src jupyter-python :results none :tangle model_gap.py
from anti_zeno_engine import *
import anti_zeno_engine as az
#+end_src
#+begin_src jupyter-python :tangle model_gap.py
@ -36,25 +37,26 @@ Here we try to reproduce the anti zeno engine from the paper.
params
) = anti_zeno_engine(
Δ=11,
ε=.01,#.1,
ω_c=1,
ε_couple=.68,
n=4,
detune=.5,
ε=.001,#.1,
ω_c=.8,
ε_couple=.85,
n=2,
detune=.6,
ω_0=20,
T_c=10,
T_h=100,
δ=[3.2/2.5, 1.08/2],
γ=.2,
T_c=5,
T_h=20,
δ=[2.5, 2],
γ=.1,
switch_cycles=1,
therm_initial_state=False,
ε_init=.001/2,
ε_init=.00001,
terms=7,
dt=0.01/2,
sp_tol=1e-4,
init_time_steps=10,
interpolation_multiplier=10,
cut_end=True
cut_end=True,
initial_gap=False
)
model.k_max = 4
#+end_src
@ -67,7 +69,7 @@ Here we try to reproduce the anti zeno engine from the paper.
import ray
ray.shutdown()
ray.init()
aux.integrate(model, 10, stream_file="results.fifo")
aux.integrate(model, 10_000, stream_file="results.fifo")
#+end_src
#+RESULTS:
@ -168,34 +170,6 @@ Here we try to reproduce the anti zeno engine from the paper.
print(model.all_energies_online("results.fifo"))
#+end_src
#+RESULTS:
:RESULTS:
# [goto error]
#+begin_example
---------------------------------------------------------------------------
KeyboardInterrupt Traceback (most recent call last)
Input In [7], in <cell line: 2>()
 1 from model_gap import *
----> 2 print(model.all_energies_online("results.fifo"))
File /nix/store/13dn9rbd9j677ap99g05vklq1lc3w3bd-python3-3.9.13-env/lib/python3.9/site-packages/hiro_models/model_base.py:411, in Model.all_energies_online(self, stream_pipe, **kwargs)
 399 system_power_worker = hopsflow.util.make_operator_expectation_task(
 400 self.system.derivative(), self.t, normalize=True, real=True
 401 )
 403 flow, interaction, interaction_power, system, system_power = (
 404 None,
 405 None,
 (...)
 408 None,
 409 )
--> 411 with open(stream_pipe, "rb") as fifo:
 412 while True:
 413 try:
KeyboardInterrupt:
#+end_example
:END:
#+begin_src jupyter-python
%matplotlib tk
flow, interaction, int_pow, system, sys_pow = model.all_energies_online_from_cache()
@ -215,8 +189,8 @@ Here we try to reproduce the anti zeno engine from the paper.
#+RESULTS:
:RESULTS:
: 897
| hline | <AxesSubplot:> | ((<matplotlib.lines.Line2D at 0x7f8110dac100>) <matplotlib.collections.PolyCollection at 0x7f8110d89fa0>) |
: 1000
| hline | <AxesSubplot:> | ((<matplotlib.lines.Line2D at 0x7fc17ce7d5e0>) <matplotlib.collections.PolyCollection at 0x7fc17ce7d850>) |
:END:
@ -227,7 +201,7 @@ Here we try to reproduce the anti zeno engine from the paper.
#+RESULTS:
:RESULTS:
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:xlabel= | $\tau$ | > |
[[file:./.ob-jupyter/ba66070842ce964bbf22617fe2187a53ce7b0eb7.svg]]
[[file:./.ob-jupyter/ac1f2d29ca14cd56819bad81a9331fe58699b8a4.svg]]
:END:
#+begin_src jupyter-python
@ -236,84 +210,107 @@ Here we try to reproduce the anti zeno engine from the paper.
#+RESULTS:
:RESULTS:
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:xlabel= | $\omega$ | ylabel= | Spectral Density | > |
[[file:./.ob-jupyter/ac8e211f0656dcabbdf35b0b21870882d451383a.svg]]
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot: | xlabel= | $\omega$ | ylabel= | Spectral Density | > |
[[file:./.ob-jupyter/0750fb10f4322daf823b3a4dd2a778f611cd35ba.svg]]
:END:
#+begin_src jupyter-python
plot_total_power(model, params)
az.plot_total_power(model, params)
#+end_src
#+RESULTS:
:RESULTS:
# [goto error]
#+begin_example
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
Input In [37], in <cell line: 1>()
----> 1 plot_total_power(model, params)
File ~/Documents/Projects/UNI/master/masterarb/python/energy_flow_proper/10_antizeno_engine/plot_utils.py:40, in wrap_plot.<locals>.wrapped(ax, setup_function, *args, **kwargs)
 37 if not ax:
 38 fig, ax = setup_function()
---> 40 ret_val = f(*args, ax=ax, **kwargs)
 41 return (fig, ax, ret_val) if ret_val else (fig, ax)
File ~/Documents/Projects/UNI/master/masterarb/python/energy_flow_proper/10_antizeno_engine/anti_zeno_engine.py:277, in plot_total_power(model, params, ax)
 275 @wrap_plot
 276 def plot_total_power(model, params, ax=None):
--> 277 with aux.get_data(model) as data:
 278 mask = model.t > params.τ_init
 279 plot_with_σ(
 280 model.t[mask], model.total_power(data, gc_sleep=0).slice(mask), ax=ax
 281 )
File /nix/store/jhaz6wa06sid3pc6c0g3wmid421vldwj-python3-3.9.13-env/lib/python3.9/site-packages/hiro_models/model_auxiliary.py:161, in get_data(model, data_path, read_only, **kwargs)
 150 return HIData(
 151 path,
 152 hi_key=model.hops_config,
 (...)
 157 **kwargs,
 158 )
 160 else:
--> 161 raise RuntimeError(f"No data found for model with hash '{hexhash}'.")
RuntimeError: No data found for model with hash 'e51d6781660399bc02edc6fa6d2a8709342c8884dc390695bb4024e566f94788'.
#+end_example
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot: | > |
[[file:./.ob-jupyter/a0940099e4254277356021fe5efb2256a9b41d6f.svg]]
:END:
#+begin_src jupyter-python
plot_excited_state(model, params, with_init=True)
%matplotlib inline
az.plot_flow(model, params)
#+end_src
#+RESULTS:
:RESULTS:
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:> |
[[file:./.ob-jupyter/cb9dd30567ab3e585612450d945f68b293d62b49.svg]]
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot: | > |
[[file:./.ob-jupyter/49b58ffd075a7a6568c33e09b51b2d56c5188a18.svg]]
:END:
#+begin_src jupyter-python
from brokenaxes import brokenaxes
flow, interaction, int_pow, system, sys_pow = model.all_energies_online_from_cache()
f, (ax, ax2) = plt.subplots(ncols=2, sharey=True)
mask = np.logical_and(model.t > params.τ_init, model.t < params.τ_init+params.τ_c)
plot_with_σ(model.t[mask], flow.for_bath(0).slice(mask), ax=ax, label="Cold", alpha=0.5)
plot_with_σ(model.t[mask], flow.for_bath(1).slice(mask), ax=ax, label="Hot", alpha=0.5)
mask = np.logical_and(model.t > (params.τ_init + params.τ_off + params.τ_c), model.t < (params.τ_init + params.τ_off + params.τ_c * 2))
plot_with_σ(model.t[mask], flow.for_bath(0).slice(mask), ax=ax2, label="Cold", alpha=0.5)
plot_with_σ(model.t[mask], flow.for_bath(1).slice(mask), ax=ax2, label="Hot", alpha=0.5)
ax.legend()
#+end_src
#+RESULTS:
:RESULTS:
: 114592
[[file:./.ob-jupyter/415a9e30963a519d4316460eb97c6ac7e59c4ab9.svg]]
:END:
#+begin_src jupyter-python
%matplotlib tk
flow, interaction, int_pow, system, sys_pow = model.all_energies_online_from_cache()
tot_power = (int_pow + sys_pow).sum_baths()
f, (ax) = plt.subplots(ncols=1, sharey=True)
mask_first = np.logical_and(model.t > params.τ_init, model.t < params.τ_init+params.τ_c)
plot_with_σ(model.t[mask_first], tot_power.slice(mask_first), ax=ax, label="Cold", linewidth=.1)
ax.axhline(max(tot_power.slice(mask).value))
mask = np.logical_and(model.t > (params.τ_init + params.τ_off + params.τ_c), model.t < (params.τ_init + params.τ_off + params.τ_c * 2))
plot_with_σ(model.t[mask] - params.τ_off - params.τ_c, tot_power.slice(mask), ax=ax, label="Cold", alpha=0.5, linewidth=.1)
ax2.axhline(max(tot_power.slice(mask).value))
ax.legend()
#+end_src
#+RESULTS:
: <matplotlib.legend.Legend at 0x7f455af60460>
#+begin_src jupyter-python
plot_coherences(model, params)
#+end_src
#+RESULTS:
:RESULTS:
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:> |
[[file:./.ob-jupyter/b53ff9a196a6e3f854b4fac57edc3a4f6341ab5c.svg]]
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot: | > |
[[file:./.ob-jupyter/5ec9de8b7d5e3c6db100f422847f3213e4c82be7.svg]]
:END:
#+begin_src jupyter-python
plot_power_output(model, params, steady_index=2)
az.plot_power_output(model, params, steady_index=0)
#+end_src
#+RESULTS:
:RESULTS:
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot:title= | (center : \(\bar{P}=-0.1214\pm 0.0006\)) | xlabel= | $\tau$ | ylabel= | $\langle{P}\rangle$ | > | EnsembleValue | (((50000 -0.12137889710904826 0.0005822571770304311))) |
[[file:./.ob-jupyter/308d2abac15b394ba335d0288fc22b63cc78d4aa.svg]]
| <Figure | size | 520x320 | with | 1 | Axes> | <AxesSubplot: | title= | (center : \(\bar{P}=-0.01074\pm 0.00018\)) | xlabel= | $\tau$ | ylabel= | $\langle{P}\rangle$ | > | EnsembleValue | (((114592 -0.010740084942026365 0.0001783712160433793))) |
[[file:./.ob-jupyter/ebb8a3d6c186256877b7b4f6758b2f4b6a9936f3.svg]]
:END:
#+begin_src jupyter-python
powers, *_ = az.get_powers(model, params)
δ = abs(powers[0] - powers[1]) * (1 / max([abs(power.value) for power in powers]))
δ.value, δ.σ, δ.N, powers[1].value / powers[0].value, powers[1].σ, powers[0].σ, np.sqrt((powers[1].σ / powers[0].value) ** 2 + (powers[1].value / ((powers[0].value) ** 2) * (powers[0].σ)) ** 2)
#+end_src
#+RESULTS:
| 0.848105965701148 | 0.01913064382265813 | 114592 | 6.583537033669784 | 0.00026142881805965064 | 0.0002427347027911536 | 0.5716895128604129 |
#+begin_src jupyter-python
powers[0].value,powers[1].value
#+end_src
#+RESULTS:
| -0.0028324737900908177 | -0.018647696093961913 |
#+begin_src jupyter-python
model.hexhash
#+end_src

View file

@ -1,140 +0,0 @@
% This file was created with tikzplotlib v0.10.1.
\begin{tikzpicture}
\definecolor{darkgray176}{RGB}{176,176,176}
\definecolor{darkorange25512714}{RGB}{255,127,14}
\definecolor{lightgray204}{RGB}{204,204,204}
\definecolor{steelblue31119180}{RGB}{31,119,180}
\begin{axis}[
height=\figH,
legend cell align={left},
legend style={fill opacity=0.8, draw opacity=1, text opacity=1, draw=lightgray204},
log basis x={10},
log basis y={10},
tick align=outside,
tick pos=left,
width=\figW,
x grid style={darkgray176},
xlabel={\(\displaystyle \tau\)},
xmin=0.0707945784384138, xmax=141.253754462275,
xmode=log,
xtick style={color=black},
xtick={0.001,0.01,0.1,1,10,100,1000,10000},
xticklabels={
\(\displaystyle {10^{-3}}\),
\(\displaystyle {10^{-2}}\),
\(\displaystyle {10^{-1}}\),
\(\displaystyle {10^{0}}\),
\(\displaystyle {10^{1}}\),
\(\displaystyle {10^{2}}\),
\(\displaystyle {10^{3}}\),
\(\displaystyle {10^{4}}\)
},
y grid style={darkgray176},
ylabel={\(\displaystyle |\alpha(\tau)|\)},
ymin=2.25169226366166e-06, ymax=0.619147937939852,
ymode=log,
ytick style={color=black},
ytick={1e-07,1e-06,1e-05,0.0001,0.001,0.01,0.1,1,10},
yticklabels={
\(\displaystyle {10^{-7}}\),
\(\displaystyle {10^{-6}}\),
\(\displaystyle {10^{-5}}\),
\(\displaystyle {10^{-4}}\),
\(\displaystyle {10^{-3}}\),
\(\displaystyle {10^{-2}}\),
\(\displaystyle {10^{-1}}\),
\(\displaystyle {10^{0}}\),
\(\displaystyle {10^{1}}\)
}
]
\addplot [very thin, steelblue31119180]
table {%
0.100000001490116 0.350392043590546
0.118051640689373 0.344594210386276
0.135560184717178 0.338259786367416
0.1535275131464 0.331113487482071
0.172678083181381 0.322873294353485
0.191550090909004 0.314225733280182
0.211020365357399 0.304862529039383
0.230867817997932 0.294965773820877
0.252582013607025 0.283855527639389
0.274434328079224 0.272501945495605
0.29817721247673 0.260104954242706
0.321741849184036 0.247862085700035
0.347168624401093 0.234842285513878
0.374605029821396 0.221136122941971
0.404209583997726 0.206861838698387
0.436153769493103 0.192162871360779
0.470622450113297 0.177203461527824
0.50781512260437 0.162162244319916
0.547947287559509 0.147224903106689
0.591250836849213 0.132576137781143
0.637976706027985 0.118391141295433
0.688395142555237 0.104828864336014
0.747952163219452 0.0909036248922348
0.8126620054245 0.0780229121446609
0.882970035076141 0.0662879720330238
0.966017484664917 0.0549374520778656
1.05687594413757 0.0450283586978912
1.17238163948059 0.0353558026254177
1.32777094841003 0.0260966345667839
1.81241738796234 0.0121243027970195
1.99664270877838 0.00971182063221931
2.19959330558777 0.00787647254765034
2.43998622894287 0.0063685062341392
2.80186629295349 0.00485503114759922
4.83821058273315 0.00167939730454236
7.68928480148315 0.000670014414936304
21.2484550476074 8.80772568052635e-05
100 3.97877238356159e-06
};
\addlegendentry{$T=1$}
\addplot [very thin, darkorange25512714]
table {%
0.100000001490116 0.306067138910294
0.118870787322521 0.301281154155731
0.137447878718376 0.295945942401886
0.156745538115501 0.289826720952988
0.176297530531883 0.283112406730652
0.196922048926353 0.275565981864929
0.21844357252121 0.267291784286499
0.240647524595261 0.258442908525467
0.263281553983688 0.249211356043816
0.288044393062592 0.23899319767952
0.312964856624603 0.228705704212189
0.340041220188141 0.217645987868309
0.369460135698318 0.205892130732536
0.401424258947372 0.193552568554878
0.436153769493103 0.180763334035873
0.473887920379639 0.167683392763138
0.514886677265167 0.15448684990406
0.559432446956635 0.141354247927666
0.607832312583923 0.128462627530098
0.665001809597015 0.114958576858044
0.732596457004547 0.101153805851936
0.807062089443207 0.0882870703935623
0.895265758037567 0.0756799131631851
1 0.0636619701981544
1.13254117965698 0.0519214943051338
1.30051136016846 0.0409912280738354
1.51418936252594 0.0312955901026726
1.81241738796234 0.0225122198462486
2.2302234172821 0.015233357436955
2.90043020248413 0.00918643362820148
4.07014226913452 0.0047322316095233
6.69615983963013 0.00176491541787982
16.7967472076416 0.00028180907247588
100 7.95754749560729e-06
};
\addlegendentry{$T=0$}
\end{axis}
\draw ({$(current bounding box.south west)!0.5!(current bounding box.south east)$}|-{$(current bounding box.south west)!0.98!(current bounding box.north west)$}) node[
scale=0.42,
anchor=north,
text=black,
rotate=0.0
]{$\alpha(0)=0.64$, $\omega_c=2$};
\end{tikzpicture}

View file

@ -1,140 +0,0 @@
% This file was created with tikzplotlib v0.10.1.
\begin{tikzpicture}
\definecolor{darkgray176}{RGB}{176,176,176}
\definecolor{darkorange25512714}{RGB}{255,127,14}
\definecolor{lightgray204}{RGB}{204,204,204}
\definecolor{steelblue31119180}{RGB}{31,119,180}
\begin{axis}[
height=\figH,
legend cell align={left},
legend style={fill opacity=0.8, draw opacity=1, text opacity=1, draw=lightgray204},
log basis x={10},
log basis y={10},
minor xtick={20,30,40,50,60,70,80,90,200,300,400,500,600,700,800,900,2000,3000,4000,5000,6000,7000,8000,9000,20000,30000,40000,50000,60000,70000,80000,90000,200000,300000,400000,500000,600000,700000,800000,900000},
minor xticklabels={
\(\displaystyle {2\times10^{1}}\),
\(\displaystyle {3\times10^{1}}\),
\(\displaystyle {4\times10^{1}}\),
,
\(\displaystyle {6\times10^{1}}\),
,
,
,
\(\displaystyle {2\times10^{2}}\),
\(\displaystyle {3\times10^{2}}\),
\(\displaystyle {4\times10^{2}}\),
,
\(\displaystyle {6\times10^{2}}\),
,
,
,
\(\displaystyle {2\times10^{3}}\),
\(\displaystyle {3\times10^{3}}\),
\(\displaystyle {4\times10^{3}}\),
,
\(\displaystyle {6\times10^{3}}\),
,
,
,
\(\displaystyle {2\times10^{4}}\),
\(\displaystyle {3\times10^{4}}\),
\(\displaystyle {4\times10^{4}}\),
,
\(\displaystyle {6\times10^{4}}\),
,
,
,
\(\displaystyle {2\times10^{5}}\),
\(\displaystyle {3\times10^{5}}\),
\(\displaystyle {4\times10^{5}}\),
,
\(\displaystyle {6\times10^{5}}\),
,
,
},
minor ytick={2e-05,3e-05,4e-05,5e-05,6e-05,7e-05,8e-05,9e-05,0.0002,0.0003,0.0004,0.0005,0.0006,0.0007,0.0008,0.0009,0.002,0.003,0.004,0.005,0.006,0.007,0.008,0.009,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09},
minor yticklabels={
\(\displaystyle {2\times10^{-5}}\),
\(\displaystyle {3\times10^{-5}}\),
\(\displaystyle {4\times10^{-5}}\),
\(\displaystyle {5\times10^{-5}}\),
\(\displaystyle {6\times10^{-5}}\),
\(\displaystyle {7\times10^{-5}}\),
\(\displaystyle {8\times10^{-5}}\),
\(\displaystyle {9\times10^{-5}}\),
\(\displaystyle {2\times10^{-4}}\),
\(\displaystyle {3\times10^{-4}}\),
\(\displaystyle {4\times10^{-4}}\),
\(\displaystyle {5\times10^{-4}}\),
\(\displaystyle {6\times10^{-4}}\),
\(\displaystyle {7\times10^{-4}}\),
\(\displaystyle {8\times10^{-4}}\),
\(\displaystyle {9\times10^{-4}}\),
\(\displaystyle {2\times10^{-3}}\),
\(\displaystyle {3\times10^{-3}}\),
\(\displaystyle {4\times10^{-3}}\),
\(\displaystyle {5\times10^{-3}}\),
\(\displaystyle {6\times10^{-3}}\),
\(\displaystyle {7\times10^{-3}}\),
\(\displaystyle {8\times10^{-3}}\),
\(\displaystyle {9\times10^{-3}}\),
\(\displaystyle {2\times10^{-2}}\),
\(\displaystyle {3\times10^{-2}}\),
\(\displaystyle {4\times10^{-2}}\),
\(\displaystyle {5\times10^{-2}}\),
\(\displaystyle {6\times10^{-2}}\),
\(\displaystyle {7\times10^{-2}}\),
\(\displaystyle {8\times10^{-2}}\),
\(\displaystyle {9\times10^{-2}}\)
},
tick align=outside,
tick pos=left,
title={\(\displaystyle \alpha(0)=0.95\), \(\displaystyle \omega_c=2\)},
width=\figW,
x grid style={darkgray176},
xlabel={N},
xmin=922.680834590588, xmax=5418.99193367184,
xmode=log,
xtick style={color=black},
xtick={10,100,1000,10000,100000},
xticklabels={
\(\displaystyle {10^{1}}\),
\(\displaystyle {10^{2}}\),
\(\displaystyle {10^{3}}\),
\(\displaystyle {10^{4}}\),
\(\displaystyle {10^{5}}\)
},
y grid style={darkgray176},
ylabel={\(\displaystyle \langle \sigma \rangle / J_\mathrm{max}\)},
ymin=0.000345871424493466, ymax=0.000838201019949921,
ymode=log,
ytick style={color=black},
ytick={1e-05,0.0001,0.001,0.01},
yticklabels={
\(\displaystyle {10^{-5}}\),
\(\displaystyle {10^{-4}}\),
\(\displaystyle {10^{-3}}\),
\(\displaystyle {10^{-2}}\)
}
]
\addplot [semithick, steelblue31119180]
table {%
1000 0.00080514483852312
5000.0009765625 0.000360071600880474
};
\addlegendentry{$1/\sqrt{N}$}
\addplot [semithick, darkorange25512714, dotted, mark=*, mark size=3, mark options={solid}]
table {%
1000 0.00080514483852312
1999.99963378906 0.000566588540095836
3000.00073242188 0.000463386240880936
4000.00073242188 0.000403286510845646
5000.0009765625 0.000361806363798678
};
\addlegendentry{Numerics}
\end{axis}
\end{tikzpicture}

View file

@ -1,692 +0,0 @@
% This file was created with tikzplotlib v0.10.1.
\begin{tikzpicture}
\definecolor{darkgray176}{RGB}{176,176,176}
\definecolor{lightgray204}{RGB}{204,204,204}
\definecolor{skyblue127189233}{RGB}{127,189,233}
\definecolor{steelblue31119180}{RGB}{31,119,180}
\begin{axis}[
height=\figH,
legend cell align={left},
legend style={fill opacity=0.8, draw opacity=1, text opacity=1, draw=lightgray204},
tick align=outside,
tick pos=left,
width=\figW,
x grid style={darkgray176},
xlabel={\(\displaystyle \tau\)},
xmin=-2, xmax=42,
xtick style={color=black},
xtick={-5,0,5,10,15,20,25,30,35,40,45},
xticklabels={
\(\displaystyle {\ensuremath{-}5}\),
\(\displaystyle {0}\),
\(\displaystyle {5}\),
\(\displaystyle {10}\),
\(\displaystyle {15}\),
\(\displaystyle {20}\),
\(\displaystyle {25}\),
\(\displaystyle {30}\),
\(\displaystyle {35}\),
\(\displaystyle {40}\),
\(\displaystyle {45}\)
},
y grid style={darkgray176},
ylabel={\(\displaystyle ||H_\mathrm{sys}||\)},
ymin=-0.0598518297430483, ymax=1.25688842460401,
ytick style={color=black},
ytick={-0.2,0,0.2,0.4,0.6,0.8,1,1.2,1.4},
yticklabels={
\(\displaystyle {\ensuremath{-}0.2}\),
\(\displaystyle {0.0}\),
\(\displaystyle {0.2}\),
\(\displaystyle {0.4}\),
\(\displaystyle {0.6}\),
\(\displaystyle {0.8}\),
\(\displaystyle {1.0}\),
\(\displaystyle {1.2}\),
\(\displaystyle {1.4}\)
}
]
\path [draw=skyblue127189233, fill=skyblue127189233, opacity=0.5, line width=0.096pt]
(axis cs:0,0)
--(axis cs:0,0)
--(axis cs:0,0)
--(axis cs:0,0)
--cycle;
\path [draw=skyblue127189233, fill=skyblue127189233, opacity=0.5, line width=0.096pt]
(axis cs:0.760760760760761,0.447358142683627)
--(axis cs:0.760760760760761,0.451106180911202)
--(axis cs:0.800800800800801,0.47445433090629)
--(axis cs:0.840840840840841,0.496794731773835)
--(axis cs:0.880880880880881,0.518279033837682)
--(axis cs:0.920920920920921,0.538997684786408)
--(axis cs:0.960960960960961,0.559025235702598)
--(axis cs:1.001001001001,0.578429448648772)
--(axis cs:1.04104104104104,0.597273587686199)
--(axis cs:1.08108108108108,0.615617036392145)
--(axis cs:1.12112112112112,0.633515306264184)
--(axis cs:1.16116116116116,0.651019930495794)
--(axis cs:1.2012012012012,0.668178242868219)
--(axis cs:1.24124124124124,0.685033178003566)
--(axis cs:1.28128128128128,0.701623111661306)
--(axis cs:1.32132132132132,0.717981825229261)
--(axis cs:1.36136136136136,0.734138661897857)
--(axis cs:1.4014014014014,0.750118786307664)
--(axis cs:1.44144144144144,0.765943496236856)
--(axis cs:1.48148148148148,0.781630359217054)
--(axis cs:1.52152152152152,0.797193107753209)
--(axis cs:1.56156156156156,0.812641264245118)
--(axis cs:1.6016016016016,0.827979717884476)
--(axis cs:1.64164164164164,0.843208454638544)
--(axis cs:1.68168168168168,0.858322671928209)
--(axis cs:1.72172172172172,0.873313327251162)
--(axis cs:1.76176176176176,0.888167997084984)
--(axis cs:1.8018018018018,0.902871879223564)
--(axis cs:1.84184184184184,0.917408726805117)
--(axis cs:1.88188188188188,0.931761576810952)
--(axis cs:1.92192192192192,0.945913240240077)
--(axis cs:1.96196196196196,0.959846518935303)
--(axis cs:2.002002002002,0.973544230670027)
--(axis cs:2.04204204204204,0.986989053190052)
--(axis cs:2.08208208208208,1.000163299356)
--(axis cs:2.12212212212212,1.01304866746987)
--(axis cs:2.16216216216216,1.02562606184788)
--(axis cs:2.2022022022022,1.03787555829577)
--(axis cs:2.24224224224224,1.04977653165904)
--(axis cs:2.28228228228228,1.0613079508111)
--(axis cs:2.32232232232232,1.07244876464691)
--(axis cs:2.36236236236236,1.08317831155148)
--(axis cs:2.4024024024024,1.09347670983488)
--(axis cs:2.44244244244244,1.10332522766714)
--(axis cs:2.48248248248248,1.11270665749219)
--(axis cs:2.52252252252252,1.12160572071435)
--(axis cs:2.56256256256256,1.1300094743298)
--(axis cs:2.6026026026026,1.13790769608486)
--(axis cs:2.64264264264264,1.14529317832404)
--(axis cs:2.68268268268268,1.15216190216086)
--(axis cs:2.72272272272272,1.15851306355674)
--(axis cs:2.76276276276276,1.16434889929657)
--(axis cs:2.8028028028028,1.16967432978197)
--(axis cs:2.84284284284284,1.17449636305701)
--(axis cs:2.88288288288288,1.17882340010771)
--(axis cs:2.92292292292292,1.18266452747672)
--(axis cs:2.96296296296296,1.18602898634243)
--(axis cs:3.003003003003,1.18892593574472)
--(axis cs:3.04304304304304,1.19136449528901)
--(axis cs:3.08308308308308,1.19335401796879)
--(axis cs:3.12312312312312,1.19490445447008)
--(axis cs:3.16316316316316,1.19602670525167)
--(axis cs:3.2032032032032,1.19673290683344)
--(axis cs:3.24324324324324,1.19703659486097)
--(axis cs:3.28328328328328,1.19695275316788)
--(axis cs:3.32332332332332,1.19649770460018)
--(axis cs:3.36336336336336,1.19568888344417)
--(axis cs:3.4034034034034,1.19454453192824)
--(axis cs:3.44344344344344,1.19308339578362)
--(axis cs:3.48348348348348,1.19132450483969)
--(axis cs:3.52352352352352,1.18928706783661)
--(axis cs:3.56356356356356,1.18699047182623)
--(axis cs:3.6036036036036,1.18445434283809)
--(axis cs:3.64364364364364,1.18169857464812)
--(axis cs:3.68368368368368,1.17874328754736)
--(axis cs:3.72372372372372,1.17560866141019)
--(axis cs:3.76376376376376,1.17231467488518)
--(axis cs:3.8038038038038,1.16888079277089)
--(axis cs:3.84384384384384,1.16532568544371)
--(axis cs:3.88388388388388,1.1616670395442)
--(axis cs:3.92392392392392,1.15792151140982)
--(axis cs:3.96396396396396,1.1541048192511)
--(axis cs:4.004004004004,1.15023195582656)
--(axis cs:4.04404404404404,1.14631744909561)
--(axis cs:4.08408408408408,1.14237561211904)
--(axis cs:4.12412412412412,1.1384206850025)
--(axis cs:4.16416416416416,1.13446681688744)
--(axis cs:4.2042042042042,1.13052784708476)
--(axis cs:4.24424424424424,1.1266169267222)
--(axis cs:4.28428428428428,1.1227460638131)
--(axis cs:4.32432432432432,1.11892573043215)
--(axis cs:4.36436436436436,1.11516464953957)
--(axis cs:4.4044044044044,1.11146985367667)
--(axis cs:4.44444444444444,1.10784701700129)
--(axis cs:4.48448448448448,1.10430101826806)
--(axis cs:4.52452452452452,1.10083657943041)
--(axis cs:4.56456456456456,1.0974588372496)
--(axis cs:4.6046046046046,1.09417367713914)
--(axis cs:4.64464464464464,1.09098773967806)
--(axis cs:4.68468468468468,1.08790807351757)
--(axis cs:4.72472472472472,1.08494150834108)
--(axis cs:4.76476476476476,1.08209387564164)
--(axis cs:4.8048048048048,1.07936925737011)
--(axis cs:4.84484484484484,1.07676942936276)
--(axis cs:4.88488488488488,1.07429360951304)
--(axis cs:4.92492492492492,1.07193855356121)
--(axis cs:4.96496496496496,1.06969894565669)
--(axis cs:5.00500500500501,1.06756796593448)
--(axis cs:5.04504504504505,1.06553790013672)
--(axis cs:5.08508508508509,1.06360066390821)
--(axis cs:5.12512512512513,1.06174817843936)
--(axis cs:5.16516516516517,1.05997258151657)
--(axis cs:5.20520520520521,1.05826632201766)
--(axis cs:5.24524524524525,1.05662217604)
--(axis cs:5.28528528528529,1.05503322592051)
--(axis cs:5.32532532532533,1.05349281118474)
--(axis cs:5.36536536536537,1.05199444919131)
--(axis cs:5.40540540540541,1.05053174183942)
--(axis cs:5.44544544544545,1.04909830643694)
--(axis cs:5.48548548548549,1.04768777833269)
--(axis cs:5.52552552552553,1.04629391274844)
--(axis cs:5.56556556556557,1.0449107739451)
--(axis cs:5.60560560560561,1.04353292880161)
--(axis cs:5.64564564564565,1.04215554441572)
--(axis cs:5.68568568568569,1.04077429603093)
--(axis cs:5.72572572572573,1.03938504361781)
--(axis cs:5.76576576576577,1.03798334304139)
--(axis cs:5.80580580580581,1.03656388095758)
--(axis cs:5.84584584584585,1.03511998741537)
--(axis cs:5.88588588588589,1.03364332784722)
--(axis cs:5.92592592592593,1.03212382863214)
--(axis cs:5.96596596596597,1.03054986387669)
--(axis cs:6.00600600600601,1.02890865992126)
--(axis cs:6.04604604604605,1.02718688054311)
--(axis cs:6.08608608608609,1.02537134931945)
--(axis cs:6.12612612612613,1.02344983817713)
--(axis cs:6.16616616616617,1.02141185676471)
--(axis cs:6.20620620620621,1.01924934505044)
--(axis cs:6.24624624624625,1.01695715243278)
--(axis cs:6.28628628628629,1.01453321266498)
--(axis cs:6.32632632632633,1.01197838197737)
--(axis cs:6.36636636636637,1.00929597788876)
--(axis cs:6.40640640640641,1.00649114251626)
--(axis cs:6.44644644644645,1.00357019627549)
--(axis cs:6.48648648648649,1.00054009728546)
--(axis cs:6.52652652652653,0.9974080787424)
--(axis cs:6.56656656656657,0.994181432178912)
--(axis cs:6.60660660660661,0.990867351559417)
--(axis cs:6.64664664664665,0.987472750254218)
--(axis cs:6.68668668668669,0.984004019304146)
--(axis cs:6.72672672672673,0.98046675112549)
--(axis cs:6.76676676676677,0.97686552626382)
--(axis cs:6.80680680680681,0.973203839244464)
--(axis cs:6.84684684684685,0.969484241347255)
--(axis cs:6.88688688688689,0.96570866438758)
--(axis cs:6.92692692692693,0.961878880821376)
--(axis cs:6.96696696696697,0.957996948788602)
--(axis cs:7.00700700700701,0.954065534942426)
--(axis cs:7.04704704704705,0.950087999289172)
--(axis cs:7.08708708708709,0.946068245412512)
--(axis cs:7.12712712712713,0.942010392659985)
--(axis cs:7.16716716716717,0.937918404137098)
--(axis cs:7.20720720720721,0.933795788243568)
--(axis cs:7.24724724724725,0.929645444646526)
--(axis cs:7.28728728728729,0.925469666905402)
--(axis cs:7.32732732732733,0.921270246563173)
--(axis cs:7.36736736736737,0.917048644588891)
--(axis cs:7.40740740740741,0.912806171263013)
--(axis cs:7.44744744744745,0.908544159992589)
--(axis cs:7.48748748748749,0.904264123888273)
--(axis cs:7.52752752752753,0.899967902461171)
--(axis cs:7.56756756756757,0.89565777066064)
--(axis cs:7.60760760760761,0.891336499206361)
--(axis cs:7.64764764764765,0.887007351536918)
--(axis cs:7.68768768768769,0.882674024264399)
--(axis cs:7.72772772772773,0.878340581899318)
--(axis cs:7.76776776776777,0.874011392444627)
--(axis cs:7.80780780780781,0.869691123609032)
--(axis cs:7.84784784784785,0.865384764735752)
--(axis cs:7.88788788788789,0.861097650980276)
--(axis cs:7.92792792792793,0.856835405311491)
--(axis cs:7.96796796796797,0.852603773274407)
--(axis cs:8.00800800800801,0.848408346019409)
--(axis cs:8.04804804804805,0.844254237717199)
--(axis cs:8.08808808808809,0.840145803694554)
--(axis cs:8.12812812812813,0.836086477971838)
--(axis cs:8.16816816816817,0.832078761613066)
--(axis cs:8.20820820820821,0.828124352270036)
--(axis cs:8.24824824824825,0.824224383614854)
--(axis cs:8.28828828828829,0.820379701887204)
--(axis cs:8.32832832832833,0.816591130659663)
--(axis cs:8.36836836836837,0.81285963990449)
--(axis cs:8.40840840840841,0.809186362472827)
--(axis cs:8.44844844844845,0.805572413424102)
--(axis cs:8.48848848848849,0.802018522515356)
--(axis cs:8.52852852852853,0.79852453846489)
--(axis cs:8.56856856856857,0.79508892500325)
--(axis cs:8.60860860860861,0.791708375353586)
--(axis cs:8.64864864864865,0.788377669887048)
--(axis cs:8.68868868868869,0.785089823116674)
--(axis cs:8.72872872872873,0.781836508495081)
--(axis cs:8.76876876876877,0.778608648811129)
--(axis cs:8.80880880880881,0.775397030374495)
--(axis cs:8.84884884884885,0.772192806618261)
--(axis cs:8.88888888888889,0.768987800336657)
--(axis cs:8.92892892892893,0.765774595249602)
--(axis cs:8.96896896896897,0.762546487599191)
--(axis cs:9.00900900900901,0.759297384136557)
--(axis cs:9.04904904904905,0.756021746702515)
--(axis cs:9.08908908908909,0.752714646865699)
--(axis cs:9.12912912912913,0.749371933091359)
--(axis cs:9.16916916916917,0.745990479572791)
--(axis cs:9.20920920920921,0.742568476101756)
--(axis cs:9.24924924924925,0.739105685728214)
--(axis cs:9.28928928928929,0.735603654132212)
--(axis cs:9.32932932932933,0.732065816635149)
--(axis cs:9.36936936936937,0.728497462464803)
--(axis cs:9.40940940940941,0.724905500161634)
--(axis cs:9.44944944944945,0.721297978697713)
--(axis cs:9.48948948948949,0.717683371634153)
--(axis cs:9.52952952952953,0.714069704734781)
--(axis cs:9.56956956956957,0.710463683123031)
--(axis cs:9.60960960960961,0.706869980278012)
--(axis cs:9.64964964964965,0.703290826970395)
--(axis cs:9.68968968968969,0.699725940250315)
--(axis cs:9.72972972972973,0.696172746923022)
--(axis cs:9.76976976976977,0.69262678259562)
--(axis cs:9.80980980980981,0.689082157325892)
--(axis cs:9.84984984984985,0.685532012333298)
--(axis cs:9.88988988988989,0.681968959960293)
--(axis cs:9.92992992992993,0.678385559782479)
--(axis cs:9.96996996996997,0.674774863892122)
--(axis cs:10.01001001001,0.67113101347979)
--(axis cs:10.0500500500501,0.667449784483005)
--(axis cs:10.0900900900901,0.663728935117634)
--(axis cs:10.1301301301301,0.659968222048019)
--(axis cs:10.1701701701702,0.656169056551463)
--(axis cs:10.2102102102102,0.6523338727568)
--(axis cs:10.2502502502503,0.648465333125137)
--(axis cs:10.2902902902903,0.644565447335794)
--(axis cs:10.3303303303303,0.64063449340663)
--(axis cs:10.3703703703704,0.63666917563445)
--(axis cs:10.4104104104104,0.632658066646073)
--(axis cs:10.4504504504505,0.628565038039291)
--(axis cs:10.4904904904905,0.624174203172302)
--(axis cs:10.4904904904905,0.623340463895704)
--(axis cs:10.4904904904905,0.623340463895704)
--(axis cs:10.4504504504505,0.626221566568605)
--(axis cs:10.4104104104104,0.629421108853249)
--(axis cs:10.3703703703704,0.632713866924058)
--(axis cs:10.3303303303303,0.636053868524342)
--(axis cs:10.2902902902903,0.639419559724858)
--(axis cs:10.2502502502503,0.642797346923518)
--(axis cs:10.2102102102102,0.646177136147037)
--(axis cs:10.1701701701702,0.649550728957555)
--(axis cs:10.1301301301301,0.65291127769036)
--(axis cs:10.0900900900901,0.656253283689244)
--(axis cs:10.0500500500501,0.659572868930251)
--(axis cs:10.01001001001,0.662868101906603)
--(axis cs:9.96996996996997,0.666139185898489)
--(axis cs:9.92992992992993,0.669388399348064)
--(axis cs:9.88988988988989,0.672619782043052)
--(axis cs:9.84984984984985,0.675838661272111)
--(axis cs:9.80980980980981,0.679051131463524)
--(axis cs:9.76976976976977,0.682263562852398)
--(axis cs:9.72972972972973,0.685482146247457)
--(axis cs:9.68968968968969,0.688712444718635)
--(axis cs:9.64964964964965,0.691958909564198)
--(axis cs:9.60960960960961,0.695224379661132)
--(axis cs:9.56956956956957,0.698509644252209)
--(axis cs:9.52952952952953,0.701813178698062)
--(axis cs:9.48948948948949,0.705131167122912)
--(axis cs:9.44944944944945,0.708457856693084)
--(axis cs:9.40940940940941,0.711786204344121)
--(axis cs:9.36936936936937,0.715108684683032)
--(axis cs:9.32932932932933,0.718418105255106)
--(axis cs:9.28928928928929,0.721708280682529)
--(axis cs:9.24924924924925,0.724974488191224)
--(axis cs:9.20920920920921,0.728213695574777)
--(axis cs:9.16916916916917,0.731424601609594)
--(axis cs:9.12912912912913,0.734607539750632)
--(axis cs:9.08908908908909,0.737764280828628)
--(axis cs:9.04904904904905,0.740897785919207)
--(axis cs:9.00900900900901,0.74401192448686)
--(axis cs:8.96896896896897,0.747111229407903)
--(axis cs:8.92892892892893,0.750200729730669)
--(axis cs:8.88888888888889,0.753285894972181)
--(axis cs:8.84884884884885,0.756372690539936)
--(axis cs:8.80880880880881,0.759467688690295)
--(axis cs:8.76876876876877,0.762578138310049)
--(axis cs:8.72872872872873,0.765711911436443)
--(axis cs:8.68868868868869,0.768877252960276)
--(axis cs:8.64864864864865,0.772082338904937)
--(axis cs:8.60860860860861,0.775334722795333)
--(axis cs:8.56856856856857,0.778640792840069)
--(axis cs:8.52852852852853,0.782005371947745)
--(axis cs:8.48848848848849,0.785431561677355)
--(axis cs:8.44844844844845,0.788920843831427)
--(axis cs:8.40840840840841,0.792473397941607)
--(axis cs:8.36836836836837,0.796088526539263)
--(axis cs:8.32832832832833,0.79976507664497)
--(axis cs:8.28828828828829,0.803501750979836)
--(axis cs:8.24824824824825,0.807297256282426)
--(axis cs:8.20820820820821,0.811150276929344)
--(axis cs:8.16816816816817,0.815059314416221)
--(axis cs:8.12812812812813,0.819022443248037)
--(axis cs:8.08808808808809,0.823037062203809)
--(axis cs:8.04804804804805,0.827099687627451)
--(axis cs:8.00800800800801,0.831205856959211)
--(axis cs:7.96796796796797,0.835350174134915)
--(axis cs:7.92792792792793,0.839526500573777)
--(axis cs:7.88788788788789,0.843728257326549)
--(axis cs:7.84784784784785,0.847948755541325)
--(axis cs:7.80780780780781,0.852181466357195)
--(axis cs:7.76776776776777,0.856420163022246)
--(axis cs:7.72772772772773,0.860658943216846)
--(axis cs:7.68768768768769,0.86489216358199)
--(axis cs:7.64764764764765,0.869114381829869)
--(axis cs:7.60760760760761,0.873320345634727)
--(axis cs:7.56756756756757,0.877505077195446)
--(axis cs:7.52752752752753,0.881664005028128)
--(axis cs:7.48748748748749,0.885793135818818)
--(axis cs:7.44744744744745,0.889889199490903)
--(axis cs:7.40740740740741,0.893949732840131)
--(axis cs:7.36736736736737,0.897973073171996)
--(axis cs:7.32732732732733,0.901958231564174)
--(axis cs:7.28728728728729,0.905904659505472)
--(axis cs:7.24724724724725,0.909811951977309)
--(axis cs:7.20720720720721,0.913679551052372)
--(axis cs:7.16716716716717,0.917506481112895)
--(axis cs:7.12712712712713,0.921291184039034)
--(axis cs:7.08708708708709,0.925031480466916)
--(axis cs:7.04704704704705,0.928724696945113)
--(axis cs:7.00700700700701,0.932367943367687)
--(axis cs:6.96696696696697,0.935958469232769)
--(axis cs:6.92692692692693,0.939493984856173)
--(axis cs:6.88688688688689,0.942972816321846)
--(axis cs:6.84684684684685,0.946393836460398)
--(axis cs:6.80680680680681,0.949756165040541)
--(axis cs:6.76676676676677,0.953058747219063)
--(axis cs:6.72672672672673,0.956299916149987)
--(axis cs:6.68668668668669,0.959477088604514)
--(axis cs:6.64664664664665,0.962586641748555)
--(axis cs:6.60660660660661,0.965624006169348)
--(axis cs:6.56656656656657,0.968583895200824)
--(axis cs:6.52652652652653,0.971460590504308)
--(axis cs:6.48648648648649,0.974248180971487)
--(axis cs:6.44644644644645,0.976940728963997)
--(axis cs:6.40640640640641,0.979532395278336)
--(axis cs:6.36636636636637,0.982017614750365)
--(axis cs:6.32632632632633,0.984391412537181)
--(axis cs:6.28628628628629,0.986649901489782)
--(axis cs:6.24624624624625,0.988790897426327)
--(axis cs:6.20620620620621,0.990814541468565)
--(axis cs:6.16616616616617,0.992723762386008)
--(axis cs:6.12612612612613,0.99452444727473)
--(axis cs:6.08608608608609,0.996225270547716)
--(axis cs:6.04604604604605,0.997837209917384)
--(axis cs:6.00600600600601,0.999372841275947)
--(axis cs:5.96596596596597,1.00084553920812)
--(axis cs:5.92592592592593,1.00226869088248)
--(axis cs:5.88588588588589,1.00365499496739)
--(axis cs:5.84584584584585,1.00501591490615)
--(axis cs:5.80580580580581,1.00636131919101)
--(axis cs:5.76576576576577,1.00769933347777)
--(axis cs:5.72572572572573,1.00903643336851)
--(axis cs:5.68568568568569,1.01037774704933)
--(axis cs:5.64564564564565,1.01172751727136)
--(axis cs:5.60560560560561,1.01308963087687)
--(axis cs:5.56556556556557,1.01446807668707)
--(axis cs:5.52552552552553,1.01586724957091)
--(axis cs:5.48548548548549,1.01729203970433)
--(axis cs:5.44544544544545,1.01874774431917)
--(axis cs:5.40540540540541,1.02023988857419)
--(axis cs:5.36536536536537,1.0217740479946)
--(axis cs:5.32532532532533,1.0233557495237)
--(axis cs:5.28528528528529,1.02499046371803)
--(axis cs:5.24524524524525,1.0266836629232)
--(axis cs:5.20520520520521,1.02844090371184)
--(axis cs:5.16516516516517,1.03026790006272)
--(axis cs:5.12512512512513,1.03217057278541)
--(axis cs:5.08508508508509,1.03415508138534)
--(axis cs:5.04504504504505,1.03622783240432)
--(axis cs:5.00500500500501,1.03839542652599)
--(axis cs:4.96496496496496,1.04066450641833)
--(axis cs:4.92492492492492,1.04304144981024)
--(axis cs:4.88488488488488,1.0455319113815)
--(axis cs:4.84484484484484,1.04814026107373)
--(axis cs:4.8048048048048,1.05086903341923)
--(axis cs:4.76476476476476,1.05371851547505)
--(axis cs:4.72472472472472,1.05668659017021)
--(axis cs:4.68468468468468,1.05976889371695)
--(axis cs:4.64464464464464,1.06295925528478)
--(axis cs:4.6046046046046,1.06625032545178)
--(axis cs:4.56456456456456,1.06963424519349)
--(axis cs:4.52452452452452,1.07310319360024)
--(axis cs:4.48448448448448,1.07664970380166)
--(axis cs:4.44444444444444,1.08026668400841)
--(axis cs:4.4044044044044,1.08394717636157)
--(axis cs:4.36436436436436,1.08768393996723)
--(axis cs:4.32432432432432,1.09146901366122)
--(axis cs:4.28428428428428,1.09529337755739)
--(axis cs:4.24424424424424,1.09914682942757)
--(axis cs:4.2042042042042,1.10301807554269)
--(axis cs:4.16416416416416,1.10689498966037)
--(axis cs:4.12412412412412,1.11076492499554)
--(axis cs:4.08408408408408,1.11461498416201)
--(axis cs:4.04404404404404,1.11843217292445)
--(axis cs:4.004004004004,1.12220342578228)
--(axis cs:3.96396396396396,1.12591550389316)
--(axis cs:3.92392392392392,1.12955481064345)
--(axis cs:3.88388388388388,1.13310715599257)
--(axis cs:3.84384384384384,1.13655754186975)
--(axis cs:3.8038038038038,1.1398900039337)
--(axis cs:3.76376376376376,1.14308756776458)
--(axis cs:3.72372372372372,1.14613232977277)
--(axis cs:3.68368368368368,1.1490056651886)
--(axis cs:3.64364364364364,1.15168851680068)
--(axis cs:3.6036036036036,1.15416170972855)
--(axis cs:3.56356356356356,1.15640621797475)
--(axis cs:3.52352352352352,1.15840334287552)
--(axis cs:3.48348348348348,1.16013477209956)
--(axis cs:3.44344344344344,1.16158257095701)
--(axis cs:3.4034034034034,1.16272913908364)
--(axis cs:3.36336336336336,1.16355722353891)
--(axis cs:3.32332332332332,1.16405003037159)
--(axis cs:3.28328328328328,1.16419144249217)
--(axis cs:3.24324324324324,1.16396631324799)
--(axis cs:3.2032032032032,1.16336074316517)
--(axis cs:3.16316316316316,1.16236226901693)
--(axis cs:3.12312312312312,1.16095991974547)
--(axis cs:3.08308308308308,1.15914411420091)
--(axis cs:3.04304304304304,1.15690645120634)
--(axis cs:3.003003003003,1.15423939295395)
--(axis cs:2.96296296296296,1.15113590698897)
--(axis cs:2.92292292292292,1.14758911401191)
--(axis cs:2.88288288288288,1.14359204346621)
--(axis cs:2.84284284284284,1.13913761491542)
--(axis cs:2.8028028028028,1.13421888506673)
--(axis cs:2.76276276276276,1.1288295608452)
--(axis cs:2.72272272272272,1.12296465618563)
--(axis cs:2.68268268268268,1.11662111395266)
--(axis cs:2.64264264264264,1.10979831343036)
--(axis cs:2.6026026026026,1.10249834697982)
--(axis cs:2.56256256256256,1.09472613473511)
--(axis cs:2.52252252252252,1.08648937153681)
--(axis cs:2.48248248248248,1.07779836283431)
--(axis cs:2.44244244244244,1.06866576222819)
--(axis cs:2.4024024024024,1.05910622912817)
--(axis cs:2.36236236236236,1.04913605681609)
--(axis cs:2.32232232232232,1.0387727869503)
--(axis cs:2.28228228228228,1.02803484326473)
--(axis cs:2.24224224224224,1.01694116376664)
--(axis cs:2.2022022022022,1.00551082479371)
--(axis cs:2.16216216216216,0.993762665660266)
--(axis cs:2.12212212212212,0.981714960937949)
--(axis cs:2.08208208208208,0.969385202773465)
--(axis cs:2.04204204204204,0.956790050564809)
--(axis cs:2.002002002002,0.943945438741834)
--(axis cs:1.96196196196196,0.930866810181114)
--(axis cs:1.92192192192192,0.917569417743242)
--(axis cs:1.88188188188188,0.904068603090474)
--(axis cs:1.84184184184184,0.890380000317645)
--(axis cs:1.8018018018018,0.876519520347772)
--(axis cs:1.76176176176176,0.86250305615337)
--(axis cs:1.72172172172172,0.848345846061103)
--(axis cs:1.68168168168168,0.834061586855731)
--(axis cs:1.64164164164164,0.819661422208753)
--(axis cs:1.6016016016016,0.805152986899388)
--(axis cs:1.56156156156156,0.790539694351264)
--(axis cs:1.52152152152152,0.775820388589682)
--(axis cs:1.48148148148148,0.760989416437423)
--(axis cs:1.44144144144144,0.746037027328713)
--(axis cs:1.4014014014014,0.730949854038622)
--(axis cs:1.36136136136136,0.715711260810874)
--(axis cs:1.32132132132132,0.700301372883024)
--(axis cs:1.28128128128128,0.684696833969117)
--(axis cs:1.24124124124124,0.668870428650666)
--(axis cs:1.2012012012012,0.652790812547492)
--(axis cs:1.16116116116116,0.63642245205795)
--(axis cs:1.12112112112112,0.619725844518547)
--(axis cs:1.08108108108108,0.602657975352992)
--(axis cs:1.04104104104104,0.585172936081269)
--(axis cs:1.001001001001,0.567222758543129)
--(axis cs:0.960960960960961,0.548758481309793)
--(axis cs:0.920920920920921,0.529731834319099)
--(axis cs:0.880880880880881,0.510097994398011)
--(axis cs:0.840840840840841,0.489821121609849)
--(axis cs:0.800800800800801,0.468887764526639)
--(axis cs:0.760760760760761,0.447358142683627)
--cycle;
\addplot [very thin, steelblue31119180]
table {%
0 -0
0.0400400161743164 0.00488054752349854
0.0800800323486328 0.0164093971252441
0.120120167732239 0.0327221155166626
0.160160183906555 0.0527238845825195
0.200200200080872 0.0755805969238281
0.240240216255188 0.100606322288513
0.280280351638794 0.127220630645752
0.360360383987427 0.183284401893616
0.480480432510376 0.269015550613403
0.560560584068298 0.324335217475891
0.640640616416931 0.376818895339966
0.680680751800537 0.401818752288818
0.720720767974854 0.425955295562744
0.76076078414917 0.44923210144043
0.800800800323486 0.471671104431152
0.880880832672119 0.514188528060913
0.960960984230042 0.553891897201538
1.04104101657867 0.591223239898682
1.1211211681366 0.626620531082153
1.20120120048523 0.660484552383423
1.28128123283386 0.693160057067871
1.4014014005661 0.74053430557251
1.52152156829834 0.786506772041321
1.68168163299561 0.846192121505737
1.80180180072784 0.889695644378662
1.92192196846008 0.93174135684967
2.04204201698303 0.971889495849609
2.12212204933167 0.997381806373596
2.20220232009888 1.02169322967529
2.28228235244751 1.04467141628265
2.36236238479614 1.06615722179413
2.44244241714478 1.08599543571472
2.52252244949341 1.10404753684998
2.60260272026062 1.12020301818848
2.68268275260925 1.13439154624939
2.76276278495789 1.1465892791748
2.84284281730652 1.1568169593811
2.92292284965515 1.16512680053711
3.00300312042236 1.17158269882202
3.083083152771 1.1762490272522
3.16316318511963 1.17919445037842
3.24324321746826 1.18050146102905
3.32332324981689 1.1802738904953
3.40340352058411 1.1786367893219
3.48348355293274 1.17572963237762
3.56356358528137 1.17169833183289
3.68368363380432 1.16387450695038
3.80380392074585 1.15438544750214
3.96396398544312 1.1400101184845
4.56456470489502 1.08354651927948
4.72472476959229 1.07081401348114
4.84484481811523 1.06245481967926
4.96496486663818 1.05518174171448
5.12512493133545 1.046959400177
5.32532548904419 1.03842425346375
5.6056056022644 1.02831125259399
6.00600624084473 1.0141407251358
6.16616630554199 1.00706779956818
6.28628635406494 1.00059151649475
6.40640640258789 0.993011713027954
6.56656646728516 0.981382608413696
6.72672653198242 0.968383312225342
6.92692708969116 0.950686454772949
7.12712717056274 0.931650876998901
7.36736726760864 0.907510876655579
7.68768787384033 0.873783111572266
8.0880880355835 0.831591367721558
8.28828811645508 0.811940670013428
8.48848819732666 0.79372501373291
8.68868827819824 0.776983499526978
9.36936950683594 0.721803069114685
10.3703699111938 0.634691476821899
10.730731010437 0.602354764938354
10.9709711074829 0.582029223442078
11.1711711883545 0.566482305526733
11.3313312530518 0.555291652679443
11.5315313339233 0.542772054672241
11.8518514633179 0.524681329727173
12.4124126434326 0.493420124053955
12.6526527404785 0.481948852539062
12.9329328536987 0.469943165779114
13.2132129669189 0.45796275138855
13.3733730316162 0.449936032295227
13.5735731124878 0.438592314720154
14.2142143249512 0.400914192199707
14.4944944381714 0.387105107307434
14.9349346160889 0.365057349205017
15.3353357315063 0.345635652542114
15.6956958770752 0.328966975212097
15.8958959579468 0.32126247882843
16.0560569763184 0.31636905670166
16.2562561035156 0.311796307563782
16.6566562652588 0.303695559501648
16.8968963623047 0.296688795089722
17.8578586578369 0.26725161075592
18.3383388519287 0.253704428672791
18.5785789489746 0.248642921447754
18.9789791107178 0.242129564285278
19.4194202423096 0.23615574836731
19.7797794342041 0.230757236480713
20.0600605010986 0.225056529045105
20.4604606628418 0.215296864509583
20.9409408569336 0.203076720237732
21.1411418914795 0.199517011642456
21.4214210510254 0.19611382484436
22.382381439209 0.186945080757141
22.7427425384521 0.184108734130859
23.3833827972412 0.179861545562744
23.7437438964844 0.175101161003113
24.1441440582275 0.170179605484009
24.5845851898193 0.166652321815491
25.1451454162598 0.163221120834351
25.5855846405029 0.161814332008362
25.9859867095947 0.161665439605713
26.3063068389893 0.161487102508545
27.1871871948242 0.157648205757141
27.5875873565674 0.155122637748718
28.3083076477051 0.150086522102356
28.5885887145996 0.149673342704773
29.2692699432373 0.149664282798767
29.6296291351318 0.148158431053162
30.2302303314209 0.145047426223755
30.5505504608154 0.145012974739075
31.9919910430908 0.146338939666748
32.5125122070312 0.145876407623291
33.6736755371094 0.142343640327454
35.1551551818848 0.140413880348206
35.8358345031738 0.138945341110229
36.7567558288574 0.138567447662354
37.3573570251465 0.138107299804688
38.1181182861328 0.138453125953674
38.5585594177246 0.137667655944824
38.9589576721191 0.137561559677124
39.6396408081055 0.137812376022339
40 0.136801600456238
};
\addlegendentry{$\alpha(0)=0.32$, $\omega_c=1$}
\end{axis}
\end{tikzpicture}

View file

@ -86,18 +86,48 @@
#+RESULTS:
#+begin_example
stocproc.stocproc - INFO - Loaded instance from cache.
INFO:stocproc.stocproc:Loaded instance from cache.
stocproc.stocproc - INFO - non neg freq only
INFO:stocproc.stocproc:non neg freq only
[ 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7. 7.5 8.5 9.5 10.5 11.5 12.5
13.5]
stocproc.stocproc - INFO - Loaded instance from cache.
INFO:stocproc.stocproc:Loaded instance from cache.
stocproc.stocproc - INFO - Fourier Integral Boundaries: [0.000e+00, 1.527e+03]
INFO:stocproc.stocproc:Fourier Integral Boundaries: [0.000e+00, 1.527e+03]
stocproc.stocproc - INFO - Number of Nodes : 131072
INFO:stocproc.stocproc:Number of Nodes : 131072
stocproc.stocproc - INFO - yields dx : 1.165e-02
INFO:stocproc.stocproc:yields dx : 1.165e-02
stocproc.stocproc - INFO - yields dt : 4.114e-03
INFO:stocproc.stocproc:yields dt : 4.114e-03
stocproc.stocproc - INFO - yields t_max : 5.392e+02
INFO:stocproc.stocproc:yields t_max : 5.392e+02
stocproc.stocproc - INFO - non neg freq only
INFO:stocproc.stocproc:non neg freq only
[ 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7. 7.5 8.5 9.5 10.5 11.5 12.5
13.5]
stocproc.stocproc - INFO - Loaded instance from cache.
INFO:stocproc.stocproc:Loaded instance from cache.
stocproc.stocproc - INFO - Fourier Integral Boundaries: [0.000e+00, 5.527e+03]
INFO:stocproc.stocproc:Fourier Integral Boundaries: [0.000e+00, 5.527e+03]
stocproc.stocproc - INFO - Number of Nodes : 262144
INFO:stocproc.stocproc:Number of Nodes : 262144
stocproc.stocproc - INFO - yields dx : 2.108e-02
INFO:stocproc.stocproc:yields dx : 2.108e-02
stocproc.stocproc - INFO - yields dt : 1.137e-03
INFO:stocproc.stocproc:yields dt : 1.137e-03
stocproc.stocproc - INFO - yields t_max : 2.980e+02
INFO:stocproc.stocproc:yields t_max : 2.980e+02
stocproc.stocproc - INFO - non neg freq only
INFO:stocproc.stocproc:non neg freq only
[ 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7. 7.5 8.5 9.5 10.5 11.5 12.5
13.5]
stocproc.stocproc - INFO - Fourier Integral Boundaries: [0.000e+00, 3.235e+03]
INFO:stocproc.stocproc:Fourier Integral Boundaries: [0.000e+00, 3.235e+03]
stocproc.stocproc - INFO - Number of Nodes : 262144
INFO:stocproc.stocproc:Number of Nodes : 262144
stocproc.stocproc - INFO - yields dx : 1.234e-02
INFO:stocproc.stocproc:yields dx : 1.234e-02
stocproc.stocproc - INFO - yields dt : 1.942e-03
INFO:stocproc.stocproc:yields dt : 1.942e-03
stocproc.stocproc - INFO - yields t_max : 5.091e+02
INFO:stocproc.stocproc:yields t_max : 5.091e+02
stocproc.stocproc - INFO - Loaded instance from cache.
INFO:stocproc.stocproc:Loaded instance from cache.
[ 0.5 1.5 2.5 3.5 4.5 5.5 6.5 7. 7.5 8.5 9.5 10.5 11.5 12.5
@ -114,6 +144,26 @@
#+RESULTS:
: RayContext(dashboard_url='', python_version='3.9.13', ray_version='1.13.0', ray_commit='e4ce38d001dbbe09cd21c497fedd03d692b2be3e', address_info={'node_ip_address': '141.30.17.225', 'raylet_ip_address': '141.30.17.225', 'redis_address': None, 'object_store_address': '/tmp/ray/session_2022-08-05_11-16-57_697267_44068/sockets/plasma_store', 'raylet_socket_name': '/tmp/ray/session_2022-08-05_11-16-57_697267_44068/sockets/raylet', 'webui_url': '', 'session_dir': '/tmp/ray/session_2022-08-05_11-16-57_697267_44068', 'metrics_export_port': 59076, 'gcs_address': '141.30.17.225:59268', 'address': '141.30.17.225:59268', 'node_id': 'f205a3b0dd8a57759edce36de05aadac8b525793d4478cd44bede964'})
#+begin_src jupyter-python
fig, ax = plt.subplots()
for i, (params, keys) in enumerate(zip(multi_params, model_keys)):
plt.axhline(
np.sqrt(params.SysP.g[0].sum().real) / keys["wc"],
label=rf"$\alpha(0)={params.SysP.g[0].sum().real:.2f}$, $\omega_c={keys['wc']}$",
color=(ax.plot([],[])[0].get_color())
)
plt.ylim(0,.6)
plt.legend(fontsize="x-small")
plt.ylabel(r"$\sqrt{\alpha(0)} / \omega_c$")
plt.xticks([])
fs.export_fig("timescale_comparison", x_scaling=.3, tikz=False)
#+end_src
#+RESULTS:
[[file:./.ob-jupyter/1a6e39e8cf92ba799e42a667460ebffb57909043.svg]]
#+begin_src jupyter-python
supervisors = []

View file

@ -82,6 +82,20 @@ import ray
ray.shutdown()
ray.init()
fig, ax = plt.subplots()
for i, (params, keys) in enumerate(zip(multi_params, model_keys)):
plt.axhline(
np.sqrt(params.SysP.g[0].sum().real) / keys["wc"],
label=rf"$\alpha(0)={params.SysP.g[0].sum().real:.2f}$, $\omega_c={keys['wc']}$",
color=(ax.plot([],[])[0].get_color())
)
plt.ylim(0,.6)
plt.legend(fontsize="x-small")
plt.ylabel(r"$\sqrt{\alpha(0)} / \omega_c$")
plt.xticks([])
fs.export_fig("timescale_comparison", x_scaling=.3, tikz=False)
supervisors = []
for params in multi_params:
supervisor = HOPSSupervisor(

View file

@ -117,14 +117,14 @@ def plot_complex(x, y, *args, ax=None, label="", absolute=False, **kwargs):
x,
abs(y.real) if absolute else y.real,
*args,
label=f"{label}absolute real part",
label=f"{label}{'absolute' if absolute else ''} real part",
**kwargs,
)
ax.plot(
x,
abs(y.imag) if absolute else y.imag,
*args,
label=f"{label}absolute imag part",
label=f"{label}{'absolute' if absolute else ''} imag part",
**kwargs,
)
ax.legend()
@ -601,6 +601,7 @@ def plot_energy_overview(
# total=True,
# flow=True,
# interaction=True,
bath_names=None,
**kwargs,
):
if not ensemble_args:
@ -620,11 +621,12 @@ def plot_energy_overview(
num_baths = interaction_energy.num_baths
for bath in range(num_baths):
label = bath_names[bath] if bath_names else bath + 1
# plot_with_σ(
# model.t, flow, bath=bath, ax=ax, label=f"Flow {bath+1}", **kwargs
# )
plot_with_σ(
model.t, bath_energy, bath=bath, ax=ax, label=f"Bath {bath+1}", **kwargs
model.t, bath_energy, bath=bath, ax=ax, label=f"Bath {label}", **kwargs
)
plot_with_σ(
@ -632,7 +634,7 @@ def plot_energy_overview(
interaction_energy,
ax=ax,
bath=bath,
label=f"Interaction {bath+1}",
label=f"Interaction {label}",
**kwargs,
)
@ -695,12 +697,13 @@ def plot_σ_development(ensemble_value, ax=None, **kwargs):
def plot_multi_energy_overview(
models,
label_fn=lambda m: fr"$\omega_c={m.ω_c:.1f},\,\alpha(0)={m.bcf(0).real:.2f}$",
ensemble_arg=dict(),
):
fig, ((ax_sys, ax_flow), (ax_inter, ax_bath)) = plt.subplots(
nrows=2, ncols=2, sharex=True
)
flow_ins = ax_flow.inset_axes([0.4, 0.20, 0.5, 0.55])
# flow_ins = ax_flow.inset_axes([0.4, 0.20, 0.5, 0.55])
ax_sys.set_ylabel(r"$\langle H_\mathrm{S}\rangle$")
ax_flow.set_ylabel("$J$")
ax_inter.set_ylabel(r"$\langle H_\mathrm{I}\rangle$")
@ -734,11 +737,11 @@ def plot_multi_energy_overview(
)
mask = np.logical_and(7 <= data.time[:], data.time[:] <= 9)
plot_with_σ(
data.time[mask],
flow.slice(mask),
ax=flow_ins,
)
# plot_with_σ(
# data.time[mask],
# flow.slice(mask),
# ax=flow_ins,
# )
plot_with_σ(
data.time[:],