In [1]:
import numpy as np
from numpy import linalg as LA
from numpy import array
from numpy import pi
import matplotlib.pyplot as plt
import sys
import math
if "/home/dominique/Code/PG/Source" not in sys.path:
sys.path.append("/home/dominique/Code/PG/Source")
import phase_fluctuations as PF
from phase_fluctuations import TbModel, TbParams, SWaveModel, DWaveModel
from MCMC import MCMCDriver
import scipy.constants as cst
def K_to_meV(in_temp):
return cst.physical_constants["Boltzmann constant in eV/K"][0] * in_temp * 1000.0
In [2]:
%load_ext autoreload
%autoreload 2
In [3]:
%who
%matplotlib inline
In [4]:
%install_ext https://raw.githubusercontent.com/rasbt/python_reference/master/ipython_magic/watermark.py
%load_ext watermark
In [71]:
%watermark?
In [10]:
a = np.empty(5, dtype=bool)
a[:] = False
print a
In [89]:
test = {"a":1, "b":2}
test.update({"a":3})
test.get("c", 3)
Out[89]:
In [90]:
a = np.array([[1, -2j], [2j, 5]])
a
Out[90]:
In [91]:
w, v = LA.eigh(a)
In [92]:
print w
print v
In [93]:
v.conj().transpose()
Out[93]:
In [94]:
np.dot(v.conj().transpose(), np.dot(a, v))
Out[94]:
In [95]:
np.dot(v, np.dot(a, v.conj().transpose()))
Out[95]:
In [96]:
b= np.array([1, 2, 4, 5])
print b.shape
print b
c = np.reshape(b, (4, 1))
print c
d = b.transpose()
print d
In [97]:
e= np.linspace(1.0, 15, num=8, endpoint=True)
o = np.linspace(1.0, 3.0, num=3, endpoint=True)
ee=np.reshape(e, (e.shape[0], 1))
mat = o+ee
fac = np.ones(8)
mat2 = np.dot(fac, mat)
print e
print o
print mat
print mat2
In [98]:
%watermark -a "Dominique" -d -t -u -v -h -m -g
In [99]:
import git
from datetime import datetime
from time import mktime
import time
repo = git.Repo("/home/dominique/Code/PG/")
heads = repo.heads
master = heads[0]
commit_id = master.commit.binsha.encode('hex')
commit_datetime = time.strftime("%a, %d %b %Y %H:%M", time.localtime(master.commit.committed_date))
out = {"id": commit_id, "time": commit_datetime}
In [100]:
T_CST = 0.25
MY_PARAMS = {"width":32, "chem_potential": 0.0,
"hopping_constant": T_CST, "J_constant": 1.0 * T_CST,
"g_constant": 1.0 * T_CST, "delta": 1.0 * T_CST,
"use_assaad": False, "broadening_delta": 0.01 * T_CST}
MY_MODEL = TbModel(MY_PARAMS)
In [101]:
TB_PARAMS = {"width":32, "chem_potential": 0.0,
"hopping_constant": T_CST, "J_constant": 0.0,
"g_constant": 0.0, "delta": 0.0, "use_assaad": True}
MY_MODEL.set_params(TB_PARAMS)
print MY_MODEL._use_assaad
In [102]:
print MY_MODEL._broadening_delta
In [103]:
fig, ax = plt.subplots(figsize = (10, 8), dpi=100, frameon=False)
x_axis_ampl = 4.5
nb_ticks = min(1001, max(101, 1 + MY_MODEL.lattice.n_sites))
xvalues = np.linspace(-x_axis_ampl, x_axis_ampl, nb_ticks, endpoint=True)
#ymin = 0.0
#ymax = 0.5
xmin = -x_axis_ampl
xmax = x_axis_ampl
ax.set_xlim([xmin, xmax])
#ax.set_ylim([0.0, 1.0])
ax.set_xticks(np.linspace(int(xmin), int(xmax), 9,endpoint=True))
#ax.set_yticks(np.linspace(xmin, xmax, 5,endpoint=True))
#ax.set_xticklabels(['%1.1f' %elem for elem in np.linspace(xmin, xmax,5,endpoint=True)])
#ax.set_yticklabels(['%1.1f' %elem for elem in np.linspace(xmin, xmax,5,endpoint=True)])
dos_values = np.real(MY_MODEL.get_dos())
ax.plot(xvalues/ T_CST, dos_values)
Out[103]:
In [104]:
T_CST = 0.25
BCS_PARAMS = {"width":4, "chem_potential": 0.0,
"hopping_constant": T_CST, "J_constant": 0.1 * T_CST,
"g_constant": 1.0 * T_CST, "delta": 1.0 * T_CST, "use_assaad": True,
"uniform_phase": True, "temperature": 25}
MY_MODEL = SWaveModel(BCS_PARAMS)
In [105]:
BCS_PARAMS = {"width":15, "use_assaad": True,
"uniform_phase": False, "temperature": 1.75*250.0,
"J_constant": 0.112 * T_CST, "g_constant": 3.3 * T_CST}
MY_MODEL.set_params(BCS_PARAMS)
print MY_MODEL._uniform_phase
#print MY_MODEL._use_assaad
#print MY_MODEL._hamiltonian
#print MY_MODEL._eigen_values
#print MY_MODEL._unitary_matrix
#print MY_MODEL.d1phase_array
In [106]:
print MY_MODEL
print "temp: ", K_to_meV(MY_MODEL.temperature), "meV"
In [107]:
fig, ax = plt.subplots(figsize = (10, 8), dpi=100, frameon=False)
x_axis_ampl = 4.5
nb_ticks = min(1001, max(101, 1 + MY_MODEL.lattice.n_sites))
xvalues = np.linspace(-x_axis_ampl, x_axis_ampl, nb_ticks, endpoint=True)
#ymin = 0.0
#ymax = 0.5
xmin = -x_axis_ampl
xmax = x_axis_ampl
ax.set_xlim([xmin, xmax])
#ax.set_ylim([0.0, 1.0])
ax.set_xticks(np.linspace(int(xmin), int(xmax), 9,endpoint=True))
#ax.set_yticks(np.linspace(xmin, xmax, 5,endpoint=True))
#ax.set_xticklabels(['%1.1f' %elem for elem in np.linspace(xmin, xmax,5,endpoint=True)])
#ax.set_yticklabels(['%1.1f' %elem for elem in np.linspace(xmin, xmax,5,endpoint=True)])
dos_values = np.real(MY_MODEL.get_dos())
ax.plot(xvalues / T_CST, dos_values)
Out[107]:
In [108]:
print MY_MODEL._use_assaad
#print MY_MODEL._eigen_values
#print MY_MODEL._hamiltonian
In [109]:
#T_CST = 1.0
BCS_PARAMS = {"width":15}
MY_MODEL.set_params(BCS_PARAMS)
print MY_MODEL._uniform_phase
#print MY_MODEL._use_assaad
#print MY_MODEL._hamiltonian
#print MY_MODEL._eigen_values
#print MY_MODEL._unitary_matrix
#print MY_MODEL.d1phase_array
In [110]:
MC_Params = {"seed": 222315, "intervals": 100,
"target_snapshots": 10}
MY_DRIVER = MCMCDriver(MY_MODEL, MC_Params)
In [111]:
MC_PARAMS = {"intervals": 100,
"target_snapshots": 20}
MY_DRIVER.set_params(MC_PARAMS)
print MY_MODEL._uniform_phase
In [112]:
print MY_DRIVER
print MY_DRIVER.params
In [113]:
MY_DRIVER.mc_object.temperature = 150
In [114]:
MY_DRIVER.thermalize(20000)
In [115]:
fig, ax = plt.subplots(figsize = (10, 8), dpi=100, frameon=False)
x_axis_ampl = 4.5
nb_ticks = min(1001, max(101, 1 + MY_MODEL.lattice.n_sites))
xvalues = np.linspace(-x_axis_ampl, x_axis_ampl, nb_ticks, endpoint=True)
#ymin = 0.0
#ymax = 0.5
xmin = -x_axis_ampl
xmax = x_axis_ampl
ax.set_xlim([xmin, xmax])
#ax.set_ylim([0.0, 1.0])
ax.set_xticks(np.linspace(int(xmin), int(xmax), 9,endpoint=True))
#ax.set_yticks(np.linspace(xmin, xmax, 5,endpoint=True))
#ax.set_xticklabels(['%1.1f' %elem for elem in np.linspace(xmin, xmax,5,endpoint=True)])
#ax.set_yticklabels(['%1.1f' %elem for elem in np.linspace(xmin, xmax,5,endpoint=True)])
dos_values = np.real(MY_DRIVER.compute_average_dos())
ax.plot(xvalues/T_CST, dos_values)
In [7]:
#300K
temps = [150, 225, 300, 450, 600, 1000]
names = ['../Source/result_' + str(temp)+'.txt' for temp in temps]
input_files = [np.loadtxt(name) for name in names]
In [8]:
fig, ax = plt.subplots(figsize = (10, 8), dpi=100, frameon=False)
x_axis_ampl = 4.2
nb_ticks = 1001
xvalues = np.linspace(-x_axis_ampl*0.25, x_axis_ampl*0.25, nb_ticks, endpoint=True)
#ymin = 0.0
#ymax = 0.5
xmin = -x_axis_ampl
xmax = x_axis_ampl
ax.set_xlim([xmin, xmax])
ax.set_ylim([0.0, 2.0])
ax.set_xticks(np.linspace(int(xmin), int(xmax), 9,endpoint=True))
#ax.set_yticks(np.linspace(xmin, xmax, 5,endpoint=True))
#ax.set_xticklabels(['%1.1f' %elem for elem in np.linspace(xmin, xmax,5,endpoint=True)])
#ax.set_yticklabels(['%1.1f' %elem for elem in np.linspace(xmin, xmax,5,endpoint=True)])
for i in range(len(input_files)):
ax.plot(xvalues/ 0.25, input_files[i], ls = '-', label = str(temps[i]))
ax.legend(loc=2)
plt.savefig("DOS.pdf")
In [9]:
#200K
out = np.loadtxt('result.txt')
In [10]:
fig, ax = plt.subplots(figsize = (10, 8), dpi=100, frameon=False)
x_axis_ampl = 4.2
nb_ticks = 1001
xvalues = np.linspace(-x_axis_ampl*0.25, x_axis_ampl*0.25, nb_ticks, endpoint=True)
#ymin = 0.0
#ymax = 0.5
xmin = -x_axis_ampl
xmax = x_axis_ampl
ax.set_xlim([xmin, xmax])
#ax.set_ylim([0.0, 1.0])
ax.set_xticks(np.linspace(int(xmin), int(xmax), 9,endpoint=True))
#ax.set_yticks(np.linspace(xmin, xmax, 5,endpoint=True))
#ax.set_xticklabels(['%1.1f' %elem for elem in np.linspace(xmin, xmax,5,endpoint=True)])
#ax.set_yticklabels(['%1.1f' %elem for elem in np.linspace(xmin, xmax,5,endpoint=True)])
ax.plot(xvalues/ 0.25, out)
Out[10]:
In [ ]: