有限温度の計算で重要な寄与がある3次の原子間力定数の計算を行います
フォノンの分散と状態密度で作成した Si_333.harmonic.in をコピーして Si_333.cubic.in を作成してください。 そして、次のようにファイルを編集してください
&general PREFIX = Si_333_cubic MODE = suggest NAT = 54; NKD = 1 KD = Si / &interaction NORDER = 2 / &cell 10.2625 1.500000000000000 1.500000000000000 0.000000000000000 1.500000000000000 0.000000000000000 1.500000000000000 0.000000000000000 1.500000000000000 1.500000000000000 / &cutoff Si-Si None 7.3 / &position 1 0.000000000000000 0.000000000000000 0.000000000000000 1 0.083333333333333 0.083333333333333 0.083333333333333 (略) 1 0.750000000000000 0.416666666666667 0.416666666666667 /
できたらALMを実行します。
$ alm Si_333.cubic.in > Si_333.cubic.log
ALAMODEに付属のPythonスクリプトを使ってQEの入力ファイルを作成します。
$ python -m displace --QE Si_333.pw.in --mag 0.01 --prefix disp -pf Si_333_cubic.pattern_ANHARM3
今回の場合はQEの入力ファイル(disp01.pw.in, disp02.pw.in, …)が20個できます。 出てきた入力ファイルをすべてQEで実行します
$ pw.x < disp01.pw.in > disp01.pw.out $ pw.x < disp02.pw.in > disp02.pw.out (以下略) $ pw.x < disp20.pw.in > disp20.pw.out
disp01.pw.out, … に各原子にはたらく力が出力されていますので、これをALAMODEに付属のPythonスクリプトで整理します。
$ python -m extract --QE Si_333.pw.in *.pw.out > DFSET_cubic
最後にALMを使って原子間力定数を計算します。 Si_333.cubic.in をコピーして Si_333.cubic_opt.in を生成し、次の点を変更します
&general PREFIX = Si_333_cubic MODE = optimize NAT = 54; NKD = 1 KD = Si / &interaction NORDER = 2 / &cell 10.2625 1.500000000000000 1.500000000000000 0.000000000000000 1.500000000000000 0.000000000000000 1.500000000000000 0.000000000000000 1.500000000000000 1.500000000000000 / &cutoff Si-Si None 7.3 / &optimize DFSET = DFSET_cubic FC2XML = Si333.xml / &position 1 0.000000000000000 0.000000000000000 0.000000000000000 1 0.083333333333333 0.083333333333333 0.083333333333333 (略) 1 0.750000000000000 0.416666666666667 0.416666666666667 /
できたらALMを実行します
$ alm Si_333.cubic_opt.in > Si_333.cubic_opt.log
Si_333_cubic.fcs, Si_333_cubic.xmlが出力されたら成功です。
以下の Si_333.rta.in というファイルを作成します
&general PREFIX = Si_333 MODE = RTA FCSXML = Si333_cubic.xml NKD = 1; KD = Si MASS = 28.0855 DT = 1.0 / &cell 10.2625 0.500000000000000 0.500000000000000 0.000000000000000 0.500000000000000 0.000000000000000 0.500000000000000 0.000000000000000 0.500000000000000 0.500000000000000 / &kpoint 2 10 10 10 /
$ anphon Si.rta.in > Si.rta.out
結果は Si_333.kl に出力されます
ちなみに、この結果だと絶対零度で熱伝導度が発散するという物理的におかしな結果になります。 低温では端の効果が大きいので、これを取り込んだ解析を行います
$ python -m analyze_phonons --calc kappa_boundary --size 1.0e+6 Si_333.result > Si_333_boundary_1mm.kl
Si_333.rta.in をコピーして Si.rta2.in というファイルを作成します。 以下の点を編集します。
&general PREFIX = Si_333 MODE = RTA FCSXML = Si333_cubic.xml NKD = 1; KD = Si MASS = 28.0855 EMIN = 0; EMAX = 550; DELTA_E = 1.0 / &cell 10.2625 0.500000000000000 0.500000000000000 0.000000000000000 0.500000000000000 0.000000000000000 0.500000000000000 0.000000000000000 0.500000000000000 0.500000000000000 / &kpoint 2 30 30 30 / &analysis KAPPA_SPEC = 1 /
$ anphon Si_333.rta2.in > Si_333.rta2.out
結果は Si_333.kl_spec に出力されます。 さまざまな温度のスペクトルがまとめて出力されるので、特定の温度(例えば300K)の結果を抜き出したいときは次のようにします(チュートリアルのページにあった方法)
$ awk '{if ($1 == 300.0) print $0}' Si_333.kl_spec > Si_333_300K.kl_spec