Skip to content

delta_scf

Perform a Delta-SCF calculation for excited states.

This runs Delta-SCF based on a excitation specified by the excitation keyword.

For example, we can compute the HOMO-LUMO excited state (which is the default) of ethene using the input:

dft(
  structure( molecule = ethene )
  ao = '6-31G*'
  xc = PBE
  ansatz = u
  delta_scf()
  )
This command can appear in the global context.

Options

average

Optionally compute state using Slater's transition method (average = 'density'). This builds the density with half an electron in each of the ground-state and excited orbitals during the SCF procedure.

  • The type is string
  • The default is none
excitation

Orbitals from which the electron is taken and moved to, specified by orbital number relative to overall initial HOMO. That is:

HOMO = 0,

LUMO = 1,

such that the HOMO-LUMO excitation can be written explicitly as:

dft(
  structure( molecule = ethene )
  ao = '6-31G*'
  xc = PBE
  ansatz = u
  delta_scf(
    excitation = [0, 1]
    )
  )

Requires unrestricted SCF to work (ansatz = u).

For systems with unpaired electrons, the orbital indices are the same across both alpha and beta spin. Hence orbital 0 may only be occupied for one spin. An example where an unpaired electron undergoes only a spin flip but no energy excitation is given by:

dft(
  structure( formula = H )
  ao = '6-31G*'
  xc = PBE
  ansatz = u
  delta_scf(
    excitation = [0, 0]
    occupied_spin = alpha
    spin_flip = true
    )
  )

  • The type is [int]
  • The default is [0, 1]
occupied

Deprecated in favour of excitation

This option is deprecated.

  • The type is string
  • The default is HOMO
occupied_spin

Spin of the orbital from which the electron is taken

  • The type is string
  • The default is beta
  • The value must be one of:
    • alpha - Spin alpha
    • beta - Spin beta
spin_flip

Specify whether or not to flip the spin of the excited electron

  • The type is bool
  • The default is false
use_mom

Override for the mom switch in dft(). In delta_scf, the maximum overlap method is strongly recommended, thus the default is true in this case. When using delta_scf(), the mom keyword of dft() is ignored and this use_mom flag is used instead.

  • The type is bool
  • The default is true
virtual

Deprecated in favour of excitation

This option is deprecated.

  • The type is string
  • The default is LUMO
virtual_spin

Deprecated in favour of spin_flip

This option is deprecated.

  • The type is string
  • The default is alpha