User Tools

Site Tools


quantumespresso:respack

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
Next revision Both sides next revision
quantumespresso:respack [2020/08/12 16:19]
koudai [分極関数の計算]
quantumespresso:respack [2020/08/14 13:35]
koudai [分極関数の計算]
Line 5: Line 5:
     * 誘電関数から求まる動的物理量(電子エネルギー欠損スペクトル、光学伝導度、反射率)     * 誘電関数から求まる動的物理量(電子エネルギー欠損スペクトル、光学伝導度、反射率)
     * 制限乱雑位相近似 (constraint random-phase approximation, cRPA) を用いた電子間相互作用の大きさの見積もり     * 制限乱雑位相近似 (constraint random-phase approximation, cRPA) を用いた電子間相互作用の大きさの見積もり
-  * cRPAの理論はこちらのテキストの7章を参照してください https://www.cond-mat.de/events/correl11/ +  * cRPAの理論はこちらのテキストの7章を参照してください 
 +    * https://www.cond-mat.de/events/correl11/ 
   * 日本語および英語のマニュアルでは使用例とその結果が充実しているので、初心者でも特に困ることはないと思います   * 日本語および英語のマニュアルでは使用例とその結果が充実しているので、初心者でも特に困ることはないと思います
-    https://sites.google.com/view/kazuma7k6r +  メモリを非常に多く使うため、普通の計算機ですとユニットセルに原子が10個くらいの物質が限界かと思われます。スパコンを使えば20個くらいは行けるのではないかと思います  
-  * f電子系やスピン軌道相互作用がある系には非対応。 +  * f電子系やスピン軌道相互作用がある系には非対応 
 +  * 擬ポテンシャルはノルム保存型のものにのみ対応しています例えば以下のサイトからダウンロードできます 
 +    * http://www.pseudo-dojo.org/ ... optimized norm-conserving Vanderbilt PPs 
 +    * https://www.quantum-espresso.org/pseudopotentials/hartwigesen-goedecker-hutter-pp ... Hartwigesen-Goedecker-Hutter PPs
  
  
Line 41: Line 45:
 $ sudo make install $ sudo make install
 </code> </code>
-    * makeにやや時間がかかります 
   - パスをとおします<code>   - パスをとおします<code>
 $ echo 'export PATH=$PATH:/usr/local/respack/bin/' >> ~/.bashrc $ echo 'export PATH=$PATH:/usr/local/respack/bin/' >> ~/.bashrc
Line 54: Line 57:
   - QuantumESPRESSO の pw.x によるSCF計算   - QuantumESPRESSO の pw.x によるSCF計算
   - RESPACKの calc_wannier による最局在ワニエ関数の計算。事前にSCF計算が必要   - RESPACKの calc_wannier による最局在ワニエ関数の計算。事前にSCF計算が必要
-  - RESPACKの calc_chiqw による誘電関数の計算。事前にワニエ関数の計算が必要+  - RESPACKの calc_chiqw による誘電関数の計算。cRPAを使う場合は事前にワニエ関数の計算が必要
   - RESPACKの calc_w3d による直接相互作用の計算。事前にcalc_chiqwのcRPA計算が必要   - RESPACKの calc_w3d による直接相互作用の計算。事前にcalc_chiqwのcRPA計算が必要
   - RESPACKの calc_j3d による交換相互作用の計算。事前にcalc_chiqwのcRPA計算が必要   - RESPACKの calc_j3d による交換相互作用の計算。事前にcalc_chiqwのcRPA計算が必要
Line 113: Line 116:
 &param_chiqw &param_chiqw
   Ecut_for_eps           = 3.6d0,   !o: 分極関数のカットオフ (Ry) 記述がなければSCF計算のecutwfcの値の1/10になる   Ecut_for_eps           = 3.6d0,   !o: 分極関数のカットオフ (Ry) 記述がなければSCF計算のecutwfcの値の1/10になる
-  Num_freq_grid          = 70,      !o: 計算周波数の総数+  Num_freq_grid          = 70,      !o: 計算周波数の総数(メッシュは log ω に対して切られる)
   N_CALC_BAND            = 50,      !o: 分極計算で考慮されるバンドの総数。SCF計算のnbndの数よりも小さくする。記述がなければSCF計算のnbndの値になる   N_CALC_BAND            = 50,      !o: 分極計算で考慮されるバンドの総数。SCF計算のnbndの数よりも小さくする。記述がなければSCF計算のnbndの値になる
-  MPI_num_proc_per_qcomm = 6,       !o: コミュニティ当たりのプロセス数。MPIを使用する際に指定+  MPI_num_proc_per_qcomm = 2,       !o: コミュニティ当たりのプロセス数。MPIを使用する際に指定
   MPI_num_qcomm          = 1,       !o: コミュニティの数。MPIを使用する際に指定   MPI_num_qcomm          = 1,       !o: コミュニティの数。MPIを使用する際に指定
   MPI_io_rank            = 0,       !o: 標準出力させる MPI の番号   MPI_io_rank            = 0,       !o: 標準出力させる MPI の番号
Line 142: Line 145:
 たとえばPWscfの入力ファイルが prefix.scf.in だった場合、次のようにします。 たとえばPWscfの入力ファイルが prefix.scf.in だった場合、次のようにします。
 <code> <code>
-$ mpirun -n 12 < prefix.scf.in > prefix.scf.out+$ mpirun -n 24 < prefix.scf.in > prefix.scf.out
 </code> </code>
   * 既約k点の情報が必要なので、SCF計算 (ネームリスト<nowiki>&control</nowiki>内で<nowiki>calculation='scf'</nowiki>とする計算) の直後にRESPACKを使った計算をする必要があります   * 既約k点の情報が必要なので、SCF計算 (ネームリスト<nowiki>&control</nowiki>内で<nowiki>calculation='scf'</nowiki>とする計算) の直後にRESPACKを使った計算をする必要があります
Line 160: Line 163:
  
 <code> <code>
 +$ export OMP_NUM_THREADS=12
 +$ export MKL_NUM_THREADS=12
 $ calc_wannier < respack.in > LOG.wannier $ calc_wannier < respack.in > LOG.wannier
 </code> </code>
  
 +  * OpenMPによる並列化のみ対応しています
   * エネルギーウインドウはワニエ基底に射影するバンドの範囲です。   * エネルギーウインドウはワニエ基底に射影するバンドの範囲です。
   * エネルギーインナーウィンドウ内のすべてのバンドがワニエ基底によるバンドと一致するように計算されます。指定しなくても計算可能ですが、できるだけ広い範囲を指定することでより確実なワニエ基底を得ることができます。   * エネルギーインナーウィンドウ内のすべてのバンドがワニエ基底によるバンドと一致するように計算されます。指定しなくても計算可能ですが、できるだけ広い範囲を指定することでより確実なワニエ基底を得ることができます。
Line 172: Line 178:
  
 <code> <code>
-$ mpirun -n calc_chiqw < respack.in > LOG.chiqw+$ export OMP_NUM_THREADS=12 
 +$ export MKL_NUM_THREADS=12 
 +$ mpirun -n calc_chiqw < respack.in > LOG.chiqw
 </code> </code>
-  * MPI_num_qcommには、すべてのqで計算するときに、いくつの点qで並列計算を行うかを指定します+  * OpenMPとMPIのハイブリッド計算を行います。OMP_NUM_THREADSおよびMKL_NUM_THREADSにMPIの1スレッドあたりのOpenMP並列数を指定してください 
 +  * MPI_num_qcommには、すべてのqで計算するときに、いくつの点を同時に並列計算を行うかを指定します
   * MPI_num_proc_per_qcommには、qの各点の計算に使用するスレッド数を指定します   * MPI_num_proc_per_qcommには、qの各点の計算に使用するスレッド数を指定します
   * MPIのプロセス数は MPI_num_proc_per_qcomm * MPI_num_qcomm に一致させます   * MPIのプロセス数は MPI_num_proc_per_qcomm * MPI_num_qcomm に一致させます
   * この計算に一番時間がかかります   * この計算に一番時間がかかります
-  * バンドの数、カットオフ、k点数、ユニットセルの体積に比例して非常に多くのメモリを消費します。普通の計算機ですとユニットセルに原子が10個くらいの物質が限界かと思われます(それ以上になる場合はスパコンの利用を検討してください)。+  * バンドの数、カットオフ、k点数、ユニットセルの体積に比例して非常に多くのメモリを消費します
   * 観測される物理量としての光学応答を調べたければ通常のRPAを、相互作用パラメータを求めたければ制限RPAを使用します。それぞれ収束に必要なパラメータは異なるので注意してください。   * 観測される物理量としての光学応答を調べたければ通常のRPAを、相互作用パラメータを求めたければ制限RPAを使用します。それぞれ収束に必要なパラメータは異なるので注意してください。
 +    * 一般に、通常のRPAの方が計算コストが大きいです 
  
 ===== 相互作用の計算 ===== ===== 相互作用の計算 =====
Line 187: Line 197:
  
   * 直接相互作用<code>   * 直接相互作用<code>
 +$ export OMP_NUM_THREADS=12
 +$ export MKL_NUM_THREADS=12
 $ calc_w3d < respack.in > LOG.w3d $ calc_w3d < respack.in > LOG.w3d
 </code> </code>
   * 交換相互作用<code>   * 交換相互作用<code>
 +$ export OMP_NUM_THREADS=12
 +$ export MKL_NUM_THREADS=12
 $ calc_j3d < respack.in > LOG.j3d $ calc_j3d < respack.in > LOG.j3d
 </code> </code>
Line 229: Line 243:
 omega_max=200 omega_max=200
  
 +set logscale x
  
  
quantumespresso/respack.txt · Last modified: 2024/02/03 18:42 by koudai