diff --git a/plots/ribbon/data_for_jacob.zip b/plots/ribbon/data_for_jacob.zip new file mode 100644 index 0000000000000000000000000000000000000000..acbef0c0c95dddc20ccb63c453ceb944646b7432 Binary files /dev/null and b/plots/ribbon/data_for_jacob.zip differ diff --git a/plots/ribbon/data_for_jacob/.DS_Store b/plots/ribbon/data_for_jacob/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..34f69abba5a75d5b4d8e64ce070480700b5be907 Binary files /dev/null and b/plots/ribbon/data_for_jacob/.DS_Store differ diff --git a/plots/ribbon/data_for_jacob/filling_transition_data b/plots/ribbon/data_for_jacob/filling_transition_data new file mode 100644 index 0000000000000000000000000000000000000000..ac41fd5311b2c8ac6e3b744c0563d6520de7ae99 Binary files /dev/null and b/plots/ribbon/data_for_jacob/filling_transition_data differ diff --git a/plots/ribbon/data_for_jacob/ribbon/k_points.npy b/plots/ribbon/data_for_jacob/ribbon/k_points.npy new file mode 100644 index 0000000000000000000000000000000000000000..e27f30c2336b8d3a7c44311ac79cfa1d694fc386 Binary files /dev/null and b/plots/ribbon/data_for_jacob/ribbon/k_points.npy differ diff --git a/plots/ribbon/data_for_jacob/ribbon/left.npy b/plots/ribbon/data_for_jacob/ribbon/left.npy new file mode 100644 index 0000000000000000000000000000000000000000..52d97b36e73bcbb7f389b41ad478402e38cbf11e Binary files /dev/null and b/plots/ribbon/data_for_jacob/ribbon/left.npy differ diff --git a/plots/ribbon/data_for_jacob/ribbon/ribbon_energies.npy b/plots/ribbon/data_for_jacob/ribbon/ribbon_energies.npy new file mode 100644 index 0000000000000000000000000000000000000000..9120358e1f990908ba83a75556d79ceafc15890b Binary files /dev/null and b/plots/ribbon/data_for_jacob/ribbon/ribbon_energies.npy differ diff --git a/plots/ribbon/data_for_jacob/ribbon/right.npy b/plots/ribbon/data_for_jacob/ribbon/right.npy new file mode 100644 index 0000000000000000000000000000000000000000..fede6c506379d1e1ff35aa7142a38e4090725efb Binary files /dev/null and b/plots/ribbon/data_for_jacob/ribbon/right.npy differ diff --git a/plots/ribbon/old_data/k_points.npy b/plots/ribbon/old_data/k_points.npy new file mode 100644 index 0000000000000000000000000000000000000000..abd7f3ddf481d423f2e2721c10abd5eb834212e8 Binary files /dev/null and b/plots/ribbon/old_data/k_points.npy differ diff --git a/plots/ribbon/old_data/left.npy b/plots/ribbon/old_data/left.npy new file mode 100644 index 0000000000000000000000000000000000000000..8e3b7ed26b5bc6dff4e838d41484d20cbcf71517 Binary files /dev/null and b/plots/ribbon/old_data/left.npy differ diff --git a/plots/ribbon/old_data/ribbon_energies.npy b/plots/ribbon/old_data/ribbon_energies.npy new file mode 100644 index 0000000000000000000000000000000000000000..35e26d323a021ee7effe77b78abe31b369b05e12 Binary files /dev/null and b/plots/ribbon/old_data/ribbon_energies.npy differ diff --git a/plots/ribbon/old_data/right.npy b/plots/ribbon/old_data/right.npy new file mode 100644 index 0000000000000000000000000000000000000000..2261847d096d14ed985afd621d8e7488bf4e3406 Binary files /dev/null and b/plots/ribbon/old_data/right.npy differ diff --git a/plots/ribbon/ribbons.py b/plots/ribbon/ribbons.py new file mode 100755 index 0000000000000000000000000000000000000000..e42164728907c321399d966f003f3e1ce95020d6 --- /dev/null +++ b/plots/ribbon/ribbons.py @@ -0,0 +1,76 @@ +import numpy as np +import os +import sys +import matplotlib.pyplot as plt +import matplotlib +import numpy.ma as ma + +sys.path.append(os.path.join(os.path.dirname(__file__), '..')) +import colors +import header +import triangular + +matplotlib.rc('font', **{'family': 'serif', 'serif': ['Computer Modern Roman'], + 'size': 8}) +matplotlib.rc('text', usetex=True) +matplotlib.rc('text.latex', preamble=r'\usepackage{amsmath}' + + r'\usepackage{braket}' + r'\usepackage{amssymb}' + + r'\newcommand{\bvec}[1]{\boldsymbol{#1}}') + +fig_width = 3.4039 +fig_height = fig_width + +fig, axs = plt.subplots(4, 1, figsize=(fig_width, fig_height), sharex=True, + gridspec_kw={'hspace': 0.05}) + +# TODO make this a list of four directories with data to be used +data_dirs = ['./data_for_jacob/ribbon/'] * 4 + +for ii, ddir in enumerate(data_dirs): + kpts = np.load(ddir + 'k_points.npy') + left = np.load(ddir + 'left.npy') + right = np.load(ddir + 'right.npy') + energy = np.load(ddir + 'ribbon_energies.npy') + + bulk = np.logical_and(np.logical_not(right), np.logical_not(left)) + + kpts_bulk = ma.masked_array(kpts, np.logical_not(bulk)) + energy_bulk = ma.masked_array(energy, np.logical_not(bulk)) + + kpts_left = ma.masked_array(kpts, np.logical_not(left)) + energy_left = ma.masked_array(energy, np.logical_not(left)) + + kpts_right = ma.masked_array(kpts, np.logical_not(right)) + energy_right = ma.masked_array(energy, np.logical_not(right)) + + # Plot parameters fixed here + axs[ii].plot(kpts_bulk, energy_bulk, c=colors.gray, + linestyle='-', linewidth=0.1) + axs[ii].plot(kpts_left, energy_left, c=colors.first, + marker='.', markersize=0.1) + axs[ii].plot(kpts_right, energy_right, c=colors.third, + marker='.', markersize=0.1) + + gap_lower_edge = np.min([np.min(energy_left), np.min(energy_right)]) + gap_upper_edge = np.max([np.max(energy_left), np.max(energy_right)]) + + # Fix y axes + axs[ii].tick_params(left=False, labelleft=False, bottom=False, + labelbottom=False) + axs[ii].set_ylabel(r'$E$') + + # Fixing the ylim relative to the gap boundaries + lim_factor = 1.5 + axs[ii].set_ylim([lim_factor * gap_lower_edge, + lim_factor * gap_upper_edge]) + + axs[ii].set_xlim([-np.pi, np.pi]) + +# Fix x axis +axs[3].tick_params(bottom=True, labelbottom=True) +axs[3].set_xticks([-np.pi, -0.5 * np.pi, 0, 0.5 * np.pi, np.pi], + labels=[r'$-\pi$', r'$-\frac{\pi} 2$', r'$0$', + r'$\frac{\pi} 2$', r'$\pi$']) +axs[3].set_xlabel(r'$k/a$') + +fig.savefig('ribbons.pdf', bbox_inches="tight")