SIESTA FAQ

SIESTA よくある質問
  Q1: SIESTAの計算精度はどうなっていますか?
  Q2: 並列計算には対応していますか?
  Q3: 過去の計算結果を使って再計算するには?
  Q4: 交換相関汎関数は、どのようなものがサポートされてますか?
  Q5: 分子動力学計算のアルゴリズムは?
  Q6: セミコア電子を価電子帯に追加して計算するには?
  Q7: 電荷密度や波動関数を可視化するには?

Q1: SIESTAの計算精度はどうなっていますか?

基底サイズを変えたり、カットオフ値を増減することで精度を調節することができます。数値LCAO基底ですが、まずまずの精度だろうと思います。対象のプロパティに注目し、ご使用中のプログラム等と比較ください。以下は、Siのバンド図をWIEN2kの結果と比較しています。上がSIESTA、下がWIEN2kの結果です。

(2010/07/07)

Q2: 並列計算には対応していますか?

はい、対応しています。k点を分割する方法と、MPIを利用した並列計算が可能です。MPI計算も並列性能が高く、InfiniBand等の高速インターコネクトを使用すれば、PCクラスタのような分散メモリ環境でも高効率な並列計算が可能です。
(2010/07/07)

Q3: 過去の計算結果を使って再計算するには?

再利用する内容に応じて、FDFファイルに次のオプションを追加します。
MD.UseSaveXV .True.// SystemLabel.XV より原子座標・速度
MD.UseSaveZM .True.// SystemLabel.ZM よりZマトリックス座標
MD.UseSaveCG .True.// SystemLabel.CG よりCG計算履歴
DM.UseSaveDM .True.// SystemLabel.DM より密度行列
ON.UseSaveLWF .True.// SystemLabel.LWF より局所波動関数
また、
UseSaveData .True.
により、上記すべてを一度に指定することが可能ですが、個別に指定することが推奨されています。
(2010/10/27)

Q4:交換相関汎関数は、どのようなものがサポートされてますか?

局所密度近似(LDAまたはLSD)と一般化勾配近似(GGA)による以下の汎関数がサポートされています。

局所密度近似(LDAまたはLSD)
CA (Ceperley-Alder) (※PZ (Perdew-Zunger)と同等)
  Ref: Perdew and Zunger, PRB 23, 5075 (1981)
PW92 (Perdew-Wang-92)
  Ref: Perdew and Wang, PRB, 45, 13244 (1992)
一般化勾配近似(GGA)PBE (Perdew-Burke-Ernzerhof)
  Ref: Perdew, Burke and Ernzerhof, PRL 77, 3865 (1996)
revPBE (Revised Perdew-Burke-Ernzerhof)
  Ref: Y. Zhang and W. Yang, PRL 80, 890 (1998)
RPBE (Revised Perdew-Burke-Ernzerhof)
  Ref: Hammer, Hansen and Norskov PRB 59, 7413 (1999)
WC (Wu-Cohen modification of PBE functional)
  Ref: Z. Wu and R.E. Cohen, PRB 73, 235116 (2006)
PBEsol (Perdew-Burke-Ernzerhof for solids)
  Ref: Perdew et al, PRL 100, 136406 (2008)
LYP Becke 交換汎関数およびParr相関汎関数
  Ref: A. D. Becke, Phys. Rev. A 38, 3098 (1988),

C. Lee, W. Yang, R. G. Parr, Phys. Rev. B 37, 785 (1988),

Miehlich, Savin, Stoll and Preuss, Chem. Phys. Lett. 157, 200 (1989),

Johnson, Gill and Pople, J. Chem. Phys. 98, 5612 (1993)
また、XC.hybridオプションを用いて、ハイブリッド汎関数を使用することも可能です。

%block XC.hybrid
2            // 使用する汎関数の数
LDA CA 0.5 0.75    // 左から、近似タイプ、XCタイプ、交換項割合、相関項割合
GGA PBE 0.5 0.25   // 〃
%endblock XC.hybrid
上の例では、LDAのCAとGGAのPBEを用いて、交換汎関数は同じ割合(1:1)で、交換汎関数は(75:25)の割合で混ぜ合わせています。
(2010/10/27)

Q5: 分子動力学計算のアルゴリズムは?

次のアルゴリズムを利用可能です。
・Verlet(NVE, ミクロカノニカルアンサンブル)
・Nose(NVT, カノニカルアンサンブル)
・Parrinello-Rahman(NPE)
・Nose-Parrinello-Rahman(NPT)

また、構造最適化、アニーリング等では、以下の手法がサポートされています。
・CG(共役勾配)
・Broyden(修正Broyden法)
・FIRE(Fast Inertial Relaxation Engine)
・Anneal(アニーリング)
・FC(力の定数行列)
・Phonon(力、Phononプログラム用出力)
・Forces(力、外部プログラム用出力)
(2010/10/29)

Q6: セミコア電子を価電子帯に追加して計算するには?

セミコア電子を価電子帯に加えるには、PAO.Basisブロックで基底関数を明示的に定義する必要があります。PAO.Basisが存在する場合、通常PAO.EnergyShiftは無効となりますが、PAO.Basisで定義されるカットオフ半径が0の場合、有効化されます。例えば、Gaの3d電子をバレンスとして扱うには、マスター入力ファイルSystemLabel.fdfに、PAO.EnergyShiftとPAO.Basisを次のように定義します。

PAO.EnergyShift 0.02 Ry
%block PAO.Basis
Ga-3d 3 # Species label, number of l-shells
n=3 2 2 P # n, l, Nzeta, Polarization
0.00 0.00 # rc(Nzeta repeat)
n=4 1 2 P
0.00 0.00
n=4 0 2 P
0.00 0.00
%endblock PAO.Basis

詳細は、SIESTAユーザガイドの"PAO.Basis block"の説明をご確認ください。
(2011/07/29)

Q7: 電荷密度や波動関数を可視化するには?

dencharプログラムを利用し可視化します。
ただし、現行のsiesta 3.0では、ファイル形式が変更されていますので、ユーティリティプログラムを用いてフォーマットを変換する必要があります。
以下、GaAsの場合の例になります。
まず、fdfファイルと各原子の擬ポテンシャルファイルを用意します(GaAsサンプルファイル)。
波動関数を出力するため、fdfファイルに次の記述を追加し、siestaを実行し、WFSXファイルを得ます。

  WriteDenchar true
  WriteWaveFunctions true

ユーティリティ wfsx2wfs を用いて、フォーマットを変換します。このユーティリティを利用するには、入力ファイル名が"WFSX"である必要があります。このため、gaas.WFSXに対してシンボリックリンクWFSXを作成します。

$ ln -s gaas.WFSX WFSX

続けて、wfsx2wfsを実行します。

$ wfsx2wfs

エラーなく終了すれば、WFSに対してシンボリックリンクgaas.WFSを作成します。

$ ln -s WFS gaas.WFS

以上で、dencharを実行可能な状態になりました。

$ denchar < gaas.fdf

としてdencharを実行します。データ成形されたファイルが出力されるので、gnuplot等のプロッタを用いて可視化します。

出力ファイル例

  gaas.CON.SCF : 電荷密度
  gaas.CON.DEL : 電荷密度と原子電荷密度の差分
  gaas.CON.WF# : 波動関数

gnuplot実行例

$ gnuplot
gnuplot> splot 'gaas.CON.SCF' using 1:2:3 with lines
gnuplot> quit

詳細は、DENCHARユーザガイドをご覧ください。(2011/07/29)