diagH_after_exc Interface

public interface diagH_after_exc

Evaluate the energy of a new determinant quickly.

The calculation of a diagonal term of the hamiltonian, scales quadratically with the number of particles . Often we start from a determinant , where we know the diagonal term, and excite to a new determinant . Under this circumstance we can calculate the diagonal element of in 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

We want to calculate . Which we do by separately calculating the difference for the one- and two-electron term.

We can rewrite the one-electron term as: Which gives

For the two electron term we define and note the two properties

We write In the last equality we used .

For the difference we get:

In total we obtain


Dummy Procedures and Procedure Pointers

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()