From f05c25bae29b00e1ba8de10cea2cb07e9b757993 Mon Sep 17 00:00:00 2001
From: Valentin Bruch <valentin.bruch@rwth-aachen.de>
Date: Thu, 3 Nov 2022 09:19:28 +0100
Subject: [PATCH] corrected TK_VOLTAGE

---
 experiments.py    | 15 ++++++------
 final_plots.py    | 12 ++++-----
 gen_data.py       |  2 +-
 gen_pulse_data.py |  2 +-
 plot.py           | 62 ++++++++++++++++++++++++++++++++---------------
 5 files changed, 59 insertions(+), 34 deletions(-)

diff --git a/experiments.py b/experiments.py
index 3bcc3b8..0b072a8 100644
--- a/experiments.py
+++ b/experiments.py
@@ -20,7 +20,8 @@ from data_management import DataManager, KondoImport
 # temperature Tkrg, which is an integration constant of the E-flow RG
 # equations. The more conventional definition of the Kondo temperature is
 # G(V=Tk)=G(V=0)/2=e²/h. The ratio Tk/Tkrg is:
-TK_VOLTAGE = 3.30743526735
+TK_VOLTAGE = 3.44249
+
 
 def main():
     """
@@ -73,12 +74,12 @@ def bruhat18(dm, **parameters):
 
     omega1 = ((f1_ghz * 1e9*sc.h) / (tkrg_mueV * 1e-6 * sc.eV)) # Frequency, in RTRG Tk units
     omega2 = ((f2_ghz * 1e9*sc.h) / (tkrg_mueV * 1e-6 * sc.eV)) # Frequency, in RTRG Tk units
-    omega1 = round(omega1, 7)
-    omega2 = round(omega2, 7)
+    omega1 = round(omega1, 5)
+    omega2 = round(omega2, 5)
     print(f"Omega1 = {omega1}\nOmega2 = {omega2}")
 
-    omega1 = 9.2159791 # Frequency, in RTRG Tk units
-    omega2 = 5.8206184 # Frequency, in RTRG Tk units
+    omega1_old = 9.2159791 # Frequency, in RTRG Tk units
+    omega2_old = 5.8206184 # Frequency, in RTRG Tk units
 
     voltage_branches = 4
     vac_mueV = np.array([20, 40, 60, 80, 100, 120, 140, 160, 180, 220, 300])
@@ -460,8 +461,8 @@ def kogan04(dm, **parameters):
     f_ghz = 13.47
     tkrg_mueV = 1e3 * (tk_mK * sc.k / sc.eV) / TK_VOLTAGE
     omega = (sc.h * f_ghz * 1e9) / (1e-3*sc.k*tk_mK) * TK_VOLTAGE
-    omega = round(omega, 4)
-    omega = 7.1271
+    omega = round(omega, 5)
+    omega_old = 7.1271
     vac_mueV_arr = np.array([29, 45, 60, 67, 144])
     vac_arr = vac_mueV_arr / tkrg_mueV
     print(f"Tkrg = {tkrg_mueV} μeV")
diff --git a/final_plots.py b/final_plots.py
index bf19f33..4a53596 100644
--- a/final_plots.py
+++ b/final_plots.py
@@ -24,7 +24,7 @@ from numbers import Number
 # temperature Tkrg, which is an integration constant of the E-flow RG
 # equations. The more conventional definition of the Kondo temperature is
 # G(V=Tk)=G(V=0)/2=e²/h. The ratio Tk/Tkrg is:
-TK_VOLTAGE = 3.30743526735
+TK_VOLTAGE = 3.44249
 
 def save_overview(
         omega = 16.5372,
@@ -460,12 +460,12 @@ def export_omega5_interp(
 
 def export_vdc0_interp(
         filename = "figdata/vdc0_interp.npz",
-        omega_min = 0.05,
-        omega_max = 20,
-        vac_omega_min = 0,
+        omega_min = 0.1,
+        omega_max = 40,
+        vac_omega_min = 0.01,
         vac_omega_max = 10,
-        omega_res = 101,
-        vac_res = 101,
+        omega_res = 201,
+        vac_res = 201,
         korder = 2,
         ):
     """
diff --git a/gen_data.py b/gen_data.py
index d0a9029..7330c01 100644
--- a/gen_data.py
+++ b/gen_data.py
@@ -124,7 +124,7 @@ def main():
     as integration constant of the RG equations. This is related to the
     more conventional definition of the Kondo temperature by G(V=Tk)=e²/h
     (differential conductance drops to half its universal value when the DC
-    bias voltage equals Tk) by Tk = 3.30743526735 Tkrg.
+    bias voltage equals Tk) by Tk = 3.44249 Tkrg.
     """
     parser = argparse.ArgumentParser(
             description = main.__doc__.replace("\n    ", "\n"),
diff --git a/gen_pulse_data.py b/gen_pulse_data.py
index ca3b26c..a639cc9 100644
--- a/gen_pulse_data.py
+++ b/gen_pulse_data.py
@@ -25,7 +25,7 @@ def main():
     as integration constant of the RG equations. This is related to the
     more conventional definition of the Kondo temperature by G(V=Tk)=e²/h
     (differential conductance drops to half its universal value when the DC
-    bias voltage equals Tk) by Tk = 3.30743526735 Tkrg.
+    bias voltage equals Tk) by Tk = 3.44249 Tkrg.
     """
     parser = argparse.ArgumentParser(
             description = main.__doc__.replace("\n    ", "\n"),
diff --git a/plot.py b/plot.py
index e071415..6862d67 100644
--- a/plot.py
+++ b/plot.py
@@ -37,7 +37,7 @@ REFERENCE_VALUES = {
             ),
         }
 
-TK_VOLTAGE = 3.30743526735
+TK_VOLTAGE = 3.44249
 
 
 def main():
@@ -2074,7 +2074,18 @@ def compare_limits(
         vdc = 82.686
     parameters.pop("method", None)
     parameters.pop("voltage_branches", None)
-    fig, ((ax_omega, ax_vac), (ax_vdc, ax_vac_vdc)) = plt.subplots(2, 2, sharey=True)
+    fig, ((ax_omega, ax_vac), (ax_vdc, ax_vac_vdc)) = plt.subplots(2, 2, sharey="row")
+    ax_omega.set_ylabel("G (2e²/h)")
+    ax_vdc.set_ylabel("G (2e²/h)")
+    ax_omega.set_xlabel("Ω (Tk)")
+    ax_vac.set_xlabel("Vosc (Tk)")
+    ax_vac_vdc.set_xlabel("Vosc (Tk)")
+    ax_vdc.set_xlabel("Vavg (Tk)")
+    ax_omega.set_title(f"Vavg=0, Vosc={vac/TK_VOLTAGE:.4g}Tk")
+    ax_vac.set_title(f"Vavg=0, Ω={omega_vac/TK_VOLTAGE:.4g}Tk")
+    ax_vdc.set_title(f"Vosc={vac_vdc/TK_VOLTAGE:.4g}, Ω={omega_vdc/TK_VOLTAGE:.4g}Tk")
+    ax_vac_vdc.set_title(f"Vavg={vdc/TK_VOLTAGE:.4g}, Ω={omega_vac/TK_VOLTAGE:.4g}Tk")
+
     data_omega = dm.list(vac=vac, vdc=0.0, method="J", voltage_branches=0, **parameters).sort_values("omega")
     data_vac = dm.list(omega=omega, vdc=0.0, method="J", voltage_branches=0, **parameters).sort_values("vac")
     data_vdc = dm.list(vac=vac_vdc, omega=omega_vdc, method="mu", voltage_branches=4, **parameters).sort_values("vdc")
@@ -2127,27 +2138,40 @@ def compare_limits(
         """
         return 1 - 3/16 * (vac/TK_VOLTAGE)**2
 
+    frtrg_style = dict(color="C3", zorder=5, linewidth=2)
+    adiabatic_style = dict(color="C0", zorder=4)
+    kaminski_style = dict(color="C2", zorder=3)
+    pat_style = dict(color="C1", zorder=2)
 
-    ax_omega.plot(data_omega.omega, np.pi*data_omega.dc_conductance)
-    ax_omega.hlines(adiabatic(vac, 0), 0, vac, color="C1")
-    ax_omega.hlines(kaminski_high_vac(vac), 0, vac, color="C2")
-    ax_omega.plot(data_omega.omega[data_omega.omega>=vac],
+    ax_omega.plot(data_omega.omega/TK_VOLTAGE, np.pi*data_omega.dc_conductance, **frtrg_style)
+    ax_omega.hlines(adiabatic(vac, 0), 0, vac/TK_VOLTAGE, **adiabatic_style)
+    ax_omega.hlines(kaminski_high_vac(vac), 0, vac/TK_VOLTAGE, **kaminski_style)
+    ax_omega.plot(data_omega.omega[data_omega.omega>=vac]/TK_VOLTAGE,
             kaminski_high_omega(vac, data_omega.omega[data_omega.omega>=vac]),
-            color="C2")
-
-    ax_vac.plot(data_vac.vac, np.pi*data_vac.dc_conductance)
-    ax_vac.plot(data_vac.vac, adiabatic(data_vac.vac, 0))
-    ax_vac.plot(data_vac.vac[data_vac.vac>omega_vac],
+            **kaminski_style)
+    ax_omega.plot(data_omega.omega/TK_VOLTAGE,
+            np.pi*photon_assisted_tunneling(dm, data_omega.omega, 0, vac),
+            **pat_style)
+
+    ax_vac.plot(data_vac.vac/TK_VOLTAGE, np.pi*data_vac.dc_conductance, **frtrg_style)
+    ax_vac.plot(data_vac.vac/TK_VOLTAGE, adiabatic(data_vac.vac, 0), **adiabatic_style)
+    ax_vac.plot(data_vac.vac[data_vac.vac>omega_vac]/TK_VOLTAGE,
                 kaminski_high_vac(data_vac.vac[data_vac.vac>omega_vac]),
-                color="C2")
-    ax_vac.plot(data_vac.vac[data_vac.vac<omega_vac],
+                **kaminski_style)
+    ax_vac.plot(data_vac.vac[data_vac.vac<omega_vac]/TK_VOLTAGE,
                 kaminski_high_omega(data_vac.vac[data_vac.vac<omega_vac], omega_vac),
-                color="C2")
-
-    ax_vdc.plot(data_vdc.vdc, np.pi*data_vdc.dc_conductance)
-    ax_vdc.plot(data_vdc.vdc, adiabatic(vac_vdc, data_vdc.vdc))
-    ax_vac_vdc.plot(data_vac_vdc.vac, np.pi*data_vac_vdc.dc_conductance)
-    ax_vac_vdc.plot(data_vac_vdc.vac, adiabatic(data_vac_vdc.vac, vdc))
+                **kaminski_style)
+    ax_vac.plot(data_vac.vac/TK_VOLTAGE,
+            np.pi*photon_assisted_tunneling(dm, omega_vac, 0, data_vac.vac),
+            **pat_style)
+
+    ax_vdc.plot(data_vdc.vdc/TK_VOLTAGE, np.pi*data_vdc.dc_conductance, **frtrg_style)
+    ax_vdc.plot(data_vdc.vdc/TK_VOLTAGE, adiabatic(vac_vdc, data_vdc.vdc), **adiabatic_style)
+    ax_vdc.plot(data_vdc.vdc/TK_VOLTAGE, np.pi*photon_assisted_tunneling(dm, omega_vdc, data_vdc.vdc, vac_vdc), **pat_style)
+
+    ax_vac_vdc.plot(data_vac_vdc.vac/TK_VOLTAGE, np.pi*data_vac_vdc.dc_conductance, **frtrg_style)
+    ax_vac_vdc.plot(data_vac_vdc.vac/TK_VOLTAGE, adiabatic(data_vac_vdc.vac, vdc), **adiabatic_style)
+    ax_vac_vdc.plot(data_vac_vdc.vac/TK_VOLTAGE, np.pi*photon_assisted_tunneling(dm, omega_vac, vdc, data_vac_vdc.vac), **pat_style)
     plt.show()
 
 
-- 
GitLab