def get_fcc_unitcell(p):
c = [( 0.0, p/2.0, p/2.0),
(p/2.0, 0.0, p/2.0),
(p/2.0, p/2.0, 0.0)]
return c
b = 4.05
from ase import Atom, Atoms
from ase.calculators.jacapo import Jacapo
bulk = Atoms([Atom('Al', (0, 0, 0))], pbc = True)
para = {}
para.update(kpts = (4, 4, 4))
para.update(nbands = 6)
para.update(ft = 0.01)
print 'Volume(A^3) Energy(eV)'
for fraction in [0.9, 0.95, 1.0, 1.05, 1.1]:
ncfile = 'bulkAl_%1.2f.nc' % fraction
new_cell = get_fcc_unitcell(b*(fraction**(1./3.)))
bulk.set_cell(new_cell, scale_atoms = True)
para.update(atoms = bulk)
solver = Jacapo(ncfile, **para)
vol = bulk.get_volume()
eng = bulk.get_potential_energy()
print vol, eng
$ python Al_equation_of_state.py
Volume(A^3) Energy(eV)
14.946778125 -56.4090488622
15.7771546875 -56.4473195776
16.60753125 -56.4583266527
17.4379078125 -56.4483594784
18.268284375 -56.4233507908
$
目次へもどる