Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
import sys
import getpass
s = '/home/'+getpass.getuser()
sys.path.insert(1, '%s/PhD_codes/DPTQM/Structural codes/Liouvillian block diagonalization'%s)
#Scientific libraries
import numpy as np
from qutip import *
from qutip.piqs import *
import block_diagonalize
import scipy.sparse as spr
from scipy import optimize
import scipy.linalg as scila
import itertools
import copy
import functools as ft
import time
from tqdm.auto import tqdm
#FFT
from scipy import fft
def ft( U, axis=-1): return fft.fftshift(fft.fft(fft.ifftshift( U,axes=axis), axis=axis, norm='ortho'),axes=axis)
def ift(U, axis=-1): return fft.fftshift(fft.ifft(fft.ifftshift(U,axes=axis), axis=axis, norm='ortho'),axes=axis)
def ftfreq(N,d): return fft.fftshift(fft.fftfreq(N,d))
def ft2(U) : return fft.fftshift(fft.fft2( fft.ifftshift(U), norm='ortho'))
def ift2(U): return fft.fftshift(fft.ifft2(fft.ifftshift(U), norm='ortho'))
#File management
import pickle
import glob
#Plotting
from matplotlib import pyplot as plt
from matplotlib import rc, rcParams, gridspec
import matplotlib.colors as colors
import matplotlib.cm as cm
import colormaps as cmaps
from matplotlib.colors import LogNorm, SymLogNorm
from matplotlib import patches as mpatches
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
from mpl_toolkits.axes_grid1 import make_axes_locatable
from cycler import cycler
import matplotlib.ticker as ticker
import matplotlib.ticker
import seaborn as sns
plt.rcParams["figure.figsize"] = (6,3.6)
rcParams['figure.dpi'] = 80
#Plot configurations
font_size = 20
letter_size = 22
label_size = 22
title_font = 26
legend_size = 19
rc('font', family='serif', size=font_size)
rc('text', usetex=True)
rcParams['lines.linewidth'] = 2
rcParams['axes.labelsize'] = label_size
rcParams['xtick.minor.visible'] = True
rcParams['xtick.major.size'] = 6
rcParams['xtick.minor.size'] = 3
rcParams['xtick.major.width'] = 1.1
rcParams['xtick.minor.width'] = 0.55
rcParams['xtick.direction'] = 'out'
rcParams['ytick.minor.visible'] = True
rcParams['ytick.major.size'] = 6
rcParams['ytick.minor.size'] = 3
rcParams['ytick.major.width'] = 1.1
rcParams['ytick.minor.width'] = 0.55
rcParams['ytick.direction'] = 'out'
rcParams['legend.fontsize'] = legend_size
rcParams['axes.formatter.limits'] = -4, 4
class MyLocator(ticker.AutoMinorLocator):
def __init__(self, n=2):
super().__init__(n=n)
ticker.AutoMinorLocator = MyLocator
marker_sz = 10
location ='upper left'
properties ={'size':12}
width_plot = 6
heigth_plot = 3.6
reduced_labels = 0.7*label_size
greiner = { 'red': ((0., 1, 1,), (.2, 0, 0), (.48, 0, 0), (.728, 1, 1), (0.912, 1, 1), (1, .5, .5)),
'green': ((0., 1, 1), (.2, 0, 0), (.3, 0, 0), (.5, 1, 1), (.712, 1, 1), (.928, 0, 0), (1, 0, 0)),
'blue': ((0., 1, 1), (.2, .5, .5), (.288, 1, 1), (.472, 1, 1), (.72, 0, 0), (1, 0, 0)) }
greiner = colors.LinearSegmentedColormap('greiner', greiner)