SIESTA 基本的な使用方法
SIESTAで計算を実行するにあたり、必要となるものは次の3つです。
- SIESTA実行モジュール(i.e. siesta, transiesta)
- 擬ポテンシャルファイル(e.g. Si.psf, or Si.vps)
- FDF(Flexible Data Format)形式入力ファイル
まず、1.の実行モジュールはSIESTAソースコードをコンパイルし、作成します。
2.の擬ポテンシャルファイルは、SIESTAコードに含まれるATOMモジュールとスクリプトを使用し、作成します。いくつかの原子種のポテンシャルファイルは、SIESTAダウンロードサイト上にて公開されており、そちらから入手することも可能です。最後に、3.のFDFファイルは、計算対象となる分子、結晶などの構造情報やSIESTAの計算制御や出力方法などを指定する単一の入力ファイルです。通常テンプレートファイルをテキストエディタで修正し、準備しますが、FDF形式の出力に対応した外部プログラム(e.g. gdis, aten, GULP)の利用により、作成することも可能です。
ここでは、SIESTAの基本的な使用方法として、次の各操作を説明します。
SIESTAとATOM実行のための環境設定
まず、SIESTAとATOMを使用するために、SIESTAとATOMコマンドのパス設定と2つの環境変数を指定します。
ATOM_PROGRAM : 実行ファイルatmの完全パスを指定
ATOM_UTILS_DIR : gnuplot用スクリプト等が格納されたUtilsディレクトリの完全パスを指定
PATH : SIESTAおよびATOMスクリプトのコマンドパスを既存のPATHに追加
以下、シェルリソースファイルの設定例です。
${HOME}/.bashrcの例(抜粋)
if [ -d /usr/local/siesta ] ; then
export ATOM_PROGRAM=/usr/local/siesta/bin/atm
export ATOM_UTILS_DIR=/usr/local/siesta/bin/Utils
export PATH=/usr/local/siesta/bin:/usr/local/siesta/bin/Utils:${PATH}
fi
${HOME}/.cshrcの例(抜粋)
if ( -d /usr/local/siesta ) then
setenv ATOM_PROGRAM /usr/local/siesta/bin/atm
setenv ATOM_UTILS_DIR /usr/local/siesta/bin/Utils
set path = ( /usr/local/siesta/bin /usr/local/siesta/bin/Utils $path )
endif
ATOMによる擬ポテンシャルファイルの作成
最初に、次のようなATOM用の入力ファイル(ファイル名 Si.inp)を準備します。
スペース等フォーマットを厳しく判定するため、こちらのファイルをダウンロードしてお使いください。
# 各行とも#以降はコメントです
# Pseudopotential generation for Silicon
# pg: simple generation
#
pg Silicon #計算タイプ(ae:全電子/pg:PP/pe:PP内殻補正), タイトル
tm2 3.0 # NCタイプ(hsc/ker/tm2), 対数微分 R(テスト用)
n=Si c=car # 元素記号, XCタイプ(ca/wi/hl/gl/bh/pb/rp/rv/bl)続けて(s:スピン分極/r:スピン及び相対論考慮)
0.0 0.0 0.0 0.0 0.0 0.0
3 4 # 内殻電子の軌道数, 価電子の軌道数
3 0 2.00 0.00 # 主量子数, 角運動量量子数, 占有数(up,dn)
3 1 2.00 0.00 # 3p2
3 2 0.00 0.00 # 3d0
4 3 0.00 0.00 # 4f0
1.90 1.90 1.90 1.90 0.00 0.00
#
# Last line (above):
# rc(s軌道), rc(p軌道), rc(d軌道), rc(f軌道), 内殻補正用フラグ, rcore
#
#23456789012345678901234567890123456789012345678901234567890
続いて、この入力ファイルを引数として、pg.shスクリプトを実行します。
$ pg.sh Si.inp
以上で、Si.inpファイルと同じディレクトリにSi.psf(テキスト形式)、Si.vps(バイナリ形式)の擬ポテンシャルファイルが生成されます。同時にディレクトリSiが作成され、作成した擬ポテンシャルを評価するためのデータやGnuplot用のスクリプトファイルが格納されます。
次の例のように、gnuplotを起動し、各gplotファイルをロードすることで、画面上にグラフを表示することができます。
$ cd Si
$ gnuplot
gnuplot > load 'pseudo.gplot'
pseudo.gplot(l=0)出力例※pseudo.gpsファイルによりPS形式で出力し、PDF変換した画像データ -> こちら(pseudo.pdf)
シリアル版SIESTAの実行
SIESTAは、カレントディレクトリ内の入力ファイルを読み込み、同じディレクトリに計算結果等をファイル出力します。名前(SystemLabel)を変更することで、同一ディレクトリ内で複数のジョブを実行することも可能ですが、多数のファイルが生成されるため、ジョブ毎に別々のディレクトリを作成し、使用されることをお勧めします。
まず、新しくディレクトリを作成し、カレントディレクトリをこちらに移します。
$ mkdir si
$ cd si
続いて、テキストエディタ等により、次の内容のFDFファイル(ファイル名 Si.fdf)を作成します。
SystemName Bulk Silicon
SystemLabel Si
NumberOfSpecies 1
NumberOfAtoms 2
%block ChemicalSpeciesLabel
1 14 Si
%endblock ChemicalSpeciesLabel
LatticeConstant 5.41119733025 Ang
%block LatticeVectors
0.00 0.50 0.50
0.50 0.00 0.50
0.50 0.50 0.00
%endblock LatticeVectors
AtomicCoordinatesFormat ScaledByLatticeVectors
%block AtomicCoordinatesAndAtomicSpecies
0.00 0.00 0.00 1
0.25 0.25 0.25 1
%endblock AtomicCoordinatesAndAtomicSpecies
%block kgrid_Monkhorst_Pack
20 0 0 0.5
0 20 0 0.5
0 0 20 0.5
%endblock kgrid_Monkhorst_Pack
MaxSCFIterations 50
DM.UseSaveDM .true.
%block ProjectedDensityOfStates
-20.0 5.0 0.200 500 eV
%endblock ProjectedDensityOfStates
続いて、擬ポテンシャルファイルをFDFを保存したディレクトリにコピーします。
$ cp "格納先ディレクトリパス"/Si.psf .
以上で、作業ディレクトリ内には、FDFファイルと擬ポテンシャルファイルのみ存在しているはずです。
確認後、次のコマンドにより、SIESTA計算を開始します。
$ siesta < Si.fdf > Si.out
もし、標準出力内容を画面とファイルに同時に出力したい場合、次のようにteeコマンドを使用します。
$ siesta < Si.fdf | tee Si.out
または、バックグラウンドで実行しておき(コマンド入力最後に&をつけて実行)、tailコマンドでフォローします。
$ siesta < Si.fdf > Si.out &
$ tail -f Si.out
※ 計算完了後、Ctrl+cキーによりtailコマンドを終了します。
パラレル版SIESTAの実行(OpenMPI使用時)
OpenMPI版のSIESTA実行モジュール名をsiesta-mpiとしています。
mpirun コマンドに続けて、-npオプションにより並列数を、
SIESTA実行モジュールを完全パスで指定し、リダイレクトで入出力ファイルを指定します。
$ mpirun -np 4 /usr/local/siesta/bin/siesta-mpi < Si.fdf > Si.out
mpirunに-hostfileオプションを追加することにより、実行ホストを指定することもできます。
hostfileの例(ファイル名 myhosts)
node01.localdomain slots=4
node02.localdomain slots=4
node03.localdomain slots=4
node04.localdomain slots=4
実行例
$ mpirun -np 16 -hostfile myhosts /usr/local/siesta/bin/siesta-mpi < Si.fdf > Si.out


SIESTA 技術情...