Quantum Systems
A quantum system is here taken to be a collection of single-particle orbitals $\vec{P}$, arranged into multiple configurations, and a set of mixing coefficients $\vec{c}$. As an example, the helium ground state 1s² may be approximated a linear combination of Slater determinants:
\[\begin{equation} \Psi(\textrm{1s²}) \approx \sum_i c_i \Phi(\gamma_i), \end{equation}\]
where $\gamma_i$ denotes a configuration of single-electron orbitals and $c_i$ its associated mixing coefficient. A low-order approximation may be achieved with the three Slater determinants formed from the 1s and 2s orbitals:
\[\begin{equation} \Phi(\textrm{1s²}), \quad \Phi(\textrm{1s 2s}), \quad \Phi(\textrm{2s²}). \end{equation}\]
Similar ideas can be employed for molecules, etc.
SCF.AbstractQuantumSystem
— TypeAbstractQuantumSystem
Any implementation of the AbstractQuantumSystem
interface, used for self-consistent field calculations, must implement the functions coefficients
, orbitals
, diff
, normalize!
.
SCF.coefficients
— Methodcoefficients(quantum_system)
Retrieves the mixing coefficients of quantum_system
. Must return a view
that the scf!
routine can modify. To be overloaded by the implementation of AbstractQuantumSystem
.
SCF.orbitals
— Methodorbitals(quantum_system)
Retrieves the orbitals of quantum_system
. Must return a view
that the scf!
routine can modify. To be overloaded by the implementation of AbstractQuantumSystem
.
Base.diff
— Methoddiff(quantum_system[; kwargs...])
Varies the the quantum_system
with respect to all orbitals. Used to derive the multi-configurational Hartree–Fock equations. To be overloaded by the implementation of AbstractQuantumSystem
.
LinearAlgebra.normalize!
— Methodnormalize!(quantum_system, v)
Normalize the orbital v
of quantum_system
. To be overloaded by the implementation of AbstractQuantumSystem
.