古いバージョンのBBSは閲覧のみ可能です。
The old BBS is read only.

68

input for LaSrGaO3 (in Japanease)

Posted on : December 31, 2002 (Tue) 17:56:16

by takao kotani

LaSrGaO3 の計算に関して奥野さんの失敗されてた点を説明します。

1.原子位置が正確に入れられていない.
奥野さんの作った入力ファイルでは,
isymop= 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
と表示されず,1 0 0 0 ...となります.これは,対称要素が一個しかない
(時間反転を入れても二個しかない)ことを意味します。
これでは計算時間が4倍かかってしまいます.
これを正確にしました(ちょっとしたツールを使って補正しました。ツールは3月のCMD
までに公開できると思います...).

2.パッチを当てる。
たぶん,
http://sham.phys.sci.osaka-u.ac.jp/~kkr/TARS/spmain_NewForv005.f
http://sham.phys.sci.osaka-u.ac.jp/~kkr/TARS/specx_NewForv005.f
に変えてもらえてないように思います.そのせいで
segmentation faultがでます.というか,これをいれると
msizmxを大きくせよなどと文句をいってくるはずです.
http://sham.phys.sci.osaka-u.ac.jp/~kkr/TARS/sample_LaSrGaO3/specx.f
にあるような,サイズにしてください。
& (natmmx=20, ncmpmx=7, msizmx=250, mxlmx=4, nk1x=30, nk3x=11,
& msex=201, ngmx=15, nrpmx=250, ngpmx=250, npmx=200, msr=400)

3.収束のさせ方.
コツがあります.僕は、
まず,edelt=0.004,とかなり大きく取って、k点は一点だけで(bzqlty=t)でやってみました。
http://sham.phys.sci.osaka-u.ac.jp/~kkr/TARS/sample_LaSrGaO3/LaSrGaO3.in.0
で,とにかく収束させます(ある程度でいいです).
最初は、pmixを0.010ぐらいでやったほうがより安全です。

で,その後goをdosにかえてdosモードでdosプロットして
積分contourに問題がないか確認します。その後,
http://sham.phys.sci.osaka-u.ac.jp/~kkr/TARS/sample_LaSrGaO3/LaSrGaO3.in.2
にあるように,edelt=0.001にして,k点も増やしてbzqlty=2,もうすこしリアルな計算にします.
結果が http://sham.phys.sci.osaka-u.ac.jp/~kkr/TARS/sample_LaSrGaO3/out.2
ポテンシャルファイル(pentium linux intel-fortran)が,
http://sham.phys.sci.osaka-u.ac.jp/~kkr/TARS/sample_LaSrGaO3/data/GaLa0.9Sr0.1O0.9Vc0.1O2
にあります.途中で計算は打ち切っていますが(あとはおまかせします)。。。
もし金属状態なら,bzqlty=2ではたりないかもしれないです.

実は,最初edelt=0.004,ewidth=0.8ぐらいに取っていて,それで,k点をbzqlty=tでやってみたんです.
ある程度収束したように見えたんですが、ewidth=1.5ぐらいでdosを書かせてみると,
積分contourの左端がsemi-coreに引っかかっていました。
それで,1.0にすると引っかからないように見えたのでewidthを1.0にしたんです.
しょっぱなからdosを欠かせてもいいんです.それでだいたいの準位がわかりますから,
contourサイズが選べます.もちろん収束させていくと,電荷が移動してしまうので,
またcontourを選びなおしてやらないといかんということにもなりえますが。。。
(実際,上のLaSrGaO3.in.2でもある程度収束した後dosを書いて再度確認してやらないといかん).
いずれにせよ,そういう試行錯誤で,収束を追い詰めていきます。

一般に金属が解になるような場合とかバンドギャップの小さい半導体の場合は,k点がたくさん必要で
しんどいわけですが、収束計算のはじめの段階では,上述のようにbzqlty=tで一点だけとり,
そのかわり,edeltを大きく取ってとにかく出発点を決める.のがいいと思います.
また,この場合,酸素をpまでにしてもいいかもしれません(試してませんが。。。).

赤井先生,これでいいでしょうか?

小谷

=========================================

#---------------------------------- 0 ----------------------------------
# now # can be used as comment lines as well
#--------------------------------------------
go data/GaLa0.9Sr0.1O0.9Vc0.1O2
so 10.3651,1.00693,1.41659,90.0,90.0,90.0,
# edelt,ewidth, reltyp, sdftyp magtype record
0.004 1.0 sra vwn nmag 2nd
update t 100 0.020
4
#--------------------------------------------
# name of type, number of components, rtr,
# field, lmax, atomic number, concentration
#--------------------------------------------
Ga 1 0 0.0 2 31 100
LaSr 2 0 0.0 3 57 90
38 10
O_aVc 2 0 0.0 2 8 95
0 5
O_b 1 0 0.0 2 8 100
20
0.00000000 0.00000000 0.50346500 Ga
-0.00990000 0.35414750 -0.00292210 LaSr
0.49800000 0.35414750 0.06041568 O_aVc
0.22900000 0.05241386 -0.23965087 O_b
-0.50000000 0.00000000 0.00000000 Ga
0.00000000 0.70829500 0.50346500 Ga
-0.50000000 -0.70829500 0.00000000 Ga
0.00990000 -0.35414750 0.00292210 LaSr
-0.49010000 -0.35414750 0.50054290 LaSr
0.49010000 0.35414750 -0.50054290 LaSr
-0.49800000 -0.35414750 -0.06041568 O_aVc
0.00200000 -0.35414750 -0.44304932 O_aVc
-0.00200000 0.35414750 0.44304932 O_aVc
-0.22900000 -0.05241386 0.23965087 O_b
0.27100000 -0.05241386 0.26381413 O_b
-0.27100000 0.05241386 -0.26381413 O_b
-0.22900000 -0.65588114 0.23965087 O_b
0.22900000 0.65588114 -0.23965087 O_b
-0.27100000 0.65588114 -0.26381413 O_b
0.27100000 -0.65588114 0.26381413 O_b