Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp) | :: | dE1 | ||||
real(kind=dp) | :: | dE2 | ||||
real(kind=dp) | :: | dU | ||||
real(kind=dp) | :: | dE |
subroutine getMP2E(dE1, dE2, dU, dE)
!= Get the MP2 energy contribution for an excitation 1->2
!= In:
!= dE1 energy of reference determinant.
!= dE2 energy of excited determinant.
!= dU Cross term of Hamiltonian matrix, < 1 | H | 2 >.
!= Out:
!= dE = |< 1 | H | 2 >|^2 / (dE2 - dE1)
!= contribution to the MP2 energy.
use constants, only: dp
implicit none
real(dp) dE1, dE2
HElement_t(dp) dU, dE
dE = abs(dU)**2 / (dE1 - dE2)
end subroutine getMP2E