DFTB+ 24.1 をインストール
- DFTB+ は、DFTB(Density Functional Tight Binding)法に基づいて電子状態計算するソフトウェア
- Tight Binding 法は半経験的な手法であり、原子間の相互作用をパラメータ化された形で取り入れるため、大規模な分子系でも効率的にシミュレーションできる
- DFTB+ は 分子研スパコン にインストールされているけれど、extended TB (xTB) や TD-DFTB は有効化されていないので、これらの手法を使いたいときにはコンパイルが必要
インストール
ソースコードをダウンロード
安定版をダウンロードする
wget https://github.com/dftbplus/dftbplus/releases/download/24.1/dftbplus-24.1.tar.xz
tar -xvf dftbplus-24.1.tar.xz
cd dftbplus-24.1
GitHub から clone する
- 安定版(DFTB+ version 24.1)に含まれる modes ツールには 些細なバグ がある
- 個人的にこのバグがちょっと困ったので、GitHub から clone することにした
git clone https://github.com/dftbplus/dftbplus.git
cd dftbplus
設定ファイルを編集
- xTB 法や TD-DFTB 法を利用するためには、
config.cmake
の2カ所を次のように編集する
@@ -32,1 +32,1 @@
- option(WITH_TBLITE "Whether xTB support should be included via tblite." FALSE)
+ option(WITH_TBLITE "Whether xTB support should be included via tblite." TRUE)
@@ -36,1 +36,1 @@
- option(WITH_ARPACK "Whether the ARPACK library should be included (needed for TD-DFTB)" FALSE)
+ option(WITH_ARPACK "Whether the ARPACK library should be included (needed for TD-DFTB)" TRUE)
config.cmake
コンパイル
- コンパイラには、インテル社が提供する
ifort
とicc
を利用する- 参考:
Intel oneAPI Toolkit 2023 をインストール
- 最新版(2024)だとコマンド名が違うので、いろいろと大変かも…
- gfortran でも問題ないはず
- 参考:
Intel oneAPI Toolkit 2023 をインストール
- インストール先は
$HOME/apl/dftbplus-24.1.1
FC=ifort CC=icc cmake -DCMAKE_INSTALL_PREFIX=$HOME/apl/dftbplus-24.1.1 -B _build .
cmake --build _build -- -j
Slater-Koster ファイルをダウンロード
- Tight Binding 手法で必要な Slater-Koster (SK) ファイルをダウンロード
- GBSA モデルに必要なパラメータもダウンロードされる
./utils/get_opt_externals
- SK ファイルは、
external/slakos
にダウンロードされる slakos
以下を適当なディレクトリに移動する~/lib/slakos
に置いた
mv external/slakos/origin ~/lib/slakos
テスト
pushd _build; ctest -j; popd
インストール
cmake --install _build
環境変数を設定
- ログインシェルが
bash
の場合、.bashrc
で以下のように追記
export DFTBP=~/apl/dftbplus-24.1.1/bin
export PATH=${DFTBP}:${PATH}
DPTools をインストール
- DPTools (DFTB Plus Tools) は、DFTB+ のデータ形式を処理するための Python スクリプト
- たとえば、gen 形式で記述された座標データを xyz 形式に変換する
gen2xyz
などがある
- たとえば、gen 形式で記述された座標データを xyz 形式に変換する
cd tools/dptools
pip install .
DFTB+ を使ってみる
DFTB+ のインプットファイル
- DFTB+ のインプットファイルは、名前が「
dftb_in.hsd
」と決められている- フォーマットは、HSD (Human-readable Structured Data) と呼ばれている
- DFTB+ の独自形式?
- フォーマットは、HSD (Human-readable Structured Data) と呼ばれている
- たとえば、水分子の構造最適化をおこなう場合、DFTB+ インプットファイルは次のように書ける
Geometry = GenFormat {
3 C
O H
1 1 0.00000000000E+00 -0.10000000000E+01 0.00000000000E+00
2 2 0.00000000000E+00 0.00000000000E+00 0.78306400000E+00
3 2 0.00000000000E+00 0.00000000000E+00 -0.78306400000E+00
}
Driver = GeometryOptimization {
OutputPrefix = "geom_opt"
}
Hamiltonian = DFTB {
SCC = Yes
Dispersion = LennardJones {
Parameters = UFFParameters {}
}
SlaterKosterFiles = Type2FileNames {
Prefix = "/home/yamnor/lib/slakos/3ob-3-1/"
Separator = "-"
Suffix = ".skf"
}
MaxAngularMomentum {
O = "p"
H = "s"
}
}
dftb_in.hsd
DFTB+ を実行する
- 計算の実行は、
dftb_in.hsd
ファイルがあるディレクトリでdftb+
コマンド tree
コマンドで、結果をdftb.log
ファイルに出力する
dftb+ | tree dftb.log