Skip to content
Alireza-Lashkaripour edited this page Jun 8, 2026 · 1 revision

[EKT]: EKT-MRSF-TDDFT IP/EA Options

[EKT] Defaults
Keyword Default Description
ip True Compute MRSF-EKT ionization potentials / electron binding energies for electron detachment.
ea False Compute MRSF-EKT electron affinities for electron attachment.
[EKT] Details

The ekt section controls Extended Koopmans' Theorem (EKT) calculations with MRSF-TDDFT references. EKT is selected with [input] runtype=ekt; the [ekt] section then chooses whether to compute ionization potentials (IP), electron affinities (EA), or both.

A minimal EKT-IP/EKT-EA selector is:

[ekt]
ip=True
ea=True

Use this section with:

  • [input] method=tdhf
  • [input] runtype=ekt
  • [tdhf] type=mrsf
  • A spin-flip reference, usually [scf] type=rohf and [scf] multiplicity=3
  • At least one of [ekt] ip=True or [ekt] ea=True

OpenQP currently supports the dedicated ekt runtype only for MRSF-TDDFT. If runtype=ekt is used with another method or a non-MRSF TDHF type, the input checker reports an error.

  • ip: Enables the MRSF-EKT ionization-potential channel.

    • Default: True
    • Options:
      • True: Compute EKT-IP roots.
      • False: Skip the EKT-IP channel.
    • Output: The log prints a table headed MRSF-EKT ionization potentials (Dyson eBEs) with EKT eigenvalues, electron binding energies in Hartree/eV, metric values, and Dyson pole strengths.
  • ea: Enables the MRSF-EKT electron-affinity channel.

    • Default: False
    • Options:
      • True: Compute EKT-EA roots.
      • False: Skip the EKT-EA channel.
    • Output: The log prints a table headed MRSF-EKT electron affinities with the same eigenvalue, eBE/eV, metric, and strength columns.

If both options are enabled, OpenQP runs the IP channel first and then the EA channel in the same calculation:

[ekt]
ip=True
ea=True

The final JSON output contains structured EKT data under mrsf_ekt. For EKT results this includes:

  • eigenvalues_hartree
  • ebe_ev
  • pole_strengths
  • dyson_orbitals_mo
  • target_state

When both IP and EA are requested in one runtype=ekt job, per-channel snapshots are also preserved under mrsf_ekt["ip"] and mrsf_ekt["ea"] so that the second channel does not overwrite the first channel's stored Dyson-orbital data.

Target state and number of states

The neutral MRSF response target is selected by [tdhf] target; the default target is 1. Increase [tdhf] nstate when the desired EKT root or response target is not included in the printed roots.

For larger systems or benchmark comparisons, too small an nstate can make the calculation succeed while omitting the low-valence EKT roots needed for analysis. Use enough MRSF response states to cover the target and the roots of interest.

Log output

An EKT run first performs the parent MRSF calculation and MRSF Z-vector step, then builds the EKT IP and/or EA generalized-eigenproblem. The log output includes:

  • EKT eigenvalue / binding-energy table.
  • Dyson pole strengths.
  • Root-character diagnostics with dominant MO and natural-orbital information.
  • MO-basis Dyson orbital coefficient blocks, printed by root.

Legacy input style

Older development inputs used direct TDHF types:

[input]
runtype=energy

[tdhf]
type=mrsf_ekt_ip

or:

[input]
runtype=energy

[tdhf]
type=mrsf_ekt_ea

These legacy TDHF types are recognized as energy-only paths, but the preferred user-facing workflow is now:

[input]
method=tdhf
runtype=ekt

[tdhf]
type=mrsf

[ekt]
ip=True
ea=True

See also the example page: EKT-MRSF-TDDFT IP/EA Calculation.

Back to Input File System with PyOQP

Clone this wiki locally