-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplot_energies.py
64 lines (56 loc) · 1.21 KB
/
plot_energies.py
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
from pylab import *
import sys
stabs = sys.argv[1]
basedir = "data-"+stabs
title_string = "Eigenvalue Spectrum for H = "
if (stabs[0]=='p'):
title_string += "+"
else:
title_string += "-"
title_string += "X "
if (stabs[1]=='p'):
title_string += "+"
else:
title_string += "-"
title_string += "Y "
if (stabs[2]=='p'):
title_string += "+"
else:
title_string += "-"
title_string += "Z"
print basedir
s = 6
stab_count = 2**s
eigenvalues = dict()
ticks = []
for i in range(stab_count):
stabs = dict()
filename = "E";
bits = range(s)
bits.reverse()
for j in bits:
if (((i >> j) & 0x1) == 0x1):
stabs[j+1] = -1
filename += "M"
else:
stabs[j+1] = +1
filename += "P"
f = open(basedir+"/"+filename+".dat", 'r')
ev_list = []
ev = f.readline()
while (len(ev) != 0):
ev_list.append(float(ev))
ev = f.readline()
eigenvalues[filename] = ev_list
x = ones(len(ev_list))*(i+1)
plot(x, ev_list, 'o')
#ticks.append(text((i+1), 0, filename, rotation='vertical', fontsize=10))
ticks = eigenvalues.keys()
ticks.sort()
ticks.reverse()
xticks( arange(1,stab_count+1), ticks, rotation='vertical', fontsize=10 )
xlabel('Stab')
ylabel('Energy')
title(title_string)
grid(True)
show()