Evaluate the energy of a new determinant Dj quickly.
The calculation of a diagonal term of the hamiltonian, scales quadratically with the number of particles O(N2e). Often we start from a determinant Di, where we know the diagonal term, and excite to a new determinant Dj. Under this circumstance we can calculate the diagonal element of Dj in O(Ne) time.
In the following we will derive the necessary equations. We assume the notations and conventions of the “purple book” (Helgaker et al). The diagonal term for a determinant is given as ⟨Di|ˆH|Di⟩=∑I∈DihII+12∑I∈Di∑J∈Di(gIIJJ−gIJJI)
We want to calculate ⟨Dj|ˆH|Dj⟩−⟨Di|ˆH|Di⟩. Which we do by separately calculating the difference for the one- and two-electron term.
We can rewrite the one-electron term as: ∑I∈DihII=∑I∈Di∩DjhII+∑I∈Di∖DjhII Which gives ∑J∈DjhJJ−∑I∈DihII=∑J∈Dj∖DihJJ−∑I∈Di∖DjhII=∑J∈tgthJJ−∑I∈srchII
For the two electron term we define γIJ=(gIIJJ−gIJJI) and note the two properties γIJ=γJI γII=0
We write 12∑I∈Di∑J∈DiγIJ=12[∑I∈Di∩Dj∑J∈Di∩DjγIJ+∑I∈Di∩Dj∑J∈Di∖DjγIJ+∑I∈Di∖Dj∑J∈Di∩DjγIJ+∑I∈Di∖Dj∑J∈Di∖DjγIJ] =12[∑I∈Di∩Dj∑J∈Di∩DjγIJ+2(∑I∈Di∩Dj∑J∈Di∖DjγIJ)+∑I∈Di∖Dj∑J∈Di∖DjγIJ] In the last equality we used γIJ=γJI.
For the difference we get: 12∑I∈Dj∑J∈DjγIJ−12∑I∈Di∑J∈DiγIJ=12[2(∑I∈Di∩Dj∑J∈Dj∖DiγIJ)+∑I∈Dj∖Di∑J∈Dj∖DiγIJ−2(∑I∈Di∩Dj∑J∈Di∖DjγIJ)−∑I∈Di∖Dj∑J∈Di∖DjγIJ] =∑I∈Di∩Dj(∑J∈Dj∖DiγIJ−∑J∈Di∖DjγIJ)+∑I∈Dj∖Di∑J∈Dj∖Di,I<JγIJ−∑I∈Di∖Dj∑J∈Di∖Dj,I<JγIJ =∑I∈Di∩Dj(∑J∈tgtγIJ−∑J∈srcγIJ)+∑I∈tgt∑J∈tgt,I<JγIJ−∑I∈src∑J∈src,I<JγIJ
In total we obtain ⟨Dj|ˆH|Dj⟩−⟨Di|ˆH|Di⟩=∑J∈tgthJJ−∑I∈srchII+∑I∈Di∩Dj(∑J∈tgtγIJ−∑J∈srcγIJ)+∑I∈tgt∑J∈tgt,I<JγIJ−∑I∈src∑J∈src,I<JγIJ
Type | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|
procedure(diagH_after_exc_1_t), | pointer | :: | diagH_after_exc_1 | => | null() | |
procedure(diagH_after_exc_2_t), | pointer | :: | diagH_after_exc_2 | => | null() | |
procedure(diagH_after_exc_3_t), | pointer | :: | diagH_after_exc_3 | => | null() |