Delta-SCF (ΔSCF)

Queries about input and output files, running specific calculations, etc.


Moderators: Global Moderator, Moderator

Post Reply
Message
Author
idan_haritan
Newbie
Newbie
Posts: 2
Joined: Mon Aug 12, 2024 10:28 am

Delta-SCF (ΔSCF)

#1 Post by idan_haritan » Wed Mar 26, 2025 1:24 pm

Hi,

I'm trying to perform Delta-SCF (ΔSCF) calculations in VASP and was wondering what the correct procedure is.
Is the recommended approach to use the FERWE and FERDO tags? Or there is a better way?

If so, do you have a detailed example or documentation that explains how to use these keywords properly? (beside the wiki page)
In particular, I’m confused about how to set the occupation of a specific band at a specific k-point.
For instance, how would I set the occupation of the first band at the second k-point?
Would that correspond to FERWE .... f(NBANDS + 1)?

I would greatly appreciate any guidance or clarification.

Thanks in advance!


marie-therese.huebsch
Full Member
Full Member
Posts: 234
Joined: Tue Jan 19, 2021 12:01 am

Re: Delta-SCF (ΔSCF)

#2 Post by marie-therese.huebsch » Tue Apr 01, 2025 7:57 am

Hello,

I have asked around a bit, but I am afraid no one has performed enough Delta-SCF calculations to gain the experience needed to write a how-to page thus far. In any case, we can answer questions about the behaviour of the code given certain settings. However, it starts to get challenging when it comes to interpreting results or suggesting a workflow to capture a certain physical phenomenon. If you want, we can try to figure it out together.

Any user that has experience, please share your insight.

My understanding of a Delta-SCF calculation is that the goal is to compute the excitation energy as the energy difference of the total energy of the ground state and the excited state, ΔE=EexEgs.

To this end, one performs the following steps:

  • Ground-state-SCF calculation

    • Run a normal DFT-SCF calculation. This entails a convergence study on the total energy (since that is the quantity of interest) with respect to ENCUT and KPOINTS.

    • Total energy=Egs

  • Excited state-SCF calculation

    • Artificially change the occupation of orbitals to simulate an excited electron (e.g., manually promote it from HOMO → LUMO).
      If nb is the index of the band and nk is enumerating the k points, the INCAR file needs to contain the following information about the occupation f(nb,nk)

      Code: Select all

      ISMEAR = -2
      FERWE = f(nb=1,nk=1) f(nb=2,nk=1) f(nb=3,nk=1) ... f(nb=1,nk=2) f(nb=2,nk=2) ... f(nb=NBANDS,nk=NKPT)
      # if ISPIN=2 the occupation for spin down are specified with
      # FERDO = ... 
      LDIAG=.False.     # avoid changing the order of bands 
      
    • Run a new SCF calculation with this modified occupation. Restart the calculation by reading the ground state WAVECAR, but with the additional settings in the INCAR file to fix the occupation numbers. All other parameters should remain the same. Also make sure not to change the parallelization because that can affect the number of bands included. It might be expedient to set NBANDS explicitly.

    • There is no guarantee that the electronic state will remain in the excited configuration. So, carefully analyse the eigenvalues and associated occupation numbers to ensure this is the desired electronic state.

    • Total energy=Eex

  • Compute the total energy difference, ΔE=EexEgs.

How does this work for your system? If your system is complicated, is there maybe a simpler system which has been reported in literature, so we can try to reproduce that result first?

Best regards,
Marie-Therese


Post Reply