User Tools

Site Tools


quantumespresso:phonon:フォノンの計算

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
quantumespresso:phonon:フォノンの計算 [2020/11/18 20:33]
koudai [SCF計算]
quantumespresso:phonon:フォノンの計算 [2021/06/27 22:04] (current)
Line 28: Line 28:
 </file> </file>
  
-  * 金属の場合はsmearingを指定する必要がありますが、テトラヘドロン法はフォノン計算に使えません。+  * 金属の場合はsmearingを指定する必要がありますが、テトラヘドロン法はフォノン計算に使えません(以下のph.x実行時にエラーが出ます)
  
 <code> <code>
Line 57: Line 57:
  
 ^変数^初期値^説明^ ^変数^初期値^説明^
-|tr2_ph|1.0d-12|フォノンの計算の収束条件。経験的に1.0d-14を使ったほうがよい+|tr2_ph|1.0d-12|フォノンの計算の収束条件。経験的に1.0d-14を使ったほうがよい| 
-|prefix|pwscf|SCF計算で使用したプレフィックスと同じにする+|prefix|pwscf|SCF計算で使用したプレフィックスと同じにする| 
-|epsil|.false.|誘電率を計算する。Γ点の計算に必要。ただし.true.にする場合は、半導体かつΓ点の計算でないとエラーが出る+|epsil|.false.|誘電率を計算する。Γ点の計算に必要。ただし.true.にする場合は、半導体かつΓ点の計算でないとエラーが出る| 
-|outdir|./|出力ファイルの場所。| +|outdir|./|出力ファイルの場所。SCF計算のものと同じにする
-|fildyn|matdyn|結果であるdynamical matrixを出力するファイル名|+|fildyn|matdyn|結果であるdynamical matrixを出力するファイル名|
  
   * 金属の場合は、epsil=.false.として、計算するk点を 0.01 0.0 0.0 のようにΓ点から少しずらしてやるとうまくいきます。   * 金属の場合は、epsil=.false.として、計算するk点を 0.01 0.0 0.0 のようにΓ点から少しずらしてやるとうまくいきます。
Line 70: Line 70:
 $ ph.x < Si.phG.in > Si.phG.out $ ph.x < Si.phG.in > Si.phG.out
 </code> </code>
- 
-  * 金属の計算で |ddv_scf|^2 が発散してしまう場合は、SCF計算の際にdegauss=0.001など小さいものを使ってください。計算がうまく行けば、収束がうまくいく範囲でdegaussを大きくします。 
  
 結果はfildynで指定したもの(今の場合はSi.dynG)に出力されます。 結果はfildynで指定したもの(今の場合はSi.dynG)に出力されます。
Line 109: Line 107:
 次のファイルを用意します。 次のファイルを用意します。
  
-<file - Si.dynmat.in>+<file - Si.dynmatG.in>
 &inputfil &inputfil
   dyn ='Si.dynG',   dyn ='Si.dynG',
 +  filxsf = 'dynmatG.axsf'
   asr ='simple',   asr ='simple',
   lperm = .true.,   lperm = .true.,
Line 120: Line 119:
 </file> </file>
  
-Γ点のフォノンは q->0 の極限で定義されます。lpermは q=(q(1), q(2), q(3)) に沿って q->0 の極限をとることを指定します。+  * Γ点のフォノンは q->0 の極限で定義されます。lpermは q=(q(1), q(2), q(3)) に沿って q->0 の極限をとることを指定します。 
 +    * Si.phG.inで波数を 0.01 0.0 0.0 とした場合はasrおよびlpermの行を削除して q(1) = 0.01 としてください。 
 +  * asrはacoustic sum ruleの略で、'simple'にするとΓ点で音響フォノンの振動数がゼロになるようにします。デフォルトは'no'(何もしない)です。このほか、次のものが指定できます 
 +    * zero-dim ... 分子の計算で使います 
 +    * one-dim ... 1次元系の計算(カーボンナノチューブなど)に使います 
 +    * crystal ... simpleよりも計算精度があがりますが、その分コストも増えます。simpleでうまく行かない場合はこちらにします。
  
 実行は次のようにします。 実行は次のようにします。
 <code> <code>
-$ dynmat.x < Si.dynmat.in > Si.dynmat.out+$ dynmat.x < Si.dynmatG.in > Si.dynmatG.out
 </code> </code>
  
-すると dynmat.axsf というファイルができるので、以下の手順で変位ベクトルを表示します。+すると dynmatG.axsf というファイルができるので、以下の手順で変位ベクトルを表示します。
  
-  - XCrysDenを起動して、[File] -> [Open Structure] -> [Open AXSF] よりdynmat.axsfを開く+  - XCrysDenを起動して、[File] -> [Open Structure] -> [Open AXSF] よりdynmatG.axsfを開く
   - ウィンドウが開くので、矢印ボタンを押して変位ベクトルを表示したいフォノンを選ぶ(エネルギーの低い順です)   - ウィンドウが開くので、矢印ボタンを押して変位ベクトルを表示したいフォノンを選ぶ(エネルギーの低い順です)
   - いったん [Hide] ボタンを押してウィンドウを最小化する   - いったん [Hide] ボタンを押してウィンドウを最小化する
Line 145: Line 149:
   tr2_ph=1.0d-14,   tr2_ph=1.0d-14,
   prefix='Si',   prefix='Si',
-  amass(1)=28.08, 
   outdir='./tmp/',   outdir='./tmp/',
   fildyn='Si.dynX',   fildyn='Si.dynX',
Line 185: Line 188:
  
  
-<file - Si.dynmat.in>+<file - Si.dynmatX.in>
 &inputfil &inputfil
   dyn ='Si.dynX',   dyn ='Si.dynX',
-  asr ='no'+  filxsf = 'dynmatX.axsf'
 / /
 </file> </file>
 +
 +<code>
 +$ dynmat.x < Si.dynmatX.in > Si.dynmatX.out
 +</code>
quantumespresso/phonon/フォノンの計算.1605699184.txt.gz · Last modified: 2021/06/27 21:59 (external edit)