====== 概要 ======
GIPAW計算用の擬ポテンシャルを作成します。
* pslibrary.1.0.0 を使用するので、以下のサイトからダウンロードしてください。
* https://dalcorso.github.io/pslibrary/
* 各原子の擬ポテンシャル生成用の入力ファイルは、次のファイルに含まれています
* us_ps_high.job
* us_ps_low.job
* paw_ps_high.job
* paw_ps_low.job
* 上2つがウルトラソフト型で、下2つがPAW型です。
* highというのはsemicore状態が多く含まれていて、計算の精度は上がりますが計算時間もかかります
* lowはsemicore状態が少なく、計算時間は少なくて済みますが、必要な軌道が含まれていない場合もあります
* 基本的にはlowに収録されている擬ポテンシャルで問題ありませんが、油断していると軌道が足りなくて実は変な結果が出ていたということもあるので、highを使った計算も早い段階で試しておくのが無難です。
* このファイルの他に us_ps_collection.job, us_ps_collection_alt.job, us_lan_collection.job と、これらのusをpawに変えたものも同梱されていますが、これは古いバージョンのpslibraryのデータなので基本的に無視してください。
* ノルム保存型も収録されていますが (nc_ps_collection.job)、テストが十分に行われていないそうです。
* その他、PSLibraryを使う前に https://dalcorso.github.io/pslibrary/PP_list.html の Known PPs problems for pslibrary.1.0.0 を必ず一読してください。
====== 擬ポテンシャルの作成 ======
酸素Oを例に擬ポテンシャル(PBE, Scalar relativistic)を作成します。
===== ウルトラソフト型 =====
pslibraryの中にある us_ps_high.job から、Oに該当する部分をコピーしてきて、Ce_us.inというファイルを作成します。
&input
title='O',
zed=8.,
rel=1,
config='[He] 2s2 2p4',
iswitch=3,
dft='pbe'
/
&inputp
lpaw=.false.,
pseudotype=3,
file_pseudopw='O.pbe-nl-rrkjus_psl.1.0.0_gipaw.UPF',
author='K.S.',
lloc=-1,
rcloc=1.1
which_augfun='PSQ',
rmatch_augfun_nc=.true.,
nlcc=.true.,
new_core_ps=.true.,
rcore=0.7,
tm=.true.
lgipaw_reconstruction=.true.
/
4
2S 1 0 2.00 0.00 1.00 1.30 0.0
2S 1 0 0.00 1.00 1.00 1.30 0.0
2P 2 1 4.00 0.00 0.90 1.45 0.0
2P 2 1 0.00 0.05 0.90 1.45 0.0
&test
/
2
2S 1 0 2.00 0.00 1.00 1.30 0.0
2P 2 1 4.00 0.00 0.90 1.45 0.0
* &input
* Scalar relativistic の場合 rel = 1 と指定
* 交換相関汎関数としてPBE型を使うので dft='pbe' と変更
* &inputp
* file_pseudopw で擬ポテンシャルファイル名を変更
* author で擬ポテンシャルの作者名を変更
* GIPAW用に擬ポテンシャルを再構成するため lgipaw_reconstruction=.true. を追加
* &test の項目を追加(中身はなし)
* 軌道一覧を&testの下に追加
* &inputpのものをコピーしてきますが、四列目がゼロあるいは負になっているものは削除してください。また軌道の数もそれに合わせて修正します(今の例では4->2)。
* いろいろ試した結果、こうしないといけないことがわかったのですが、どうしてかは謎です。
ファイルが用意できたら擬ポテンシャルを生成します
$ ld1.x < O_us.in > O_us.out
注意:酸素は今の所 QE6.4 以降でエラーが出るので、6.3で作成してください。
===== PAW型 =====
pslibraryの中にある paw_ps_high.job から、Oに該当する部分をコピーしてきて、O_paw.inというファイルを作成します。
&input
title='O',
zed=8.,
rel=1,
config='[He] 2s2 2p4',
iswitch=3,
dft='pbe'
/
&inputp
lpaw=.true.,
pseudotype=3,
file_pseudopw='O.pbe-nl-kjpaw_psl.1.0.0_gipaw.UPF',
author='K.S.',
lloc=-1,
rcloc=1.1
which_augfun='PSQ',
rmatch_augfun_nc=.true.,
nlcc=.true.,
new_core_ps=.true.,
rcore=0.7,
tm=.true.
lgipaw_reconstruction=.true.
use_paw_as_gipaw=.true.
/
4
2S 1 0 2.00 0.00 1.00 1.30 0.0
2S 1 0 0.00 1.00 1.00 1.30 0.0
2P 2 1 4.00 0.00 0.90 1.45 0.0
2P 2 1 0.00 0.05 0.90 1.45 0.0
* &input
* Scalar relativistic の場合 rel = 1 と指定
* 交換相関汎関数としてPBE型を使うので dft='pbe' と変更
* &inputp
* file_pseudopw で擬ポテンシャルファイル名を変更
* author で擬ポテンシャルの作者名を変更
* GIPAW用に擬ポテンシャルを再構成するため lgipaw_reconstruction = .true. と use_paw_as_gipaw=.true. を追加
ファイルが用意できたら擬ポテンシャルを生成します
$ ld1.x < O_paw.in > O_paw.out