oqp.analysis.nto

Natural transition orbitals (NTOs) for MRSF excited states.

Two complementary, well-defined objects (the MRSF S0-as-root subtlety means they
do *not* coincide as they would in closed-shell TDDFT):

* :func:`nto_excitation` -- SVD of the spin-adapted spin-flip amplitude matrix
  ``X^{(n)}`` of root *n* (alpha-occupied -> beta-virtual).  These are the
  hole/particle NTOs describing the *character* of state *n* relative to the
  high-spin reference; ``sum(sigma^2) == ||X^{(n)}||^2`` (~1 for a normalized
  single root).  Holes are alpha, particles are beta (spin-resolved).
* :func:`nto_transition` -- SVD of the state-interaction 1-TDM
  ``gamma^{i->j}`` (validated at GATE 2).  Truncated reconstruction reproduces
  the transition dipole; these are the natural orbitals of the genuine S_i->S_j
  transition density (which has occ-occ/vir-vir structure for MRSF).

Functions

nto_excitation(states, n[, thresh])

nto_transition(states, i, j[, thresh])

Module Contents

nto_excitation(states, n, thresh=1e-06)
Hole/particle NTOs of root ``n`` from its spin-flip amplitude matrix.

Returns a dict with spin-resolved AO-basis NTO coefficients, singular
values and weights (sigma^2), plus the amplitude norm sum(sigma^2).
nto_transition(states, i, j, thresh=1e-06)
NTOs of the state-interaction 1-TDM gamma^{i->j} (alpha-MO basis SVD).

The left/right singular vectors are the particle/hole natural orbitals of
the S_i->S_j transition density.  ``reconstruct_tdm`` rebuilds gamma from the
leading pairs so the transition dipole can be re-derived (GATE 3 check).