-
Notifications
You must be signed in to change notification settings - Fork 35
Charge self consistency and Coulomb interaction
Hotbit offers the possibility to do self-consistent charge (SCC) calculations [1]. SCC requires a method to solve the Poisson equation, i.e. to compute the electrostatic interaction. Different solvers can be selected for that purpose.
SCC is triggered by using the SCC flag, i.e.
calc = Hotbit(
SCC = True,
verbose_SCC = True)
If additionally verbose_SCC is selected the convergence of the self-consistency loop will be printed to the log file. The converged (Mulliken) charges can be obtained from the respective atoms object via the get_charges()
method.
Without any particular choice of Coulomb solver, the Coulomb interaction is computed by direct summation over all pairs of atoms. This is only possible for isolated systems (molecules, cluster). For periodic solids the calculator will raise an exception.
The Coulomb interaction can be cut-off using an error function by specifying the gamma_cut parameter, i.e.
calc = Hotbit(
SCC = True,
gamma_cut = 5.0)
This approach also works for periodic systems, but might lead to a poor representation of the overall Coulomb energy.
Other Poisson solvers can be selected using the coulomb_solver keyword. Currently, three solvers exists: DirectCoulomb, EwaldSum and MultipoleExpansion. The DirectCoulomb solver is the default and hence does not need to be specified explicitly. EwaldSum does currently not support forces.
The MultipoleExpansion solver computes the interaction of periodic images by telescoping the direct summation in a hierarchical manner [2]. It can be selected by
calc = Hotbit(
SCC = True,
coulomb_solver = MultipoleExpansion(
n = 3,
k = 5))
Here n denotes the number of repeat units that are combined at each level of the telescoping procedure. k is the total number of levels considered. For the examples above, a three-dimensional system would lead to the summation of 27^5 images of the unit cell.
The n and k parameters can be chosen independently for the three symmetry operations, i.e. in the case of a bravais container the three cartesian direction. In particular in the choice of n care must be taken that the effective repeat units are approximately cubic if the system is three dimensional. Right now, for non-periodic symmetries k must be set equal to one. Example:
calc = Hotbit(
SCC = True,
coulomb_solver = MultipoleExpansion(
n = ( 3, 5, 3 ),
k = ( 5, 5, 7 ))
In the SCC scheme, the charge on each atom has a certain shape. In the original SCC scheme the charge-density is spherically symmetry and decays exponentially (Slater-type). Gaussian-type charge-densities were proposed later (i.e. [3]). The charge-density can be selected by using
calc = Hotbit(
SCC = True,
charge_density = 'Slater')
Default is charge_density = 'Gaussian'. Typically, energy differences obtained from choosing either 'Slater' or 'Gaussian' charge-densities are in the meV regime.
- M. Elstner et al., Phys. Rev. B 58, 7260 (1998)
- C.G. Lambert, T.A. Darden, J.A. Board Jr., J. Comput. Phys. 126, 274 (1996)
- N. Bernstein, M.J. Mehl, D.A. Papaconstantopoulos, Phys. Rev. B 66, 075212 (2002)