本文整理汇总了Python中vasp.Vasp.wait方法的典型用法代码示例。如果您正苦于以下问题:Python Vasp.wait方法的具体用法?Python Vasp.wait怎么用?Python Vasp.wait使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vasp.Vasp
的用法示例。
在下文中一共展示了Vasp.wait方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Vasp
# 需要导入模块: from vasp import Vasp [as 别名]
# 或者: from vasp.Vasp import wait [as 别名]
xc='PBE',
encut=300,
ibrion=2,
nsw=5,
atoms=atoms)
electronicenergy = atoms.get_potential_energy()
# next, we get vibrational modes
calc2 = Vasp('molecules/n2-vib',
xc='PBE',
encut=300,
ibrion=6,
nfree=2,
potim=0.15,
nsw=1,
atoms=atoms)
calc2.wait()
vib_freq = calc2.get_vibrational_frequencies() # in cm^1
#convert wavenumbers to energy
h = 4.1356675e-15 # eV*s
c = 3.0e10 #cm/s
vib_energies = [h*c*nu for nu in vib_freq]
print('vibrational energies\n====================')
for i,e in enumerate(vib_energies):
print('{0:02d}: {1} eV'.format(i,e))
# # now we can get some properties. Note we only need one vibrational
# energy since there is only one mode. This example does not work if
# you give all the energies because one energy is zero.
thermo = IdealGasThermo(vib_energies=vib_energies[0:0],
potentialenergy=electronicenergy, atoms=atoms,
geometry='linear', symmetrynumber=2, spin=0)
# temperature in K, pressure in Pa, G in eV
示例2: Vasp
# 需要导入模块: from vasp import Vasp [as 别名]
# 或者: from vasp.Vasp import wait [as 别名]
from vasp import Vasp
# get relaxed geometry
calc = Vasp('molecules/wgs/CO2')
CO2 = calc.get_atoms()
# now do the vibrations
calc = Vasp('molecules/wgs/CO2-vib',
xc='PBE',
encut=350,
ismear=0,
ibrion=6,
nfree=2,
potim=0.02,
nsw=1,
atoms=CO2)
calc.wait()
vib_freq = calc.get_vibrational_frequencies()
for i, f in enumerate(vib_freq):
print('{0:02d}: {1} cm^(-1)'.format(i, f))
示例3: Atoms
# 需要导入模块: from vasp import Vasp [as 别名]
# 或者: from vasp.Vasp import wait [as 别名]
import matplotlib.pyplot as plt
import numpy as np
from ase.dft import DOS
import pylab as plt
a = 3.9 # approximate lattice constant
b = a / 2.
bulk = Atoms([Atom('Pd', (0.0, 0.0, 0.0))],
cell=[(0, b, b),
(b, 0, b),
(b, b, 0)])
kpts = [8, 10, 12, 14, 16, 18, 20]
calcs = [Vasp('bulk/pd-dos-k{0}-ismear-5'.format(k),
encut=300,
xc='PBE',
kpts=[k, k, k],
atoms=bulk) for k in kpts]
Vasp.wait(abort=True)
for calc in calcs:
# this runs the calculation
if calc.potential_energy is not None:
dos = DOS(calc, width=0.2)
d = dos.get_dos() + k / 4.0
e = dos.get_energies()
plt.plot(e, d, label='k={0}'.format(k))
else:
pass
plt.xlabel('energy (eV)')
plt.ylabel('DOS')
plt.legend()
plt.savefig('images/pd-dos-k-convergence-ismear-5.png')
plt.show()
示例4: Atoms
# 需要导入模块: from vasp import Vasp [as 别名]
# 或者: from vasp.Vasp import wait [as 别名]
import numpy as np
a = 3.9 # approximate lattice constant
b = a / 2.
bulk = Atoms([Atom('Pd', (0.0, 0.0, 0.0))],
cell=[(0, b, b),
(b, 0, b),
(b, b, 0)])
calc = Vasp('bulk/pd-ados',
encut=300,
xc='PBE',
lreal=False,
rwigs={'Pd': 1.5}, # wigner-seitz radii for ados
kpts=[8, 8, 8],
atoms=bulk)
# this runs the calculation
calc.wait(abort=True)
# now get results
energies, ados = calc.get_ados(0, 'd')
# we will select energies in the range of -10, 5
ind = (energies < 5) & (energies > -10)
energies = energies[ind]
dos = ados[ind]
Nstates = np.trapz(dos, energies)
occupied = energies <= 0.0
N_occupied_states = np.trapz(dos[occupied], energies[occupied])
# first moment
ed = np.trapz(energies * dos, energies) / Nstates
# second moment
wd2 = np.trapz(energies**2 * dos, energies) / Nstates
print 'Total # states = {0:1.2f}'.format(Nstates)
print 'number of occupied states = {0:1.2f}'.format(N_occupied_states)