1

我是 ASE(一个 Python 包)的初学者,并尝试使用 ASE 的 ABINIT(DFT 代码)计算器。我的操作系统是 UBUNTU。我已经下载了 ABINIT 二进制代码并将其提取到 /home/work/abinit-5.4.3 并尝试导出以下变量

export ABINIT_SCRIPT=/home/work/abinit.py
export ABINIT_PP_PATH=/home/work/abinit-5.3.4/tests/Psps_for_test

在 /home/work/ 的 abinit.py 中,我有

import os
abinit = '/home/work/abinit-5.3.4'
exitcode = os.system('%s < %s.files > %s.log' % (abinit, label, label))

但是,当我尝试运行简单的 Si 批量模拟时,出现以下错误:

Traceback (most recent call last):
  File "Test_ASE_Abinit.py", line 21, in <module>
    e = bulk.get_potential_energy()
  File "/usr/lib/python2.7/dist-packages/ase/atoms.py", line 548, in get_potential_energy
    return self._calc.get_potential_energy(self)
  File "/usr/lib/python2.7/dist-packages/ase/calculators/abinit.py", line 204, in get_potential_energy
    self.update(atoms)
  File "/usr/lib/python2.7/dist-packages/ase/calculators/abinit.py", line 103, in update
    self.initialize(atoms)
  File "/usr/lib/python2.7/dist-packages/ase/calculators/abinit.py", line 199, in initialize
    raise RuntimeError('No pseudopotential for %s!' % symbol)
RuntimeError: No pseudopotential for Si!

尽管我将它放在文件夹中,但似乎找不到赝势,我也尝试过铝并得到相同的错误。

- - - - - - 编辑 - - - - - - - - - - - - - - - - - - -

我的 ASE-Python 代码是:

from ase import *
from ase.calculators.abinit import Abinit

a0 = 5.43
bulk = Atoms('Si2', [(0, 0, 0),
                     (0.25, 0.25, 0.25)],
             pbc=True)
b = a0 / 2
bulk.set_cell([(0, b, b),
               (b, 0, b),
               (b, b, 0)], scale_atoms=True)

calc = Abinit(label='Si',
              nbands=8,
              xc='PBE',
              ecut=50 * Ry,
              mix=0.01,
              kpts=[10, 10, 10])

bulk.set_calculator(calc)
e = bulk.get_potential_energy()
4

0 回答 0