![]() |
(git:37370f3)
|
#include "./base/base_uses.f90"Go to the source code of this file.
Modules | |
| module | dft_plus_u |
| Add the DFT+U contribution to the Hamiltonian matrix. | |
Functions/Subroutines | |
| subroutine, public | dft_plus_u::plus_u (qs_env, matrix_h, matrix_w) |
| Add the DFT+U contribution to the Hamiltonian matrix. Wrapper routine for all "+U" methods. | |
| subroutine, public | dft_plus_u::lowdin_kp_init (qs_env) |
| Select the AO columns used by the existing orbital-diagonal Lowdin functional. | |
| subroutine, public | dft_plus_u::lowdin_kp_prepare (kp, orbitals, use_real_wfn, smat) |
| Prepare selected Lowdin projectors and their reusable product workspace. | |
| subroutine, public | dft_plus_u::lowdin_kp_initial_density (qs_env, fmwork) |
| Complete the initial density's Lowdin coordinates, including atomic and density restarts. | |
| subroutine, public | dft_plus_u::lowdin_kp_population (kpoints, delta, alpha) |
| Cache the current occupations, optionally measure their residual and accept or mix them. | |
| subroutine, public | dft_plus_u::lowdin_kp_apply (kp, v, rmat, cmat) |
| Add B diag(v) B**H before any solver, DIIS residual, or history storage uses H(k). | |
| subroutine, public | dft_plus_u::lowdin_kp_apply_mo (kp, v, coeff, hc) |
| Add B diag(v) B**H C to the complex orbital gradient, without forming an AO matrix. | |
| subroutine, public | dft_plus_u::lowdin_kp_kernel (qs_env, density, response) |
| Project a Bloch density response and return its orbital potential response, including +J. | |
| subroutine, public | dft_plus_u::lowdin_kp_forces (kpoints) |
| Add -dE_U/dS(k) to W(k), before its ordinary inverse Fourier transform. If A=S**(1/2), A*dA+dA*A=dS. In the overlap eigenbasis its adjoint is G_ij=(U**H*(P*A*V+V*A*P)*U)_ij/(sqrt(s_i)+sqrt(s_j)). W <- W-U*G*U**H; the existing overlap derivatives give forces and virial. k-point weights belong to the Fourier transform and are not applied here. | |