cp2k/docs/methods/embedding/kim-gordon.md
2023-12-10 17:01:50 +01:00

5.4 KiB
Raw Permalink Blame History

Kim-Gordon

Introduction

This method is based on density embedding. Let's introduce first the subtraction scheme definition of the density embedding method:

E_{tot} = E_{HK}[\rho_{tot}] - \sum_{A}E_{HK}[\rho_{A}] + \sum_{A}E_{KS}[\rho_{A}].

The total electronic density \rho_{tot} = \sum_{A}\rho_{A} is the sum over all the subsystems A of the subsystem densities \rho_{A}. The energy functionals E_{HK} and E_{KS} are the HohenbergKohn and the KohnSham functionals, respectively.

E_{HK}[\rho] = T_{HK}[\rho] + E_{ext}^{HK}[\rho] + \frac{1}{2} \int\int \frac{\rho(r)\rho(r')}{r-r'}drdr' + E_{XC}[\rho] \ E_{KS}[P] = T_{S}[P] + E_{ext}[P] + \frac{1}{2} \int\int \frac{\rho(r)\rho(r')}{r-r'}drdr' + E_{XC}[\rho]

where P is the reduced one-particle density matrix of the system. First of all, it's important to introduce the restriction that the external energy functional in the HohenbergKohn energy is linear in the density.

 E_{ext}^{HK}[\rho_{tot}] = \sum_{A}E_{ext}^{HK}[\rho_{A}] 

Now, calling the classical Coulomb term E_{hxc}[\rho] and defining the non-additive kinetic energy as T_{nadd}[\rho,{\rho_{A}}] = T_{HK}[\rho]-\sum_{A}T_{HK}[\rho_{A}], the obtained equation is:

 E_{tot}[{P_{A}}] =\sum_{A}(T_{S}[P_{A}] + E_{ext}[P_{A}]) + E_{hxc}[\rho] + T_{nadd}[{P_{A}}] 

To avoid the integration of the kinetic energy functional for each subsystem, an atomic potential approximation can be applied. For a local potential:

T_{nadd} = T_{S}[\rho]-\sum_{A}T_{S}[\rho_{A}] = \ \int\rho\mu[\rho]dr - \sum_{a}\int\rho_{A}\mu[\rho_{A}]dr = \ \sum_{a}\int\rho_{A}(\mu[\rho]-\mu[\rho_{A}])dr

Doing a linearization approximation for the functional \mu[\rho]

\mu[\rho]-\mu[\rho_{A}] \sim \sum_{B\neq A} \frac{\partial \mu[\rho_{A}]}{\partial \rho} \rho_{B} = \mu'[\rho_{A}] \ T_{nadd} = \sum_{A}T_{S}\sum_{B\neq A}\int\mu'[\rho_{A}]\rho_{A}\rho_{B}dr

A further approximation of the derivative functional in atomic contributions is:

 \mu'[\rho_{A}]\rho_{A} = V^{K}[\rho_{A}] \sim \sum_{a \in A}V_{a}^{K}(R_{a}) 

The realization that a typical kinetic energy functional is proportional to \rho^{5/3} leads to a model for the final atomic local potential of the form:

 V_{a}^{K}(R_{a}) = N_{a}\rho_{a}^{2/3} 

where \rho_{a} is a model atomic density. Such local potential can help to speed up the underlying embedding calculation.

Tutorial

The division of the total system into subsystems is a critical point, in order to do that properly it is important to specify which is the 'minimum unit', that can be defined in the TOPOLOGY section:

  &SUBSYS
    &CELL
      ABC 9.8528 9.8528 9.8528
    &END CELL
    &COORD
 O   2.28039789       9.14653873       5.08869600       1
 H   1.76201904       9.82042885       5.52845383       1
 H   3.09598708       9.10708809       5.58818579       1
 O   1.25170302       2.40626097       7.76990795       2
 H  0.554129004       2.98263407       8.08202362       2
 H   1.77125704       2.95477891       7.18218088       2
 O   1.59630203       6.92012787      0.656695008       3
 H   2.11214805       6.12632084      0.798135996       3
 H   1.77638900       7.46326399       1.42402995       3
 ...
    &END COORD
    &TOPOLOGY
      CONN_FILE_FORMAT USER
    &END

This strategy is based on the fourth column in the COORD section. At this point the code is able to find the best combination of 'minimum units' through the COLORING_METHOD in order to simplify the calculation. Another suggestion is to run KG calculations using linear scaling DFT, replacing the SCF section with the LS_SCF section:

&LS_SCF
  MAX_SCF     40
  EPS_FILTER  1.0E-6
  EPS_SCF     1.0E-7
  MU         -0.1
  PURIFICATION_METHOD TRS4
&END

This speeds up the calculation, especially increasing the dimension of the system.

Keep in mind: all the keywords have to be activated in the QS section as well:

    &QS
      LS_SCF
      KG_METHOD
      ...
    &END QS

Once all these passages are done, one has to choose the TNADD_METHOD. For the first type of calculation, discussed in the previous section, the keyword to select is EMBEDDING (default). Inside the section the XC functional can be selected:

&XC
  &XC_FUNCTIONAL
    &KE_GGA
      FUNCTIONAL T92   #example
    &END
  &END
&END

And in the same section others corrections can be added (example: VDW_POTENTIAL). For the second type of calculation the keyword to select is ATOMIC. This method implies a supplemental atomic potential (create a file which contains all the required potentials). Potential templates can be found inside the "tests > QS > regtest-kg" folder of CP2K and they can be generated directly from the code (look at "tests > ATOM > regtest-pseudo > O_KG.inp"). It's important to point out that this method is still in the experimental stage and further investigations are needed.

Keep in mind: there is also the possibility to completely avoid the $T_{nadd}$ selecting `NONE` as
[TNADD_METHOD](#CP2K_INPUT.FORCE_EVAL.DFT.KG_METHOD.TNADD_METHOD), but in this way the result of
the calculation is going to be wrong, since one term is missing.