本文整理汇总了Python中vasp.Vasp.clone方法的典型用法代码示例。如果您正苦于以下问题:Python Vasp.clone方法的具体用法?Python Vasp.clone怎么用?Python Vasp.clone使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vasp.Vasp
的用法示例。
在下文中一共展示了Vasp.clone方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Vasp
# 需要导入模块: from vasp import Vasp [as 别名]
# 或者: from vasp.Vasp import clone [as 别名]
from vasp import Vasp
for U in [2.0, 4.0, 6.0]:
## Cu2O ########################################
calc = Vasp('bulk/Cu2O')
calc.clone('bulk/Cu2O-U={0}'.format(U))
calc.set(ldau=True, # turn DFT+U on
ldautype=2, # select simplified rotationally invariant option
ldau_luj={'Cu':{'L':2, 'U':U, 'J':0.0},
'O':{'L':-1, 'U':0.0, 'J':0.0}},
ldauprint=1,
ibrion=-1, # do not rerelax
nsw=0)
atoms1 = calc.get_atoms()
cu2o_energy = atoms1.get_potential_energy() / (len(atoms1) / 3)
## CuO ########################################
calc = Vasp('bulk/CuO')
calc.clone('bulk/CuO-U={0}'.format(U))
calc.set(ldau=True, # turn DFT+U on
ldautype=2, # select simplified rotationally invariant option
ldau_luj={'Cu':{'L':2, 'U':U, 'J':0.0},
'O':{'L':-1, 'U':0.0, 'J':0.0}},
ldauprint=1,
ibrion=-1, # do not rerelax
nsw=0)
atoms2 = calc.get_atoms()
cuo_energy = atoms2.get_potential_energy() / (len(atoms2) / 2)
## O2 ########################################
# make sure to use the same cutoff energy for the O2 molecule!
calc = Vasp('molecules/O2-sp-triplet-400')
atoms = calc.get_atoms()
o2_energy = atoms.get_potential_energy()
示例2: Vasp
# 需要导入模块: from vasp import Vasp [as 别名]
# 或者: from vasp.Vasp import clone [as 别名]
from vasp import Vasp
calc = Vasp('bulk/tio2/step1-0.90')
calc.clone('bulk/tio2/step2-0.90')
#calc.set(isif=4)
print calc.set(isif=4)
print calc.calculation_required()
示例3: Vasp
# 需要导入模块: from vasp import Vasp [as 别名]
# 或者: from vasp.Vasp import clone [as 别名]
from vasp import Vasp
calc = Vasp('bulk/CuPd-cls-0')
calc.clone('bulk/CuPd-cls-1')
calc.set(ibrion=None,
isif=None,
nsw=None,
setups=[[0, 'Cu']], # Create separate entry in POTCAR for atom index 0
icorelevel=2, # Perform core level shift calculation
clnt=0, # Excite atom index 0
cln=2, # 2p3/2 electron for Cu core level shift
cll=1,
clz=1)
calc.update()
示例4: Vasp
# 需要导入模块: from vasp import Vasp [as 别名]
# 或者: from vasp.Vasp import clone [as 别名]
from vasp import Vasp
calc = Vasp('bulk/tio2/step3')
atoms = calc.get_atoms()
print 'default ismear: ', atoms.get_potential_energy()
calc.clone('bulk/tio2/step4')
calc.set(ismear=-5,
nsw=0)
atoms = calc.get_atoms()
print 'ismear=-5: ', atoms.get_potential_energy()
示例5: Vasp
# 需要导入模块: from vasp import Vasp [as 别名]
# 或者: from vasp.Vasp import clone [as 别名]
from vasp import Vasp
wd = 'bulk/Si-bandstructure'
calc = Vasp('bulk/Si-selfconsistent')
calc.clone(wd)
kpts = [[0.5, 0.5, 0.0], # L
[0, 0, 0], # Gamma
[0, 0, 0],
[0.5, 0.5, 0.5]] # X
calc.set(kpts=kpts,
reciprocal=True,
kpts_nintersections=10,
icharg=11)
print calc.run()
示例6: Vasp
# 需要导入模块: from vasp import Vasp [as 别名]
# 或者: from vasp.Vasp import clone [as 别名]
from vasp import Vasp
from enthought.mayavi import mlab
from ase.data import vdw_radii
from ase.data.colors import cpk_colors
calc = Vasp('molecules/simple-co')
calc.clone('molecules/co-chg')
calc.set(lcharg=True)
calc.stop_if(calc.potential_energy is None)
atoms = calc.get_atoms()
x, y, z, cd = calc.get_charge_density()
# make a white figure
mlab.figure(1, bgcolor=(1, 1, 1))
# plot the atoms as spheres
for atom in atoms:
mlab.points3d(atom.x,
atom.y,
atom.z,
#this determines the size of the atom
scale_factor=vdw_radii[atom.number] / 5.,
resolution=20,
# a tuple is required for the color
color=tuple(cpk_colors[atom.number]),
scale_mode='none')
# draw the unit cell - there are 8 corners, and 12 connections
a1, a2, a3 = atoms.get_cell()
origin = [0, 0, 0]
cell_matrix = [[origin, a1],
[origin, a2],
[origin, a3],
[a1, a1 + a2],
[a1, a1 + a3],
示例7: Vasp
# 需要导入模块: from vasp import Vasp [as 别名]
# 或者: from vasp.Vasp import clone [as 别名]
# perform a climbing image NEB calculation
from vasp import Vasp
calc = Vasp('surfaces/Pt-O-fcc-hcp-neb')
calc.clone('surfaces/Pt-O-fcc-hcp-cineb')
calc.set(ichain=0, lclimb=True)
images, energies = calc.get_neb()
calc.plot_neb(show=False)
import matplotlib.pyplot as plt
plt.savefig('images/pt-o-cineb.svg')
plt.show()
示例8: Vasp
# 需要导入模块: from vasp import Vasp [as 别名]
# 或者: from vasp.Vasp import clone [as 别名]
from vasp import Vasp
factors = [0.9, 0.95, 1.0, 1.05, 1.1] # to change volume by
energies1, volumes1 = [], [] # from step 1
energies, volumes = [], [] # for step 2
ready = True
for f in factors:
calc = Vasp('bulk/tio2/step1-{0:1.2f}'.format(f))
atoms = calc.get_atoms()
energies1.append(atoms.get_potential_energy())
volumes1.append(atoms.get_volume())
calc.clone('bulk/tio2/step2-{0:1.2f}'.format(f))
calc.set(isif=4)
# You have to get the atoms again.
atoms = calc.get_atoms()
energies.append(atoms.get_potential_energy())
volumes.append(atoms.get_volume())
print(energies, volumes)
calc.stop_if(None in energies)
import matplotlib.pyplot as plt
plt.plot(volumes1, energies1, volumes, energies)
plt.xlabel('Vol. ($\AA^3)$')
plt.ylabel('Total energy (eV)')
plt.legend(['step 1', 'step 2'], loc='best')
plt.savefig('images/tio2-step2.png')
示例9: Vasp
# 需要导入模块: from vasp import Vasp [as 别名]
# 或者: from vasp.Vasp import clone [as 别名]
from vasp import Vasp
calc = Vasp('surfaces/Pt-slab-O-fcc')
calc.clone('surfaces/Pt-slab-O-fcc-vib')
calc.set(ibrion=5, # finite differences with selective dynamics
nfree=2, # central differences (default)
potim=0.015, # default as well
ediff=1e-8,
nsw=1)
atoms = calc.get_atoms()
f, v = calc.get_vibrational_modes(0)
print 'Elapsed time = {0} seconds'.format(calc.get_elapsed_time())
allfreq = calc.get_vibrational_modes()[0]
from ase.units import meV
c = 3e10 # cm/s
h = 4.135667516e-15 # eV*s
print 'vibrational energy = {0} eV'.format(f)
print 'vibrational energy = {0} meV'.format(f/meV)
print 'vibrational freq = {0} 1/s'.format(f/h)
print 'vibrational freq = {0} cm^{{-1}}'.format(f/(h*c))
print
print 'All energies = ', allfreq
示例10: Vasp
# 需要导入模块: from vasp import Vasp [as 别名]
# 或者: from vasp.Vasp import clone [as 别名]
from vasp import Vasp
from ase.dft import DOS
calc = Vasp('bulk/pd-dos')
calc.clone('bulk/pd-dos-ismear-5')
bulk = calc.get_atoms()
calc.set(ismear=-5)
bulk.get_potential_energy()
dos = DOS(calc, width=0.2)
d = dos.get_dos()
e = dos.get_energies()
import pylab as plt
plt.plot(e, d)
plt.xlabel('energy [eV]')
plt.ylabel('DOS')
plt.savefig('images/pd-dos-ismear-5.png')
示例11: Vasp
# 需要导入模块: from vasp import Vasp [as 别名]
# 或者: from vasp.Vasp import clone [as 别名]
slab.center()
calc = Vasp('surfaces/Al-Na-dip',
xc='PBE',
encut=340,
kpts=[2, 2, 1],
lcharg=True,
idipol=3, # only along z-axis
lvtot=True, # write out local potential
lvhar=True, # write out only electrostatic potential, not xc pot
atoms=slab)
calc.stop_if(calc.potential_energy is None)
x, y, z, cd = calc.get_charge_density()
n0, n1, n2 = cd.shape
nelements = n0 * n1 * n2
voxel_volume = slab.get_volume() / nelements
total_electron_charge = cd.sum() * voxel_volume
electron_density_center = np.array([(cd * x).sum(),
(cd * y).sum(),
(cd * z).sum()])
electron_density_center *= voxel_volume
electron_density_center /= total_electron_charge
print 'electron-density center = {0}'.format(electron_density_center)
uc = slab.get_cell()
# get scaled electron charge density center
sedc = np.dot(np.linalg.inv(uc.T), electron_density_center.T).T
# we only write 4 decimal places out to the INCAR file, so we round here.
sedc = np.round(sedc, 4)
calc.clone('surfaces/Al-Na-dip-step2')
# now run step 2 with dipole set at scaled electron charge density center
calc.set(ldipol=True, dipol=sedc)
print(calc.potential_energy)
示例12: Vasp
# 需要导入模块: from vasp import Vasp [as 别名]
# 或者: from vasp.Vasp import clone [as 别名]
from vasp import Vasp
calc = Vasp('bulk/Fe-bulk')
calc.clone('bulk/Fe-elastic')
calc.set(ibrion=6, #
isif=3, # gets elastic constants
potim=0.05, # displacements
nsw=1,
nfree=2)
print(calc.potential_energy)
示例13: Vasp
# 需要导入模块: from vasp import Vasp [as 别名]
# 或者: from vasp.Vasp import clone [as 别名]
from vasp import Vasp
calc = Vasp('bulk/Al-bulk')
calc.clone('bulk/Al-elastic')
calc.set(ibrion=6, #
isif=3, # gets elastic constants
potim=0.015, # displacements
nsw=1,
nfree=2)
calc.wait(abort=True)
EM = calc.get_elastic_moduli()
print(EM)
c11 = EM[0, 0]
c12 = EM[0, 1]
B = (c11 + 2 * c12) / 3.0
print(B)
示例14: Vasp
# 需要导入模块: from vasp import Vasp [as 别名]
# 或者: from vasp.Vasp import clone [as 别名]
atoms[0].magmom = 1
calc = Vasp('bulk/Ni-PBE',
ismear=-5,
kpts=[5, 5, 5],
xc='PBE',
ispin=2,
lorbit=11,
lwave=True, lcharg=True, # store for reuse
atoms=atoms)
e = atoms.get_potential_energy()
print('PBE energy: ',e)
calc.stop_if(e is None)
dos = DOS(calc, width=0.2)
e_pbe = dos.get_energies()
d_pbe = dos.get_dos()
calc.clone('bulk/Ni-PBE0')
calc.set(xc='pbe0')
atoms = calc.get_atoms()
pbe0_e = atoms.get_potential_energy()
if atoms.get_potential_energy() is not None:
dos = DOS(calc, width=0.2)
e_pbe0 = dos.get_energies()
d_pbe0 = dos.get_dos()
## HSE06
calc = Vasp('bulk/Ni-PBE')
calc.clone('bulk/Ni-HSE06')
calc.set(xc='hse06')
atoms = calc.get_atoms()
hse06_e = atoms.get_potential_energy()
if hse06_e is not None:
dos = DOS(calc, width=0.2)
示例15: Vasp
# 需要导入模块: from vasp import Vasp [as 别名]
# 或者: from vasp.Vasp import clone [as 别名]
from vasp import Vasp
from ase import Atom, Atoms
import logging
calc = Vasp('bulk/Cu2O')
calc.clone('bulk/Cu2O-U=4.0')
calc.set(ldau=True, # turn DFT+U on
ldautype=2, # select simplified rotationally invariant option
ldau_luj={'Cu':{'L':2, 'U':4.0, 'J':0.0},
'O':{'L':-1, 'U':0.0, 'J':0.0}},
ldauprint=1,
ibrion=-1, #do not rerelax
nsw=0)
atoms = calc.get_atoms()
print(atoms.get_potential_energy())
#print calc