この記事では化合物の3次元構造データであるxyzファイルから、ORCAのインプットファイルを作成する方法を紹介します。
・ORCAについて
・ORCAのインプットファイルのルール
・実際のORCAインプットファイル例
・ORCAの計算結果の見方
ORCAについて
ORCAはNeeseによって開発された量子化学計算プログラムです。
Gaussianと比較すると使用されている例が少ないと思うかもしれませんが、バージョンアップの頻度も高く、最先端の手法を簡単に用いることができます。
2024年11月5日にORCA 6.0.1がリリースされています。
ORCAの特徴は以下の通りです。
- アカデミックは無償(ORCA Forumでの登録が必要)
- 出発物と生成物の2点からTSを含む反応経路を最適化するNudged Elastic Band(NEB)法が使用できる
- GrimmeらのGFN-xTBを利用できる(別途設定が必要)
- Tutorialが丁寧(ORCA 6.0 TUTORIALS)
かなり豊富な機能が利用できるうえ、アカデミックでは無償で利用できるのは特にありがたいです。
ORCAを利用するためには、以下のORCA Forumから登録後、コンパイル済みのバイナリをダウンロードするだけでよいです。
ORCA Forum
並列計算を行うためにはOpenMPIが必要となりますので、詳細は公式サイトを確認してください。
Installing ORCA: ORCA 6.0 TUTORIALS
スパコンを使用できるのであればスパコンの管理者に相談するのが一番早いです。
また並列計算を行うためには、実行時にプログラムを以下のようにフルパスで指定する必要があります。
$/orca_full_path/orca inputfile.inp > inputfile.out
上記コマンドはORCAの実行ファイルが/orca_full_path/orcaにある環境で、「inputfile.inp」をインプットファイルとして計算を実行する際のコマンドです。
(先頭の$マークは無視してください)
ORCAのダウンロード後にPATHを通していれば、以下のコマンドでORCAのフルパスを取得可能です。
(こちらも先頭の$マークは無視してください)
$which orca
> inputfile.out は必須ではないですが、このようにすると計算ログがoutファイルに書き込まれます。
GFN-xTBを利用する方法は別記事で紹介するとして、早速ORCAを使った計算方法を見ていきましょう。
今回使用するxyzファイル
今回もGaussianのインプットファイルのとき同様、benzeneの3次元構造データに対する量子化学を行ってみましょう。
xyzファイルは以下のものです。
12 benzene C -0.00590 0.00560 -0.06240 C 0.03290 -0.66660 -1.27820 C 0.06640 -2.05580 -1.30340 C 0.06120 -2.77280 -0.11280 C 0.02240 -2.10050 1.10300 C -0.01110 -0.71140 1.12820 H -0.03200 1.08720 -0.04280 H 0.03700 -0.10840 -2.20520 H 0.09660 -2.57920 -2.25000 H 0.08730 -3.85430 -0.13240 H 0.01830 -2.65870 2.03000 H -0.04130 -0.18800 2.07480
Gaussianのインプットファイルの作成方法は以下の記事ですでに紹介しています。
xyzファイルの作り方については以前の記事をどうぞ。
ORCAのインプットファイル形式
ORCAのインプットファイルは
- 「!」で始まる計算条件を指定する複数のキーワード(以下の例では3キーワード)
- 「%」で始まり、「end」で終了する計算条件の詳細設定ブロック(以下の例では%geomブロックと%palブロックを使用)
- 2つの「*」で挟まれた、電荷、多重度、構造データ
で構成されています。
benzeneに対して、B3LYP/Def2-SVPレベルで構造最適化するインプットファイルが以下のものになります。
! B3LYP def2-SVP Opt %geom Calc_Hess true #入力構造に対する振動計算を実施 NumHess true #振動計算では数値的ヘシアンを計算 end %pal nprocs 4 end * xyz 0 1 C -0.00590 0.00560 -0.06240 C 0.03290 -0.66660 -1.27820 C 0.06640 -2.05580 -1.30340 C 0.06120 -2.77280 -0.11280 C 0.02240 -2.10050 1.10300 C -0.01110 -0.71140 1.12820 H -0.03200 1.08720 -0.04280 H 0.03700 -0.10840 -2.20520 H 0.09660 -2.57920 -2.25000 H 0.08730 -3.85430 -0.13240 H 0.01830 -2.65870 2.03000 H -0.04130 -0.18800 2.07480 *
1行目の
! B3LYP def2-SVP Opt
は汎関数「B3LYP」、基底関数「def2-SVP」で構造最適化「Opt」することを意味しています。
2行目の「%」から始まり5行目の「end」で終了する%geomブロックでは、構造最適化の最初に数値的ヘシアンを計算する(振動計算)ことを指定しています。
Gaussianにおけるopt=calcfcと同等です。
今回の計算ではこの部分はなくても問題はなく、%ブロックの説明のためにあえて入れています。
6行目〜8行目の%palブロックでは、並列数を指定しており、「nprocs 4」とすることで、4コアでの並列計算を指定しています。
スパコンでは20-40程度となる値です。
構造を指定している10行目以下では冒頭に「xyz」の記載があります。
これは、次の行からの3次元構造データがCartesian座標であることを意味しています。
他にもz-matrixを指定する「gzmt」などもありますが、基本的にはxyzで良いでしょう。
その後の0 1は電荷と多重度で、それ以降の部分はxyzファイルの3次元座標部分(今回の例ではxyzファイルの3〜14行目部分)をコピペすれば完成です。
電荷や多重度についてはGaussianのインプットファイルの作り方を紹介した以下の記事で紹介しています。
インプットファイルで直接xyzファイルを読み込む
ORCAでは、先ほどの例のようにインプットファイル内に分子の3次元構造を記載することもできますが、作成したxyzファイルを直接読み込むことも可能です。
この方法はかなり便利なので紹介しておきます。
上のインプットファイルをbenzene.xyzから作成すると以下のようになります。
! B3LYP def2-SVP Opt %geom Calc_Hess true #入力構造に対する振動計算を実施 NumHess true #振動計算では数値的ヘシアンを計算 end %pal nprocs 4 end * xyzfile 0 1 benzene.xyz
9行目のみが異なっています。
9行目冒頭の
* xyzfile
の部分は入力する3次元構造をxyzファイルで指定することを意味しています。
その後の
0 1 benzene.xyz
は、左から順に「電荷」、「多重度」、「xyzファイル名」です。
上記インプットファイルはxyzファイルと同じディレクトリに保存しておく必要があります。
わざわざ3次元構造を記述しなくてよいので楽ですよね。
計算の実行と結果の見方
上で示したインプットファイル(inputfile.inp)は、以下のコマンドのようにフルパスでORCAを読み出すことで実行できます。
つまり以下のコマンドの「/orca_full_path/orca」の部分は、ORCAプログラムのある環境ごとに変更する必要があるということになります。
$/orca_full_path/orca inputfile.inp > inputfile.out
デフォルト設定では、以下のようなファイルが出力されます。
ファイル名の冒頭はinputファイル名(今回はinputfile)が入力されます。
- inputfile_trj.xyz: 最適化の途中経過の3次元構造全てが格納されたxyzファイル
- inputfile.xyz: 現時点での3次元構造
- inputfile.hess: 振動計算を指定していれば振動計算の結果
これら3つ以外にも多くのファイルが出力されますが説明は省略します。
また、上記コマンドで実行すれば、計算ログがinputfile.outに格納され、この中からエネルギーや振動計算の結果得られた振動数を確認することができます。
3次元構造データがそのまま出力されるので、途中経過を追うのも簡単です。
管理人はPymolで確認することが多いです。
inputfile_trj.xyzをpymolで開けば、構造の変化の過程を動画で見ることができます。
構造を確認するための各種プログラムについては以下の記事をご覧ください。
! Opt Numfreqのキーワードで振動計算まで行っていれば、ギブズエネルギーも算出されますが、これについてはoutファイル内に以下のように記載されます。
(数字は適当です。)
Final Gibbs free energy ... -123.4567891011 Eh
ZPEの補正エネルギーのみ、および電子エネルギー(EE)は以下のように記載されるので、高いレベルでの電子エネルギーと合わせて計算することもできます。
(これも数字は適当です。)
#ZPEの値 For completeness - the Gibbs free energy minus the electronic energy G-E(el) ... 0.01234567 Eh 7.74 kcal/mol
EEの値 Electronic energy ... -123.456789 Eh
振動計算の結果については以下のような記述がoutファイル内にあります。
----------------------- VIBRATIONAL FREQUENCIES ----------------------- Scaling factor for frequencies = 1.000000000 (already applied!) 0: 0.00 cm**-1 1: 0.00 cm**-1 2: 0.00 cm**-1 3: 0.00 cm**-1 4: 0.00 cm**-1 5: 0.00 cm**-1 6: 222.22 cm**-1
Gaussianの計算結果と同様に、振動数が小さい順に表記されるので、虚振動があれば6番目(被直線分子)に負の振動が記載されることになります。
終わりに
今回はORCAのインプットファイルの作成方法と計算結果の見方を簡単に紹介しました。
アカデミックユーザーは無償で利用できますので、今後はORCA 6.0 TUTORIALSの例を参考にした具体的な計算方法についても解説記事を公開する予定です。
コメント・質問等はX (@chemmodelcomp)にてご連絡ください。