This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
quantumespresso:フォノンの状態密度と分散 [2019/01/07 19:51] koudai [電子状態計算] |
quantumespresso:フォノンの状態密度と分散 [2020/11/20 02:09] koudai [固有振動モードの可視化] |
||
---|---|---|---|
Line 40: | Line 40: | ||
<file - Si.ph.in> | <file - Si.ph.in> | ||
phonons of Si | phonons of Si | ||
- | & | + | & |
- | tr2_ph=1.0d-14, | + | tr2_ph = 1.0d-14, |
- | prefix=' | + | prefix = ' |
- | amass(1)=28.08, | + | outdir = ' |
- | outdir=' | + | fildyn = ' |
- | fildyn=' | + | ldisp = .true., |
- | ldisp=.true., | + | nq1 = 4, |
- | nq1=4, | + | nq2 = 4, |
- | nq2=4, | + | nq3 = 4, |
- | nq3=4, | + | / |
- | / | + | |
</ | </ | ||
Line 59: | Line 58: | ||
実行は次のようにする。 | 実行は次のようにする。 | ||
- | $ ph.x < si.ph.in > si.ph.out | + | $ ph.x < Si.ph.in > Si.ph.out |
- | フォノンの計算には時間がかかるので注意。 | + | フォノンの計算には時間がかかるので、メッシュのとりすぎに注意。 |
===== 実空間へのフーリエ変換 ===== | ===== 実空間へのフーリエ変換 ===== | ||
Line 68: | Line 67: | ||
次のファイルを用意する。 | 次のファイルを用意する。 | ||
- | <file - q2r.in> | + | <file - Si.q2r.in> |
&input | &input | ||
fildyn = ' | fildyn = ' | ||
Line 78: | Line 77: | ||
出力先はSi.fcになる。 実行は次のようにする。 | 出力先はSi.fcになる。 実行は次のようにする。 | ||
- | $ q2r.x < q2r.in > q2r.out | + | $ q2r.x < Si.q2r.in > Si.q2r.out |
以上で準備は終了である。 | 以上で準備は終了である。 | ||
Line 89: | Line 88: | ||
次の入力ファイルを用意する。 | 次の入力ファイルを用意する。 | ||
- | <file - matdyn.phdos.in> | + | <file - Si.matdyn.phdos.in> |
&input | &input | ||
- | flfrc = 'si.fc' | + | flfrc = 'Si.fc' |
- | fldos = 'si.phdos' | + | fldos = 'Si.phdos' |
asr = ' | asr = ' | ||
dos = .true. | dos = .true. | ||
Line 112: | Line 111: | ||
実行は次のようにする。 | 実行は次のようにする。 | ||
- | $ matdyn.x < matdyn.phdos.in > matdyn.phdos.out | + | $ matdyn.x < Si.matdyn.phdos.in > Si.matdyn.phdos.out |
+ | |||
+ | 下図は Si.phdos に出力されたデータをプロットした。 | ||
{{: | {{: | ||
Line 119: | Line 120: | ||
===== 分散 ===== | ===== 分散 ===== | ||
- | 分散の場合は計算する波数点の経路を指定する。 | + | 分散の場合は計算する波数点の経路(デカルト座標で、単位は格子定数aを使って2π/ |
- | <file - matdyn.freq.in> | + | <file - Si.matdyn.freq.in> |
&input | &input | ||
asr = ' | asr = ' | ||
- | flfrc = 'si.fc' | + | flfrc = 'Si.fc' |
- | flfrq = 'si.freq' | + | flfrq = 'Si.freq' |
q_in_band_form=.true. | q_in_band_form=.true. | ||
/ | / | ||
Line 140: | Line 141: | ||
実行はさきほどと同様。 | 実行はさきほどと同様。 | ||
- | $ matdyn.x < matdyn.freq.in > matdyn.freq.out | + | $ matdyn.x < Si.matdyn.freq.in > Si.matdyn.freq.out |
結果はSi.freqに出力される。 | 結果はSi.freqに出力される。 | ||
Line 146: | Line 147: | ||
$ plotband.x | $ plotband.x | ||
- | Input file > si.freq | + | Input file > Si.freq |
Reading 6 bands at 41 k-points | Reading 6 bands at 41 k-points | ||
Range: 0.0000 510.2482eV Emin, Emax > 0, 550 | Range: 0.0000 510.2482eV Emin, Emax > 0, 550 | ||
Line 163: | Line 164: | ||
{{: | {{: | ||
+ | * GNUPLOTでプロットしたい場合は Si.freq.gp に出力されているものを使うと便利です。 | ||
+ | |||
+ | ==== 固有振動モードの可視化 ==== | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | ホームディレクトリに戻り、Githubから必要なソフトをダウンロードします | ||
+ | < | ||
+ | $ cd | ||
+ | $ git clone https:// | ||
+ | </ | ||
+ | |||
+ | インストールします | ||
+ | < | ||
+ | $ cd phononwebsite | ||
+ | $ python setup.py install --user | ||
+ | </ | ||
+ | |||
+ | フォノン計算の作業ディレクトリに入り、SCF計算の入力ファイルをprefix.scf、フォノン分散の計算で得られたmatdyn.modesをprefix.modesという名前にコピーします。 | ||
+ | prefixの部分はなんでも良いです。 | ||
+ | * 結晶の基本並進ベクトル CELL_PARAMETERS を指定している場合は、ボーア半径で指定してください。 | ||
+ | * 原子位置 (ATOMIC_POSITIONS) は分率座標 (crystal) で指定してください。 | ||
+ | |||
+ | そして次のコマンドを実行します。 | ||
+ | < | ||
+ | $ read_qe_phonon.py prefix | ||
+ | </ | ||
+ | すると prefix.json というファイルが得られます。 | ||
+ | |||
+ | さきほどダウンロードしたディレクトリの中にある phononwebsite/ | ||
+ | |||
+ | * エネルギー分散をクリックすることで、そのエネルギーに対応する固有振動モードのアニメーションを見ることができます | ||
+ | * 振動のアニメーションを保存したい場合は Export movie の [gif] をクリックすると録画が開始します。 | ||
===== 注意 ===== | ===== 注意 ===== | ||
- | 構造が不安定な系では、対応するモードのフォノンの波数が負になる。 | + | 構造が不安定な系では、対応するモードのフォノンの振動数が複素数になります(出力ファイルは負の振動数で表現されます)。 |
- | もし有限温度で構造相転移があるのであれば、pw.xで計算する際に& | + | これは簡単にはフォノンのバネ定数が負になってしまう(つまり変形したほうがエネルギー的に安定)ことに対応します。 |
- | 1[Ry]=158000[K]なので、例えばdegaus=0.001とすれば158Kで構造が安定か調べることができる。 | + | |
+ | もし有限温度で構造相転移があるのであれば、pw.xで計算する際に& | ||
+ | 1[Ry]=158000[K]なので、例えばdegaus=0.001とすれば158Kで構造が安定か調べることができます。 | ||
- | (ただし、pw.x計算の際にk点の数はかなりたくさん必要になる) | + | (ただし、pw.x計算の際にk点の数はかなりたくさん必要になります) |