diff --git a/experiments.py b/experiments.py index 3bcc3b8aa324fc788e8dabf665e15911123dc87e..0b072a8ee5a8a087c985560a08cfba017f3bf521 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 bf19f33d42b73726c69b49ca471b244200293214..4a5359615832f69a67d1ccc34428ee8f8132750c 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 d0a90296f5b8004f0f9d541a0a08e295a2d3fde9..7330c01801c3e30abfc052ad7aaeedfd2dd6abe8 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 ca3b26cb68c862297a8c0a1227137a5a7432c7d5..a639cc9f6d868a273a5378bd20643f812af79bd4 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 e0714156180d4f5f60ba94c9268455b7225dc8fb..6862d67ab587943de8f47ad7a3fc430700a22277 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()