diff --git a/final_plots.py b/final_plots.py
index 8b05af296f656ae21b7171824254232cc7817fab..e1d0c581d90a5d2d6a3c03befa5f18696752ed88 100644
--- a/final_plots.py
+++ b/final_plots.py
@@ -16,6 +16,7 @@ import numpy as np
from scipy.interpolate import bisplrep, bisplev, splrep, BSpline, griddata, interp1d
from scipy.special import jn
from imageio import imwrite
+from scipy.integrate import quad, quad_vec
import settings
from data_management import DataManager, KondoImport
from kondo import gen_init_matrix
@@ -101,13 +102,14 @@ def interp_vac0(dm, xL=0.5, include_Ga=True, truncation_order=3, integral_method
return interp1d(vdc, gdc, kind="cubic")
-def photon_assisted_tunneling(dm, omega, vdc, vac, nmax=50, **parameters):
+def photon_assisted_tunneling(dm=None, omega=0, vdc=0, vac=0, nmax=50, interp=None, **parameters):
"""
Return differential conductance G calculated from photon
assisted tunneling at given parameters.
"""
result = np.zeros(np.broadcast_shapes(np.shape(omega), np.shape(vdc), np.shape(vac)), dtype=np.float64)
- interp = interp_vac0(dm, **parameters)
+ if interp is None:
+ interp = interp_vac0(dm, **parameters)
for n in range(-nmax, nmax+1):
try:
result += jn(n, vac/omega)**2 * interp(vdc+n*omega)
@@ -176,7 +178,31 @@ def filter_grid_data(
return *np.meshgrid(vdc_arr, vac_arr), gdc_arr, idc_arr, iac_arr, phase_arr
+def export_matrix_pgfplots(filename, *arrays, header="", fmt="%.6g"):
+ array = np.array(arrays).T
+ with open(filename, "w") as file:
+ if header:
+ file.write(header)
+ for sector in array:
+ file.write("\n")
+ np.savetxt(file, sector, fmt=fmt)
+
+
+def export_omega5_pgfplots(filename="figdata/omega5_interp.dat", dc_steps=3, ac_steps=2):
+ data = np.load("figdata/omega5_interp.npz")
+ omega = 16.5372
+ vdc = data["vdc"][::ac_steps,::dc_steps]/omega
+ vac = data["vac"][::ac_steps,::dc_steps]/omega
+ gdc = data["gdc_mu_o3a"][::ac_steps,::dc_steps]*np.pi
+ gac = data["gac_mu_o3a_ispline"][::ac_steps,::dc_steps]*np.pi
+ idc = data["idc_mu_o3a"][::ac_steps,::dc_steps]
+ iac = data["iac_mu_o3a"][::ac_steps,::dc_steps]
+ phase = data["phase_mu_o3a"][::ac_steps,::dc_steps]
+ export_matrix_pgfplots(filename, vdc, vac, gdc, gac, idc, iac, phase, header="vdc vac gdc gac idc iac phase")
+
+
def export_omega5():
+ "deprecated!"
omega = 16.5372
dm = DataManager()
# Full overview
@@ -191,12 +217,11 @@ def export_omega5():
solver_tol_abs = 1e-10,
voltage_branches = 4,
truncation_order = 3,
- include_Ga = False,
+ include_Ga = True,
solve_integral_exactly = False,
)
bad_flags = DataManager.SOLVER_FLAGS["simplified_initial_conditions"] \
| DataManager.SOLVER_FLAGS["extrapolate_voltage"] \
- | DataManager.SOLVER_FLAGS["include_Ga"] \
| DataManager.SOLVER_FLAGS["solve_integral_exactly"] \
| DataManager.SOLVER_FLAGS["second_order_rg_equations"] \
| DataManager.SOLVER_FLAGS["deleted"]
@@ -206,26 +231,26 @@ def export_omega5():
omega = omega,
vac_min = 0,
vac_max = 165.372,
- vac_num = 101,
+ vac_num = 51,
vdc_min = 0,
vdc_max = 165.372,
- vdc_num = 101,
+ vdc_num = 51,
)
with open("figdata/vdc_vac_omega16.5372.dat", "w") as file:
file.write("vac vdc gdc idc iac")
- for i in range(101):
+ for i in range(51):
file.write("\n")
np.savetxt(file, np.array([vac[i]/omega, vdc[i]/omega, np.pi*gdc[i], idc[i], iac[i]]).T)
- # Lines at constant Vac
- for i in range(11):
- with open(f"figdata/vdc_vac{i}_omega16.5372.dat", "w") as file:
- file.write("vac vdc gdc idc iac\n")
- np.savetxt(file, np.array([vac[10*i]/omega, vdc[10*i]/omega, np.pi*gdc[10*i], idc[10*i], iac[10*i]]).T)
- # Lines at constant Vdc
- for i in range(11):
- with open(f"figdata/vac_vdc{i}_omega16.5372.dat", "w") as file:
- file.write("vac vdc gdc idc iac\n")
- np.savetxt(file, np.array([vac[:,10*i]/omega, vdc[:,10*i]/omega, np.pi*gdc[:,10*i], idc[:,10*i], iac[:,10*i]]).T)
+ ## Lines at constant Vac
+ #for i in range(11):
+ # with open(f"figdata/vdc_vac{i}_omega16.5372.dat", "w") as file:
+ # file.write("vac vdc gdc idc iac\n")
+ # np.savetxt(file, np.array([vac[5*i]/omega, vdc[5*i]/omega, np.pi*gdc[5*i], idc[5*i], iac[5*i]]).T)
+ ## Lines at constant Vdc
+ #for i in range(11):
+ # with open(f"figdata/vac_vdc{i}_omega16.5372.dat", "w") as file:
+ # file.write("vac vdc gdc idc iac\n")
+ # np.savetxt(file, np.array([vac[:,5*i]/omega, vdc[:,5*i]/omega, np.pi*gdc[:,5*i], idc[:,5*i], iac[:,5*i]]).T)
# Zoom to primary Kondo peak
vdc, vac, gdc, idc, iac, phase = filter_grid_data(
data,
@@ -257,6 +282,7 @@ def export_interp(
x_func = None,
y_func = None,
korder = 2,
+ spline_s = 2e-4,
special_selection = None,
o2_scale_x = TK_VOLTAGE_ORDER2/TK_VOLTAGE,
o2_scale_y = TK_VOLTAGE_ORDER2/TK_VOLTAGE,
@@ -360,7 +386,7 @@ def export_interp(
selected &= special_selection(thedata, order, method, padding, **kwargs)
return thedata.loc[selected]
- def gen_data(order, method, padding=False, s=5e-5, **kwargs):
+ def gen_data(order, method, padding=False, s=spline_s, **kwargs):
suffix = "_p" if padding else ""
reduced_data = selection(order, method, padding, **kwargs)
settings.logger.info(f"Starting with {order}{suffix} {method}, found {reduced_data.shape[0]} data points")
@@ -409,9 +435,10 @@ def export_interp(
except:
settings.logger.exception(f"in spline interpolation of Iac for {order}{suffix} {method}")
try:
+ sel = reduced_data.vac > 0
results[f"phase_{method}_{order}{suffix}"] = griddata(
- xy_data,
- reduced_data.ac_current_phase,
+ (xy_data[0][sel], xy_data[1][sel]),
+ reduced_data.ac_current_phase[sel],
mesh,
method="cubic")
except:
@@ -571,6 +598,207 @@ def prepare_RGconvergence():
print("AC voltage: " + " ".join("%.6g"%vac[i] for i in ac_indices))
+def adjust_argument_array(start, end, *funcs, initial_resolution=51, s1=0.01, maxit=5, scale_coef=-0.5, yscales=1):
+ x = np.linspace(start, end, initial_resolution)
+ ys = [func(x) for func in funcs]
+ try:
+ assert len(yscales) == len(funcs)
+ except:
+ yscales = len(funcs)*[1]
+ for _ in range(maxit):
+ y1s = [(y[1:] - y[:-1]) / (x[1:] - x[:-1]) for y in ys]
+ w1s = [(y1[1:] - y1[:-1]) / (1 + yscale*(y1[1:] + y1[:-1])) for y1,yscale in zip(y1s,yscales)]
+ if scale_coef != 0:
+ for i in range(len(funcs)):
+ w1s[i] *= (x[2:] - x[:-2])**scale_coef
+ w1max = max(w1.max() for w1 in w1s)
+ settings.logger.debug(f"adjust argument: {w1max} {s1}, iteration {_+1}")
+ if w1max <= s1:
+ return (x, *ys)
+ x_selection = np.zeros(x.shape, dtype=bool)
+ for w1 in w1s:
+ x_selection[1:-1] |= np.abs(w1) > s1
+ x_selection[:-2] |= x_selection[1:-1]
+ #x_selection[2:-1] |= np.abs(w2) > s2
+ new_x = (x[x_selection] + x[1:][x_selection[:-1]])/2
+ full_x = np.append(x, new_x)
+ sorting = np.argsort(full_x)
+ x = full_x[sorting]
+ for i, func in enumerate(funcs):
+ ys[i] = np.append(ys[i], func(new_x))[sorting]
+ return (x, *ys)
+
+
+
+def export_gapproximations_pgfplots(
+ omega = 16.5372,
+ vdc = 165.372,
+ vac1 = 16.5372,
+ vac2 = 165.372,
+ resolution = 500,
+ ):
+ parameters = dict(
+ d = 1e9,
+ include_Ga = True,
+ integral_method = -15,
+ solver_tol_rel = 1e-8,
+ solver_tol_abs = 1e-10,
+ xL = 0.5,
+ bad_flags = DataManager.SOLVER_FLAGS["simplified_initial_conditions"] \
+ | DataManager.SOLVER_FLAGS["second_order_rg_equations"] \
+ | DataManager.SOLVER_FLAGS["solve_integral_exactly"] \
+ | DataManager.SOLVER_FLAGS["extrapolate_voltage"] \
+ | DataManager.SOLVER_FLAGS["deleted"]
+ )
+
+ dm = DataManager()
+ data_omega = dm.list(vac=vac1, vdc=0.0, method="J", voltage_branches=0, **parameters).sort_values("omega")
+ data_omega.drop_duplicates("omega", inplace=True)
+ data_vac = dm.list(omega=omega, vdc=0.0, method="J", voltage_branches=0, **parameters).sort_values("vac")
+ data_vac.drop_duplicates("vac", inplace=True)
+ data_vdc = dm.list(vac=vac2, omega=omega, method="mu", voltage_branches=4, **parameters).sort_values("vdc")
+ data_vdc.drop_duplicates("vdc", inplace=True)
+ data_vac_vdc = dm.list(vdc=vdc, omega=omega, method="J", voltage_branches=0, resonant_dc_shift=10, **parameters)
+ # messy selection of data points for data_vac_vdc
+ sel = (data_vac_vdc.padding>10) & (data_vac_vdc.nmax>=40) & ((data_vac_vdc.version_minor==15) | (data_vac_vdc.vac>=165.372))
+ data_vac_vdc = data_vac_vdc[sel].sort_values("vac")
+ data_vac_vdc.drop_duplicates("vac", keep="last", inplace=True)
+ interp = interp_vac0(dm, voltage_branches=4, method="mu", **parameters)
+
+ def adiabatic(vac, vdc):
+ if np.all(vdc == 0):
+ result, error = quad_vec((lambda x: interp(vac*np.sin(x))), 0, np.pi/2, epsrel=1e-7, epsabs=1e-14)
+ result *= 2
+ error *= 2
+ assert error < 1e-6
+ return result
+ result, error = quad_vec((lambda x: interp(vdc+vac*np.sin(x))), -np.pi/2, np.pi/2, epsrel=1e-7, epsabs=1e-14)
+ assert error < 1e-6
+ return result
+
+ def kaminski_high_vac(vac):
+ """
+ Comparison to Kaminski et al PRB 62.8154 (2000)
+ Low frequency (adiabatic) limit
+ Eq. (77) in Kaminski et al 2000
+ """
+ g = 3*np.pi**2/(16*np.log(vac/TK_VOLTAGE)**2)
+ if isinstance(g, Number):
+ return g
+ g[vac <= TK_VOLTAGE] = np.nan
+ g[g > 1.2] = np.nan
+ return g
+
+ def kaminski_high_omega(vac, omega):
+ """
+ Comparison to Kaminski et al PRB 62.8154 (2000)
+ High frequency limit
+ Eqs. (72) - (74) in Kaminski et al 2000
+ """
+ # Eq. (72) in Kaminski et al 2000
+ decoherence_rate = (vac/TK_VOLTAGE)**2 / (np.pi*omega/TK_VOLTAGE*np.log(omega/TK_VOLTAGE)**2)
+ # Eq. (74) in Kaminski et al 2000
+ g = 1 - decoherence_rate
+ # Eq. (73) in Kaminski et al 2000
+ g[decoherence_rate>1] = 3*np.pi**2/(16*np.log(decoherence_rate[decoherence_rate>1])**2)
+ return g
+
+ def kaminski_low_energy(vac):
+ """
+ Comparison to Kaminski et al PRB 62.8154 (2000)
+ low energies, near equilibrium
+ Eq. (76) in Kaminski et al 2000
+ """
+ return 1 - 3/16 * (vac/TK_VOLTAGE)**2
+
+ common_adjust_kw = dict(s1=1e-4, initial_resolution=101, maxit=4, scale_coef=0.9)
+
+ # first plot: swipe omega at constant vac and vdc=0
+ g_pat_func = lambda log_omega: np.pi*photon_assisted_tunneling(omega=np.exp(log_omega), vdc=0, vac=vac1, interp=interp)
+ gdc_func = interp1d(np.log(data_omega.omega), np.pi*data_omega.dc_conductance, kind="cubic")
+ log_omega_arr, g_pat_arr, gdc_arr = adjust_argument_array(
+ np.log(data_omega.omega.iloc[0]), np.log(data_omega.omega.iloc[-1]),
+ g_pat_func, gdc_func,
+ **common_adjust_kw,
+ yscales=(10,10))
+ omega_arr = np.exp(log_omega_arr)
+ g_adiabatic_arr = np.ones_like(omega_arr) * adiabatic(vac1, 0)
+ g_adiabatic_arr[omega_arr > 2.5*TK_VOLTAGE] = np.nan
+ g_kaminski1_arr = np.ones_like(omega_arr) * kaminski_high_vac(vac1)
+ g_kaminski1_arr[omega_arr > 2.5*TK_VOLTAGE] = np.nan
+ g_kaminski2_arr = kaminski_high_omega(vac1, omega_arr)
+ g_kaminski2_arr[np.exp(vac1/(np.pi*omega_arr*TK_VOLTAGE)**0.5)*TK_VOLTAGE > omega_arr] = np.nan
+ np.savetxt("figdata/omega_vac5_vdc0.dat",
+ np.array([omega_arr/TK_VOLTAGE,
+ gdc_arr,
+ g_adiabatic_arr,
+ g_pat_arr,
+ g_kaminski1_arr,
+ g_kaminski2_arr
+ ]).T,
+ header="omega gdc gdc_adiabatic gdc_pat gdc_kaminski1 gdc_kaminski2",
+ comments = "")
+
+ # second plot: swipe vac at constant omega and vdc=0
+ g_pat_func = lambda log_vac: np.pi*photon_assisted_tunneling(omega=omega, vac=np.exp(log_vac), vdc=0, interp=interp)
+ gdc_func = interp1d(np.log(data_vac.vac), np.pi*data_vac.dc_conductance, kind="cubic")
+ log_vac_arr, g_pat_arr, gdc_arr = adjust_argument_array(
+ np.log(data_vac.vac.iloc[0]), np.log(data_vac.vac.iloc[-1]),
+ g_pat_func, gdc_func,
+ **common_adjust_kw,
+ yscales=(10,10))
+ vac_arr = np.exp(log_vac_arr)
+ g_adiabatic_arr = adiabatic(vac_arr, 0)
+ g_kaminski1_arr = kaminski_high_vac(vac_arr)
+ g_kaminski1_arr[g_kaminski1_arr>=1] = np.nan
+ g_kaminski2_arr = kaminski_high_omega(vac_arr, omega)
+ g_kaminski2_arr[np.exp(vac_arr/(np.pi*omega*TK_VOLTAGE)**0.5)*TK_VOLTAGE > omega] = np.nan
+ np.savetxt("figdata/vac_omega5_vdc0.dat",
+ np.array([vac_arr/TK_VOLTAGE,
+ gdc_arr,
+ g_adiabatic_arr,
+ g_pat_arr,
+ g_kaminski1_arr,
+ g_kaminski2_arr
+ ]).T,
+ header="vac gdc gdc_adiabatic gdc_pat gdc_kaminski1 gdc_kaminski2",
+ comments = "")
+
+ # third plot: swipe vdc at constant omega and vac
+ g_pat_func = lambda vdc: np.pi*photon_assisted_tunneling(omega=omega, vac=vac2, vdc=vdc, interp=interp)
+ gdc_func = interp1d(data_vdc.vdc, np.pi*data_vdc.dc_conductance, kind="cubic")
+ g_adiabatic_func = lambda vdc: adiabatic(vac2, vdc)
+ vdc_arr, g_pat_arr, gdc_arr, g_adiabatic_arr = adjust_argument_array(
+ data_vdc.vdc.iloc[0], data_vdc.vdc.iloc[-1],
+ g_pat_func, gdc_func, g_adiabatic_func,
+ **common_adjust_kw)
+ np.savetxt("figdata/vdc_omega5_vac10.dat",
+ np.array([vdc_arr/omega,
+ gdc_arr,
+ g_adiabatic_arr,
+ g_pat_arr,
+ ]).T,
+ header="vdc gdc gdc_adiabatic gdc_pat",
+ comments = "")
+
+ # fourth plot: swipe vac at constant omega and vdc
+ g_pat_func = lambda vac: np.pi*photon_assisted_tunneling(omega=omega, vac=vac, vdc=vdc, interp=interp)
+ gdc_func = interp1d(data_vac_vdc.vac, np.pi*data_vac_vdc.dc_conductance, kind="cubic")
+ g_adiabatic_func = lambda vac: adiabatic(vac, vdc)
+ vac_arr, g_pat_arr, gdc_arr, g_adiabatic_arr = adjust_argument_array(
+ data_vac_vdc.vac.iloc[0], data_vac_vdc.vac.iloc[-1],
+ g_pat_func, gdc_func, g_adiabatic_func,
+ **common_adjust_kw)
+ np.savetxt("figdata/vac_omega5_vdc10.dat",
+ np.array([vac_arr/omega,
+ gdc_arr,
+ g_adiabatic_arr,
+ g_pat_arr,
+ ]).T,
+ header="vac gdc gdc_adiabatic gdc_pat",
+ comments = "")
+
+
if __name__ == "__main__":
from sys import argv
globals()[argv[1]]()
diff --git a/plot.py b/plot.py
index 012003d53f4e8e39dcd81bbb6fb8584ab7279fdc..b9c4879480611b8a6fe673e281e3b3bfe85133e2 100644
--- a/plot.py
+++ b/plot.py
@@ -18,6 +18,7 @@ from final_plots import filter_grid_data, photon_assisted_tunneling, gen_photon_
from scipy.interpolate import bisplrep, bisplev, splrep, BSpline, griddata
from scipy.optimize import curve_fit, leastsq
from PIL import Image
+from imageio import imwrite
import settings
from logging import _levelToName
from data_management import DataManager, KondoImport
@@ -1681,18 +1682,6 @@ def compare_RGeq_interp(
# contour_kwargs["alpha"] = 1
# ax.contour(vdc, vac, ref_data, missing_levels, **contour_kwargs)
-
-class GNorm(plt.Normalize):
- def __init__(self, vmin=0.1, vmax=1, clip=False):
- assert vmin > 0
- assert vmax > vmin
- self._vmin = vmin
- self._vmax = vmax
- self._clip = clip
-
- def __call__(self, value, clip=None):
- return (1 - self._vmin/value) / (1 - self._vmin/self._vmax)
-
def GNorm(vmin, vmax):
assert vmax > vmin > 0
scale = 1 - vmin/vmax
@@ -2023,14 +2012,27 @@ def plot_RG2_commutator(
s2 = ax2.scatter(vdc, vac, c=commutator01_max)
s3 = ax3.scatter(vdc, vac, c=commutator00_max/g2_max)
s4 = ax4.scatter(vdc, vac, c=commutator01_max/g2_max)
+
fig.colorbar(s1, ax=ax1)
fig.colorbar(s2, ax=ax2)
fig.colorbar(s3, ax=ax3)
fig.colorbar(s4, ax=ax4)
fig, ax = plt.subplots()
- s = ax.scatter(vdc/omega, vac/omega, c=commutator01_max/g2_max)
- fig.colorbar(s, ax=ax)
+ vdc_mesh = np.linspace(0, 165.372, 201)
+ vac_mesh = np.linspace(0, 165.372, 201)
+ extent = (1.5*vdc_mesh[0] - 0.5*vdc_mesh[1], 1.5*vdc_mesh[-1] - 0.5*vdc_mesh[-2], 1.5*vac_mesh[0] - 0.5*vac_mesh[1], 1.5*vac_mesh[-1] - 0.5*vac_mesh[-2])
+ extent = tuple(v/omega for v in extent)
+ vdc_mesh, vac_mesh = np.meshgrid(vdc_mesh, vac_mesh)
+ interpolated = griddata((vdc, vac), commutator01_max/g2_max, (vdc_mesh, vac_mesh), method="cubic")
+ interp_max = interpolated.max()
+ print("Maximum of color scale:", interp_max)
+ norm = plt.Normalize(0, interp_max)
+ img = ax.imshow(interpolated, extent=extent, norm=norm, origin="lower")
+ imwrite(f"figdata/colorbar_viridis.png", np.array(0xffff*plt.cm.viridis(np.linspace(0, 1, 0x1000))[::-1,:3], dtype=np.uint16).reshape((0x1000,1,3)), format="PNG-FI")
+ imwrite(f"figdata/commutator_RG2_relative.png", np.array(0xffff*plt.cm.viridis(interpolated[::-1]/interp_max)[...,:3], dtype=np.uint16), format="PNG-FI")
+ s = ax.scatter(vdc/omega, vac/omega, c=commutator01_max/g2_max, norm=norm)
+ fig.colorbar(img, ax=ax)
ax.set_xlabel(r"$V_\mathrm{avg}~(\Omega)$")
ax.set_ylabel(r"$V_\mathrm{osc}~(\Omega)$")
plt.show()
@@ -2178,6 +2180,7 @@ def compare_limits(
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")
data_vac_vdc = dm.list(vdc=vdc, omega=omega_vac, **parameters).sort_values("vac")
+ #print(data_omega.shape, data_vac.shape, data_vdc.shape, data_vac_vdc.shape)
interp = interp_vac0(dm, voltage_branches=4, method="mu", **parameters)
def adiabatic(vac, vdc):
diff --git a/test/benchmark.py b/test/benchmark.py
index 982e6c017f968baef68be076997dad79d7ff32e9..9d7ebf02aaa7e502c1df8aed8fd1eada4965d9b3 100644
--- a/test/benchmark.py
+++ b/test/benchmark.py
@@ -5,7 +5,12 @@ Benchmarks for Kondo FRTRG solver
import numpy as np
import cProfile
import pstats
-from pstats import SortKey
+try:
+ from pstats import SortKey
+except ImportError:
+ SortKey = lambda:None
+ SortKey.CUMULATIVE = None
+
import settings
from kondo import Kondo
diff --git a/tikz/commutator_RG2.tex b/tikz/commutator_RG2.tex
new file mode 100644
index 0000000000000000000000000000000000000000..5491144dff2c08b18f97bac2a30bcafea7c2e6df
--- /dev/null
+++ b/tikz/commutator_RG2.tex
@@ -0,0 +1,39 @@
+\begin{tikzpicture}
+ \pgfplotsset{set layers = axis on top}
+ \begin{axis}[
+ name = img,
+ width = 5cm,
+ height = 5cm,
+ scale only axis,
+ xmin = 0, xmax = 10,
+ ymin = 0, ymax = 10,
+ xlabel = {$\vdc~(\Omega)$},
+ ylabel = {$\vac~(\Omega)$},
+ clip = true,
+ ]
+ \addplot graphics[xmin=-.05, xmax=10.05, ymin=-.05, ymax=10.05] {../figdata/commutator_RG2_relative.png};
+ \end{axis}
+ \begin{axis}[
+ name = colorbar,
+ at = (img.east),
+ anchor = west,
+ ymin = 0,
+ ymax = 0.0288735933,
+ xshift = 5mm,
+ enlargelimits = false,
+ axis on top,
+ clip = true,
+ width = .75em,
+ height = 48mm,
+ scale only axis,
+ tickpos = right,
+ tick align = outside,
+ xtick = \empty,
+ ytick = {0, 0.01, 0.02},
+ yticklabels = {$0$, $0.01$, $0.02$},
+ scaled ticks = false,
+ ylabel = {$\|[\chi^{-1},ZG^2_{LR}]\|\,/\,J$},
+ ]
+ \addplot graphics[xmin=0, xmax=1, ymin=0, ymax=0.0288735933] {../figdata/colorbar_viridis.png};
+ \end{axis}
+\end{tikzpicture}
diff --git a/tikz/contour.tex b/tikz/contour.tex
index 0a6ca5e4449bb1820e79499607b12aab0fb17638..a8ecaebe82bc561db43699bae70097f89924b0f7 100644
--- a/tikz/contour.tex
+++ b/tikz/contour.tex
@@ -1,24 +1,26 @@
+\definecolor{darkgreen}{HTML}{00c000}
\begin{tikzpicture}
\begin{axis}[
width = 12cm,
height = 10cm,
xmin = 0, xmax = 10,
ymin = 0, ymax = 10,
- xlabel = {$\vac~(\Omega)$},
- ylabel = {$\vdc~(\Omega)$},
+ xlabel = {$\vdc~(\Omega)$},
+ ylabel = {$\vac~(\Omega)$},
every axis plot post/.append style = {
line width=0.2pt,
line cap=round,
line join=round
},
+ legend cell align = left,
legend style = {
anchor = south east,
at = {(0.99,0.01)}
}
]
- \addplot[green] table[x=vdc, y=vac, z=gdc]{../figdata/contour_gdc_mu_o2.dat};
- \addplot[green, forget plot] table[x=vdc, y=vac, z=gdc]{../figdata/contour_gdc_J_o2.dat};
- \addplot[green, forget plot] table[x=vdc, y=vac, z=gdc]{../figdata/contour_gdc_J_o2_p.dat};
+ \addplot[darkgreen] table[x=vdc, y=vac, z=gdc]{../figdata/contour_gdc_mu_o2.dat};
+ \addplot[darkgreen, forget plot] table[x=vdc, y=vac, z=gdc]{../figdata/contour_gdc_J_o2.dat};
+ \addplot[darkgreen, forget plot] table[x=vdc, y=vac, z=gdc]{../figdata/contour_gdc_J_o2_p.dat};
\addplot[blue] table[x=vdc, y=vac, z=gdc]{../figdata/contour_gdc_mu_o3.dat};
\addplot[blue, forget plot] table[x=vdc, y=vac, z=gdc]{../figdata/contour_gdc_J_o3.dat};
\addplot[blue, forget plot] table[x=vdc, y=vac, z=gdc]{../figdata/contour_gdc_J_o3_p.dat};
@@ -30,10 +32,14 @@
\addplot[black, forget plot] table[x=vdc, y=vac, z=gdc]{../figdata/contour_gdc_J_o3p_p.dat};
\legend{
- $O(J^2)$,
- {$O(J^3)$, $G^a=0$},
- {$O(J^3)$, approx.~$I[X]$},
- $O(J^3)$,
+ %$O(J^2)$,
+ %{$O(J^3)$, $G^a=0$},
+ %{$O(J^3)$, approx.~$I[X]$},
+ %$O(J^3)$,
+ leading order,
+ without $G^a$,
+ approx.~integral,
+ full RG equations
}
\end{axis}
\end{tikzpicture}
diff --git a/tikz/convergence-o2.tex b/tikz/convergence-o2.tex
new file mode 100644
index 0000000000000000000000000000000000000000..43f417f934e8b7e1398acb9b54d3cd59efa53e4b
--- /dev/null
+++ b/tikz/convergence-o2.tex
@@ -0,0 +1,164 @@
+\begin{tikzpicture}
+ \pgfplotsset{set layers = axis on top}
+ \begin{axis}[
+ name = img,
+ anchor = north west,
+ width = 4cm,
+ height = 4cm,
+ scale only axis,
+ xmin = 0, xmax = 10,
+ ymin = 0, ymax = 10,
+ xlabel = {$\vdc~(\Omega)$},
+ ylabel = {$\vac~(\Omega)$},
+ every axis plot post/.append style = {
+ line width=0.2pt,
+ line cap=round,
+ line join=round
+ },
+ clip = false,
+ ]
+ \addplot graphics[xmin=-.03333333, xmax=10.03333333, ymin=-.05, ymax=10.05] {../figdata/convergence_o2_diff.png};
+ % vertical lines
+ \addplot[no marks, black] coordinates {(0,1.5) (10,1.5)};
+ \addplot[no marks, black] coordinates {(0,2.5) (10,2.5)};
+ \addplot[no marks, black] coordinates {(0,4) (10,4)};
+ \addplot[no marks, black] coordinates {(0,6.25) (10,6.25)};
+ \addplot[no marks, black] coordinates {(0,8.5) (10,8.5)};
+ \node[anchor=west] at (7.0,1.5) {\small △};
+ \node[anchor=west] at (7.5,2.5) {\small ▽};
+ \node[anchor=west] at (8.0,4) {\small □};
+ \node[anchor=west] at (8.5,6.25) {\small ○};
+ \node[anchor=west] at (9.0,8.5) {\small ◊};
+ % horizontal lines
+ \addplot[no marks, black] coordinates {(0,0) (0,10)};
+ \addplot[no marks, black] coordinates {(0.26666667,0) (0.26666667,10)};
+ \addplot[no marks, black] coordinates {(0.66666667,0) (0.66666667,10)};
+ \addplot[no marks, black] coordinates {(1,0) (1,10)};
+ \addplot[no marks, black] coordinates {(3,0) (3,10)};
+ \addplot[no marks, black] coordinates {(5.5,0) (5.5,10)};
+ \node[anchor=south] at (0,8.5) {\small ▶};
+ \node[anchor=south] at (0.26666667,7) {\small ◀};
+ \node[anchor=south] at (0.66666667,5) {\small ■};
+ \node[anchor=south] at (1,4) {\large •};
+ \node[anchor=south] at (3,0.2) {\small ♦};
+ \node[anchor=south] at (5.5,0.2) {\small ★};
+ \end{axis}
+ \begin{axis}[
+ at = (img.north),
+ name = ac,
+ anchor = south,
+ width = 4cm,
+ height = 3cm,
+ yshift = 2.5mm,
+ scale only axis,
+ xmin = 0, xmax = 10,
+ ymin = 0.08, ymax = 0.88,
+ %xlabel = {$\vdc~(\Omega)$},
+ ylabel = {$\gdc~(2e^2/h)$},
+ %xticklabel pos = top,
+ xticklabel = \empty,
+ every axis plot post/.append style = {
+ line width=0.5pt,
+ line cap=round,
+ line join=round
+ },
+ clip = false,
+ legend entries = {leading order, full RG equations},
+ legend cell align = left,
+ legend style = {
+ legend pos = outer north east,
+ draw = none,
+ fill = none,
+ },
+ ]
+ \addplot[no marks, red] table [x=vdc, y expr={\thisrow{gdc1.50}+0.48}] {../figdata/convergence_mu_o2_ac.dat};
+ \addplot[no marks, densely dotted] table [x=vdc, y expr={\thisrow{gdc1.50}+0.48}] {../figdata/convergence_mu_o3p_ac.dat};
+ \addplot[no marks, red] table [x=vdc, y expr={\thisrow{gdc2.50}+0.36}] {../figdata/convergence_mu_o2_ac.dat};
+ \addplot[no marks, red] table [x=vdc, y expr={\thisrow{gdc4.00}+0.24}] {../figdata/convergence_mu_o2_ac.dat};
+ \addplot[no marks, red] table [x=vdc, y expr={\thisrow{gdc6.25}+0.12}] {../figdata/convergence_mu_o2_ac.dat};
+ \addplot[no marks, red] table [x=vdc, y expr={\thisrow{gdc8.50}}] {../figdata/convergence_mu_o2_ac.dat};
+ \addplot[no marks, densely dotted] table [x=vdc, y expr={\thisrow{gdc2.50}+0.36}] {../figdata/convergence_mu_o3p_ac.dat};
+ \addplot[no marks, densely dotted] table [x=vdc, y expr={\thisrow{gdc4.00}+0.24}] {../figdata/convergence_mu_o3p_ac.dat};
+ \addplot[no marks, densely dotted] table [x=vdc, y expr={\thisrow{gdc6.25}+0.12}] {../figdata/convergence_mu_o3p_ac.dat};
+ \addplot[no marks, densely dotted] table [x=vdc, y expr={\thisrow{gdc8.50}}] {../figdata/convergence_mu_o3p_ac.dat};
+ %\node[anchor=west] at (10.5,0.58) {\small$\vac=1.5\Omega$};
+ %\node[anchor=west] at (10.5,0.46) {\small$\vac=2.5\Omega$};
+ %\node[anchor=west] at (10.5,0.34) {\small$\vac=4\Omega$};
+ %\node[anchor=west] at (10.5,0.22) {\small$\vac=6.25\Omega$};
+ %\node[anchor=west] at (10.5,0.10) {\small$\vac=8.5\Omega$};
+ %\node[anchor=west] at (10,0.57) {\small 1};
+ %\node[anchor=west] at (10,0.45) {\small 2};
+ %\node[anchor=west] at (10,0.33) {\small 3};
+ %\node[anchor=west] at (10,0.22) {\small 4};
+ %\node[anchor=west] at (10,0.11) {\small 5};
+ \node[anchor=west] at (7.0,0.61) {\small △};
+ \node[anchor=west] at (7.5,0.48) {\small ▽};
+ \node[anchor=west] at (8.0,0.365) {\small □};
+ \node[anchor=west] at (8.5,0.255) {\small ○};
+ \node[anchor=west] at (9.0,0.145) {\small ◊};
+ \end{axis}
+ \begin{axis}[
+ name = dc,
+ at = (img.east),
+ anchor = west,
+ width = 3cm,
+ height = 4cm,
+ xshift = 2.5mm,
+ scale only axis,
+ xmin = 0.05, xmax = 1.62,
+ ymin = 0, ymax = 10,
+ xlabel = {$\gdc~(2e^2/h)$},
+ %ylabel = {$\vac~(\Omega)$},
+ %yticklabel pos = right,
+ yticklabel = \empty,
+ every axis plot post/.append style = {
+ line width=0.5pt,
+ line cap=round,
+ line join=round
+ },
+ clip = false,
+ ]
+ \addplot[no marks, red] table [x expr={\thisrow{gdc0.00}+0.6}, y=vac] {../figdata/convergence_mu_o2_dc.dat};
+ \addplot[no marks, red] table [x expr={\thisrow{gdc0.27}+0.48}, y=vac] {../figdata/convergence_mu_o2_dc.dat};
+ \addplot[no marks, red] table [x expr={\thisrow{gdc0.67}+0.36}, y=vac] {../figdata/convergence_mu_o2_dc.dat};
+ \addplot[no marks, red] table [x expr={\thisrow{gdc1.00}+0.24}, y=vac] {../figdata/convergence_mu_o2_dc.dat};
+ \addplot[no marks, red] table [x expr={\thisrow{gdc3.00}+0.12}, y=vac] {../figdata/convergence_mu_o2_dc.dat};
+ \addplot[no marks, red] table [x expr={\thisrow{gdc5.50}}, y=vac] {../figdata/convergence_mu_o2_dc.dat};
+ \addplot[no marks, densely dotted] table [x expr={\thisrow{gdc0.00}+0.6}, y=vac] {../figdata/convergence_mu_o3p_dc.dat};
+ \addplot[no marks, densely dotted] table [x expr={\thisrow{gdc0.27}+0.48}, y=vac] {../figdata/convergence_mu_o3p_dc.dat};
+ \addplot[no marks, densely dotted] table [x expr={\thisrow{gdc0.67}+0.36}, y=vac] {../figdata/convergence_mu_o3p_dc.dat};
+ \addplot[no marks, densely dotted] table [x expr={\thisrow{gdc1.00}+0.24}, y=vac] {../figdata/convergence_mu_o3p_dc.dat};
+ \addplot[no marks, densely dotted] table [x expr={\thisrow{gdc3.00}+0.12}, y=vac] {../figdata/convergence_mu_o3p_dc.dat};
+ \addplot[no marks, densely dotted] table [x expr={\thisrow{gdc5.50}}, y=vac] {../figdata/convergence_mu_o3p_dc.dat};
+ \node[anchor=south] at (0.72,10) {\small ▶};
+ \node[anchor=south] at (0.59,10) {\small ◀};
+ \node[anchor=south] at (0.47,10) {\small ■};
+ \node[anchor=south] at (0.35,10) {\large •};
+ \node[anchor=south] at (0.23,10) {\small ♦};
+ \node[anchor=south] at (0.11,10) {\small ★};
+ \end{axis}
+ \begin{axis}[
+ name = colorbar,
+ at = (dc.north west),
+ xmin = -0.0313315776,
+ xmax = 0.0313315776,
+ xshift = 5mm,
+ yshift = 11mm,
+ anchor = south west,
+ enlargelimits = false,
+ axis on top,
+ height = .75em,
+ width = 2.5cm,
+ scale only axis,
+ tickpos = bottom,
+ tick align = outside,
+ ytick = \empty,
+ xtick = {-0.02, 0, 0.02},
+ xticklabels = {$-0.02$, $0$, $0.02$},
+ scaled ticks = false,
+ xlabel = {deviation $(2e^2/h)$},
+ xlabel shift = -15mm,
+ ]
+ \addplot graphics[ymin=0, ymax=1, xmin=-0.0313315776, xmax=0.0313315776] {../figdata/colorbar_seismic.png};
+ \end{axis}
+\end{tikzpicture}
diff --git a/tikz/convergence-o3.tex b/tikz/convergence-o3.tex
new file mode 100644
index 0000000000000000000000000000000000000000..fab270ce9d2333f182903a17b8fa02932f50789e
--- /dev/null
+++ b/tikz/convergence-o3.tex
@@ -0,0 +1,164 @@
+\begin{tikzpicture}
+ \pgfplotsset{set layers = axis on top}
+ \begin{axis}[
+ name = img,
+ anchor = north west,
+ width = 4cm,
+ height = 4cm,
+ scale only axis,
+ xmin = 0, xmax = 10,
+ ymin = 0, ymax = 10,
+ xlabel = {$\vdc~(\Omega)$},
+ ylabel = {$\vac~(\Omega)$},
+ every axis plot post/.append style = {
+ line width=0.2pt,
+ line cap=round,
+ line join=round
+ },
+ clip = false,
+ ]
+ \addplot graphics[xmin=-.03333333, xmax=10.03333333, ymin=-.05, ymax=10.05] {../figdata/convergence_o3_diff.png};
+ % vertical lines
+ \addplot[no marks, black] coordinates {(0,1.5) (10,1.5)};
+ \addplot[no marks, black] coordinates {(0,2.5) (10,2.5)};
+ \addplot[no marks, black] coordinates {(0,4) (10,4)};
+ \addplot[no marks, black] coordinates {(0,6.25) (10,6.25)};
+ \addplot[no marks, black] coordinates {(0,8.5) (10,8.5)};
+ \node[anchor=west] at (7.0,1.5) {\small △};
+ \node[anchor=west] at (7.5,2.5) {\small ▽};
+ \node[anchor=west] at (8.0,4) {\small □};
+ \node[anchor=west] at (8.5,6.25) {\small ○};
+ \node[anchor=west] at (9.0,8.5) {\small ◊};
+ % horizontal lines
+ \addplot[no marks, black] coordinates {(0,0) (0,10)};
+ \addplot[no marks, black] coordinates {(0.26666667,0) (0.26666667,10)};
+ \addplot[no marks, black] coordinates {(0.66666667,0) (0.66666667,10)};
+ \addplot[no marks, black] coordinates {(1,0) (1,10)};
+ \addplot[no marks, black] coordinates {(3,0) (3,10)};
+ \addplot[no marks, black] coordinates {(5.5,0) (5.5,10)};
+ \node[anchor=south] at (0,8.5) {\small ▶};
+ \node[anchor=south] at (0.26666667,7) {\small ◀};
+ \node[anchor=south] at (0.66666667,5) {\small ■};
+ \node[anchor=south] at (1,4) {\large •};
+ \node[anchor=south] at (3,0.2) {\small ♦};
+ \node[anchor=south] at (5.5,0.2) {\small ★};
+ \end{axis}
+ \begin{axis}[
+ at = (img.north),
+ name = ac,
+ anchor = south,
+ width = 4cm,
+ height = 3cm,
+ yshift = 2.5mm,
+ scale only axis,
+ xmin = 0, xmax = 10,
+ ymin = 0.08, ymax = 0.88,
+ %xlabel = {$\vdc~(\Omega)$},
+ ylabel = {$\gdc~(2e^2/h)$},
+ %xticklabel pos = top,
+ xticklabel = \empty,
+ every axis plot post/.append style = {
+ line width=0.5pt,
+ line cap=round,
+ line join=round
+ },
+ clip = false,
+ legend entries = {without $G^a$, full RG equations},
+ legend cell align = left,
+ legend style = {
+ legend pos = outer north east,
+ draw = none,
+ fill = none,
+ },
+ ]
+ \addplot[no marks, red] table [x=vdc, y expr={\thisrow{gdc1.50}+0.48}] {../figdata/convergence_mu_o3_ac.dat};
+ \addplot[no marks, densely dotted] table [x=vdc, y expr={\thisrow{gdc1.50}+0.48}] {../figdata/convergence_mu_o3p_ac.dat};
+ \addplot[no marks, red] table [x=vdc, y expr={\thisrow{gdc2.50}+0.36}] {../figdata/convergence_mu_o3_ac.dat};
+ \addplot[no marks, red] table [x=vdc, y expr={\thisrow{gdc4.00}+0.24}] {../figdata/convergence_mu_o3_ac.dat};
+ \addplot[no marks, red] table [x=vdc, y expr={\thisrow{gdc6.25}+0.12}] {../figdata/convergence_mu_o3_ac.dat};
+ \addplot[no marks, red] table [x=vdc, y expr={\thisrow{gdc8.50}}] {../figdata/convergence_mu_o3_ac.dat};
+ \addplot[no marks, densely dotted] table [x=vdc, y expr={\thisrow{gdc2.50}+0.36}] {../figdata/convergence_mu_o3p_ac.dat};
+ \addplot[no marks, densely dotted] table [x=vdc, y expr={\thisrow{gdc4.00}+0.24}] {../figdata/convergence_mu_o3p_ac.dat};
+ \addplot[no marks, densely dotted] table [x=vdc, y expr={\thisrow{gdc6.25}+0.12}] {../figdata/convergence_mu_o3p_ac.dat};
+ \addplot[no marks, densely dotted] table [x=vdc, y expr={\thisrow{gdc8.50}}] {../figdata/convergence_mu_o3p_ac.dat};
+ %\node[anchor=west] at (10.5,0.58) {\small$\vac=1.5\Omega$};
+ %\node[anchor=west] at (10.5,0.46) {\small$\vac=2.5\Omega$};
+ %\node[anchor=west] at (10.5,0.34) {\small$\vac=4\Omega$};
+ %\node[anchor=west] at (10.5,0.22) {\small$\vac=6.25\Omega$};
+ %\node[anchor=west] at (10.5,0.10) {\small$\vac=8.5\Omega$};
+ %\node[anchor=west] at (10,0.57) {\small 1};
+ %\node[anchor=west] at (10,0.45) {\small 2};
+ %\node[anchor=west] at (10,0.33) {\small 3};
+ %\node[anchor=west] at (10,0.22) {\small 4};
+ %\node[anchor=west] at (10,0.11) {\small 5};
+ \node[anchor=west] at (7.0,0.61) {\small △};
+ \node[anchor=west] at (7.5,0.48) {\small ▽};
+ \node[anchor=west] at (8.0,0.365) {\small □};
+ \node[anchor=west] at (8.5,0.255) {\small ○};
+ \node[anchor=west] at (9.0,0.145) {\small ◊};
+ \end{axis}
+ \begin{axis}[
+ name = dc,
+ at = (img.east),
+ anchor = west,
+ width = 3cm,
+ height = 4cm,
+ xshift = 2.5mm,
+ scale only axis,
+ xmin = 0.05, xmax = 1.62,
+ ymin = 0, ymax = 10,
+ xlabel = {$\gdc~(2e^2/h)$},
+ %ylabel = {$\vac~(\Omega)$},
+ %yticklabel pos = right,
+ yticklabel = \empty,
+ every axis plot post/.append style = {
+ line width=0.5pt,
+ line cap=round,
+ line join=round
+ },
+ clip = false,
+ ]
+ \addplot[no marks, red] table [x expr={\thisrow{gdc0.00}+0.6}, y=vac] {../figdata/convergence_mu_o3_dc.dat};
+ \addplot[no marks, red] table [x expr={\thisrow{gdc0.27}+0.48}, y=vac] {../figdata/convergence_mu_o3_dc.dat};
+ \addplot[no marks, red] table [x expr={\thisrow{gdc0.67}+0.36}, y=vac] {../figdata/convergence_mu_o3_dc.dat};
+ \addplot[no marks, red] table [x expr={\thisrow{gdc1.00}+0.24}, y=vac] {../figdata/convergence_mu_o3_dc.dat};
+ \addplot[no marks, red] table [x expr={\thisrow{gdc3.00}+0.12}, y=vac] {../figdata/convergence_mu_o3_dc.dat};
+ \addplot[no marks, red] table [x expr={\thisrow{gdc5.50}}, y=vac] {../figdata/convergence_mu_o3_dc.dat};
+ \addplot[no marks, densely dotted] table [x expr={\thisrow{gdc0.00}+0.6}, y=vac] {../figdata/convergence_mu_o3p_dc.dat};
+ \addplot[no marks, densely dotted] table [x expr={\thisrow{gdc0.27}+0.48}, y=vac] {../figdata/convergence_mu_o3p_dc.dat};
+ \addplot[no marks, densely dotted] table [x expr={\thisrow{gdc0.67}+0.36}, y=vac] {../figdata/convergence_mu_o3p_dc.dat};
+ \addplot[no marks, densely dotted] table [x expr={\thisrow{gdc1.00}+0.24}, y=vac] {../figdata/convergence_mu_o3p_dc.dat};
+ \addplot[no marks, densely dotted] table [x expr={\thisrow{gdc3.00}+0.12}, y=vac] {../figdata/convergence_mu_o3p_dc.dat};
+ \addplot[no marks, densely dotted] table [x expr={\thisrow{gdc5.50}}, y=vac] {../figdata/convergence_mu_o3p_dc.dat};
+ \node[anchor=south] at (0.72,10) {\small ▶};
+ \node[anchor=south] at (0.59,10) {\small ◀};
+ \node[anchor=south] at (0.47,10) {\small ■};
+ \node[anchor=south] at (0.35,10) {\large •};
+ \node[anchor=south] at (0.23,10) {\small ♦};
+ \node[anchor=south] at (0.11,10) {\small ★};
+ \end{axis}
+ \begin{axis}[
+ name = colorbar,
+ at = (dc.north west),
+ xmin = -0.0282119544,
+ xmax = 0.0282119544,
+ xshift = 5mm,
+ yshift = 11mm,
+ anchor = south west,
+ enlargelimits = false,
+ axis on top,
+ height = .75em,
+ width = 2.5cm,
+ scale only axis,
+ tickpos = bottom,
+ tick align = outside,
+ ytick = \empty,
+ xtick = {-0.02, 0, 0.02},
+ xticklabels = {$-0.02$, $0$, $0.02$},
+ scaled ticks = false,
+ xlabel = {deviation $(2e^2/h)$},
+ xlabel shift = -15mm,
+ ]
+ \addplot graphics[ymin=0, ymax=1, xmin=-0.0282119544, xmax=0.0282119544] {../figdata/colorbar_seismic.png};
+ \end{axis}
+\end{tikzpicture}
diff --git a/tikz/convergence-o3a.tex b/tikz/convergence-o3a.tex
new file mode 100644
index 0000000000000000000000000000000000000000..26d4835a000255f331306c899d23d5effa2ebd20
--- /dev/null
+++ b/tikz/convergence-o3a.tex
@@ -0,0 +1,163 @@
+\begin{tikzpicture}
+ \pgfplotsset{set layers = axis on top}
+ \begin{axis}[
+ name = img,
+ anchor = north west,
+ width = 4cm,
+ height = 4cm,
+ scale only axis,
+ xmin = 0, xmax = 10,
+ ymin = 0, ymax = 10,
+ xlabel = {$\vdc~(\Omega)$},
+ ylabel = {$\vac~(\Omega)$},
+ every axis plot post/.append style = {
+ line width=0.2pt,
+ line cap=round,
+ line join=round
+ },
+ clip = false,
+ ]
+ \addplot graphics[xmin=-.03333333, xmax=10.03333333, ymin=-.05, ymax=10.05] {../figdata/convergence_o3a_diff.png};
+ % vertical lines
+ \addplot[no marks, black] coordinates {(0,1.5) (10,1.5)};
+ \addplot[no marks, black] coordinates {(0,2.5) (10,2.5)};
+ \addplot[no marks, black] coordinates {(0,4) (10,4)};
+ \addplot[no marks, black] coordinates {(0,6.25) (10,6.25)};
+ \addplot[no marks, black] coordinates {(0,8.5) (10,8.5)};
+ \node[anchor=west] at (7.0,1.5) {\small △};
+ \node[anchor=west] at (7.5,2.5) {\small ▽};
+ \node[anchor=west] at (8.0,4) {\small □};
+ \node[anchor=west] at (8.5,6.25) {\small ○};
+ \node[anchor=west] at (9.0,8.5) {\small ◊};
+ % horizontal lines
+ \addplot[no marks, black] coordinates {(0,0) (0,10)};
+ \addplot[no marks, black] coordinates {(0.26666667,0) (0.26666667,10)};
+ \addplot[no marks, black] coordinates {(0.66666667,0) (0.66666667,10)};
+ \addplot[no marks, black] coordinates {(1,0) (1,10)};
+ \addplot[no marks, black] coordinates {(3,0) (3,10)};
+ \addplot[no marks, black] coordinates {(5.5,0) (5.5,10)};
+ \node[anchor=south] at (0,8.5) {\small ▶};
+ \node[anchor=south] at (0.26666667,7) {\small ◀};
+ \node[anchor=south] at (0.66666667,5) {\small ■};
+ \node[anchor=south] at (1,4) {\large •};
+ \node[anchor=south] at (3,0.2) {\small ♦};
+ \node[anchor=south] at (5.5,0.2) {\small ★};
+ \end{axis}
+ \begin{axis}[
+ at = (img.north),
+ name = ac,
+ anchor = south,
+ width = 4cm,
+ height = 3cm,
+ yshift = 2.5mm,
+ scale only axis,
+ xmin = 0, xmax = 10,
+ ymin = 0.08, ymax = 0.88,
+ %xlabel = {$\vdc~(\Omega)$},
+ ylabel = {$\gdc~(2e^2/h)$},
+ %xticklabel pos = top,
+ xticklabel = \empty,
+ every axis plot post/.append style = {
+ line width=0.5pt,
+ line cap=round,
+ line join=round
+ },
+ clip = false,
+ legend entries = {approx.~integral, full RG equations},
+ legend cell align = left,
+ legend style = {
+ legend pos = outer north east,
+ draw = none,
+ fill = none,
+ },
+ ]
+ \addplot[no marks, red] table [x=vdc, y expr={\thisrow{gdc1.50}+0.48}] {../figdata/convergence_mu_o3a_ac.dat};
+ \addplot[no marks, densely dotted] table [x=vdc, y expr={\thisrow{gdc1.50}+0.48}] {../figdata/convergence_mu_o3p_ac.dat};
+ \addplot[no marks, red] table [x=vdc, y expr={\thisrow{gdc2.50}+0.36}] {../figdata/convergence_mu_o3a_ac.dat};
+ \addplot[no marks, red] table [x=vdc, y expr={\thisrow{gdc4.00}+0.24}] {../figdata/convergence_mu_o3a_ac.dat};
+ \addplot[no marks, red] table [x=vdc, y expr={\thisrow{gdc6.25}+0.12}] {../figdata/convergence_mu_o3a_ac.dat};
+ \addplot[no marks, red] table [x=vdc, y expr={\thisrow{gdc8.50}}] {../figdata/convergence_mu_o3a_ac.dat};
+ \addplot[no marks, densely dotted] table [x=vdc, y expr={\thisrow{gdc2.50}+0.36}] {../figdata/convergence_mu_o3p_ac.dat};
+ \addplot[no marks, densely dotted] table [x=vdc, y expr={\thisrow{gdc4.00}+0.24}] {../figdata/convergence_mu_o3p_ac.dat};
+ \addplot[no marks, densely dotted] table [x=vdc, y expr={\thisrow{gdc6.25}+0.12}] {../figdata/convergence_mu_o3p_ac.dat};
+ \addplot[no marks, densely dotted] table [x=vdc, y expr={\thisrow{gdc8.50}}] {../figdata/convergence_mu_o3p_ac.dat};
+ %\node[anchor=west] at (10.5,0.58) {\small$\vac=1.5\Omega$};
+ %\node[anchor=west] at (10.5,0.46) {\small$\vac=2.5\Omega$};
+ %\node[anchor=west] at (10.5,0.34) {\small$\vac=4\Omega$};
+ %\node[anchor=west] at (10.5,0.22) {\small$\vac=6.25\Omega$};
+ %\node[anchor=west] at (10.5,0.10) {\small$\vac=8.5\Omega$};
+ %\node[anchor=west] at (10,0.57) {\small 1};
+ %\node[anchor=west] at (10,0.45) {\small 2};
+ %\node[anchor=west] at (10,0.33) {\small 3};
+ %\node[anchor=west] at (10,0.22) {\small 4};
+ %\node[anchor=west] at (10,0.11) {\small 5};
+ \node[anchor=west] at (7.0,0.61) {\small △};
+ \node[anchor=west] at (7.5,0.48) {\small ▽};
+ \node[anchor=west] at (8.0,0.365) {\small □};
+ \node[anchor=west] at (8.5,0.255) {\small ○};
+ \node[anchor=west] at (9.0,0.145) {\small ◊};
+ \end{axis}
+ \begin{axis}[
+ name = dc,
+ at = (img.east),
+ anchor = west,
+ width = 3cm,
+ height = 4cm,
+ xshift = 2.5mm,
+ scale only axis,
+ xmin = 0.05, xmax = 1.62,
+ ymin = 0, ymax = 10,
+ xlabel = {$\gdc~(2e^2/h)$},
+ %ylabel = {$\vac~(\Omega)$},
+ %yticklabel pos = right,
+ yticklabel = \empty,
+ every axis plot post/.append style = {
+ line width=0.5pt,
+ line cap=round,
+ line join=round
+ },
+ clip = false,
+ ]
+ \addplot[no marks, red] table [x expr={\thisrow{gdc0.00}+0.6}, y=vac] {../figdata/convergence_mu_o3a_dc.dat};
+ \addplot[no marks, red] table [x expr={\thisrow{gdc0.27}+0.48}, y=vac] {../figdata/convergence_mu_o3a_dc.dat};
+ \addplot[no marks, red] table [x expr={\thisrow{gdc0.67}+0.36}, y=vac] {../figdata/convergence_mu_o3a_dc.dat};
+ \addplot[no marks, red] table [x expr={\thisrow{gdc1.00}+0.24}, y=vac] {../figdata/convergence_mu_o3a_dc.dat};
+ \addplot[no marks, red] table [x expr={\thisrow{gdc3.00}+0.12}, y=vac] {../figdata/convergence_mu_o3a_dc.dat};
+ \addplot[no marks, red] table [x expr={\thisrow{gdc5.50}}, y=vac] {../figdata/convergence_mu_o3a_dc.dat};
+ \addplot[no marks, densely dotted] table [x expr={\thisrow{gdc0.00}+0.6}, y=vac] {../figdata/convergence_mu_o3p_dc.dat};
+ \addplot[no marks, densely dotted] table [x expr={\thisrow{gdc0.27}+0.48}, y=vac] {../figdata/convergence_mu_o3p_dc.dat};
+ \addplot[no marks, densely dotted] table [x expr={\thisrow{gdc0.67}+0.36}, y=vac] {../figdata/convergence_mu_o3p_dc.dat};
+ \addplot[no marks, densely dotted] table [x expr={\thisrow{gdc1.00}+0.24}, y=vac] {../figdata/convergence_mu_o3p_dc.dat};
+ \addplot[no marks, densely dotted] table [x expr={\thisrow{gdc3.00}+0.12}, y=vac] {../figdata/convergence_mu_o3p_dc.dat};
+ \addplot[no marks, densely dotted] table [x expr={\thisrow{gdc5.50}}, y=vac] {../figdata/convergence_mu_o3p_dc.dat};
+ \node[anchor=south] at (0.72,10) {\small ▶};
+ \node[anchor=south] at (0.59,10) {\small ◀};
+ \node[anchor=south] at (0.47,10) {\small ■};
+ \node[anchor=south] at (0.35,10) {\large •};
+ \node[anchor=south] at (0.23,10) {\small ♦};
+ \node[anchor=south] at (0.11,10) {\small ★};
+ \end{axis}
+ \begin{axis}[
+ name = colorbar,
+ at = (dc.north west),
+ xmin = -0.003390334477,
+ xmax = 0.003390334477,
+ xshift = 5mm,
+ yshift = 11mm,
+ anchor = south west,
+ enlargelimits = false,
+ axis on top,
+ height = .75em,
+ width = 2.5cm,
+ scale only axis,
+ tickpos = bottom,
+ tick align = outside,
+ ytick = \empty,
+ xtick = {-0.002, 0.002},
+ scaled ticks = false,
+ xlabel = {deviation $(2e^2/h)$},
+ xlabel shift = -15.85mm,
+ ]
+ \addplot graphics[ymin=0, ymax=1, xmin=-0.003390334477, xmax=0.003390334477] {../figdata/colorbar_seismic.png};
+ \end{axis}
+\end{tikzpicture}
diff --git a/tikz/omega5-3d.tex b/tikz/omega5-3d.tex
index 7492d2ce1e578dabbd020ac81b9de1a194fb5a8e..f53c84c874f302818e11ec924f81e0f9836c3267 100644
--- a/tikz/omega5-3d.tex
+++ b/tikz/omega5-3d.tex
@@ -2,10 +2,10 @@
\begin{tikzpicture}
\begin{axis}[
name = G3d,
- view={110}{22},
- width = 7cm,
- height = 7cm,
- zmin = 0.075, zmax = 80,
+ view={110}{15},
+ width = 5.5cm,
+ height = 6.5cm,
+ zmin = 0.075, zmax = 30,
ymin = 0, ymax = 10,
xmin = 0, xmax = 10,
zmode = log,
@@ -18,9 +18,9 @@
every tick label/.append style = {font=\small},
label shift = {-.8ex},
zlabel shift = {-1.5ex},
- ztick = {0.1, 1, 8, 80},
+ ztick = {0.1, 1, 3, 30},
zticklabels = {$0.1$, $1$, $0.1$, $1$},
- minor ztick = {0.08,0.09,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9, 5.6,6.4,7.2,16,32,40,48,56,64,72},
+ minor ztick = {0.08,0.09,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9, 2.1,2.4,2.7,3,6,9,12,15,18,21,24,27},
%zlabel style = {at = (ticklabel cs:0.65)},
xtick = {0,5,10},
xticklabels = {$\hspace*{-.5em}0$, $5$, $10$},
@@ -30,23 +30,52 @@
clip = false,
scale only axis,
]
- \addplot3[gray, no marks, line width=0.2pt] coordinates {(10,0,0.3) (0,0,0.3) (0,10,0.3)};
+ \addplot3[gray, no marks, line width=0.2pt] coordinates {(10,0,0.1) (0,0,0.1) (0,10,0.1)};
\addplot3[
line width = 0.18pt,
surf,
- point meta min = -1.15,
- point meta max = -0.4,
- point meta = {log10(\thisrow{gac})},
- ] table [x expr={\thisrow{vac}/5.000007155}, y expr={\thisrow{vdc}/5.000007155}, z expr={\thisrow{gac}}]{../figdata/vdc_vac_omega16.5372_interp.dat};
- \addplot3[gray, no marks, line width=0.2pt] coordinates {(10,0,8) (0,0,8) (0,10,8)};
+ point meta min = 0,
+ point meta max = 1,
+ point meta = {(1-0.18/(\thisrow{gac}+0.1))/0.72},
+ ] table [x=vac, y=vdc, z expr={\thisrow{gac}}]{../figdata/omega5_interp.dat};
+ \addplot3[gray, no marks, line width=0.2pt] coordinates {(10,0,0.1) (10,10,0.1) (0,10,0.1)};
+ \addplot3[gray, no marks, line width=0.2pt] coordinates {(10,0,3) (0,0,3) (0,10,3)};
\addplot3[
line width = 0.18pt,
surf,
- point meta min = -1.15,
- point meta max = -0.4,
- point meta = {log10(\thisrow{gdc_g})},
- ] table [x expr={\thisrow{vac}/5.000007155}, y expr={\thisrow{vdc}/5.000007155}, z expr={80*\thisrow{gdc_g}}]{../figdata/vdc_vac_omega16.5372_interp.dat};
- \addplot3[gray, no marks, line width=0.2pt] coordinates {(10,0,8) (10,10,8) (0,10,8)};
+ point meta min = 0,
+ point meta max = 1,
+ point meta = {(1-0.18/(\thisrow{gdc}+0.1))/0.72},
+ ] table [x=vac, y=vdc, z expr={30*\thisrow{gdc}}]{../figdata/omega5_interp.dat};
+ \addplot3[gray, no marks, line width=0.2pt] coordinates {(10,0,3) (10,10,3) (0,10,3)};
\node[black] at (axis description cs:0.75,0.82) {$\Omega=4.8\tkv$};
\end{axis}
+ \begin{axis}[
+ at = (G3d.north east),
+ view={0}{90},
+ anchor = north west,
+ width = 0.75em,
+ height = 65mm,
+ yshift = -1.5ex,
+ colormap/viridis,
+ scale only axis,
+ xmin = 0, xmax = 1,
+ xshift = 1.2em,
+ ymin = 0.08, ymax = 1,
+ axis on top,
+ xtick = \empty,
+ tickpos = right,
+ tick align = outside,
+ ]
+ \addplot3[
+ surf,
+ domain = 0:1,
+ domain y = 0.08:1,
+ samples = 2,
+ samples y = 100,
+ shader = interp,
+ mesh/color input = colormap,
+ point meta = {(1-0.18/(y+0.1))/0.72}
+ ] {(1-0.18/(y+0.1))/0.72};
+ \end{axis}
\end{tikzpicture}
diff --git a/tikz/overview.tex b/tikz/overview.tex
index cf5a4481af99e6e22a94b1837db7537e4fb7d67d..bf44b669031c86ae3431eebeb1c6fe451c0ae378 100644
--- a/tikz/overview.tex
+++ b/tikz/overview.tex
@@ -1,7 +1,7 @@
\begin{tikzpicture}
\begin{axis}[
- width=11cm,
- height=11cm,
+ width=9.5cm,
+ height=9.5cm,
scale only axis,
xmin=0, xmax=10,
ymin=0, ymax=10,
@@ -11,6 +11,8 @@
xlabel = {$\vdc/\Omega$},
ylabel = {$\vac/\Omega$},
zlabel = {$\Omega~(\tkv)$},
+ axis lines* = left,
+ axis on top,
]
\addplot3[surf] graphics[
points={