User Tools

Site Tools


alamode:熱伝導率

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
alamode:熱伝導率 [2021/06/19 20:16]
koudai [3次の原子間力定数の計算]
alamode:熱伝導率 [2021/07/02 21:57] (current)
koudai
Line 2: Line 2:
  
   * Siを例に熱伝導度などの熱輸送関係の量を計算します。   * Siを例に熱伝導度などの熱輸送関係の量を計算します。
-  * フォノンの非調和項計算を行うので非常に重いです。クラスタ計算機の使用をおすすめします。+  * 熱伝導の計算にはフォノンの3次の非調和項が必要で、計算非常に重いです。クラスタ計算機の使用をおすすめします。
   * 事前に[[ALAMODE:フォノンの分散と状態密度]]のうち、原子間力定数の計算まで済ませておいてください。    * 事前に[[ALAMODE:フォノンの分散と状態密度]]のうち、原子間力定数の計算まで済ませておいてください。 
  
Line 11: Line 11:
 有限温度の計算で重要な寄与がある3次の原子間力定数の計算を行います 有限温度の計算で重要な寄与がある3次の原子間力定数の計算を行います
  
-Si.alm0.in をコピーして Si.alm_cubic.in を作成してください。+[[ALAMODE:フォノンの分散と状態密度]]で作成した Si_333.harmonic.in をコピーして Si_333.cubic.in を作成してください。
 そして、次のようにファイルを編集してください そして、次のようにファイルを編集してください
-  * <nowiki>&general</nowiki>フィールドのPREFIXをSi333_cubicに変更+  * <nowiki>&general</nowiki>フィールドのPREFIXをSi_333_cubicに変更
   * <nowiki>&interaction</nowiki>フィールドのNORDERを2に変更(NORDER+1次の原子間力が考慮されます)   * <nowiki>&interaction</nowiki>フィールドのNORDERを2に変更(NORDER+1次の原子間力が考慮されます)
   * <nowiki>&cutoff</nowiki>フィールドで Si-Si None 7.3 に変更   * <nowiki>&cutoff</nowiki>フィールドで Si-Si None 7.3 に変更
-    * これは7.3 bohrの範囲内にあるSi原子間の力のみを計算するという意味です。今の場合は次近接まで考えることになります。 +    * これは2次の項はカットオフを設けません(None)が、3次の項は7.3 bohrの範囲内にあるSi原子間の力のみを計算するという意味です。今の場合は次近接まで考えることになります。 
-    * 原子間の距離は Si.alm0.log 内のINTERACTIONパートに出力されています。 +    * 原子間の距離は Si_333.harmonic.log 内のINTERACTIONパートに出力されています。 
  
-<file - Si.alm_cubic.in>+<file - Si_333.cubic.in>
 &general &general
-  PREFIX = Si333_cubic+  PREFIX = Si_333_cubic
   MODE = suggest   MODE = suggest
   NAT = 54; NKD = 1   NAT = 54; NKD = 1
Line 39: Line 39:
  
 &cutoff  &cutoff 
-  Si-Si None+  Si-Si None 7.3
 / /
  
Line 52: Line 52:
 できたらALMを実行します。 できたらALMを実行します。
 <code> <code>
-$ alm Si.alm_cubic.in > Si.alm_cubic.log+$ alm Si_333.cubic.in > Si_333.cubic.log
 </code> </code>
  
-  * Si333_cubic.pattern_HARMONIC と Si333_cubic.pattern_ANHARM3 の2つのファイルができます。 +  * Si_333_cubic.pattern_HARMONICSi333_cubic.pattern_ANHARM3 の2つのファイルができます。 
-  * Si333_cubic.pattern_HARMONICは調和項の原子間力を求めるときに使ったSi333.pattern_HARMONICと同一です。+  * Si_333_cubic.pattern_HARMONIC は調和項の原子間力を求めるときに使った Si_333.pattern_HARMONIC と同一です。
  
 ALAMODEに付属のPythonスクリプトを使ってQEの入力ファイルを作成します。 ALAMODEに付属のPythonスクリプトを使ってQEの入力ファイルを作成します。
 <code> <code>
-$ python -m displace --QE Si333.pw.in --mag 0.01 --prefix disp -pf Si333_cubic.pattern_ANHARM3+$ python -m displace --QE Si_333.pw.in --mag 0.01 --prefix disp -pf Si_333_cubic.pattern_ANHARM3
 </code> </code>
  
Line 71: Line 71:
 $ pw.x < disp20.pw.in > disp20.pw.out $ pw.x < disp20.pw.in > disp20.pw.out
 </code> </code>
-  * めちゃくちゃ時間がかかるので、スクリプトを書いてクラスタ計算機で並列的にやらせるのが良いです。+  * 普通のパソコンですと1つ計算するのに半日かかるので、スクリプトを書いてクラスタ計算機で並列的にやらせるのが良いです。
  
 disp01.pw.out, ... に各原子にはたらく力が出力されていますので、これをALAMODEに付属のPythonスクリプトで整理します。 disp01.pw.out, ... に各原子にはたらく力が出力されていますので、これをALAMODEに付属のPythonスクリプトで整理します。
 <code> <code>
-$ python -m extract --QE Si333.pw.in *.pw.out > DFSET_cubic+$ python -m extract --QE Si_333.pw.in *.pw.out > DFSET_cubic
 </code> </code>
  
 最後にALMを使って原子間力定数を計算します。 最後にALMを使って原子間力定数を計算します。
-Si.alm_cubic.in をコピーして Si.alm_cubic_optimize.in を生成し、次の点を変更します+Si_333.cubic.in をコピーして Si_333.cubic_opt.in を生成し、次の点を変更します
   * <nowiki>&general</nowiki>フィールドでMODE=optimizeに変更   * <nowiki>&general</nowiki>フィールドでMODE=optimizeに変更
   * <nowiki>&optimize</nowiki>フィールドを作成して、中に DFSET = DFSET_cubic と FC2XML = Si333.xml と記述(Si333.xmlは調和項の原子間力で得たファイル)   * <nowiki>&optimize</nowiki>フィールドを作成して、中に DFSET = DFSET_cubic と FC2XML = Si333.xml と記述(Si333.xmlは調和項の原子間力で得たファイル)
-<file - Si.alm_cubic_optimize.in>+<file - Si_333.cubic_opt.in>
 &general &general
-  PREFIX = Si333_cubic+  PREFIX = Si_333_cubic
   MODE = optimize   MODE = optimize
   NAT = 54; NKD = 1   NAT = 54; NKD = 1
Line 120: Line 120:
 できたらALMを実行します できたらALMを実行します
 <code> <code>
-$ alm Si.alm_cubic_optimize.in > Si.alm_cubic_optimize.log+$ alm Si_333.cubic_opt.in > Si_333.cubic_opt.log
 </code> </code>
  
-Si333_cubic.fcsとSi333_cubic.xmlが出力されたら成功です。+Si_333_cubic.fcs, Si_333_cubic.xmlが出力されたら成功です。
  
  
Line 129: Line 129:
 ===== 熱伝導度 ===== ===== 熱伝導度 =====
  
-以下の Si_RTA.in というファイルを作成します +以下の Si_333.rta.in というファイルを作成します 
-<file - Si_phdos.in>+<file - Si_333.rta.in>
 &general &general
-  PREFIX = Si333_cubic+  PREFIX = Si_333
   MODE   = RTA   MODE   = RTA
   FCSXML = Si333_cubic.xml   FCSXML = Si333_cubic.xml
Line 156: Line 156:
  
   * 計算は調和項のときに比べて重いので、最初は少ないk点から始めましょう   * 計算は調和項のときに比べて重いので、最初は少ないk点から始めましょう
-  * データの解析にはsi333_cubic.resultを使います。このファイルがあれば計算は再スタートになりますので、もしk点を変えて再計算を行う場合は削除するかファイル名を別のものに変更してください。+  * データの解析には Si_333.result を使います。このファイルがあれば計算は再スタートになりますので、もしk点を変えて再計算を行う場合は削除するかファイル名を別のものに変更してください。
  
 <code> <code>
-$ anphon Si_RTA.in > Si_RTA.out+$ anphon Si.rta.in > Si.rta.out
 </code> </code>
  
-結果は Si333.kl に出力されます+結果は Si_333.kl に出力されます
  
 ちなみに、この結果だと絶対零度で熱伝導度が発散するという物理的におかしな結果になります。 ちなみに、この結果だと絶対零度で熱伝導度が発散するという物理的におかしな結果になります。
Line 168: Line 168:
  
 <code> <code>
-$ python analyze_phonons -m --calc kappa_boundary --size 1.0e+6 si333_cubic.result > si333_boundary_1mm.kl+$ python -m analyze_phonons --calc kappa_boundary --size 1.0e+6 Si_333.result > Si_333_boundary_1mm.kl
 </code> </code>
  
Line 180: Line 180:
 ===== 熱伝導スペクトル ===== ===== 熱伝導スペクトル =====
  
-Si_RTA2.in をコピーして Si_RTA2.in というファイルを作成します。+Si_333.rta.in をコピーして Si.rta2.in というファイルを作成します。
 以下の点を編集します。 以下の点を編集します。
   * <nowiki>&general</nowiki>フィールドに EMIN = 0; EMAX = 550; DELTA_E = 1.0 を追加   * <nowiki>&general</nowiki>フィールドに EMIN = 0; EMAX = 550; DELTA_E = 1.0 を追加
   * <nowiki>&analysis</nowiki>フィールドを作成して、中に KAPPA_SPEC = 1 と記述   * <nowiki>&analysis</nowiki>フィールドを作成して、中に KAPPA_SPEC = 1 と記述
  
-<file - Si_phdos.in>+<file - Si_333.rta2.in>
 &general &general
-  PREFIX = Si333+  PREFIX = Si_333
   MODE   = RTA   MODE   = RTA
   FCSXML = Si333_cubic.xml   FCSXML = Si333_cubic.xml
Line 215: Line 215:
  
 <code> <code>
-$ anphon Si_RTA2.in > Si_RTA2.out+$ anphon Si_333.rta2.in > Si_333.rta2.out
 </code> </code>
  
   * スペクトルの計算なのでk点数がたくさん必要です。収束は必ず確認しましょう。   * スペクトルの計算なのでk点数がたくさん必要です。収束は必ず確認しましょう。
  
-結果は Si333.kl_spec に出力されます。+結果は Si_333.kl_spec に出力されます。
 さまざまな温度のスペクトルがまとめて出力されるので、特定の温度(例えば300K)の結果を抜き出したいときは次のようにします(チュートリアルのページにあった方法) さまざまな温度のスペクトルがまとめて出力されるので、特定の温度(例えば300K)の結果を抜き出したいときは次のようにします(チュートリアルのページにあった方法)
 <code> <code>
-$ awk '{if ($1 == 300.0) print $0}' si333_cubic.kl_spec > si333_cubic_300K.kl_spec+$ awk '{if ($1 == 300.0) print $0}' Si_333.kl_spec > Si_333_300K.kl_spec
 </code> </code>
alamode/熱伝導率.1624101365.txt.gz · Last modified: 2021/06/27 22:01 (external edit)