alamode:熱伝導率
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
alamode:熱伝導率 [2021/06/19 04:05] – [その他、解析できる熱輸送量] koudai | 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 をコピーして | + | [[ALAMODE: |
そして、次のようにファイルを編集してください | そして、次のようにファイルを編集してください | ||
- | * < | + | * < |
- | * < | + | * < |
* < | * < | ||
- | * これは7.3 bohrの範囲内にあるSi原子間の力のみを計算するという意味です。今の場合は次近接まで考えることになります。 | + | * これは2次の項はカットオフを設けません(None)が、3次の項は7.3 bohrの範囲内にあるSi原子間の力のみを計算するという意味です。今の場合は次近接まで考えることになります。 |
- | * 原子間の距離は | + | * 原子間の距離は |
- | <file - Si.alm_cubic.in> | + | <file - Si_333.cubic.in> |
& | & | ||
- | PREFIX = Si333_cubic | + | PREFIX = Si_333_cubic |
MODE = suggest | MODE = suggest | ||
NAT = 54; NKD = 1 | NAT = 54; NKD = 1 | ||
Line 39: | Line 39: | ||
& | & | ||
- | Si-Si None | + | Si-Si None 7.3 |
/ | / | ||
Line 52: | Line 52: | ||
できたらALMを実行します。 | できたらALMを実行します。 | ||
< | < | ||
- | $ alm Si.alm_cubic.in > Si.alm_cubic.log | + | $ alm Si_333.cubic.in > Si_333.cubic.log |
</ | </ | ||
- | * Si333_cubic.pattern_HARMONIC | + | * Si_333_cubic.pattern_HARMONIC, Si333_cubic.pattern_ANHARM3 の2つのファイルができます。 |
- | * Si333_cubic.pattern_HARMONICは調和項の原子間力を求めるときに使ったSi333.pattern_HARMONICと同一です。 | + | * Si_333_cubic.pattern_HARMONIC は調和項の原子間力を求めるときに使った |
ALAMODEに付属のPythonスクリプトを使ってQEの入力ファイルを作成します。 | ALAMODEに付属のPythonスクリプトを使ってQEの入力ファイルを作成します。 | ||
< | < | ||
- | $ 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 |
</ | </ | ||
Line 71: | Line 71: | ||
$ pw.x < disp20.pw.in > disp20.pw.out | $ pw.x < disp20.pw.in > disp20.pw.out | ||
</ | </ | ||
- | * めちゃくちゃ時間がかかるので、スクリプトを書いてクラスタ計算機で並列的にやらせるのが良いです。 | + | * 普通のパソコンですと1つ計算するのに半日かかるので、スクリプトを書いてクラスタ計算機で並列的にやらせるのが良いです。 |
disp01.pw.out, | disp01.pw.out, | ||
< | < | ||
- | $ python -m extract --QE Si333.pw.in *.pw.out > DFSET_cubic | + | $ python -m extract --QE Si_333.pw.in *.pw.out > DFSET_cubic |
</ | </ | ||
最後にALMを使って原子間力定数を計算します。 | 最後にALMを使って原子間力定数を計算します。 | ||
- | Si.alm_cubic.in をコピーして | + | Si_333.cubic.in をコピーして |
* < | * < | ||
* < | * < | ||
- | <file - Si.alm_cubic_optimize.in> | + | <file - Si_333.cubic_opt.in> |
& | & | ||
- | 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を実行します | ||
< | < | ||
- | $ alm Si.alm_cubic_optimize.in > Si.alm_cubic_optimize.log | + | $ alm Si_333.cubic_opt.in > Si_333.cubic_opt.log |
</ | </ | ||
- | Si333_cubic.fcsとSi333_cubic.xmlが出力されたら成功です。 | + | Si_333_cubic.fcs, Si_333_cubic.xmlが出力されたら成功です。 |
Line 129: | Line 129: | ||
===== 熱伝導度 ===== | ===== 熱伝導度 ===== | ||
- | 以下の | + | 以下の |
- | <file - Si_phdos.in> | + | <file - Si_333.rta.in> |
& | & | ||
- | 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点を変えて再計算を行う場合は削除するかファイル名を別のものに変更してください。 | + | * データの解析には |
< | < | ||
- | $ anphon | + | $ anphon |
</ | </ | ||
- | 結果は | + | 結果は |
ちなみに、この結果だと絶対零度で熱伝導度が発散するという物理的におかしな結果になります。 | ちなみに、この結果だと絶対零度で熱伝導度が発散するという物理的におかしな結果になります。 | ||
Line 168: | Line 168: | ||
< | < | ||
- | $ analyze_phonons | + | $ python |
</ | </ | ||
* < | * < | ||
+ | * 他にもいろいろ解析できるので、詳細はマニュアルを読んでください | ||
- | ===== その他、解析できる熱輸送量 ===== | ||
- | |||
- | フォノンの寿命 | ||
- | < | ||
- | $ python -m analyze_phonons --calc tau --temp 300 Si333.result > Si333_tau300K.kl | ||
- | </ | ||
- | |||
- | 累積熱伝導度 | ||
- | < | ||
- | $ python -m analyze_phonons --calc cumulative --temp 300 --length 10000:5 Si333_cubic.result > Si333_tau300K.kl | ||
- | </ | ||
Line 190: | Line 180: | ||
===== 熱伝導スペクトル ===== | ===== 熱伝導スペクトル ===== | ||
- | Si_RTA2.in をコピーして | + | Si_333.rta.in をコピーして |
以下の点を編集します。 | 以下の点を編集します。 | ||
* < | * < | ||
* < | * < | ||
- | <file - Si_phdos.in> | + | <file - Si_333.rta2.in> |
& | & | ||
- | PREFIX = Si333 | + | PREFIX = Si_333 |
MODE = RTA | MODE = RTA | ||
FCSXML = Si333_cubic.xml | FCSXML = Si333_cubic.xml | ||
Line 220: | Line 210: | ||
& | & | ||
- | | + | |
/ | / | ||
</ | </ | ||
< | < | ||
- | $ anphon | + | $ anphon |
</ | </ | ||
* スペクトルの計算なのでk点数がたくさん必要です。収束は必ず確認しましょう。 | * スペクトルの計算なのでk点数がたくさん必要です。収束は必ず確認しましょう。 | ||
- | 結果は | + | 結果は |
+ | さまざまな温度のスペクトルがまとめて出力されるので、特定の温度(例えば300K)の結果を抜き出したいときは次のようにします(チュートリアルのページにあった方法) | ||
+ | < | ||
+ | $ awk '{if ($1 == 300.0) print $0}' Si_333.kl_spec > Si_333_300K.kl_spec | ||
+ | </ |
alamode/熱伝導率.1624043107.txt.gz · Last modified: 2021/06/27 22:01 (external edit)