triqs.atom_diag.atom_diag.act

triqs.atom_diag.atom_diag.act()

Dispatched C++ function(s).

[1] (op: Operator, st: ndarray[float, 1], atom: AtomDiagReal)
  -> ndarray[float, 1]

[2] (op: Operator, st: ndarray[complex, 1], atom: AtomDiagComplex)
  -> ndarray[complex, 1]

Act with a many-body operator on a state vector, \(|\psi'\rangle = \hat O\, |\psi\rangle\).

Both the input and the output state are vectors in the full Hilbert space expressed in the eigenbasis of the Hamiltonian. The operator is converted internally into its block-matrix representation in the eigenbasis before being applied to the state. Block-wise, for every source subspace \(B\) with target subspace \(B'\),

\[\psi'_{B'} \mathrel{+}= O_{B' \leftarrow B}\, \psi_{B}.\]
Parameters:
opOperator, Operator

Many-body operator to apply.

stndarray[float, 1], ndarray[complex, 1]

Input state vector in the full Hilbert space, expressed in the eigenbasis of the Hamiltonian.

atomAtomDiagReal, AtomDiagComplex

Solved diagonalization problem providing the eigenbasis.

Returns:
[1]ndarray[float, 1]

Output state vector in the full Hilbert space, expressed in the eigenbasis of the Hamiltonian.

[2]ndarray[complex, 1]

Output state vector in the full Hilbert space, expressed in the eigenbasis of the Hamiltonian.