Step 1: プログラムの作成

一酸化炭素(CO)の計算をするプログラムをつくってみよう。ただし、プログラムの中で果物の名前が使われているところは別の名前に置き換えてもかまわないところだよ。

  1. まず、箱の中にCO分子を入れよう。必要なライブラリを読み込むよ。
    from ASE import Atom, ListOfAtoms
  2. 4Å×4Å×4Åの立方体の箱を考えて、そのど真ん中、座標で言うと(2,2,2)のところに炭素(C)原子を一つ置くよ。
    orange = ListOfAtoms([Atom('C', (2, 2, 2))], cell = (4, 4, 4))
  3. 真ん中にある炭素原子から1.1Å離れた場所に酸素(O)原子を付け加えよう。
    orange.append(Atom('O', (2 + 1.1, 2, 2)))
  4. 次は方程式を解く「計算機」を用意をしよう。
    from Dacapo import Dacapo
  5. 必要な情報は、計算する価電子の電子状態の数。炭素の価電子が4で、酸素の価電子が6、合わせて10、状態一つに2個電子は入れるからその半分の5、電子のいない状態も少し計算しておくことにして、8といういうことにしよう。
    peach = Dacapo(nbands = 8)
  6. 方程式を解く「計算機」をさっきの「原子の入った箱」と結合させると用意完了。
    orange.SetCalculator(peach) 
  7. あとは、「計算機」に「計算せよ」っていう「指令」を与えれば、方程式を解いてくれるんだ。
    peach.Calculate()

これまでのプログラムをまとめると、結局

from ASE import Atom, ListOfAtoms
orange = ListOfAtoms([Atom('C', (2, 2, 2))], cell = (4, 4, 4))
orange.append(Atom('O', (2 + 1.1, 2, 2)))
from Dacapo import Dacapo
peach = Dacapo(nbands = 8)
orange.SetCalculator(peach) 
peach.Calculate()

というプログラムができあがったはずだよ。pear.pyという名前で保存しておこう。保存するとき改行コードをUNIX(LFのみ)にするのを忘れずにね。

たった7行のプログラムで、君にも波動方程式が解ける!