Imports and graphic parameters¶

In [1]:
#%matplotlib widget
import os
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits import mplot3d
from mpl_toolkits.mplot3d import axes3d
%matplotlib inline
In [2]:
#padding on the y axis between label and axis
plt.rcParams['ytick.major.pad']='10'

dpi_out = 400
fig_width = 3.39
golden_mean = (np.sqrt(5)-1.0)/2.0    # Aesthetic ratio
fig_height = fig_width*golden_mean # height in inches
MAX_HEIGHT_INCHES = 8.0
if fig_height > MAX_HEIGHT_INCHES:
    print("WARNING: fig_height too large:" + fig_height + 
          "so will reduce to" + MAX_HEIGHT_INCHES + "inches.")
    fig_height = MAX_HEIGHT_INCHES
#fig, ax = plt.subplots(figsize = (fig_width, fig_height), dpi=400, frameon=True)
small_tick_size = 8
small_label_size = 8

Read data and make path¶

In [3]:
def get_full_path_frame(sites,data_root, full_csv_name):
    print ("reading input file", full_csv_name)
    kept_fields = ['qx', 'qy', 'real_freq', 'real_axis_value', 'component', 
                   'crystal_field', 'mode_style', 'cross_hopping', 'parity', 'beta', 'impurity_solver', 'doping']
    test_frame = pd.read_csv(os.path.join(data_root, full_csv_name))
    if(sites == 1):
       reduced_frame = test_frame.query('nb_sites == 1 & interaction_type == "density"'
                                     #+ ' & mode_style == "diagonal" '
                                     + '& bosonic_freq_ind != bosonic_freq_ind & real_freq <= 15.')
    elif(sites == 2):
       reduced_frame = test_frame.query('nb_sites == 2 & interaction_type == "density"'
                                     #+ ' & mode_style == "diagonal" '
                                     + '& bosonic_freq_ind != bosonic_freq_ind & real_freq <= 15.')
    
    to_plot_qy0 = reduced_frame.query('qx == 0 & real_freq <= 15. & qy < .5')[kept_fields]
    to_plot_qy0 = to_plot_qy0.sort_values('qy')
    to_plot_qy0['path_index'] = to_plot_qy0.apply(lambda x: x['qy'] / 0.5, axis=1)
    
    to_plot_qxpi = reduced_frame.query('qy == 0.5 & real_freq <= 15. and qx < 0.5')[kept_fields]
    to_plot_qxpi = to_plot_qxpi.sort_values('qx')
    to_plot_qxpi['path_index'] = to_plot_qxpi.apply(lambda x: 1.0 + x['qx'] / 0.5, axis=1)
    
    to_plot_qxqy = reduced_frame.query('qy == qx & real_freq <= 15. & qx >= 0.')[kept_fields]
    to_plot_qxqy = to_plot_qxqy.sort_values('qx', ascending=False)
    to_plot_qxqy['path_index'] = to_plot_qxqy.apply(lambda x: 2. + np.sqrt(2.0) * (1.0 - x['qx'] / 0.5), axis=1)
    
    path_frame = pd.concat([to_plot_qxqy, to_plot_qxpi, to_plot_qy0])
    path_frame.reset_index(drop=True, inplace=True)
    return path_frame
In [4]:
def get_full_path_frame_1(sites,data_root, full_csv_name):
    print ("reading input file", full_csv_name)
    kept_fields = ['qx', 'qy', 'real_freq', 'real_axis_value', 'component', 
                   'crystal_field', 'mode_style', 'cross_hopping', 'parity', 'beta', 'impurity_solver', 'doping']
    test_frame = pd.read_csv(os.path.join(data_root, full_csv_name))
    if(sites == 1):
       reduced_frame = test_frame.query('nb_sites == 1 & interaction_type == "density"'
                                     #+ ' & mode_style == "diagonal" '
                                     + '& bosonic_freq_ind != bosonic_freq_ind & real_freq <= 0.25')
    elif(sites == 2):
       reduced_frame = test_frame.query('nb_sites == 2 & interaction_type == "density"'
                                     #+ ' & mode_style == "diagonal" '
                                     + '& bosonic_freq_ind != bosonic_freq_ind & real_freq <= 0.25')
    
    to_plot_qy0 = reduced_frame.query('qx == 0 & real_freq <= 0.25 & qy < .5')[kept_fields]
    to_plot_qy0 = to_plot_qy0.sort_values('qy')
    to_plot_qy0['path_index'] = to_plot_qy0.apply(lambda x: x['qy'] / 0.5, axis=1)
    
    to_plot_qxpi = reduced_frame.query('qy == 0.5 & real_freq <= 0.25 and qx < 0.5')[kept_fields]
    to_plot_qxpi = to_plot_qxpi.sort_values('qx')
    to_plot_qxpi['path_index'] = to_plot_qxpi.apply(lambda x: 1.0 + x['qx'] / 0.5, axis=1)
    
    to_plot_qxqy = reduced_frame.query('qy == qx & real_freq <= 0.25 & qx >= 0.')[kept_fields]
    to_plot_qxqy = to_plot_qxqy.sort_values('qx', ascending=False)
    to_plot_qxqy['path_index'] = to_plot_qxqy.apply(lambda x: 2. + np.sqrt(2.0) * (1.0 - x['qx'] / 0.5), axis=1)
    
    path_frame = pd.concat([to_plot_qxqy, to_plot_qxpi, to_plot_qy0])
    path_frame.reset_index(drop=True, inplace=True)
    return path_frame
In [5]:
def get_pivot_table2(in_component, in_crystal_field, in_mode_style, 
                     in_cross_hopping, in_parity, in_impurity_solver):
    temp_query = path_frame.query('component == "' + in_component 
                                  + '" & cross_hopping == ' + str(in_cross_hopping)
                                  + ' & crystal_field == ' + str(in_crystal_field) 
                                  + '& mode_style == "' + in_mode_style 
                                  + '" & parity == "' + in_parity + '"'
                                  + ' & impurity_solver == "' + in_impurity_solver + '"')
    
    if temp_query.empty:
        out = None
    else:
        out  = temp_query.pivot(columns='path_index', index='real_freq', values='real_axis_value')
    return out

def get_pivot_table3(in_component, in_crystal_field, in_mode_style, in_cross_hopping,
                     in_parity, in_impurity_solver, in_doping):
    temp_query = path_frame.query('component == "' + in_component 
                                  + '" & cross_hopping == ' + str(in_cross_hopping)
                                  + ' & crystal_field == ' + str(in_crystal_field) 
                                  + '& mode_style == "' + in_mode_style 
                                  + '" & parity == "' + in_parity + '"'
                                  + ' & impurity_solver == "' + in_impurity_solver + '"'
                                 + '& doping == ' + str(in_doping))
    if temp_query.empty:
        out = None
    else:
        out  = temp_query.pivot(columns='path_index', index='real_freq', values='real_axis_value')
    return out

def get_qx_qy(in_component, in_crystal_field, in_mode_style, in_cross_hopping, in_parity, in_impurity_solver):
    temp_query = path_frame.query('component == "' + in_component 
                                  + '" & cross_hopping == ' + str(in_cross_hopping)
                                  + ' & crystal_field == ' + str(in_crystal_field) 
                                  + '& mode_style == "' + in_mode_style 
                                  + '" & parity == "' + in_parity + '"'
                                  + ' & impurity_solver == "' + in_impurity_solver + '"' 
                                 + ' & real_freq == ' + str(0) )
    if temp_query.empty:
        out = None
    else:
        out  = temp_query[['path_index', 'qx', 'qy']]
    return out
        
def get_pivot_table_ch(in_component, in_beta, in_mode_style, in_cross_hopping, in_parity, 
                       in_path_frame, in_impurity_solver):
    temp_query = in_path_frame.query('component == "' + in_component 
                                     + '" & cross_hopping == ' + str(in_cross_hopping)
                                     + ' & beta == ' + str(beta) 
                                     + '& mode_style == "' + in_mode_style 
                                     + '" & parity == "' + in_parity + '"'
                                     + ' & impurity_solver == "' + in_impurity_solver + '"')
    if temp_query.empty:
        out = None
    else:
        out  = temp_query.pivot(columns='path_index', index='real_freq', values='real_axis_value')
    return out

def get_lin_col_indices(crystal_field, all_crystal_fields, component, components_to_plot):
    line_index = np.where(all_crystal_fields==crystal_field)[0][0]
    col_index = np.where(components_to_plot==component)[0][0]
    return (line_index, col_index)

def set_axis_style(ax, crystal_field, all_crystal_fields, component, components_to_plot, text_size=40):
    line_index, col_index = get_lin_col_indices(crystal_field, all_crystal_fields, component, components_to_plot)
    for tick in ax.xaxis.get_major_ticks():
        tick.label.set_fontsize(text_size) 
    for tick in ax.yaxis.get_major_ticks():
        tick.label.set_fontsize(text_size)
    ax.yaxis.set_major_locator(plt.MultipleLocator(1.0))
    ax.yaxis.set_minor_locator(plt.MultipleLocator(0.02))
    if (col_index > 60):
        #ax.yaxis.set_ticks([])# s_position('none')
        ax.yaxis.set_major_formatter(plt.NullFormatter())
    else:
        ax.set_ylabel(r"$\xi$ = " + str(crystal_field), fontsize=text_size+2)
    if (line_index < len(all_crystal_fields) - 1):
        ax.xaxis.set_ticks([])# s_position('none')
  
    #ax.legend(fontsize=30)
    
def integrate_peak(xdata, ydata):
    xmin = 0.
    xmax = 1.
    interval_mask = (xdata > xmin) * (xdata < xmax)
    interval = xdata[interval_mask]
    peak = ydata[interval_mask]
    peak_weight = np.trapz(peak, interval)
    return peak_weight

2 sites¶

In [10]:
data_root = "/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sz_unfold/" 
full_csv_name = 'data_real_normal.csv'
#full_csv_name = 'data_real_weak_1.6.csv'
#full_csv_name = 'data_real_bubble.csv'
In [11]:
full_path_frame = get_full_path_frame(2,data_root, full_csv_name)
reading input file data_real_normal.csv

Physical¶

In [12]:
mode_style = "1auc"
#mode_style = "physical"
#mode_style = "diagonal"
cross_hopping = 0
parity = "odd"
impurity_solver = "alps"
U_val = 4.0
beta = 30.0
doping = 0
In [13]:
path_frame = full_path_frame.query('cross_hopping == ' + str(cross_hopping) 
                                   + '& beta == ' + str(beta) 
                                   + ' & impurity_solver == "' + impurity_solver + '"'
                                   + ' & mode_style == "' + mode_style + '"')
In [14]:
all_crystal_fields = np.sort(path_frame['crystal_field'].unique())[::-1]
all_dopings = np.sort(path_frame['doping'].unique())[::-1]

del_index = np.where(all_dopings==1.5)
all_dopings = np.delete(all_dopings, del_index) 

all_mode_styles = np.sort(path_frame['mode_style'].unique())
all_components = np.sort(path_frame['component'].unique())
all_cross_hoppings = np.sort(path_frame['cross_hopping'].unique())[::-1]
nb_crytal_fields = len(all_crystal_fields)
all_betas = np.sort(path_frame['beta'].unique())[::-1]
components_to_plot = all_components
#components_to_plot = np.array(['N_a0-N_b0',  'Sz0', 're_xx0', 're_xx1','im_xx0', 'im_xx1'])##,'N_a1-N_b1','Sz1' 'im_yy1','im_xx1',
# , 're_xx1' 're_yy1'])
#components_to_plot = np.array(['$S^x_{0}$', '$S^y_{0}$','$S^z_{0}$'])
#components_to_plot = np.array([ 'N_a-N_b', 'Sz','re_xx', 're_yy', 'im_xx', 'im_yy'])
#components_to_plot = np.array(['im_xx0+im_xx1'])
print (components_to_plot, all_betas, all_crystal_fields, all_dopings)
['Sx_0' 'Sy_0' 'Sz_0'] [30.] [0] [0]
In [15]:
nb_components_per_line = 4

fig = plt.figure(figsize = (nb_components_per_line * 3 * fig_width, 4 * 7 * fig_height), frameon=True)
axes=[]
x_labels = [r'$\Gamma$', 'X', 'M', r'$\Gamma$']
x_positions = [0, 1., 2., 3.385]
full_index = 1

for crystal_field in all_crystal_fields:
    for component in components_to_plot:
        col_index = (full_index - 1) % nb_components_per_line
        line_index = (full_index - 1) // nb_components_per_line
        #line_index, col_index = get_lin_col_indices(crystal_field, all_crystal_fields, component, components_to_plot)
        #full_index = 1 + len(components_to_plot) * line_index + col_index
        pivot_table = get_pivot_table2(component, crystal_field, mode_style, cross_hopping, parity, impurity_solver)
        if (pivot_table is None):
            print ("none", component)
            # Do not create axes if no data to plot
            continue
        vmax = 1.0
        
        ax = fig.add_subplot(8,  nb_components_per_line, full_index)
        #print(crystal_field)
        axes.append(ax)
        if(line_index < -1):
           ax.xaxis.set_ticks([])
        else:
           ax.set_xticks(x_positions)
           ax.set_xticklabels(x_labels)
        set_axis_style(ax, crystal_field, all_crystal_fields, component, components_to_plot)
        to_plot_x = pivot_table.columns
        to_plot_y = pivot_table.index.values
        data = pivot_table.values
        
        #######################################
        #### Definition of the function to plot
        #######################################
        #to_plot_z = np.log10(data + 1e-5)
        to_plot_z = data / (5.5 + data)
        
        
        #Z=to_plot_z
        def f(x, y):
          return to_plot_z
        
        
        X=to_plot_x
        Y=to_plot_y
        X, Y = np.meshgrid(to_plot_x,to_plot_y)
        Z = f(X, Y)
        print(Z.shape)
        #print(to_plot_x.shape)
        #print(Z.shape)
        #########################################
        #### Plotting instruction with parameters
        #########################################      
        im = plt.pcolormesh(to_plot_x, to_plot_y, to_plot_z,
                       rasterized=True, 
                            cmap=plt.get_cmap('jet'),
                            #cmap=plt.get_cmap('gist_stern_r'), 
                       vmin=0, vmax=vmax
                            #vmax = min(40, np.amax(to_plot_z))
                      )
        fig.colorbar(im, ax=ax)
        text_size = 42
        for tick in ax.xaxis.get_major_ticks():
            tick.label.set_fontsize(text_size) 
        for tick in ax.yaxis.get_major_ticks():
            tick.label.set_fontsize(text_size)
        if (col_index > 70):
            ax.yaxis.set_ticks([])# s_position('none')
        else:
           #ax.yaxis.set_ticks([0.2, 0.4, 0.6, 0.8])# s_position('none')
           ax.yaxis.set_ticks([0.1, 0.2, 0.3, 0.4])# s_position('none')
        ax.set_ylabel(r"", fontsize=text_size+2)
        #ax.yaxis.set_ticks([1, 2, 3, 4])# s_position('none')
        ax.set_ylabel(r"", fontsize=text_size+2)
        if (col_index == 1):
            #ax.set_ylabel(r"$\Delta$ = " + str(crystal_field), fontsize=text_size+2)
            pass
        #if (line_index < len(all_crystal_fields) - 1):
         #   ax.xaxis.set_ticks([])# s_position('none')
        #########################################
        #########################################  
        plt.title(component, fontsize=40)
        full_index += 1
        ax.set_ylim([0.0, 0.5])
#for i in np.arange(201):
#    print(to_plot_x[i])
plt.tight_layout()
plt.savefig("all_dispersions_IR_U_" + str(U_val) + "_ch_" + str(cross_hopping) + "_beta_" + str(beta) + "_" + mode_style + "_fine.pdf")
(1001, 200)
(1001, 200)
(1001, 201)
No description has been provided for this image
In [16]:
# import matplotlib.colors as colors

components_per_line = len(components_to_plot)
text_size = 22
fig = plt.figure(figsize = (components_per_line * 3 * fig_width, components_per_line * 4 * fig_height), frameon=True)

for component_index in np.arange(len(components_to_plot)):
    component = components_to_plot[component_index]
    line_index, col_index = component_index // components_per_line, component_index % components_per_line
    full_index = 1 + components_per_line * line_index + col_index

    pivot_table = get_pivot_table2(component, crystal_field, mode_style, cross_hopping, parity, impurity_solver)
    if (pivot_table is None):
        #print ("none", component)
        # Do not create axes if no data to plot
        continue
    vmax = 1.2

    ax = fig.add_subplot(components_per_line,  components_per_line, full_index)
    #set_axis_style(ax, crystal_field, all_crystal_fields, component, components_to_plot)


    for tick in ax.xaxis.get_major_ticks():
        tick.label.set_fontsize(text_size) 
    for tick in ax.yaxis.get_major_ticks():
        tick.label.set_fontsize(text_size)

    ax.yaxis.set_major_locator(plt.MultipleLocator(.2))
    ax.yaxis.set_minor_locator(plt.MultipleLocator(0.02))

    ax.xaxis.set_major_locator(plt.MultipleLocator(0.2))
    ax.xaxis.set_minor_locator(plt.MultipleLocator(0.02))

    ax.xaxis.set_ticks([0, 0.5, 1., 1.5, 2, 2.5, 3.])# s_position('none')

    if (col_index == 0):
        ax.set_ylabel(r"$\Delta$ = " + str(crystal_field), fontsize=text_size+2)

    to_plot_x = pivot_table.columns
    to_plot_y = pivot_table.index.values
    #print (np.amax(to_plot_y))
    data = pivot_table.values
    data = result = np.where(data<0.00001, 0.0001, data) 

    
    cutoff = 2.5
    #cutoff = .2

    #######################################
    #### Definition of the function to plot
    #######################################
    print (np.amin(data))
    print (np.amax(data))
    #to_plot_z = np.log10(data + 1e-6)
    to_plot_z = data / (cutoff + data)
    print (np.amax(to_plot_z))
    
    #########################################
    #### Plotting instruction with parameters
    #########################################      
    im = plt.pcolormesh(to_plot_x, to_plot_y, data,
                        rasterized=True, 
                        cmap=plt.get_cmap('jet'),
                        #cmap=plt.get_cmap('gist_stern_r'), 
                        #vmin=0, 
                        #vmax=5.,
                        vmax = 100.,#min(40, np.amax(to_plot_z)
                        norm=colors.LogNorm(vmin=data.min(), vmax=data.max()/1.)
                  )
    fig.colorbar(im, ax=ax)
    #########################################
    #########################################  

    plt.title(component, fontsize=20)

    #ax.yaxis.set_ticks(np.linspace(0, stop=max_energy, num=11))
    # Don't allow the axis to be on top of your data
    ax.set_axisbelow(True)
    ax.set_ylim([0, 5.0])
    #y_vals = np.array([np.sqrt(1. - gamma(elem)**2) for elem in to_plot_x])
    #if ((U_val, beta) in s_values.keys()):
       #if ((s_values[(U_val, beta)] > 0.) and (col_index > 0)):
            #ax.plot(to_plot_x, J * 4 * s_values[(U_val, beta)] *  y_vals, lw=3., c='k')
    
plt.tight_layout()
#plt.savefig(os.path.join(selected_path, config + "_b" + str(beta) + suffix + "_Magnon_alpscore_tail_log_rpa_full.pdf"))
1.0020393453855727e-05
2470.549598838504
0.9989891023612409
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-16-fd9cc3388b1c> in <module>
     66                         #vmax=5.,
     67                         vmax = 100.,#min(40, np.amax(to_plot_z)
---> 68                         norm=colors.LogNorm(vmin=data.min(), vmax=data.max()/1.)
     69                   )
     70     fig.colorbar(im, ax=ax)

NameError: name 'colors' is not defined
No description has been provided for this image
In [ ]:
 
In [17]:
nb_components_per_line = 4

fig = plt.figure(figsize = (nb_components_per_line * 3 * fig_width, 4 * 7 * fig_height), frameon=True)
axes=[]
x_labels = [r'$\Gamma$', 'X', 'M', r'$\Gamma$']
x_positions = [0, 1., 2., 3.385]
full_index = 1

for crystal_field in all_crystal_fields:
    for component in components_to_plot:
        col_index = (full_index - 1) % nb_components_per_line
        line_index = (full_index - 1) // nb_components_per_line
        #line_index, col_index = get_lin_col_indices(crystal_field, all_crystal_fields, component, components_to_plot)
        #full_index = 1 + len(components_to_plot) * line_index + col_index
        pivot_table = get_pivot_table2(component, crystal_field, mode_style, cross_hopping, parity, impurity_solver)
        if (pivot_table is None):
            print ("none", component)
            # Do not create axes if no data to plot
            continue
        vmax = 1.0
        
        ax = fig.add_subplot(8,  nb_components_per_line, full_index)
        #print(crystal_field)
        axes.append(ax)
        if(line_index < -1):
           ax.xaxis.set_ticks([])
        else:
           ax.set_xticks(x_positions)
           ax.set_xticklabels(x_labels)
        set_axis_style(ax, crystal_field, all_crystal_fields, component, components_to_plot)
        to_plot_x = pivot_table.columns
        to_plot_y = pivot_table.index.values
        data = pivot_table.values
        
        #######################################
        #### Definition of the function to plot
        #######################################
        #to_plot_z = np.log10(data + 1e-5)
        to_plot_z = data #/ (5.5 + data)
        
        
        #Z=to_plot_z
        def f(x, y):
          return to_plot_z
        
        
        X=to_plot_x
        Y=to_plot_y
        X, Y = np.meshgrid(to_plot_x,to_plot_y)
        Z = f(X, Y)
        #print(to_plot_y)
        #print(Z.shape)
        specw = np.zeros_like(to_plot_x)
        for q_index in np.arange(to_plot_x.shape[0]):
            specw[q_index] =  np.trapz(to_plot_z[:800, q_index], to_plot_y[:800])
        
        ax.plot( to_plot_x, specw)
        print(specw[0])
        #########################################
        #### Plotting instruction with parameters
        #########################################      
        #im = plt.pcolormesh(to_plot_x, to_plot_y, to_plot_z,
        #               rasterized=True, 
        #                    cmap=plt.get_cmap('jet'),
        #                    #cmap=plt.get_cmap('gist_stern_r'), 
        #              vmin=0, vmax=vmax
        #                   #vmax = min(40, np.amax(to_plot_z))
        #             )
        #fig.colorbar(im, ax=ax)
        text_size = 42
        for tick in ax.xaxis.get_major_ticks():
            tick.label.set_fontsize(text_size) 
        for tick in ax.yaxis.get_major_ticks():
            tick.label.set_fontsize(text_size)
        if (col_index > 70):
            ax.yaxis.set_ticks([])# s_position('none')
        #else:
        #  ax.yaxis.set_ticks([0.2, 0.4, 0.6, 0.8])# s_position('none')
           #ax.yaxis.set_ticks([0.1, 0.2, 0.3, 0.4])# s_position('none')
        ax.set_ylabel(r"", fontsize=text_size+2)
        #ax.yaxis.set_ticks([1, 2, 3, 4])# s_position('none')
        ax.set_ylabel(r"", fontsize=text_size+2)
        if (col_index == 1):
            #ax.set_ylabel(r"$\Delta$ = " + str(crystal_field), fontsize=text_size+2)
            pass
        #if (line_index < len(all_crystal_fields) - 1):
         #   ax.xaxis.set_ticks([])# s_position('none')
        #########################################
        #########################################  
        plt.title(component, fontsize=40)
        full_index += 1
        ax.set_ylim([0., 4.0])
plt.tight_layout()
plt.savefig("all_dispersions_IR_U_" + str(U_val) + "_ch_" + str(cross_hopping) + "_beta_" + str(beta) + "_" + mode_style + "_fine.pdf")
0.030849381070888908
0.03084927202237235
0.005934198879963843
No description has been provided for this image

Temparature driven transition¶

In [19]:
from matplotlib import cm
selected_paths = ["/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold",
                  "/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold",
                  "/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold"][::1]

selected_paths_sp = ["/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b18",
                     "/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b25Sx",
                     "/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b30hz0"][::1]
full_csv_name = 'data_real_normal.csv'
#full_csv_name = 'data_real_weak_1.6.csv'
#full_csv_name = 'data_real_bubble.csv'
x_labels = [r'$\Gamma$', 'X', 'M', r'$\Gamma$']
x_positions = [0, 1., 2., 3.385]

y_labels = [2, 4]
y_positions = [0.2, 0.4]

all_component_names = ['Na-Nb', 'Sz', 're_yy']

mode_style = "physical"
#mode_style = "diagonal"
cross_hopping = 0
parity = "odd"
impurity_solver = "alps"
U_val = 4.0
beta = 30.0
doping = 0

selected_components = [1, 2, 8]
legends = [0.28, 0.30, 0.37][::1]
site = [2, 2,  2, 2, 2, 2, 2, 2, 2 ,2,2][::1]
axes = []
betas = [  18., 25., 30., 30.0, 30.0, 30.0, 30.0, 30.0][::1]
temps = [0.056, 0.040 , 0.033]
phase = ['(AFM)', '(AFM)', '(N)'][::1]
moment_x = [ [0.0,0] ,[0.62, -0.62], [0.74, -0.74], [0.3968,0],[0.01,0] ]
moment_z = [[0., 0.0] ,[0., 0.0], [0., 0.0], [0, 0.793],  [0, 0.531]]
#moment_x = [ [0.74, -0.74] ,[0.73, -0.73], [0.431,-0.431], [0.3968,-0.3968], [0.,-0.]  ]
#moment_z = [[0.0, 0.0] ,[0.222, 0.222], [0.668, 0.668], [0.793, 0.793], [0.9984, 0.9984]]
fig = plt.figure(figsize = (len(selected_components) * 2.2 * fig_width, len(selected_paths) * 3 * fig_height), frameon=False)
component_index = 0
for path_index in np.arange(len(selected_paths)):
    #components_to_plot = all_components
    full_path_frame = get_full_path_frame(site[path_index],selected_paths[path_index], full_csv_name)
    full_path_frame_1 = get_full_path_frame_1(site[path_index],selected_paths[path_index], full_csv_name)
    #components_to_plot = np.array(['re_zz0+re_zz1','re_zz0-re_zz1','Sz0+Sz1' ,'Sz0-Sz1'])
    #components_to_plot = np.array(['im_xx0+im_xx1'])
    if(site[path_index] == 1):
       components_to_plot = np.array(['N_a-N_b', 'Sz', 're_xx', 'im_xx','re_yy', 'im_yy'])
       #components_to_plot = np.array(['re_xx', 'im_xx','re_yy', 'im_yy'])
       #component_names = { 'N_a-N_b':  r"$O$", 'Sz': r"$Sz$", 're_xx':  r"$\phi_x^R$", 'im_xx': r"$\phi_x^I$",'re_yy':  r"$\phi_y^R$", 'im_yy': r"$\phi_y^I$"}
       component_names = { 'N_a-N_b':  r"$O$", 'Sz': r"$S^z$", 're_xx':  r"$R^x$", 'im_xx': r"$I^x$",'re_yy':  r"$R^y$", 'im_yy': r"$I^y$" }
       #component_names = { 're_xx':  r"$R_x$", 'im_xx': r"$I_x$",'re_yy':  r"$R_y$", 'im_yy': r"$I_y$" }
    if(site[path_index] == 2):
       components_to_plot = np.array(['$S^x_{0}$', '$S^y_{0}$', '$S^z_{0}$'])
       #components_to_plot = np.array([ 're_xx0', 'im_xx0','re_yy0', 'im_yy0'])
       #component_names = { 'N_a0-N_b0':  r"$O$", 'Sz0': r"$S^z$", 're_xx0':  r"$\phi_x^R$", 'im_xx0': r"$\phi_x^I$",'re_yy0':  r"$\phi_y^R$", 'im_yy0': r"$\phi_y^I$"}
       component_names = { 'N_a0-N_b0':  r"$O$", 'Sz0': r"$S^z$", 're_xx0':  r"$R^x$", 'im_xx0': r"$I^x$",'re_yy0':  r"$\R^y$", 'im_yy0': r"$I^y$"} 
       component_names = { '$S^x_{0}$':  r"$\chi^{xx}$", '$S^y_{0}$':  r"$\chi^{yy}$", '$S^z_{0}$':  r"$\chi^{zz}$"}
    #print(components_to_plot, all_betas, all_crystal_fields, all_dopings)
    component_index = 0
    spectra = np.load(os.path.join(selected_paths_sp[path_index], "spectra.npy"))
    wgrid = np.load(os.path.join(selected_paths_sp[path_index], "wgrid.npy"))
    for crystal_field in all_crystal_fields:
      for component in components_to_plot:
        mode_style = "physical"
        #mode_style = "diagonal"
        cross_hopping = 0
        parity = "odd"
        impurity_solver = "alps"
        U_val = 4.0
        ##beta = 30.0
        beta = betas[path_index]
        doping = 0
        if(component_index != 3):
            path_frame = full_path_frame.query('cross_hopping == ' + str(cross_hopping) 
                                           + '& beta == ' + str(beta) 
                                           + ' & impurity_solver == "' + impurity_solver + '"'
                                           + ' & mode_style == "' + mode_style + '"')
        else:
             path_frame = full_path_frame_1.query('cross_hopping == ' + str(cross_hopping) 
                                           + '& beta == ' + str(beta) 
                                           + ' & impurity_solver == "' + impurity_solver + '"'
                                           + ' & mode_style == "' + mode_style + '"')

        all_crystal_fields = np.sort(path_frame['crystal_field'].unique())[::-1]
        all_dopings = np.sort(path_frame['doping'].unique())[::-1]

        del_index = np.where(all_dopings==1.5)
        all_dopings = np.delete(all_dopings, del_index) 

        all_mode_styles = np.sort(path_frame['mode_style'].unique())
        all_components = np.sort(path_frame['component'].unique())
        all_cross_hoppings = np.sort(path_frame['cross_hopping'].unique())[::-1]
        nb_crytal_fields = len(all_crystal_fields)
        all_betas = np.sort(path_frame['beta'].unique())[::-1]
        print(selected_paths)
        print(component)
        #col_index = (full_index - 1) % nb_components_per_line
        #line_index = (full_index - 1) // nb_components_per_line
        #line_index, col_index = get_lin_col_indices(crystal_field, all_crystal_fields, component, components_to_plot)
        #full_index = 1 + len(components_to_plot) * line_index + col_index
        pivot_table = get_pivot_table2(component, crystal_field, mode_style, cross_hopping, parity, impurity_solver)
        if (pivot_table is None):
            print ("none", component)
            # Do not create axes if no data to plot
            #continue
        vmax = 1.0
        print(len(selected_paths))
        print(len(components_to_plot))
        
        line_index, col_index = path_index, component_index
        full_index = 1 + (len(components_to_plot)) * line_index + col_index
        print(line_index, component_index, full_index)
        if (component_index != 3):
           ax = fig.add_subplot(len(selected_paths),  len(components_to_plot), full_index)
        else:
           #ax = fig.add_subplot(len(selected_paths),  len(components_to_plot), full_index, projection='3d')
           ax = fig.add_subplot(len(selected_paths),  len(components_to_plot), full_index)
        #ax = fig.add_subplot(7,  6, full_index)
        axes.append(ax)
        if(line_index < len(selected_paths)-1 and component_index !=3 ):
          ax.xaxis.set_ticks([])
        elif(component_index < 3):
           ax.set_xticks(x_positions)
           ax.set_xticklabels(x_labels)
        print(crystal_field)
        #set_axis_style(ax, crystal_field, all_crystal_fields, component, components_to_plot)
        if (component_index != 6):
            to_plot_x = pivot_table.columns
            to_plot_y = pivot_table.index.values
            data = pivot_table.values

            #######################################
            #### Definition of the function to plot
            #######################################
            #to_plot_z = np.log10(data + 1e-5)
            to_plot_z = data / (5.5 + data)
            to_plot_z2 = data
            #Z=to_plot_z
            def f(x, y):
              return np.absolute(data)


            X=to_plot_x
            Y=to_plot_y
            X, Y = np.meshgrid(to_plot_x,to_plot_y)
            Z = f(X, Y)
            print(X.shape, Z.shape)
        #print(X.shape)
        #print(to_plot_x.shape)
        #print(Z.shape)
        #########################################
        #### Plotting instruction with parameters
        ######################################### 
        if (component_index != 3):
            im = plt.pcolormesh(to_plot_x, to_plot_y, to_plot_z,
                           rasterized=True, 
                                cmap=plt.get_cmap('jet'),
                                #cmap=plt.get_cmap('gist_stern_r'), 
                           vmin=0, vmax=vmax
                                #vmax = min(40, np.amax(to_plot_z))
                          )
        else:
            norm = plt.Normalize(Z.min(), Z.max())
            colors = cm.viridis(norm(Z))
            rcount, ccount, _ = colors.shape
            print(rcount, ccount)
            if(path_index != 10):
               #print(Z[:30, 95])
               Z[:, 100] = 1.0 * (Z[:, 95])
            #ax.plot_surface(X, Y, Z, cmap=plt.get_cmap('jet'), rstride=1, cstride=1,  edgecolor='none')
            #surf = ax.plot_surface(X, Y, Z, rcount=30, ccount=20,
            #           facecolors=colors, shade=False)
            ax.set_ylim([0, 0.25])
            #ax.plot_wireframe(X, Y, Z, rstride=200, cstride=5, cmap='jet')
            ax.plot(wgrid, spectra, linewidth=3.2)
            #surf.set_facecolor((0,0,0,0))
            #ax.view_init(50, -40)
        #fig.colorbar(im, ax=ax)
        if (component_index == 0):
            x_pos = [1.7, 1.7]
            y_pos = [0.22, 0.22]
            x_direct = moment_x[path_index]
            y_direct = moment_z[path_index]
            if(path_index != 0):
               ax.quiver(x_pos,y_pos,x_direct,y_direct, color=['r','y'], scale=2.5, width=0.03)
            #ax.axis([-2.5,2.5,-2.5,2.5])
        text_size = 42
        for tick in ax.xaxis.get_major_ticks():
            tick.label.set_fontsize(text_size+10) 
        for tick in ax.yaxis.get_major_ticks():
            tick.label.set_fontsize(text_size+10)
        if (col_index == 3):
            for tick in ax.xaxis.get_major_ticks():
               tick.label.set_fontsize(text_size-25)
            for tick in ax.yaxis.get_major_ticks():
               tick.label.set_fontsize(text_size-25)
            #for tick in ax.zaxis.get_major_ticks():
            #   tick.label.set_fontsize(text_size-28)
            
        specw = np.zeros_like(to_plot_x)
        for q_index in np.arange(to_plot_x.shape[0]):
            specw[q_index] =  np.trapz(to_plot_z2[:300, q_index], to_plot_y[:300])
            if(path_index == 1 and q_index == 100):
                specw[q_index] = specw[q_index - 1]
        ax.plot(to_plot_x, specw/10.0, color='w', linewidth= 3.2)
        
        if(component_index == 2):
           ax.tick_params(labelleft=False,labeltop=False, labelright=True)
           ax.tick_params(left=False,top=False, right=True, length=5, width=4)
        elif(component_index == 0):
           ax.tick_params(left=True,top=False, right=False, length=5, width=4)
        if(component_index == 2):
           ax.yaxis.set_label_position("right")    
    
        if (col_index > 0 and col_index < 2  and col_index !=3 ):
            ax.yaxis.set_ticks([])# s_position('none')
        
        elif(col_index !=3):
            if(col_index == 0):
                if(path_index ==1):
                    ax.text(0.55, 0.95, r"$T=$"+ str(temps[path_index]),
                     verticalalignment='top', horizontalalignment='right',
                      transform=ax.transAxes,
                       color='white', fontsize=50)
                else:
                    ax.text(0.62, 0.95, r"$T=$"+ str(temps[path_index]),
                     verticalalignment='top', horizontalalignment='right',
                      transform=ax.transAxes,
                       color='white', fontsize=50)
            #if(path_index < 2):
            #    ax.text(0.57, 0.75, r"$H=0$" + "," + " " + phase[path_index],
            #      verticalalignment='top', horizontalalignment='right',
            #       transform=ax.transAxes,
            #        color='white', fontsize=30)
            #else: 
            #    ax.text(0.45, 0.75, r"$H=0$" + "," + " " + phase[path_index],
            #      verticalalignment='top', horizontalalignment='right',
            #       transform=ax.transAxes,
            #        color='white', fontsize=30)
            #ax.yaxis.set_ticks([0.1, 0.2, 0.3, 0.4])# s_position('none')
            ax.yaxis.set_ticks([0.2, 0.4, 0.6, 0.8])
            if(col_index == 0):
              ax.set_ylabel(r"Energy", fontsize=text_size+10)
            elif(col_index == 2):
              ax.set_ylabel(r"SW", fontsize=text_size+10)
            if(col_index == 2):
                ax.set_yticks(y_positions)
                ax.set_yticklabels(y_labels, fontsize=text_size+10 )
        if (col_index == 0):
            #ax.set_ylabel(r"$\Delta$ = " + str(crystal_field), fontsize=text_size+2)
            pass
        if (line_index < len(all_crystal_fields) - 1):
            ax.xaxis.set_ticks([])# s_position('none')
        #if (line_index == 0):
        #    ax.set_title(component_names[component], fontsize=text_size+2, pad=26)
        #########################################
        #########################################
        if(component_index == 6):
            ax.set_yticks([0, 0.25])
            ax.set_zticks([0, 10, 20, 30])
        if(path_index == 0):
            #plt.title(component, fontsize=50, pad=20)
            #if(component_index == 3):
            #   plt.title(component, fontsize=50, pad=78)
            ax.set_title(component_names[component], fontsize=text_size+25, pad=42)
            if(component_index == 3):
                ax.set_title(component_names[component], fontsize=text_size+25, pad=92)
        #full_index += 1
        if (component_index != 3):
           ax.set_ylim([0., 0.5])
        #fig.tight_layout(pad=0.5)
           #fig.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.01, hspace=0.05)
        #else:
           #fig.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.1, hspace=0.05)
        if (component_index == 3):
            ax.set_ylim([0, 2.0])
            ax.set_xlim([-1.5, 1.5])
            #ax.set_zlim([0, 30.0])
        component_index += 1
#plt.subplots_adjust(left=0.125,bottom=0.1, right=0.9, top=0.9, wspace=0.1, hspace=0.1)
#plt.subplot_tool() 
#plt.show()
#for i in np.arange(to_plot_x.shape[0]):
#       print(i, to_plot_x[i])
plt.tight_layout()
plt.savefig("all_dispersions_IR_U_" + str(U_val) + "_ch_" + str(cross_hopping) + "_beta_" + str(beta) + "_" + mode_style + "_fine.png")
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^x_{0}$
3
3
0 0 1
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^y_{0}$
3
3
0 1 2
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^z_{0}$
3
3
0 2 3
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^x_{0}$
3
3
1 0 4
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^y_{0}$
3
3
1 1 5
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^z_{0}$
3
3
1 2 6
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^x_{0}$
3
3
2 0 7
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^y_{0}$
3
3
2 1 8
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^z_{0}$
3
3
2 2 9
3.4
(1001, 151) (1001, 151)
No description has been provided for this image
In [20]:
from matplotlib import cm
selected_paths = ["/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold",
                  "/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold",
                  "/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold"][::1]

selected_paths_sp = ["/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b18",
                     "/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b25Sx",
                     "/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b30hz0"][::1]
full_csv_name = 'data_real_normal.csv'
#full_csv_name = 'data_real_weak_1.6.csv'
#full_csv_name = 'data_real_bubble.csv'
x_labels = [r'$\Gamma$', 'X', 'M', r'$\Gamma$']
x_positions = [0, 1., 2., 3.385]

y_labels = [2, 4]
y_positions = [0.2, 0.4]

all_component_names = ['Na-Nb', 'Sz', 're_yy']

mode_style = "physical"
#mode_style = "diagonal"
cross_hopping = 0
parity = "odd"
impurity_solver = "alps"
U_val = 4.0
beta = 30.0
doping = 0

selected_components = [1, 2, 8]
legends = [0.28, 0.30, 0.37][::1]
site = [2, 2,  2, 2, 2, 2, 2, 2, 2 ,2,2][::1]
axes = []
betas = [  18., 25., 30., 30.0, 30.0, 30.0, 30.0, 30.0][::1]
temps = [0.056, 0.040 , 0.033]
phase = ['(AFM)', '(AFM)', '(N)'][::1]
moment_x = [ [0.0,0] ,[0.62, -0.62], [0.74, -0.74], [0.3968,0],[0.01,0] ]
moment_z = [[0., 0.0] ,[0., 0.0], [0., 0.0], [0, 0.793],  [0, 0.531]]
#moment_x = [ [0.74, -0.74] ,[0.73, -0.73], [0.431,-0.431], [0.3968,-0.3968], [0.,-0.]  ]
#moment_z = [[0.0, 0.0] ,[0.222, 0.222], [0.668, 0.668], [0.793, 0.793], [0.9984, 0.9984]]
fig = plt.figure(figsize = (len(selected_components) * 2.2 * fig_width, len(selected_paths) * 3 * fig_height), frameon=False)
component_index = 0
for path_index in np.arange(len(selected_paths)):
    #components_to_plot = all_components
    full_path_frame = get_full_path_frame(site[path_index],selected_paths[path_index], full_csv_name)
    full_path_frame_1 = get_full_path_frame_1(site[path_index],selected_paths[path_index], full_csv_name)
    #components_to_plot = np.array(['re_zz0+re_zz1','re_zz0-re_zz1','Sz0+Sz1' ,'Sz0-Sz1'])
    #components_to_plot = np.array(['im_xx0+im_xx1'])
    if(site[path_index] == 1):
       components_to_plot = np.array(['N_a-N_b', 'Sz', 're_xx', 'im_xx','re_yy', 'im_yy'])
       #components_to_plot = np.array(['re_xx', 'im_xx','re_yy', 'im_yy'])
       #component_names = { 'N_a-N_b':  r"$O$", 'Sz': r"$Sz$", 're_xx':  r"$\phi_x^R$", 'im_xx': r"$\phi_x^I$",'re_yy':  r"$\phi_y^R$", 'im_yy': r"$\phi_y^I$"}
       component_names = { 'N_a-N_b':  r"$O$", 'Sz': r"$S^z$", 're_xx':  r"$R^x$", 'im_xx': r"$I^x$",'re_yy':  r"$R^y$", 'im_yy': r"$I^y$" }
       #component_names = { 're_xx':  r"$R_x$", 'im_xx': r"$I_x$",'re_yy':  r"$R_y$", 'im_yy': r"$I_y$" }
    if(site[path_index] == 2):
       components_to_plot = np.array(['$S^x_{0}$', '$S^y_{0}$', '$S^z_{0}$'])
       #components_to_plot = np.array([ 're_xx0', 'im_xx0','re_yy0', 'im_yy0'])
       #component_names = { 'N_a0-N_b0':  r"$O$", 'Sz0': r"$S^z$", 're_xx0':  r"$\phi_x^R$", 'im_xx0': r"$\phi_x^I$",'re_yy0':  r"$\phi_y^R$", 'im_yy0': r"$\phi_y^I$"}
       component_names = { 'N_a0-N_b0':  r"$O$", 'Sz0': r"$S^z$", 're_xx0':  r"$R^x$", 'im_xx0': r"$I^x$",'re_yy0':  r"$\R^y$", 'im_yy0': r"$I^y$"} 
       component_names = { '$S^x_{0}$':  r"$\chi^{xx}$", '$S^y_{0}$':  r"$\chi^{yy}$", '$S^z_{0}$':  r"$\chi^{zz}$"}
    #print(components_to_plot, all_betas, all_crystal_fields, all_dopings)
    component_index = 0
    spectra = np.load(os.path.join(selected_paths_sp[path_index], "spectra.npy"))
    wgrid = np.load(os.path.join(selected_paths_sp[path_index], "wgrid.npy"))
    for crystal_field in all_crystal_fields:
      for component in components_to_plot:
        mode_style = "physical"
        #mode_style = "diagonal"
        cross_hopping = 0
        parity = "odd"
        impurity_solver = "alps"
        U_val = 4.0
        ##beta = 30.0
        beta = betas[path_index]
        doping = 0
        if(component_index != 3):
            path_frame = full_path_frame.query('cross_hopping == ' + str(cross_hopping) 
                                           + '& beta == ' + str(beta) 
                                           + ' & impurity_solver == "' + impurity_solver + '"'
                                           + ' & mode_style == "' + mode_style + '"')
        else:
             path_frame = full_path_frame_1.query('cross_hopping == ' + str(cross_hopping) 
                                           + '& beta == ' + str(beta) 
                                           + ' & impurity_solver == "' + impurity_solver + '"'
                                           + ' & mode_style == "' + mode_style + '"')

        all_crystal_fields = np.sort(path_frame['crystal_field'].unique())[::-1]
        all_dopings = np.sort(path_frame['doping'].unique())[::-1]

        del_index = np.where(all_dopings==1.5)
        all_dopings = np.delete(all_dopings, del_index) 

        all_mode_styles = np.sort(path_frame['mode_style'].unique())
        all_components = np.sort(path_frame['component'].unique())
        all_cross_hoppings = np.sort(path_frame['cross_hopping'].unique())[::-1]
        nb_crytal_fields = len(all_crystal_fields)
        all_betas = np.sort(path_frame['beta'].unique())[::-1]
        print(selected_paths)
        print(component)
        #col_index = (full_index - 1) % nb_components_per_line
        #line_index = (full_index - 1) // nb_components_per_line
        #line_index, col_index = get_lin_col_indices(crystal_field, all_crystal_fields, component, components_to_plot)
        #full_index = 1 + len(components_to_plot) * line_index + col_index
        pivot_table = get_pivot_table2(component, crystal_field, mode_style, cross_hopping, parity, impurity_solver)
        if (pivot_table is None):
            print ("none", component)
            # Do not create axes if no data to plot
            #continue
        vmax = 1.0
        print(len(selected_paths))
        print(len(components_to_plot))
        
        line_index, col_index = path_index, component_index
        full_index = 1 + (len(components_to_plot)) * line_index + col_index
        print(line_index, component_index, full_index)
        if (component_index != 3):
           ax = fig.add_subplot(len(selected_paths),  len(components_to_plot), full_index)
        else:
           #ax = fig.add_subplot(len(selected_paths),  len(components_to_plot), full_index, projection='3d')
           ax = fig.add_subplot(len(selected_paths),  len(components_to_plot), full_index)
        #ax = fig.add_subplot(7,  6, full_index)
        axes.append(ax)
        if(line_index < len(selected_paths)-1 and component_index !=3 ):
          ax.xaxis.set_ticks([])
        elif(component_index < 3):
           ax.set_xticks(x_positions)
           ax.set_xticklabels(x_labels)
        print(crystal_field)
        #set_axis_style(ax, crystal_field, all_crystal_fields, component, components_to_plot)
        if (component_index != 6):
            to_plot_x = pivot_table.columns
            to_plot_y = pivot_table.index.values
            data = pivot_table.values

            #######################################
            #### Definition of the function to plot
            #######################################
            #to_plot_z = np.log10(data + 1e-5)
            to_plot_z = data / (5.5 + data)
            to_plot_z2 = data
            #Z=to_plot_z
            def f(x, y):
              return np.absolute(data)


            X=to_plot_x
            Y=to_plot_y
            X, Y = np.meshgrid(to_plot_x,to_plot_y)
            Z = f(X, Y)
            print(X.shape, Z.shape)
        #print(X.shape)
        #print(to_plot_x.shape)
        #print(Z.shape)
        #########################################
        #### Plotting instruction with parameters
        ######################################### 
        if (component_index != 3):
            im = plt.pcolormesh(to_plot_x, to_plot_y, to_plot_z,
                           rasterized=True, 
                                cmap=plt.get_cmap('jet'),
                                #cmap=plt.get_cmap('gist_stern_r'), 
                           vmin=0, vmax=vmax
                                #vmax = min(40, np.amax(to_plot_z))
                          )
        else:
            norm = plt.Normalize(Z.min(), Z.max())
            colors = cm.viridis(norm(Z))
            rcount, ccount, _ = colors.shape
            print(rcount, ccount)
            if(path_index != 10):
               #print(Z[:30, 95])
               Z[:, 100] = 1.0 * (Z[:, 95])
            #ax.plot_surface(X, Y, Z, cmap=plt.get_cmap('jet'), rstride=1, cstride=1,  edgecolor='none')
            #surf = ax.plot_surface(X, Y, Z, rcount=30, ccount=20,
            #           facecolors=colors, shade=False)
            ax.set_ylim([0, 0.25])
            #ax.plot_wireframe(X, Y, Z, rstride=200, cstride=5, cmap='jet')
            ax.plot(wgrid, spectra, linewidth=3.2)
            #surf.set_facecolor((0,0,0,0))
            #ax.view_init(50, -40)
        #fig.colorbar(im, ax=ax)
        if (component_index == 0):
            x_pos = [1.7, 1.7]
            y_pos = [0.22, 0.22]
            x_direct = moment_x[path_index]
            y_direct = moment_z[path_index]
            if(path_index != 0):
               ax.quiver(x_pos,y_pos,x_direct,y_direct, color=['r','y'], scale=2.5, width=0.03)
            #ax.axis([-2.5,2.5,-2.5,2.5])
        text_size = 42
        for tick in ax.xaxis.get_major_ticks():
            tick.label.set_fontsize(text_size+10) 
        for tick in ax.yaxis.get_major_ticks():
            tick.label.set_fontsize(text_size+10)
        if (col_index == 3):
            for tick in ax.xaxis.get_major_ticks():
               tick.label.set_fontsize(text_size-25)
            for tick in ax.yaxis.get_major_ticks():
               tick.label.set_fontsize(text_size-25)
            #for tick in ax.zaxis.get_major_ticks():
            #   tick.label.set_fontsize(text_size-28)
            
        specw = np.zeros_like(to_plot_x)
        for q_index in np.arange(to_plot_x.shape[0]):
            specw[q_index] =  np.trapz(to_plot_z2[:300, q_index], to_plot_y[:300])
            if(path_index == 1 and q_index == 100):
                specw[q_index] = specw[q_index - 1]
        ax.plot(to_plot_x, specw/10.0, color='w', linewidth= 3.2)
        
        if(component_index == 2):
           ax.tick_params(labelleft=False,labeltop=False, labelright=True)
           ax.tick_params(left=False,top=False, right=True, length=5, width=4)
        elif(component_index == 0):
           ax.tick_params(left=True,top=False, right=False, length=5, width=4)
        if(component_index == 2):
           ax.yaxis.set_label_position("right")    
    
        if (col_index > 0 and col_index < 2  and col_index !=3 ):
            ax.yaxis.set_ticks([])# s_position('none')
        
        elif(col_index !=3):
            if(col_index == 0):
                if(path_index ==1):
                    ax.text(0.55, 0.95, r"$T=$"+ str(temps[path_index]),
                     verticalalignment='top', horizontalalignment='right',
                      transform=ax.transAxes,
                       color='white', fontsize=50)
                else:
                    ax.text(0.62, 0.95, r"$T=$"+ str(temps[path_index]),
                     verticalalignment='top', horizontalalignment='right',
                      transform=ax.transAxes,
                       color='white', fontsize=50)
            #if(path_index < 2):
            #    ax.text(0.57, 0.75, r"$H=0$" + "," + " " + phase[path_index],
            #      verticalalignment='top', horizontalalignment='right',
            #       transform=ax.transAxes,
            #        color='white', fontsize=30)
            #else: 
            #    ax.text(0.45, 0.75, r"$H=0$" + "," + " " + phase[path_index],
            #      verticalalignment='top', horizontalalignment='right',
            #       transform=ax.transAxes,
            #        color='white', fontsize=30)
            #ax.yaxis.set_ticks([0.1, 0.2, 0.3, 0.4])# s_position('none')
            ax.yaxis.set_ticks([0.2, 0.4, 0.6, 0.8])
            if(col_index == 0):
              ax.set_ylabel(r"Energy", fontsize=text_size+10)
            elif(col_index == 2):
              ax.set_ylabel(r"SW", fontsize=text_size+10)
            if(col_index == 2):
                ax.set_yticks(y_positions)
                ax.set_yticklabels(y_labels, fontsize=text_size+10 )
        if (col_index == 0):
            #ax.set_ylabel(r"$\Delta$ = " + str(crystal_field), fontsize=text_size+2)
            pass
        if (line_index < len(all_crystal_fields) - 1):
            ax.xaxis.set_ticks([])# s_position('none')
        #if (line_index == 0):
        #    ax.set_title(component_names[component], fontsize=text_size+2, pad=26)
        #########################################
        #########################################
        if(component_index == 6):
            ax.set_yticks([0, 0.25])
            ax.set_zticks([0, 10, 20, 30])
        if(path_index == 0):
            #plt.title(component, fontsize=50, pad=20)
            #if(component_index == 3):
            #   plt.title(component, fontsize=50, pad=78)
            ax.set_title(component_names[component], fontsize=text_size+25, pad=42)
            if(component_index == 3):
                ax.set_title(component_names[component], fontsize=text_size+25, pad=92)
        #full_index += 1
        if (component_index != 3):
           ax.set_ylim([0., 0.5])
        #fig.tight_layout(pad=0.5)
           #fig.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.01, hspace=0.05)
        #else:
           #fig.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.1, hspace=0.05)
        if (component_index == 3):
            ax.set_ylim([0, 2.0])
            ax.set_xlim([-1.5, 1.5])
            #ax.set_zlim([0, 30.0])
        component_index += 1
#plt.subplots_adjust(left=0.125,bottom=0.1, right=0.9, top=0.9, wspace=0.1, hspace=0.1)
#plt.subplot_tool() 
#plt.show()
#for i in np.arange(to_plot_x.shape[0]):
#       print(i, to_plot_x[i])
plt.tight_layout()
plt.savefig("all_dispersions_IR_U_" + str(U_val) + "_ch_" + str(cross_hopping) + "_beta_" + str(beta) + "_" + mode_style + "_fine.png")
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^x_{0}$
3
3
0 0 1
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^y_{0}$
3
3
0 1 2
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^z_{0}$
3
3
0 2 3
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^x_{0}$
3
3
1 0 4
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^y_{0}$
3
3
1 1 5
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^z_{0}$
3
3
1 2 6
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^x_{0}$
3
3
2 0 7
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^y_{0}$
3
3
2 1 8
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b18_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b25_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold']
$S^z_{0}$
3
3
2 2 9
3.4
(1001, 151) (1001, 151)
No description has been provided for this image

Field driven transion¶

In [89]:
from matplotlib import cm
selected_paths = ["/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold",
                  "/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold",
                  "/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold",
                  "/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold",
                   "/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold"][::1]
           
full_csv_name = 'data_real_normal.csv'
#full_csv_name = 'data_real_weak_1.6.csv'
#full_csv_name = 'data_real_bubble.csv'
x_labels = [r'$\Gamma$', 'X', 'M', r'$\Gamma$']
x_positions = [0, 1., 2., 3.385]
all_component_names = ['Na-Nb', 'Sz', 're_yy']

y_labels = [2,  4]
y_positions = [0.2, 0.4]

mode_style = "physical"
#mode_style = "diagonal"
cross_hopping = 0
parity = "odd"
impurity_solver = "alps"
U_val = 4.0
beta = 30.0
doping = 0

S_z = []
chi_ga = []
mh = []
selected_components = [1, 2, 8]
legends = [0.28, 0.30, 0.37][::1]
site = [2, 2,  2, 2, 2, 2, 2, 2, 2 ,2,2][::1]
axes = []
betas = [  30., 30.0, 30.0, 30.0, 30.0, 30.0][::1]
fields = [0.0, 0.05, 0.10, 0.20, 0.40]
phase = ['(AFM)', '(AFM)', '(N)'][::1]
#moment_x = [ [0.74,0] ,[0.73, 0], [0.668,0], [0.3968,0],[0.01,0] ]
#moment_z = [[0, 0.01] ,[0, 0.222], [0, 0.431], [0, 0.793],  [0, 0.531]]
moment_x = [ [0.74, -0.74] ,[0.73, -0.73], [0.668,-0.668], [0.3968,-0.3968], [0.,-0.]  ]
moment_z = [[0.0, 0.0] ,[0.222, 0.222], [0.431, 0.431], [0.793, 0.793], [0.9984, 0.9984]]
fig = plt.figure(figsize = (len(selected_components) * 2.2 * fig_width, len(selected_paths) * 3 * fig_height), frameon=False)
component_index = 0
for path_index in np.arange(len(selected_paths)):
    #components_to_plot = all_components
    full_path_frame = get_full_path_frame(site[path_index],selected_paths[path_index], full_csv_name)
    full_path_frame_1 = get_full_path_frame_1(site[path_index],selected_paths[path_index], full_csv_name)
    #components_to_plot = np.array(['re_zz0+re_zz1','re_zz0-re_zz1','Sz0+Sz1' ,'Sz0-Sz1'])
    #components_to_plot = np.array(['im_xx0+im_xx1'])
    if(site[path_index] == 1):
       components_to_plot = np.array(['N_a-N_b', 'Sz', 're_xx', 'im_xx','re_yy', 'im_yy'])
       #components_to_plot = np.array(['re_xx', 'im_xx','re_yy', 'im_yy'])
       #component_names = { 'N_a-N_b':  r"$O$", 'Sz': r"$Sz$", 're_xx':  r"$\phi_x^R$", 'im_xx': r"$\phi_x^I$",'re_yy':  r"$\phi_y^R$", 'im_yy': r"$\phi_y^I$"}
       component_names = { 'N_a-N_b':  r"$O$", 'Sz': r"$S^z$", 're_xx':  r"$R^x$", 'im_xx': r"$I^x$",'re_yy':  r"$R^y$", 'im_yy': r"$I^y$" }
       #component_names = { 're_xx':  r"$R_x$", 'im_xx': r"$I_x$",'re_yy':  r"$R_y$", 'im_yy': r"$I_y$" }
    if(site[path_index] == 2):
       components_to_plot = np.array(['$S^x_{0}$', '$S^y_{0}$', '$S^z_{0}$'])
       #components_to_plot = np.array([ 're_xx0', 'im_xx0','re_yy0', 'im_yy0'])
       #component_names = { 'N_a0-N_b0':  r"$O$", 'Sz0': r"$S^z$", 're_xx0':  r"$\phi_x^R$", 'im_xx0': r"$\phi_x^I$",'re_yy0':  r"$\phi_y^R$", 'im_yy0': r"$\phi_y^I$"}
       component_names = { 'N_a0-N_b0':  r"$O$", 'Sz0': r"$S^z$", 're_xx0':  r"$R^x$", 'im_xx0': r"$I^x$",'re_yy0':  r"$\R^y$", 'im_yy0': r"$I^y$"} 
       component_names = { '$S^x_{0}$':  r"$\chi^{xx}$", '$S^y_{0}$':  r"$\chi^{yy}$", '$S^z_{0}$':  r"$\chi^{zz}$"}
    #print(components_to_plot, all_betas, all_crystal_fields, all_dopings)
    component_index = 0
    for crystal_field in all_crystal_fields:
      for component in components_to_plot:
        mode_style = "physical"
        #mode_style = "diagonal"
        cross_hopping = 0
        parity = "odd"
        impurity_solver = "alps"
        U_val = 4.0
        ##beta = 30.0
        beta = betas[path_index]
        doping = 0
        if(component_index != 3):
            path_frame = full_path_frame.query('cross_hopping == ' + str(cross_hopping) 
                                           + '& beta == ' + str(beta) 
                                           + ' & impurity_solver == "' + impurity_solver + '"'
                                           + ' & mode_style == "' + mode_style + '"')
        else:
             path_frame = full_path_frame_1.query('cross_hopping == ' + str(cross_hopping) 
                                           + '& beta == ' + str(beta) 
                                           + ' & impurity_solver == "' + impurity_solver + '"'
                                           + ' & mode_style == "' + mode_style + '"')

        all_crystal_fields = np.sort(path_frame['crystal_field'].unique())[::-1]
        all_dopings = np.sort(path_frame['doping'].unique())[::-1]

        del_index = np.where(all_dopings==1.5)
        all_dopings = np.delete(all_dopings, del_index) 

        all_mode_styles = np.sort(path_frame['mode_style'].unique())
        all_components = np.sort(path_frame['component'].unique())
        all_cross_hoppings = np.sort(path_frame['cross_hopping'].unique())[::-1]
        nb_crytal_fields = len(all_crystal_fields)
        all_betas = np.sort(path_frame['beta'].unique())[::-1]
        print(selected_paths)
        print(component)
        #col_index = (full_index - 1) % nb_components_per_line
        #line_index = (full_index - 1) // nb_components_per_line
        #line_index, col_index = get_lin_col_indices(crystal_field, all_crystal_fields, component, components_to_plot)
        #full_index = 1 + len(components_to_plot) * line_index + col_index
        pivot_table = get_pivot_table2(component, crystal_field, mode_style, cross_hopping, parity, impurity_solver)
        if (pivot_table is None):
            print ("none", component)
            # Do not create axes if no data to plot
            #continue
        vmax = 1.0
        print(len(selected_paths))
        print(len(components_to_plot))
        
        line_index, col_index = path_index, component_index
        full_index = 1 + (len(components_to_plot)) * line_index + col_index
        print(line_index, component_index, full_index)
        if (component_index != 3):
           ax = fig.add_subplot(len(selected_paths),  len(components_to_plot), full_index)
        else:
           ax = fig.add_subplot(len(selected_paths),  len(components_to_plot), full_index, projection='3d')
        #ax = fig.add_subplot(7,  6, full_index)
        axes.append(ax)
        if(line_index < len(selected_paths)-1 and component_index !=3 ):
          ax.xaxis.set_ticks([])
        else:
           ax.set_xticks(x_positions)
           ax.set_xticklabels(x_labels)
        print(crystal_field)
        #set_axis_style(ax, crystal_field, all_crystal_fields, component, components_to_plot)
        if (component_index != 6):
            to_plot_x = pivot_table.columns
            to_plot_y = pivot_table.index.values
            data = pivot_table.values

            #######################################
            #### Definition of the function to plot
            #######################################
            #to_plot_z = np.log10(data + 1e-5)
            to_plot_z = data / (5.5 + data)
            to_plot_z2 = data
            #Z=to_plot_z
            def f(x, y):
              return np.absolute(data)


            X=to_plot_x
            Y=to_plot_y
            X, Y = np.meshgrid(to_plot_x,to_plot_y)
            Z = f(X, Y)
            print(X.shape, Z.shape)
        #print(X.shape)
        #print(to_plot_x.shape)
        #print(Z.shape)
        #########################################
        #### Plotting instruction with parameters
        ######################################### 
        if (component_index != 3):
            im = plt.pcolormesh(to_plot_x, to_plot_y, to_plot_z,
                           rasterized=True, 
                                cmap=plt.get_cmap('jet'),
                                #cmap=plt.get_cmap('gist_stern_r'), 
                           vmin=0, vmax=vmax
                                #vmax = min(40, np.amax(to_plot_z))
                          )
        else:
            norm = plt.Normalize(Z.min(), Z.max())
            colors = cm.viridis(norm(Z))
            rcount, ccount, _ = colors.shape
            print(rcount, ccount)
            if(path_index != 10):
               #print(Z[:30, 95])
               Z[:, 100] = 1.0 * (Z[:, 95])
            #ax.plot_surface(X, Y, Z, cmap=plt.get_cmap('jet'), rstride=1, cstride=1,  edgecolor='none')
            #surf = ax.plot_surface(X, Y, Z, rcount=30, ccount=20,
            #           facecolors=colors, shade=False)
            ax.set_ylim([0, 0.25])
            ax.plot_wireframe(X, Y, Z, rstride=200, cstride=5, cmap='jet')
            #surf.set_facecolor((0,0,0,0))
            ax.view_init(50, -40)
        #fig.colorbar(im, ax=ax)
        if (component_index == 0):
            x_pos = [1.7, 1.7]
            y_pos = [0.22, 0.2205]
            x_direct = moment_x[path_index]
            y_direct = moment_z[path_index]
            ax.quiver(x_pos,y_pos,x_direct,y_direct, color=['r','y'], scale=2.5, width=0.03)
            #ax.axis([-2.5,2.5,-2.5,2.5])
        text_size = 42
        for tick in ax.xaxis.get_major_ticks():
            tick.label.set_fontsize(text_size+10) 
        for tick in ax.yaxis.get_major_ticks():
            tick.label.set_fontsize(text_size+10)
        if (col_index == 3):
            for tick in ax.xaxis.get_major_ticks():
               tick.label.set_fontsize(text_size-25)
            for tick in ax.yaxis.get_major_ticks():
               tick.label.set_fontsize(text_size-25)
            for tick in ax.zaxis.get_major_ticks():
               tick.label.set_fontsize(text_size-28)
            
            
        specw = np.zeros_like(to_plot_x)
        for q_index in np.arange(to_plot_x.shape[0]):
            specw[q_index] =  np.trapz(to_plot_z2[:700, q_index], to_plot_y[:700])
            if(path_index == 1 and q_index == 100):
                specw[q_index] = specw[q_index - 1]
        ax.plot(to_plot_x, specw/10.0 , color='w', linewidth= 3.2)
        
        if(component_index == 2):
           ax.tick_params(labelleft=False,labeltop=False, labelright=True)
           ax.tick_params(left=False,top=False, right=True, length=5, width=4)
        elif(component_index == 0):
           ax.tick_params(left=True,top=False, right=False, length=5, width=4)
        if(component_index == 2):
           ax.yaxis.set_label_position("right") 
        if (col_index == 1 and col_index !=3 ):
            ax.yaxis.set_ticks([])# s_position('none')
        elif(col_index !=3):
            if(col_index == 0):
                if(path_index ==1 ):
                    ax.text(0.62, 0.95, r"$h=$"+ str(fields[path_index]/2.0),
                     verticalalignment='top', horizontalalignment='right',
                      transform=ax.transAxes,
                       color='white', fontsize=50)
                elif(path_index == 2):
                    ax.text(0.55, 0.95, r"$h=$"+ str(fields[path_index]/2.0),
                     verticalalignment='top', horizontalalignment='right',
                      transform=ax.transAxes,
                       color='white', fontsize=50)
                else:
                    ax.text(0.47, 0.95, r"$h=$"+ str(fields[path_index]/2.0),
                     verticalalignment='top', horizontalalignment='right',
                      transform=ax.transAxes,
                       color='white', fontsize=50)
            #if(path_index < 2):
            #    ax.text(0.57, 0.75, r"$H=0$" + "," + " " + phase[path_index],
            #      verticalalignment='top', horizontalalignment='right',
            #       transform=ax.transAxes,
            #        color='white', fontsize=30)
            #else: 
            #    ax.text(0.45, 0.75, r"$H=0$" + "," + " " + phase[path_index],
            #      verticalalignment='top', horizontalalignment='right',
            #       transform=ax.transAxes,
            #        color='white', fontsize=30)
            #ax.yaxis.set_ticks([0.1, 0.2, 0.3, 0.4])# s_position('none')
            ax.yaxis.set_ticks([0.2, 0.4, 0.6, 0.8])
            #ax.set_ylabel(r"Energy", fontsize=text_size+10)
            if(col_index == 0):
              ax.set_ylabel(r"Energy", fontsize=text_size+10)
            elif(col_index == 2):
              ax.set_ylabel(r"SW", fontsize=text_size+10)
            if(col_index == 2):
                ax.set_yticks(y_positions)
                ax.set_yticklabels(y_labels, fontsize=text_size+10 )
        if (col_index == 0):
            #ax.set_ylabel(r"$\Delta$ = " + str(crystal_field), fontsize=text_size+2)
            pass
        if (line_index < len(all_crystal_fields) - 1):
            ax.xaxis.set_ticks([])# s_position('none')
        #if (line_index == 0):
        #    ax.set_title(component_names[component], fontsize=text_size+2, pad=26)
        #########################################
        #########################################
        if(component_index == 3):
            ax.set_yticks([0, 0.25])
            ax.set_zticks([0, 10, 20, 30])
        if(path_index == 0):
            #plt.title(component, fontsize=50, pad=20)
            #if(component_index == 3):
            #   plt.title(component, fontsize=50, pad=78)
            ax.set_title(component_names[component], fontsize=text_size+25, pad=42)
            if(component_index == 3):
                ax.set_title(component_names[component], fontsize=text_size+25, pad=92)
        #full_index += 1
        if (component_index != 3):
           ax.set_ylim([0., 0.5])
        if (component_index == 3):
            ax.set_ylim([0, 0.25])
            ax.set_zlim([0, 30.0])
        if(component_index == 0):
            chi_ga.append(specw[0])
            S_z.append(moment_z[path_index][0])
            mh.append(fields[path_index])
        component_index += 1
          
#for i in np.arange(151):
#       print(i, X[150, i])
plt.tight_layout()
plt.savefig("all_dispersions_IR_U_" + str(U_val) + "_ch_" + str(cross_hopping) + "_beta_" + str(beta) + "_" + mode_style + "_fine.png")
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^x_{0}$
5
3
0 0 1
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^y_{0}$
5
3
0 1 2
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^z_{0}$
5
3
0 2 3
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^x_{0}$
5
3
1 0 4
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^y_{0}$
5
3
1 1 5
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^z_{0}$
5
3
1 2 6
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^x_{0}$
5
3
2 0 7
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^y_{0}$
5
3
2 1 8
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^z_{0}$
5
3
2 2 9
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^x_{0}$
5
3
3 0 10
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^y_{0}$
5
3
3 1 11
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^z_{0}$
5
3
3 2 12
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^x_{0}$
5
3
4 0 13
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^y_{0}$
5
3
4 1 14
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0Sx_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz4_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz8timelimit_20_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz16_unfold', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/tmp_data/b30_magnon_U1.0hz32_unfold']
$S^z_{0}$
5
3
4 2 15
3.4
(1001, 151) (1001, 151)
No description has been provided for this image
In [101]:
chi_ganw=[0.045, 0.185, 0.416, 0.799, 0.996]
plt.plot(mh, S_z, marker='x', label="Sz")
plt.plot(mh, chi_ga , marker = 's', label="SW(chi_xx(0))")
plt.plot(mh, chi_ganw , marker = 'd', label="SW(chi_xx(0)_new)")
plt.legend()
for i in np.arange(5):
    print(mh[i], S_z[i], chi_ga[i])
0.0 0.0 0.006936623320473116
0.05 0.222 0.1471650414978263
0.1 0.431 0.3934357721251539
0.2 0.793 0.7432052127976498
0.4 0.9984 0.8800865611555331
No description has been provided for this image
In [135]:
from matplotlib import cm
selected_paths = ["/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06",
                  "/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06",
                  "/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06",
                  "/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06",
                   "/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b"][::1]
           
full_csv_name = 'data_real_normal.csv'
#full_csv_name = 'data_real_weak_1.6.csv'
#full_csv_name = 'data_real_bubble.csv'
x_labels = [r'$\Gamma$', 'X', 'M', r'$\Gamma$']
x_positions = [0, 1., 2., 3.385]
all_component_names = ['Na-Nb', 'Sz', 're_yy']

y_labels = [2,  4]
y_positions = [0.2, 0.4]

mode_style = "1auc"
#mode_style = "diagonal"
cross_hopping = 0
parity = "odd"
impurity_solver = "alps"
U_val = 4.0
beta = 30.0
doping = 0

S_z = []
chi_ga = []
mh = []
selected_components = [1, 2, 8]
legends = [0.28, 0.30, 0.37][::1]
site = [2, 2,  2, 2, 2, 2, 2, 2, 2 ,2,2][::1]
axes = []
betas = [  30., 30.0, 30.0, 30.0, 30.0, 30.0][::1]
fields = [0.0, 0.05, 0.10, 0.20, 0.40]
phase = ['(AFM)', '(AFM)', '(N)'][::1]
#moment_x = [ [0.74,0] ,[0.73, 0], [0.668,0], [0.3968,0],[0.01,0] ]
#moment_z = [[0, 0.01] ,[0, 0.222], [0, 0.431], [0, 0.793],  [0, 0.531]]
moment_x = [ [0.74, -0.74] ,[0.73, -0.73], [0.668,-0.668], [0.3968,-0.3968], [0.,-0.]  ]
moment_z = [[0.0, 0.0] ,[0.222, 0.222], [0.431, 0.431], [0.793, 0.793], [0.9984, 0.9984]]
fig = plt.figure(figsize = (len(selected_components) * 2.2 * fig_width, len(selected_paths) * 3 * fig_height), frameon=False)
component_index = 0
for path_index in np.arange(len(selected_paths)):
    #components_to_plot = all_components
    full_path_frame = get_full_path_frame(site[path_index],selected_paths[path_index], full_csv_name)
    full_path_frame_1 = get_full_path_frame_1(site[path_index],selected_paths[path_index], full_csv_name)
    #components_to_plot = np.array(['re_zz0+re_zz1','re_zz0-re_zz1','Sz0+Sz1' ,'Sz0-Sz1'])
    #components_to_plot = np.array(['im_xx0+im_xx1'])
    if(site[path_index] == 1):
       components_to_plot = np.array(['N_a-N_b', 'Sz', 're_xx', 'im_xx','re_yy', 'im_yy'])
       #components_to_plot = np.array(['re_xx', 'im_xx','re_yy', 'im_yy'])
       #component_names = { 'N_a-N_b':  r"$O$", 'Sz': r"$Sz$", 're_xx':  r"$\phi_x^R$", 'im_xx': r"$\phi_x^I$",'re_yy':  r"$\phi_y^R$", 'im_yy': r"$\phi_y^I$"}
       component_names = { 'N_a-N_b':  r"$O$", 'Sz': r"$S^z$", 're_xx':  r"$R^x$", 'im_xx': r"$I^x$",'re_yy':  r"$R^y$", 'im_yy': r"$I^y$" }
       #component_names = { 're_xx':  r"$R_x$", 'im_xx': r"$I_x$",'re_yy':  r"$R_y$", 'im_yy': r"$I_y$" }
    if(site[path_index] == 2):
       #components_to_plot = np.array(['$S^x_{0}$', '$S^y_{0}$', '$S^z_{0}$'])
       components_to_plot = np.array(['Sx_0', 'Sy_0', 'Sz_0'])
       #components_to_plot = np.array([ 're_xx0', 'im_xx0','re_yy0', 'im_yy0'])
       #component_names = { 'N_a0-N_b0':  r"$O$", 'Sz0': r"$S^z$", 're_xx0':  r"$\phi_x^R$", 'im_xx0': r"$\phi_x^I$",'re_yy0':  r"$\phi_y^R$", 'im_yy0': r"$\phi_y^I$"}
       component_names = { 'N_a0-N_b0':  r"$O$", 'Sz0': r"$S^z$", 're_xx0':  r"$R^x$", 'im_xx0': r"$I^x$",'re_yy0':  r"$\R^y$", 'im_yy0': r"$I^y$"} 
       component_names = { '$S^x_{0}$':  r"$\chi^{xx}$", '$S^y_{0}$':  r"$\chi^{yy}$", '$S^z_{0}$':  r"$\chi^{zz}$"}
       component_names = { 'Sx_0':  r"$\chi^{xx}$", 'Sy_0':  r"$\chi^{yy}$", 'Sz_0':  r"$\chi^{zz}$"}
    #print(components_to_plot, all_betas, all_crystal_fields, all_dopings)
    component_index = 0
    all_crystal_fields = np.sort(path_frame['crystal_field'].unique())[::-1]
    for crystal_field in all_crystal_fields:
      for component in components_to_plot:
        mode_style = "1auc"
        #mode_style = "diagonal"
        cross_hopping = 0
        parity = "odd"
        impurity_solver = "alps"
        U_val = 4.0
        ##beta = 30.0
        beta = betas[path_index]
        doping = 0
        if(component_index != 3):
            path_frame = full_path_frame.query('cross_hopping == ' + str(cross_hopping) 
                                           + '& beta == ' + str(beta) 
                                           + ' & impurity_solver == "' + impurity_solver + '"'
                                           + ' & mode_style == "' + mode_style + '"')
        else:
             path_frame = full_path_frame_1.query('cross_hopping == ' + str(cross_hopping) 
                                           + '& beta == ' + str(beta) 
                                           + ' & impurity_solver == "' + impurity_solver + '"'
                                           + ' & mode_style == "' + mode_style + '"')

        all_crystal_fields = np.sort(path_frame['crystal_field'].unique())[::-1]
        all_dopings = np.sort(path_frame['doping'].unique())[::-1]

        del_index = np.where(all_dopings==1.5)
        all_dopings = np.delete(all_dopings, del_index) 

        all_mode_styles = np.sort(path_frame['mode_style'].unique())
        all_components = np.sort(path_frame['component'].unique())
        all_cross_hoppings = np.sort(path_frame['cross_hopping'].unique())[::-1]
        nb_crytal_fields = len(all_crystal_fields)
        all_betas = np.sort(path_frame['beta'].unique())[::-1]
        print(selected_paths)
        print(component)
        #col_index = (full_index - 1) % nb_components_per_line
        #line_index = (full_index - 1) // nb_components_per_line
        #line_index, col_index = get_lin_col_indices(crystal_field, all_crystal_fields, component, components_to_plot)
        #full_index = 1 + len(components_to_plot) * line_index + col_index
        pivot_table = get_pivot_table2(component, crystal_field, mode_style, cross_hopping, parity, impurity_solver)
        if (pivot_table is None):
            print ("none", component)
            # Do not create axes if no data to plot
            #continue
        vmax = 1.0
        print(len(selected_paths))
        print(len(components_to_plot))
        
        line_index, col_index = path_index, component_index
        full_index = 1 + (len(components_to_plot)) * line_index + col_index
        print(line_index, component_index, full_index)
        if (component_index != 3):
           ax = fig.add_subplot(len(selected_paths),  len(components_to_plot), full_index)
        else:
           ax = fig.add_subplot(len(selected_paths),  len(components_to_plot), full_index, projection='3d')
        #ax = fig.add_subplot(7,  6, full_index)
        axes.append(ax)
        if(line_index < len(selected_paths)-1 and component_index !=3 ):
          ax.xaxis.set_ticks([])
        else:
           ax.set_xticks(x_positions)
           ax.set_xticklabels(x_labels)
        print(crystal_field)
        #set_axis_style(ax, crystal_field, all_crystal_fields, component, components_to_plot)
        if (component_index != 6):
            to_plot_x = pivot_table.columns
            to_plot_y = pivot_table.index.values
            data = pivot_table.values

            #######################################
            #### Definition of the function to plot
            #######################################
            #to_plot_z = np.log10(data + 1e-5)
            to_plot_z = data / (5.5 + data)
            to_plot_z2 = data
            #Z=to_plot_z
            def f(x, y):
              return np.absolute(data)


            X=to_plot_x
            Y=to_plot_y
            X, Y = np.meshgrid(to_plot_x,to_plot_y)
            Z = f(X, Y)
            print(X.shape, Z.shape)
        #print(X.shape)
        #print(to_plot_x.shape)
        #print(Z.shape)
        #########################################
        #### Plotting instruction with parameters
        ######################################### 
        if (component_index != 3):
            im = plt.pcolormesh(to_plot_x, to_plot_y, to_plot_z,
                           rasterized=True, 
                                cmap=plt.get_cmap('jet'),
                                #cmap=plt.get_cmap('gist_stern_r'), 
                           vmin=0, vmax=vmax
                                #vmax = min(40, np.amax(to_plot_z))
                          )
        else:
            norm = plt.Normalize(Z.min(), Z.max())
            colors = cm.viridis(norm(Z))
            rcount, ccount, _ = colors.shape
            print(rcount, ccount)
            if(path_index != 10):
               #print(Z[:30, 95])
               Z[:, 100] = 1.0 * (Z[:, 95])
            #ax.plot_surface(X, Y, Z, cmap=plt.get_cmap('jet'), rstride=1, cstride=1,  edgecolor='none')
            #surf = ax.plot_surface(X, Y, Z, rcount=30, ccount=20,
            #           facecolors=colors, shade=False)
            ax.set_ylim([0, 0.25])
            ax.plot_wireframe(X, Y, Z, rstride=200, cstride=5, cmap='jet')
            #surf.set_facecolor((0,0,0,0))
            ax.view_init(50, -40)
        #fig.colorbar(im, ax=ax)
        if (component_index == 0):
            x_pos = [1.7, 1.7]
            y_pos = [0.22, 0.2205]
            x_direct = moment_x[path_index]
            y_direct = moment_z[path_index]
            ax.quiver(x_pos,y_pos,x_direct,y_direct, color=['r','y'], scale=2.5, width=0.03)
            #ax.axis([-2.5,2.5,-2.5,2.5])
        text_size = 42
        for tick in ax.xaxis.get_major_ticks():
            tick.label.set_fontsize(text_size+10) 
        for tick in ax.yaxis.get_major_ticks():
            tick.label.set_fontsize(text_size+10)
        if (col_index == 3):
            for tick in ax.xaxis.get_major_ticks():
               tick.label.set_fontsize(text_size-25)
            for tick in ax.yaxis.get_major_ticks():
               tick.label.set_fontsize(text_size-25)
            for tick in ax.zaxis.get_major_ticks():
               tick.label.set_fontsize(text_size-28)
            
            
        specw = np.zeros_like(to_plot_x)
        for q_index in np.arange(to_plot_x.shape[0]):
            specw[q_index] =  np.trapz(to_plot_z2[:700, q_index], to_plot_y[:700])
            if(path_index == 1 and q_index == 100):
                specw[q_index] = specw[q_index - 1]
        ax.plot(to_plot_x, specw/10.0 , color='w', linewidth= 3.2)
        
        if(component_index == 2):
           ax.tick_params(labelleft=False,labeltop=False, labelright=True)
           ax.tick_params(left=False,top=False, right=True, length=5, width=4)
        elif(component_index == 0):
           ax.tick_params(left=True,top=False, right=False, length=5, width=4)
        if(component_index == 2):
           ax.yaxis.set_label_position("right") 
        if (col_index == 1 and col_index !=3 ):
            ax.yaxis.set_ticks([])# s_position('none')
        elif(col_index !=3):
            if(col_index == 0):
                if(path_index ==1 ):
                    ax.text(0.62, 0.95, r"$h=$"+ str(fields[path_index]/2.0),
                     verticalalignment='top', horizontalalignment='right',
                      transform=ax.transAxes,
                       color='white', fontsize=50)
                elif(path_index == 2):
                    ax.text(0.55, 0.95, r"$h=$"+ str(fields[path_index]/2.0),
                     verticalalignment='top', horizontalalignment='right',
                      transform=ax.transAxes,
                       color='white', fontsize=50)
                else:
                    ax.text(0.47, 0.95, r"$h=$"+ str(fields[path_index]/2.0),
                     verticalalignment='top', horizontalalignment='right',
                      transform=ax.transAxes,
                       color='white', fontsize=50)
            #if(path_index < 2):
            #    ax.text(0.57, 0.75, r"$H=0$" + "," + " " + phase[path_index],
            #      verticalalignment='top', horizontalalignment='right',
            #       transform=ax.transAxes,
            #        color='white', fontsize=30)
            #else: 
            #    ax.text(0.45, 0.75, r"$H=0$" + "," + " " + phase[path_index],
            #      verticalalignment='top', horizontalalignment='right',
            #       transform=ax.transAxes,
            #        color='white', fontsize=30)
            #ax.yaxis.set_ticks([0.1, 0.2, 0.3, 0.4])# s_position('none')
            ax.yaxis.set_ticks([0.2, 0.4, 0.6, 0.8])
            #ax.set_ylabel(r"Energy", fontsize=text_size+10)
            if(col_index == 0):
              ax.set_ylabel(r"Energy", fontsize=text_size+10)
            elif(col_index == 2):
              ax.set_ylabel(r"SW", fontsize=text_size+10)
            if(col_index == 2):
                ax.set_yticks(y_positions)
                ax.set_yticklabels(y_labels, fontsize=text_size+10 )
        if (col_index == 0):
            #ax.set_ylabel(r"$\Delta$ = " + str(crystal_field), fontsize=text_size+2)
            pass
        if (line_index < len(all_crystal_fields) - 1):
            ax.xaxis.set_ticks([])# s_position('none')
        #if (line_index == 0):
        #    ax.set_title(component_names[component], fontsize=text_size+2, pad=26)
        #########################################
        #########################################
        if(component_index == 3):
            ax.set_yticks([0, 0.25])
            ax.set_zticks([0, 10, 20, 30])
        if(path_index == 0):
            #plt.title(component, fontsize=50, pad=20)
            #if(component_index == 3):
            #   plt.title(component, fontsize=50, pad=78)
            ax.set_title(component_names[component], fontsize=text_size+25, pad=42)
            if(component_index == 3):
                ax.set_title(component_names[component], fontsize=text_size+25, pad=92)
        #full_index += 1
        if (component_index != 3):
           ax.set_ylim([0., 0.5])
        if (component_index == 3):
            ax.set_ylim([0, 0.25])
            ax.set_zlim([0, 30.0])
        if(component_index == 0):
            chi_ga.append(specw[0])
            S_z.append(moment_z[path_index][0])
            mh.append(fields[path_index])
        component_index += 1
          
#for i in np.arange(151):
#       print(i, X[150, i])
plt.tight_layout()
plt.savefig("all_dispersions_IR_U_" + str(U_val) + "_ch_" + str(cross_hopping) + "_beta_" + str(beta) + "_" + mode_style + "_fine.png")
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b']
Sx_0
5
3
0 0 1
0
(1001, 201) (1001, 201)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b']
Sy_0
5
3
0 1 2
0
(1001, 201) (1001, 201)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b']
Sz_0
5
3
0 2 3
0
(1001, 201) (1001, 201)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b']
Sx_0
5
3
1 0 4
0
(1001, 201) (1001, 201)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b']
Sy_0
5
3
1 1 5
0
(1001, 201) (1001, 201)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b']
Sz_0
5
3
1 2 6
0
(1001, 201) (1001, 201)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b']
Sx_0
5
3
2 0 7
0
(1001, 201) (1001, 201)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b']
Sy_0
5
3
2 1 8
0
(1001, 201) (1001, 201)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b']
Sz_0
5
3
2 2 9
0
(1001, 201) (1001, 201)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b']
Sx_0
5
3
3 0 10
0
(1001, 201) (1001, 201)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b']
Sy_0
5
3
3 1 11
0
(1001, 201) (1001, 201)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b']
Sz_0
5
3
3 2 12
0
(1001, 201) (1001, 201)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b']
Sx_0
5
3
4 0 13
0
(1001, 201) (1001, 201)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b']
Sy_0
5
3
4 1 14
0
(1001, 201) (1001, 201)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0Sx_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz4_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz8_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz16_rec_10bs0.06', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b30_magnon_U1.0hz32_rec_10b']
Sz_0
5
3
4 2 15
0
(1001, 174) (1001, 174)
No description has been provided for this image

Kanamori interaction¶

In [22]:
from matplotlib import cm
selected_paths = ["/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120",
                  "/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105",
                  "/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx",
                  "/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old",
                   "/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80"][::1]
           
full_csv_name = 'data_real_normal.csv'
#full_csv_name = 'data_real_weak_1.6.csv'
#full_csv_name = 'data_real_bubble.csv'
x_labels = [r'$\Gamma$', 'X', 'M', r'$\Gamma$']
x_positions = [0, 1., 2., 3.385]
all_component_names = ['Na-Nb', 'Sz', 're_yy']
y_labels = [2,  4]
y_positions = [0.2, 0.4]


mode_style = "physical"
#mode_style = "diagonal"
cross_hopping = 0
parity = "odd"
impurity_solver = "alps"
U_val = 4.0
beta = 30.0
doping = 0

selected_components = [1, 2, 8]
legends = [0.28, 0.30, 0.37][::1]
site = [2, 2,  2, 2, 2, 2, 2, 2, 2 ,2,2][::1]
axes = []
betas = [  25., 25.0, 25.0, 25.0, 25.0, 25.0][::1]
gammas =[1.20, 1.05, 1.00, 0.95, 0.80]
phase = ['(AFM)', '(AFM)', '(N)'][::1]
#moment_x = [ [0.74,0] ,[0.73, 0], [0.668,0], [0.3968,0],[0.01,0] ]
#moment_z = [[0, 0.01] ,[0, 0.222], [0, 0.431], [0, 0.793],  [0, 0.531]]
moment_x = [ [0.783, -0.783] ,[0.776, -0.776], [0.76,-0.76], [0.0,-0.0], [0.,-0.]  ]
moment_z = [[0.0, 0.0] ,[0.0, 0.0], [0.0, -0.0], [0.799, -0.799], [0.857, -0.857]]
fig = plt.figure(figsize = (len(selected_components) * 2 * fig_width, len(selected_paths) * 3 * fig_height), frameon=False)
component_index = 0
for path_index in np.arange(len(selected_paths)):
    #components_to_plot = all_components
    full_path_frame = get_full_path_frame(site[path_index],selected_paths[path_index], full_csv_name)
    full_path_frame_1 = get_full_path_frame_1(site[path_index],selected_paths[path_index], full_csv_name)
    #components_to_plot = np.array(['re_zz0+re_zz1','re_zz0-re_zz1','Sz0+Sz1' ,'Sz0-Sz1'])
    #components_to_plot = np.array(['im_xx0+im_xx1'])
    if(site[path_index] == 1):
       components_to_plot = np.array(['N_a-N_b', 'Sz', 're_xx', 'im_xx','re_yy', 'im_yy'])
       #components_to_plot = np.array(['re_xx', 'im_xx','re_yy', 'im_yy'])
       #component_names = { 'N_a-N_b':  r"$O$", 'Sz': r"$Sz$", 're_xx':  r"$\phi_x^R$", 'im_xx': r"$\phi_x^I$",'re_yy':  r"$\phi_y^R$", 'im_yy': r"$\phi_y^I$"}
       component_names = { 'N_a-N_b':  r"$O$", 'Sz': r"$S^z$", 're_xx':  r"$R^x$", 'im_xx': r"$I^x$",'re_yy':  r"$R^y$", 'im_yy': r"$I^y$" }
       #component_names = { 're_xx':  r"$R_x$", 'im_xx': r"$I_x$",'re_yy':  r"$R_y$", 'im_yy': r"$I_y$" }
    if(site[path_index] == 2):
       components_to_plot = np.array(['Sx0', 'Sy0', 'Sz0', ])
       #components_to_plot = np.array([ 're_xx0', 'im_xx0','re_yy0', 'im_yy0'])
       #component_names = { 'N_a0-N_b0':  r"$O$", 'Sz0': r"$S^z$", 're_xx0':  r"$\phi_x^R$", 'im_xx0': r"$\phi_x^I$",'re_yy0':  r"$\phi_y^R$", 'im_yy0': r"$\phi_y^I$"}
       component_names = {  'Sx0': r"$\chi^{xx}$", 'Sy0': r"$\chi^{yy}$", 'Sz0': r"$\chi^{zz}$" } 
       #component_names = { 're_xx0':  r"$R_x$", 'im_xx0': r"$I_x$",'re_yy0':  r"$\R_y$", 'im_yy0': r"$I_y$"}
    print(components_to_plot, all_betas, all_crystal_fields, all_dopings)
    component_index = 0
    for crystal_field in all_crystal_fields:
      for component in components_to_plot:
        mode_style = "physical"
        #mode_style = "diagonal"
        cross_hopping = 0
        parity = "odd"
        impurity_solver = "alps"
        U_val = 4.0
        ##beta = 30.0
        beta = betas[path_index]
        doping = 0
        if(component_index != 3):
            path_frame = full_path_frame.query('cross_hopping == ' + str(cross_hopping) 
                                           + '& beta == ' + str(beta) 
                                           + ' & impurity_solver == "' + impurity_solver + '"'
                                           + ' & mode_style == "' + mode_style + '"')
        else:
             path_frame = full_path_frame_1.query('cross_hopping == ' + str(cross_hopping) 
                                           + '& beta == ' + str(beta) 
                                           + ' & impurity_solver == "' + impurity_solver + '"'
                                           + ' & mode_style == "' + mode_style + '"')

        all_crystal_fields = np.sort(path_frame['crystal_field'].unique())[::-1]
        all_dopings = np.sort(path_frame['doping'].unique())[::-1]

        del_index = np.where(all_dopings==1.5)
        all_dopings = np.delete(all_dopings, del_index) 

        all_mode_styles = np.sort(path_frame['mode_style'].unique())
        all_components = np.sort(path_frame['component'].unique())
        all_cross_hoppings = np.sort(path_frame['cross_hopping'].unique())[::-1]
        nb_crytal_fields = len(all_crystal_fields)
        all_betas = np.sort(path_frame['beta'].unique())[::-1]
        print(selected_paths)
        print(component)
        #col_index = (full_index - 1) % nb_components_per_line
        #line_index = (full_index - 1) // nb_components_per_line
        #line_index, col_index = get_lin_col_indices(crystal_field, all_crystal_fields, component, components_to_plot)
        #full_index = 1 + len(components_to_plot) * line_index + col_index
        pivot_table = get_pivot_table2(component, crystal_field, mode_style, cross_hopping, parity, impurity_solver)
        if (pivot_table is None):
            print ("none", component)
            # Do not create axes if no data to plot
            #continue
        vmax = 1.0
        print(len(selected_paths))
        print(len(components_to_plot))
        
        line_index, col_index = path_index, component_index
        full_index = 1 + (len(components_to_plot)) * line_index + col_index
        print(line_index, component_index, full_index)
        if (component_index != 3):
           ax = fig.add_subplot(len(selected_paths),  len(components_to_plot), full_index)
        else:
           ax = fig.add_subplot(len(selected_paths),  len(components_to_plot), full_index, projection='3d')
        #ax = fig.add_subplot(7,  6, full_index)
        axes.append(ax)
        if(line_index < len(selected_paths)-1 and component_index !=3 ):
          ax.xaxis.set_ticks([])
        else:
           ax.set_xticks(x_positions)
           ax.set_xticklabels(x_labels)
        print(crystal_field)
        #set_axis_style(ax, crystal_field, all_crystal_fields, component, components_to_plot)
        if (component_index != 6):
            to_plot_x = pivot_table.columns
            to_plot_y = pivot_table.index.values
            data = pivot_table.values

            #######################################
            #### Definition of the function to plot
            #######################################
            #to_plot_z = np.log10(data + 1e-5)
            to_plot_z = data / (8.5 + data)
            to_plot_z2 = data
            #Z=to_plot_z
            def f(x, y):
              return np.absolute(data)


            X=to_plot_x
            Y=to_plot_y
            X, Y = np.meshgrid(to_plot_x,to_plot_y)
            Z = f(X, Y)
            print(X.shape, Z.shape)
        #print(X.shape)
        #print(to_plot_x.shape)
        #print(Z.shape)
        #########################################
        #### Plotting instruction with parameters
        ######################################### 
        if (component_index != 3):
            im = plt.pcolormesh(to_plot_x, to_plot_y, to_plot_z,
                           rasterized=True, 
                                cmap=plt.get_cmap('jet'),
                                #cmap=plt.get_cmap('gist_stern_r'), 
                           vmin=0, vmax=vmax
                                #vmax = min(40, np.amax(to_plot_z))
                          )
        else:
            norm = plt.Normalize(Z.min(), Z.max())
            colors = cm.viridis(norm(Z))
            rcount, ccount, _ = colors.shape
            print(rcount, ccount)
            if(path_index != 10):
               #print(Z[:30, 95])
               Z[:, 100] = 1.0 * (Z[:, 95])
            #ax.plot_surface(X, Y, Z, cmap=plt.get_cmap('jet'), rstride=1, cstride=1,  edgecolor='none')
            #surf = ax.plot_surface(X, Y, Z, rcount=30, ccount=20,
            #           facecolors=colors, shade=False)
            ax.set_ylim([0, 0.25])
            ax.plot_wireframe(X, Y, Z, rstride=200, cstride=5, cmap='jet')
            #surf.set_facecolor((0,0,0,0))
            ax.view_init(50, -20)
        #fig.colorbar(im, ax=ax)
        if(path_index < 3):
            if (component_index == 0):
                x_pos = [1.7, 1.7]
                y_pos = [0.22, 0.2205]
                x_direct = moment_x[path_index]
                y_direct = moment_z[path_index]
                ax.quiver(x_pos,y_pos,x_direct,y_direct, color=['r','y'], scale=2.5, width=0.03)
                #ax.axis([-2.5,2.5,-2.5,2.5])
        else:
            if (component_index == 2):
                x_pos = [1.7, 1.7]
                y_pos = [0.22, 0.2205]
                x_direct = moment_x[path_index]
                y_direct = moment_z[path_index]
                ax.quiver(x_pos,y_pos,x_direct,y_direct, color=['r','y'], scale=2.5, width=0.03)
                #ax.axis([-2.5,2.5,-2.5,2.5])
        text_size = 42
        for tick in ax.xaxis.get_major_ticks():
            tick.label.set_fontsize(text_size+10) 
        for tick in ax.yaxis.get_major_ticks():
            tick.label.set_fontsize(text_size+10)
        if (col_index == 3):
            for tick in ax.xaxis.get_major_ticks():
               tick.label.set_fontsize(text_size-25)
            for tick in ax.yaxis.get_major_ticks():
               tick.label.set_fontsize(text_size-25)
            for tick in ax.zaxis.get_major_ticks():
               tick.label.set_fontsize(text_size-28)
            
        specw = np.zeros_like(to_plot_x)
        for q_index in np.arange(to_plot_x.shape[0]):
            specw[q_index] =  np.trapz(to_plot_z2[:700, q_index], to_plot_y[:700])
            if(path_index == 2 and q_index == 100):
                specw[q_index] = specw[q_index - 1]
        ax.plot(to_plot_x, specw/10.0, color='w', linewidth= 3.2)
        
        if(component_index == 2):
           ax.tick_params(labelleft=False,labeltop=False, labelright=True)
           ax.tick_params(left=False,top=False, right=True, length=5, width=4)
        elif(component_index == 0):
           ax.tick_params(left=True,top=False, right=False, length=5, width=4)
        if(component_index == 2):
           ax.yaxis.set_label_position("right") 
                 
        if (col_index > 0 and col_index !=3 ):
            ax.yaxis.set_ticks([])# s_position('none')
        elif(col_index !=3):
            if(path_index ==1 or path_index == 3):
                ax.text(0.55, 0.9, r"$\gamma=$"+ str(gammas[path_index]),
                 verticalalignment='top', horizontalalignment='right',
                  transform=ax.transAxes,
                   color='white', fontsize=50)
            else:
                ax.text(0.47, 0.9, r"$\gamma=$"+ str(gammas[path_index]),
                 verticalalignment='top', horizontalalignment='right',
                  transform=ax.transAxes,
                   color='white', fontsize=50)
            #if(path_index < 2):
            #    ax.text(0.57, 0.75, r"$H=0$" + "," + " " + phase[path_index],
            #      verticalalignment='top', horizontalalignment='right',
            #       transform=ax.transAxes,
            #        color='white', fontsize=30)
            #else: 
            #    ax.text(0.45, 0.75, r"$H=0$" + "," + " " + phase[path_index],
            #      verticalalignment='top', horizontalalignment='right',
            #       transform=ax.transAxes,
            #        color='white', fontsize=30)
            #ax.yaxis.set_ticks([0.1, 0.2, 0.3, 0.4])# s_position('none')
            ax.yaxis.set_ticks([0.2, 0.4, 0.6, 0.8])
            ax.set_ylabel(r"Energy", fontsize=text_size+10)
        if(col_index == 2):
              ax.set_ylabel(r"SW", fontsize=text_size+10)
              ax.set_yticks(y_positions)
              ax.set_yticklabels(y_labels, fontsize=text_size+10 )
        if (col_index == 0):
            #ax.set_ylabel(r"$\Delta$ = " + str(crystal_field), fontsize=text_size+2)
            pass
        if (line_index < len(all_crystal_fields) - 1):
            ax.xaxis.set_ticks([])# s_position('none')
        if (line_index == 0):
            ax.set_title(component_names[component], fontsize=text_size+2, pad=26)
        #########################################
        #########################################
        if(component_index == 3):
            ax.set_yticks([0, 0.25])
            ax.set_zticks([0, 10, 20, 30])
        if(path_index == 0):
            #plt.title(component, fontsize=50, pad=20)
            #f(component_index == 3):
            #    plt.title(component, fontsize=50, pad=78)
            ax.set_title(component_names[component], fontsize=text_size+25, pad=42)
        #full_index += 1
        if (component_index != 3):
           ax.set_ylim([0., 0.5])
        if (component_index == 3):
            ax.set_ylim([0, 0.25])
            ax.set_zlim([0, 30.0])
        component_index += 1
#for i in np.arange(151):
#       print(i, X[150, i])
plt.tight_layout()
plt.savefig("all_dispersions_IR_U_" + str(U_val) + "_ch_" + str(cross_hopping) + "_beta_" + str(beta) + "_" + mode_style + "_fine.png")
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['Sx0' 'Sy0' 'Sz0'] [30.] [3.4] [0]
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80']
Sx0
5
3
0 0 1
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80']
Sy0
5
3
0 1 2
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80']
Sz0
5
3
0 2 3
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['Sx0' 'Sy0' 'Sz0'] [25.] [3.4] [0]
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80']
Sx0
5
3
1 0 4
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80']
Sy0
5
3
1 1 5
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80']
Sz0
5
3
1 2 6
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['Sx0' 'Sy0' 'Sz0'] [25.] [3.4] [0]
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80']
Sx0
5
3
2 0 7
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80']
Sy0
5
3
2 1 8
3.4
(1001, 150) (1001, 150)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80']
Sz0
5
3
2 2 9
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['Sx0' 'Sy0' 'Sz0'] [25.] [3.4] [0]
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80']
Sx0
5
3
3 0 10
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80']
Sy0
5
3
3 1 11
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80']
Sz0
5
3
3 2 12
3.4
(1001, 151) (1001, 151)
reading input file data_real_normal.csv
reading input file data_real_normal.csv
['Sx0' 'Sy0' 'Sz0'] [25.] [3.4] [0]
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80']
Sx0
5
3
4 0 13
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80']
Sy0
5
3
4 1 14
3.4
(1001, 151) (1001, 151)
['/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori120', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori105', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori100Sx', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori95_old', '/media/abdu924/Important/Owncloud/alps_data/2site/U1.0/dd_interaction/b25U1.0_kanamori80']
Sz0
5
3
4 2 15
3.4
(1001, 151) (1001, 151)
No description has been provided for this image
In [34]:
selected_paths_sp = ["/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b30hz0",
                     "/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b30hz4",
                     "/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b30hz8",
                     "/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b30hz16",
                     "/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b30hz32" ][::1]

fig = plt.figure(figsize = (1 * 1.9 * fig_width, len(selected_paths_sp) * 3.05 * fig_height), frameon=False)
import matplotlib as mpl
mpl.rcParams['axes.linewidth'] = 3.0 #set the value globally
for path_index in np.arange(len(selected_paths_sp)):
     spectra = np.load(os.path.join(selected_paths_sp[path_index], "spectra.npy"))
     wgrid = np.load(os.path.join(selected_paths_sp[path_index], "wgrid.npy"))
     full_index = 1 + (1) * path_index + 0
     ax = fig.add_subplot(5,  1, full_index) 
     ax.plot(wgrid, spectra, linewidth=3.2)
     for tick in ax.xaxis.get_major_ticks():
            tick.label.set_fontsize(text_size-25) 
     for tick in ax.yaxis.get_major_ticks():
            tick.label.set_fontsize(text_size+40)
     ax.tick_params(labelleft=False,labeltop=False, labelright=True, labelsize=40)
     ax.tick_params(left=False,top=False, right=True, length=5, width=2)
     ax.yaxis.set_label_position("right" )
     if (path_index < 4 ):
            ax.xaxis.set_ticks([])
     if (path_index == 2 ):
        ax.set_ylabel(r"Spectral Density", fontsize=text_size)     
     if (path_index == 4 ):
        ax.set_xlabel(r"Energy", fontsize=text_size+10)
     ax.set_ylim([-0.02, 2.4])
     ax.set_xlim([-1.5, 1.5])
fig.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.1, hspace=0.045)
plt.show()
No description has been provided for this image
In [35]:
selected_paths_sp = ["/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b18",
                     "/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b25Sx",
                     "/media/abdu924/Important/Owncloud/alps_data/Magnon/t0125/spectra/U1.0/b30hz0"][::1]
import matplotlib as mpl
mpl.rcParams['axes.linewidth'] = 3.0 #set the value globally
fig = plt.figure(figsize = (1 * 1.9 * fig_width, len(selected_paths_sp) * 3.05 * fig_height), frameon=False)
for path_index in np.arange(len(selected_paths_sp)):
     spectra = np.load(os.path.join(selected_paths_sp[path_index], "spectra.npy"))
     wgrid = np.load(os.path.join(selected_paths_sp[path_index], "wgrid.npy"))
     full_index = 1 + (1) * path_index + 0
     ax = fig.add_subplot(3,  1, full_index)
     ax.plot(wgrid, spectra, linewidth=3.2)
     for tick in ax.xaxis.get_major_ticks():
            tick.label.set_fontsize(text_size-25) 
     for tick in ax.yaxis.get_major_ticks():
            tick.label.set_fontsize(text_size+40)
     ax.tick_params(labelleft=False,labeltop=False, labelright=True, labelsize=40)
     ax.tick_params(left=False,top=False, right=True, length=5, width=2)
     ax.yaxis.set_label_position("right" )
     if (path_index < 2 ):
            ax.xaxis.set_ticks([])
     if (path_index == 1 ):
        ax.set_ylabel(r"Spectral Density", fontsize=text_size)     
     if (path_index == 2 ):
        ax.set_xlabel(r"Energy", fontsize=text_size+10)
     ax.set_ylim([-0.02, 2.4])
     ax.set_xlim([-1.5, 1.5])
fig.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.1, hspace=0.045)
plt.show()
No description has been provided for this image
In [ ]:
 
In [ ]: