DRAFT: Implement the Calculation of Hubbard U Parameters via the Linear Response Method
Goal:
- Implement a lightweight routine to calculate Hubbard U parameters according to the linear response method outlined here (pg. 64, eqn. 3.26) and here.
Motivation:
- DFT+U is required for systems with highly correlated d/f electrons
- Rigorously speaking, U values are not only atom-specific but structure-specific as well
- VASP exposes an API for calculating U parameters, but it requires tedious modifications to POSCAR and POTCAR files
- Enter ASE: automated input file creation ++; inconsistent atomic indexing --
Methodology:
- Preserve ASE's input file creation workflows
- Setting the
setups
keyword argument of theVasp
calculator constructor yields consistent POSCAR and POTCAR files - Expose a
Vasp.get_hubbard_u
method by which Users can specify an ase.Atoms index of an atom to calculate its U parameter - Optional: strictly enforce sensical parameters (e.g.,
lmaxmix
>=4) - Optional: specify grid for differentiation
Public API Changes:
-
Vasp.get_hubbard_u
method -
vasp.get_ionic_charges
function (This is a helper function that may, more appropriately, be relocated toase.io.vasp_parsers.vasp_outcar_parsers
.)
TODO:
- more testing
- optionally enforce parameters or provide adequate warning in documentation?
-
vasp.get_ionic_charges
->ase.io.vasp_parsers.vasp_outcar_parsers
Edited by Ugo Nwosu