ofdft
Subpackage containing OFDFT implementation.
The electronic energy is given by the following functional:
where \(E_{kin}[\rho]\) is the kinetic energy functional, \(E_{nuc}[\rho]\) the nuclear electron attraction energy, \(E_{H}[\rho]\) the Hartree energy (electron-electron coulom repulsion) and \(E_{xc}[\rho]\) the exchange correlation energy.
The nuclear electron attraction energy is given by:
where \(v_{nuc}(r)\) is the nuclear electron attraction potential.
The Hartree energy is given by:
To represent the electron density [M-OFDFT] we use the Linear Combination of Atomic Basis Functions (LCAB) approach. The density is then given by:
where \(p_\mu\) are the coefficients of the atomic basis and \(\omega_\mu(r)\) are the basis functions, for which we use the usual gaussian type ‘atomic orbitals’.
To obtain the groundstate density and energy we need to minimize the energy functional w.r.t. the electron density. This is done by minimizing the energy functional w.r.t. the coefficients of the density expansion.
which we solve by gradient descent.
Additionally, the particle number needs to be preserved. To achieve this we project the gradient onto the subspace of constant particle number. Which results in the following update rule:
with \(w\) being the normalization vector of the basis functions \(w_\mu = \int \omega_\mu (r) \mathrm{d}r\) and \(\epsilon\) being the learning rate/step length of the gradient descent.
Modules
Compute analytic integrals over contracted Gaussian-type orbitals (GTO). |
|
Callback classes for the minimization. |
|
Energies class for storing calculated energies. |
|
Provides energy functionals. |
|
Module for generating initial guesses for the electronic structure. |
|
This module deals with libxc kinetic, exchange and correlation functionals. |
|
Contains the class for storing the state of the OFDFT calculation. |
|
Implementation of functionals in PyTorch. |