SST Lab Dokuwiki Header header picture

ユーザ用ツール

サイト用ツール


ab_initio:first_calculation

初めての第一原理計算(ase3/Jacapo編)

pythonがインタープリタであることを活かして、一つ一つ入力しながら一酸化炭素(CO)の全エネルギーを計算してみよう。

4Ax4Ax4Aの箱の中央に炭素(C)原子を、そこから1.1A離れたところに酸素原子を配置し、 価電子の状態をエネルギーの低い方から6個計算する。箱は周期的に並べられていると考える。

まず、python を起動する。

  $ python
  >>> from ase import Atoms
  >>> box = Atoms(cell = (4,4,4), pbc = True)

これで、周期的に並べられる4Ax4Ax4Aの箱を用意したことになる。

  >>> from ase import Atom
  >>> box.append(Atom('C', (2, 2, 2)))
  >>> box.append(Atom('O', (3.1, 2, 2)))

これで、炭素(C)原子を箱の中心に、酸素(O)原子を中心からx方向に1.1A離れた場所に置いた事になる。

  >>> from ase.calculators.jacapo import Jacapo
  >>> c = Jacapo(nbands = 6)
  >>> box.set_calculator(c)

計算条件、ここでは「6個の電子状態を計算する」という条件を設定している。 COの価電子数は4(炭素)+6(酸素)で10。スピンの多重度2で割ると5個。最低5個の状態を計算しなければならないので1増やして6に設定している。1)

  >>> c.calculate()

とすることで計算はスタートする。2)

プロンプト(> > >)が戻ってきたら

  >>> print box.get_total_energy()
-591.60403519340969

と入力すれば全エネルギーが表示される。

旧バージョン(ASE2/Dacapo編)

1)
実際の計算ではもう少し大きめにする。どのくらい大きめにするかは一度計算してみてその結果から決める。
2)
この例以外はこのやり方でやってはいけない。とっても時間がかる。
ab_initio/first_calculation.txt · 最終更新: 2022/08/23 13:34 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki