In [1]:
from Band3DInterp import *
In [35]:
fig = plt.figure(figsize=(1.5*6.5,1.5*3.8))
gs = matplotlib.gridspec.GridSpec( 1,1)
ax0 = fig.add_subplot( gs[0,0])
for ax in [ax0]:
ax.set_xlabel("$V_{0} (E_{R})$",fontsize=16)
ax.grid()
ax.set_ylim(0.,15.)
ax.set_xlim(0.,20.)
ax0.set_ylabel("$E_{R}$",fontsize=16,rotation=0)
v0 = np.linspace(0.1,40,80.)
v03d = np.outer( v0, np.ones(3))
c = ['blue', 'red', 'green']
fc = ['lightblue','pink','limegreen']
for i in range(3):
if i>1: continue
Eb = bands3dinterpvec(v03d,i)
ax.fill_between( v0 , Eb[:,0], Eb[:,1], \
color=c[i], facecolor=c[i], alpha=0.7, zorder=4)
ax.plot( v0, Eb[:,1], color=c[i])
ax.plot( v0, Eb[:,0], color=c[i],\
label="Band = %d"%i)
if i==2: labelstr = 'h.osc.'
else: labelstr = None
ax.plot( v0, hosc3d(i,v0), color='black', label=labelstr, zorder=1 )
zfit = np.polyfit( v0, Eb[:,0] - (3.+i)*np.sqrt(v0) , 4)
#print zfit
z = np.poly1d( zfit )
ax0.plot( v0, z(v0) + (3.+i)*np.sqrt(v0), '--', lw=4, color=c[i])
print "Band %d Bottom"%i
for ci,coef in enumerate(zfit):
print "( %+0.4e )* v0^%d" % ( coef, len(zfit)-1-ci )
zfit = np.polyfit( v0, Eb[:,1] , 5)
#print zfit
z = np.poly1d( zfit )
ax0.plot( v0, z(v0) , '--', lw=4, color=c[i])
print "Band %d Top"%i
for ci,coef in enumerate(zfit):
print "( %+0.4e )* v0^%d" % ( coef, len(zfit)-1-ci )
print "\n--------------"
ax0.legend( bbox_to_anchor=(1.03,1.00), \
loc='upper left', numpoints=1, \
prop={'size':12}, handlelength=1.1, handletextpad=0.5 )
#ax0.plot( v0, 3.*np.sqrt(v0), lw=5, color='black' )
gs.tight_layout(fig, rect=[0.,0.,0.8,1.0])
#fig.savefig('BandStructure_figures/bands3d_V0_interp.png',dpi=240)
ax0.set_xlim(0., 20)
ax0.set_ylim(0., 10.)
Out[35]:
In [ ]: