pythonがインタープリタであることを活かして、一つ一つ入力しながら一酸化炭素(CO)の全エネルギーを計算してみよう。
4Ax4Ax4Aの箱の中央に炭素(C)原子を、そこから1.1A離れたところに酸素原子を配置し、 価電子の状態をエネルギーの低い方から6個計算する。箱は周期的に並べられていると考える。
まず、python を起動する。
$ python
>>> from ASE import ListOfAtoms >>> box = ListOfAtoms([], cell = (4,4,4))
これで、周期的に並べられる4Ax4Ax4Aの箱を用意したことになる。
>>> from ASE import Atom >>> box.append(Atom('C', (2, 2, 2))) >>> box.append(Atom('O', (3.1, 2, 2)))
これで、CO分子を箱に入れたことになる。
>>> from Dacapo import Dacapo >>> c = Dacapo(nbands = 6) >>> box.SetCalculator(c)
計算条件、ここでは「6個の電子状態を計算する」という条件を設定している。 COの価電子数は4(炭素)+6(酸素)で10。スピンの多重度2で割ると5個。最低5個の状態を計算しなければならないので1増やして6に設定している。1)
>>> c.Calculate()
とすることで計算はスタートする。2)
Running /usr/bin//dacapo_2.7.7.run ./tmp0NttLG out.nc -out out.txt -scratch . -stop stop >>>
プロンプト(»>)が戻ってきたら
>>> box.GetPotentialEnergy() -591.60403519340969
と入力すれば全エネルギーが表示される。