Table of Contents

概要

計算手順

3次の原子間力定数の計算

有限温度の計算で重要な寄与がある3次の原子間力定数の計算を行います

フォノンの分散と状態密度で作成した Si_333.harmonic.in をコピーして Si_333.cubic.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 を生成し、次の点を変更します

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 というファイルを作成します

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 というファイルを作成します。 以下の点を編集します。

Si_333.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