Skip to content

Commit 3788ba4

Browse files
committed
Some modifications
1 parent cb62002 commit 3788ba4

File tree

1 file changed

+16
-20
lines changed

1 file changed

+16
-20
lines changed

abipy/dfpt/qha.py

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -318,28 +318,26 @@ def get_abc(self, tstart=0, tstop=800 , num=100):
318318
Returns: |matplotlib-Figure|
319319
"""
320320
f = self.fit_energies(tstart, tstop, num)
321-
param = np.zeros((num,4))
322-
param = np.zeros((num,3))
323321
param=np.polyfit(self.volumes, self.lattice_a , 3)
324322
param0=[3*param[0],2*param[1],param[2]]
325323
pa = np.poly1d(param)
326324
dpa=np.poly1d(param0)
327325
aa_qha=pa(f.min_vol)
328-
daa_qha=dpa(f.min_vol)
326+
daa_dv_qha=dpa(f.min_vol)
329327
param=np.polyfit(self.volumes, self.lattice_b , 3)
330328
param0=[3*param[0],2*param[1],param[2]]
331329
pb = np.poly1d(param)
332330
dpb = np.poly1d(param0)
333331
bb_qha=pb(f.min_vol)
334-
dbb_qha=dpb(f.min_vol)
332+
dbb_dv_qha=dpb(f.min_vol)
335333
param=np.polyfit(self.volumes, self.lattice_c , 3)
336334
param0=[3*param[0],2*param[1],param[2]]
337335
pc = np.poly1d(param)
338336
dpc = np.poly1d(param0)
339337
cc_qha=pc(f.min_vol)
340-
dcc_qha=dpc(f.min_vol)
338+
dcc_dv_qha=dpc(f.min_vol)
341339

342-
return aa_qha,bb_qha,cc_qha, daa_qha,dbb_qha,dcc_qha
340+
return aa_qha,bb_qha,cc_qha, daa_dv_qha,dbb_dv_qha,dcc_dv_qha
343341

344342
def get_angles(self, tstart=0, tstop=800 , num=100):
345343
"""
@@ -356,8 +354,6 @@ def get_angles(self, tstart=0, tstop=800 , num=100):
356354
Returns: |matplotlib-Figure|
357355
"""
358356
f = self.fit_energies(tstart, tstop, num)
359-
param = np.zeros((num,4))
360-
param0 = np.zeros((num,3))
361357
param=np.polyfit(self.volumes, self.angles_alpha, 3)
362358
pa = np.poly1d(param)
363359
alpha=pa(f.min_vol)
@@ -390,21 +386,21 @@ def plot_thermal_expansion_coeff_abc(self, tstart=0, tstop=800, num=100, tref=No
390386
tmesh = np.linspace(tstart, tstop, num)
391387

392388
alpha_v = self.get_thermal_expansion_coeff(tstart, tstop, num, tref)
393-
aa_qha,bb_qha,cc_qha, daa_qha,dbb_qha,dcc_qha = self.get_abc(tstart, tstop, num)
389+
aa,bb,cc, daa_dv,dbb_dv,dcc_dv = self.get_abc(tstart, tstop, num)
394390

395391
if tref is None:
396392
f = self.fit_energies(tstart, tstop, num)
397393
dv_dt=alpha_v*f.min_vol[1:-1]
398-
alpha_qha_a = dv_dt*daa_qha[1:-1]/ aa_qha[1:-1]
399-
alpha_qha_b = dv_dt*dbb_qha[1:-1]/ bb_qha[1:-1]
400-
alpha_qha_c = dv_dt*dcc_qha[1:-1]/ cc_qha[1:-1]
394+
alpha_qha_a = dv_dt*daa_dv[1:-1]/ aa[1:-1]
395+
alpha_qha_b = dv_dt*dbb_dv[1:-1]/ bb[1:-1]
396+
alpha_qha_c = dv_dt*dcc_dv[1:-1]/ cc[1:-1]
401397
else:
402398
f0 = self.fit_energies(tref, tref, num)
403399
dv_dt=alpha_v*f0.min_vol[1:-1]
404-
aa_tref,bb_tref,cc_tref , daa_tref,dbb_tref,dcc_tref = self.get_abc(tref, tref, 1)
405-
alpha_qha_a = dv_dt*daa_qha[1:-1]/ aa_tref
406-
alpha_qha_b = dv_dt*dbb_qha[1:-1]/ bb_tref
407-
alpha_qha_c = dv_dt*dcc_qha[1:-1]/ cc_tref
400+
aa_tref,bb_tref,cc_tref , daa_dv_tref,dbb_dv_tref,dcc_dv_tref = self.get_abc(tref, tref, 1)
401+
alpha_qha_a = dv_dt*daa_dv[1:-1]/ aa_tref
402+
alpha_qha_b = dv_dt*dbb_dv[1:-1]/ bb_tref
403+
alpha_qha_c = dv_dt*dcc_dv[1:-1]/ cc_tref
408404

409405
ax.plot(tmesh[1:-1] ,alpha_qha_a , color='r',lw=2 , **kwargs)
410406
ax.plot(tmesh[1:-1] ,alpha_qha_b , color='b', lw=2 )
@@ -438,11 +434,11 @@ def plot_abc_vs_t(self, tstart=0 , tstop=800, num=100, tref=None, ax=None, **kwa
438434

439435
#alpha = self.get_thermal_expansion_coeff(tstart, tstop, num, tref)
440436
tmesh = np.linspace(tstart, tstop, num)
441-
aa_qha,bb_qha,cc_qha, daa_qha,dbb_qha,dcc_qha = self.get_abc(tstart, tstop, num)
437+
aa,bb,cc, daa_dv,dbb_dv,dcc_dv = self.get_abc(tstart, tstop, num)
442438

443-
ax.plot(tmesh ,aa_qha , color='r',lw=2, **kwargs )
444-
ax.plot(tmesh ,bb_qha , color='b', lw=2 )
445-
ax.plot(tmesh ,cc_qha , color='m', lw=2 )
439+
ax.plot(tmesh ,aa , color='r',lw=2, **kwargs )
440+
ax.plot(tmesh ,bb , color='b', lw=2 )
441+
ax.plot(tmesh ,cc , color='m', lw=2 )
446442
ax.set_xlabel(r'T (K)')
447443
ax.legend(["a(V(T))","b(V(T))","c(V(T))"])
448444
ax.grid(True)

0 commit comments

Comments
 (0)