voluPhon = VoluPhon("config.ini", prcntVol) voluPhon.setA(a_range[indexRange], 'polynom', 1, True) c_range = a_range*c_a_range voluPhon.setC(c_range[indexRange], 'polynom', 1, True) # Generate phonon doses from different fc files # for i in indexRange: # os.system('cp ' + str(i) + '_' + fc_name + ' ' + fc_name) # qecalc.matdynLauncher() # os.system('cp ' + matdynfldos + ' ' + str(i) + '_' + matdynfldos ) #plot free energies: for temperature in temperatures: lines = '' phonon = [] for i,v in zip(indexRange, prcntVol): axis, dos = qecalc.getPhononDOS(str(i) + '_' + matdynfldos) phonTherm = PhononThermodynamics(axis, dos) Cv = phonTherm.Cv(temperature) phonon.append(phonTherm.freeEnergy(temperature)) totalFreeEnergy = e_total[i] + phonon[-1] lines = lines + '%f %f %f %f %f\n'%(v, \ totalFreeEnergy, e_total[i], phonon[-1], Cv) file = open(str(temperature) + '_free_energy.out', 'w') file.write(lines) file.close() freeEnergy = FreeEnergy(prcntVol, e_total, phonon) optPrcntVolume = freeEnergy.minimizeTotalFreeEnergy(finePrcntVol[0], finePrcntVol[-1]) print "\nOptimized lattice parameters:" a = voluPhon.a.fittedValue(optPrcntVolume) c = voluPhon.c.fittedValue(optPrcntVolume)
voluPhon = VoluPhon("config.ini", prcntVol) voluPhon.setA(a_range[indexRange], 'polynom', 1, True) c_range = a_range * c_a_range voluPhon.setC(c_range[indexRange], 'polynom', 1, True) # Generate phonon doses from different fc files for i in indexRange: os.system('cp ' + str(i) + '_' + fc_name + ' ' + fc_name) qecalc.matdynLauncher() os.system('cp ' + matdynfldos + ' ' + str(i) + '_' + matdynfldos) #plot free energies: for temperature in temperatures: lines = '' phonon = [] for i, v in zip(indexRange, prcntVol): axis, dos = qecalc.getPhononDOS(str(i) + '_' + matdynfldos) phonTherm = PhononThermodynamics(axis, dos) Cv = phonTherm.Cv(temperature) phonon.append(phonTherm.freeEnergy(temperature)) totalFreeEnergy = e_total[i] + phonon[-1] lines = lines + '%f %f %f %f %f\n'%(v, \ totalFreeEnergy, e_total[i], phonon[-1], Cv) file = open(str(temperature) + '_free_energy.out', 'w') file.write(lines) file.close() freeEnergy = FreeEnergy(prcntVol, e_total, phonon) optPrcntVolume = freeEnergy.minimizeTotalFreeEnergy( finePrcntVol[0], finePrcntVol[-1]) print "\nOptimized lattice parameters:" a = voluPhon.a.fittedValue(optPrcntVolume)