* はじめに [#r9af3044] 従来のSTATEではGGA等で収束させた電荷密度と原子配置を用いてvdW-DFの非局所相関エネルギーを計算していましたが、~ STATE 5.5.4では直接vdW-DFを用いて電荷密度と原子配置の収束計算が行えます。~ オリジナルのvdW-DFでは二重積分の計算にO(N^2)の計算コストがかかり、 特に大きな系への適用が困難でしたが、~ Román-PérezとSoler(([[G. Román-Pérez and José M. Soler, Phys. Rev. Lett. ''103'', 096102 (2009).:http://journals.aps.org/prl/abstract/10.1103/PhysRevLett.103.096102]]))のアルゴリズムを用いると計算コストをO(NlogN)に抑えることが可能です。~ ここではRomán-PérezとSolerの方法を簡略化したWuとGygi(([[J. Wu and F. Gygi, J. Chem. Phys. ''136'', 224107 (2012).:http://scitation.aip.org/content/aip/journal/jcp/136/22/10.1063/1.4727850]]))の方法を用いて実装を行いました。 * 使い方 [#rfb133e2] ** 準備 [#s4e48aee] プログラムからRomán-Pérez-Solerアルゴリズム用のvdW kernelのテーブルを読み込むため ~/STATE/src/ 等にvdwdphi.datをおいて、計算を行うディレクトリにvdwdphi.datのリンクを作って下さい。 ** Post-processing vdW-DF [#mb073ffa] GGAで電子密度と原子構造を求めたあとicond=26に変更して計算を行うと、 従来通りnon-self-consistentなvdW-DFの計算が行えます。~ この場合、実空間で非局所相関エネルギーを計算するので計算コストがかかりますが、 入力ファイルの下に &VDW-DF FFTVDW &END を追加することで、Román-Pérez-Solerアルゴリズムの恩恵により計算が高速化されます。 vdW-DF1以外のvdW密度汎関数を用いる場合には交換汎関数と非局所相関汎関数の種類を別々に指定します。~ 例えばvdW-DF1に対して交換汎関数を改良したoptB86b-vdWを用いる場合には、&VDW-DFのブロックを &VDW-DF FFTVDW x optb86b &END のように変更します。xの次の文字列は交換汎関数を表します。 さらに交換汎関数に加え非局所相関汎関数も変更したrev-vdW-DF2を用いる場合には &VDW-DF FFTVDW VDW-DF2 x b86r &END とします。 VDW-DF2を省略するとVDW-DF1の非局所相関汎関数が指定されます。~ 交換汎関数と非局所相関汎関数の組み合わせは下表を参考にして下さい。 *** 注意 [#xcfedb7e] STATE 5.5.4以降では交換汎関数と非局所相関汎関数の組み合わせを&VDW-DFのブロックで指定しなくても~ 下表のvdW密度汎関数名をxctypeに指定すればPost-processing vdW-DFの計算が出来るように実装されていますが~ この方法では常にvdW-DF1の非局所汎関数で計算されてしまうことが判明しましたので~ vdW-DF2およびrev-vdW-DF2を用いる際には注意して下さい。~ 最新版のSTATE 5.6.0でもこのバグは修正されていないので、取り敢えず上の指定方法を用いるのが無難です。 ** Self-consistent vdW-DF [#v5a8c6f4] 一方、icond=0(初めから) or 1(続きから)のとき、xctypeとして以下のいずれかを選択するとself-consisitentなvdW-DFの計算が行えます。~ Self-consistentの場合は&VDW-DFのブロックでFFTVDWを指定する必要はありません。~ 表中で非局所相関汎関数のvdW-DF1とvdW-DF2の違いは、パラメータZabが前者では-0.8491で後者では-0.8491x2.222=-1.887となる点です。 |xctype|Non-local corr.|Exchange|文献|h |vdw-df または drsll|vdW-DF1|revPBE|[[M. Dion et al., Phys. Rev. Lett. 92, 246401 (2004):http://journals.aps.org/prl/abstract/10.1103/PhysRevLett.92.246401]]| |vdw-df2 または lmkll|vdW-DF2|PW86R|[[K. Lee et al., Phys. Rev. B 82, 081101(R) (2010):http://journals.aps.org/prb/abstract/10.1103/PhysRevB.82.081101]]| |c09 または c09-vdw または drsllc|vdW-DF1|C09x|[[V. R. Cooper, Phys. Rev. B 81, 161104(R) (2010):http://journals.aps.org/prb/abstract/10.1103/PhysRevB.81.161104]]| |c09-vdw2 または lmkllc|vdW-DF2|C09x|| |optpbe または optpbe-vdw|vdW-DF1|optPBE|[[J. Klimeš et al., J. Phys.: Cond. Matt. 22, 022201 (2010):http://iopscience.iop.org/0953-8984/22/2/022201]]| |optb88 または optb88-vdw または kbm|vdW-DF1|optB88|[[J. Klimeš et al., J. Phys.: Cond. Matt. 22, 022201 (2010):http://iopscience.iop.org/0953-8984/22/2/022201]]| |optb86b または optb86b-vdw|vdW-DF1|optB86b|[[J. Klimeš et al., Phys. Rev. B 83, 195131 (2011):http://journals.aps.org/prb/abstract/10.1103/PhysRevB.83.195131]]| |rev-vdw-df2 または lmkllh|vdW-DF2|B86R|[[I. Hamada, Phys. Rev. B 89, 121103(R) (2014):http://journals.aps.org/prb/abstract/10.1103/PhysRevB.89.121103]]| //Román-Pérez-Solerアルゴリズムを適用するには、入力ファイルに以下のオプションが必要です。 // &VDW-DF // FFTVDW // &END *** 注意 [#da6c43b0] STATE 5.5.4および5.6.0ではB86交換ポテンシャルの計算のバグ修正が反映されておりませんでしたので~ optB86b-vdWおよびrev-vdW-DF2を用いる際には修正版を入手して下さい。 ** vdW kernelの分割 [#l5f17611] Román-Pérez-SolerアルゴリズムではvdW kernelをq0に関して分割するため、想定するq0の最大値(qcut)と分割数(nqs)を指定する必要があります。~ 例えばbulkの軽元素の場合、q0の最大値は3程度なので &VDW-DF qcut 5.d0 nqs 10 &END とします。一方、bulkの遷移金属元素ではq0の最大値が7程度になるので &VDW-DF qcut 10.d0 nqs 20 &END とします。軽元素であっても孤立系や表面系ではq0の分布が長いtailを持つようになるので、後者の設定が無難のようです。 何も指定しない場合はqcut=3.d0、nqs=10が設定されますが、次期バージョンではqcut=10.d0、nqs=20をデフォルトにする予定です。