seminar:graphene
差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
seminar:graphene [2019/12/03 14:59] – 作成 kimi | seminar:graphene [2019/12/05 09:15] – [単位格子の設定] kimi | ||
---|---|---|---|
行 1: | 行 1: | ||
====== 総合演習 ====== | ====== 総合演習 ====== | ||
+ | グラフェンを例に、より詳しい計算の演習を行う。 | ||
+ | |||
+ | ===== 計算の前に ===== | ||
+ | |||
+ | |||
+ | {{ : | ||
+ | ===== プログラムの概要 ===== | ||
+ | <code python> | ||
+ | a0 = 2.461 # Lattice constant of Graphene | ||
+ | |||
+ | from math import sqrt | ||
+ | c1 = ( a0*sqrt(3.0)/ | ||
+ | c2 = (-a0*sqrt(3.0)/ | ||
+ | c3 = (0.0, 0.0, a0*8.0) | ||
+ | |||
+ | from ase import Atom | ||
+ | atom1 = Atom(' | ||
+ | atom2 = Atom(' | ||
+ | |||
+ | from ase import Atoms | ||
+ | box1 = Atoms([atom1, | ||
+ | box1.set_cell([c1, | ||
+ | |||
+ | from ase.calculators.jacapo import Jacapo | ||
+ | solver1 = Jacapo(nbands = 8, kpts = (2, 2, 1), pw = 150, dw = 150) | ||
+ | box1.set_calculator(solver1) | ||
+ | solver1.calculate() | ||
+ | </ | ||
+ | |||
+ | ===== 単位格子の設定 ===== | ||
+ | <code python> | ||
+ | b0 = 1.42 # C-C bond length | ||
+ | |||
+ | from math import sqrt | ||
+ | a0 = b0*sqrt(3.0) | ||
+ | ax = a0*sqrt(3.0)/ | ||
+ | ay = a0/2.0 | ||
+ | az = a0*8 # Height of 3D unit cell | ||
+ | c1 = ( ax, ay, 0.0) | ||
+ | c2 = (-ax, ay, 0.0) | ||
+ | c3 = (0.0, 0.0, az) | ||
+ | |||
+ | unit_cell = [c1, c2, c3] # Unit cell | ||
+ | </ | ||
+ | ===== 原子の位置と種類 ===== | ||
+ | |||
+ | <code python> | ||
+ | |||
+ | from ase import Atom | ||
+ | atom1 = Atom(' | ||
+ | atom2 = Atom(' | ||
+ | |||
+ | list_of_atoms = [atom1, atom2] | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== 計算パラメーターの設定 ===== | ||
+ | <code python> | ||
+ | # ------------------------- | ||
+ | # Calculational conditions | ||
+ | # ------------------------- | ||
+ | kwargs = {} | ||
+ | kwargs[' | ||
+ | kwargs[' | ||
+ | kwargs[' | ||
+ | kwargs[' | ||
+ | </ | ||
+ | |||
+ | ===== 計算の実行 ===== | ||
+ | <code python> | ||
+ | # --------------------------- | ||
+ | # Common part of calculations | ||
+ | # --------------------------- | ||
+ | from ase import Atoms | ||
+ | box1 = Atoms(list_of_atoms, | ||
+ | box1.set_cell(unit_cell, | ||
+ | from ase.calculators.jacapo import Jacapo | ||
+ | solver1 = Jacapo(**kwargs) | ||
+ | box1.set_calculator(solver1) | ||
+ | solver1.calculate() | ||
+ | </ | ||
+ | |||
+ | ===== 結果の出力 ===== | ||
+ | <code python> | ||
+ | # ------------------ | ||
+ | # Output on screen | ||
+ | # ------------------ | ||
+ | print box1.get_total_energy() | ||
+ | </ | ||
+ | |||
+ | |||
seminar/graphene.txt · 最終更新: 2022/08/23 13:34 by 127.0.0.1