ffsim.DiagonalCoulombHamiltonian¶
- class ffsim.DiagonalCoulombHamiltonian(one_body_tensor, diag_coulomb_mats, constant=0.0)[source]¶
Bases:
SupportsApproximateEquality,SupportsDiagonal,SupportsFermionOperator,SupportsLinearOperatorA diagonal Coulomb Hamiltonian.
A Hamiltonian of the form
\[\begin{split}H = \sum_{\substack{pq \\ \sigma}} h_{pq} a^\dagger_{p\sigma} a_{q\sigma} + \frac12 \sum_{\substack{pq \\ \sigma \tau}} J^{\sigma \tau}_{pq} n_{p\sigma} n_{q\tau} + \text{constant}.\end{split}\]where \(n_{p\sigma} = a_{p\sigma}^\dagger a_{p\sigma}\) is the number operator on orbital \(p\) with spin \(\sigma\).
Here \(h_{pq}\) is called the one-body tensor and the \(J^{\sigma \tau}\) are called diagonal Coulomb matrices. We require that \(J^{\alpha\alpha}=J^{\beta\beta}\) and \(J^{\alpha\beta}=J^{\beta\alpha}\), so only two matrices are needed to describe the Hamiltonian.
- one_body_tensor¶
The one-body tensor \(h\).
- Type:
np.ndarray
- diag_coulomb_mats¶
The diagonal Coulomb matrices \(J^{\alpha\alpha}\) and \(J^{\alpha\beta}\), given as a pair of Numpy arrays specifying independent coefficients for alpha-alpha and alpha-beta interactions (in that order).
- Type:
np.ndarray
Methods
from_fermion_operator(op)Initialize a DiagonalCoulombHamiltonian from a FermionOperator.
Attributes
norbThe number of spatial orbitals.