Skip to content

DRAFT: Implement the Calculation of Hubbard U Parameters via the Linear Response Method

Ugo Nwosu requested to merge ugognw/ase:hubbard into master

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 the Vasp 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 to ase.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

Merge request reports