Many-body Hamiltonians, basic linear algebra and Second Quantization
Contents
1. Many-body Hamiltonians, basic linear algebra and Second Quantization¶
1.1. Definitions and notations¶
Before we proceed we need some definitions. We will assume that the interacting part of the Hamiltonian can be approximated by a two-body interaction. This means that our Hamiltonian is written as the sum of some onebody part and a twobody part
with
The onebody part
Our Hamiltonian is invariant under the permutation (interchange) of two particles.
Since we deal with fermions however, the total wave function is antisymmetric.
Let
meaning that
where
In our case we assume that we can approximate the exact eigenfunction with a Slater determinant
where
1.1.1. Brief reminder on some linear algebra properties¶
Before we proceed with a more compact representation of a Slater determinant, we would like to repeat some linear algebra properties which will be useful for our derivations of the energy as function of a Slater determinant, Hartree-Fock theory and later the nuclear shell model.
The inverse of a matrix is defined by
A unitary matrix
A real unitary matrix is called orthogonal and its inverse is equal to its transpose. A hermitian matrix is its own self-adjoint, that is
Relations | Name | matrix elements |
---|---|---|
$A = A^{T}$ | symmetric | $a_{ij} = a_{ji}$ |
$A = \left (A^{T} \right )^{-1}$ | real orthogonal | $\sum_k a_{ik} a_{jk} = \sum_k a_{ki} a_{kj} = \delta_{ij}$ |
$A = A^{ * }$ | real matrix | $a_{ij} = a_{ij}^{ * }$ |
$A = A^{\dagger}$ | hermitian | $a_{ij} = a_{ji}^{ * }$ |
$A = \left (A^{\dagger} \right )^{-1}$ | unitary | $\sum_k a_{ik} a_{jk}^{ * } = \sum_k a_{ki}^{ * } a_{kj} = \delta_{ij}$ |
Since we will deal with Fermions (identical and indistinguishable particles) we will form an ansatz for a given state in terms of so-called Slater determinants determined by a chosen basis of single-particle functions.
For a given
in a more compact form as
where
A simple
where in the last term we have interchanged the column indices
1.1.2. Back to the derivation of the energy¶
The single-particle function
with eigenvalues
The energies
Let us denote the ground state energy by
where
where we have used the shorthand
In the Hartree-Fock method the trial function is the Slater determinant of Eq. (3) which can be rewritten as
where we have introduced the antisymmetrization operator
It is defined as
with
Both
Furthermore,
since every permutation of the Slater determinant reproduces it.
The expectation value of
is readily reduced to
where we have used Eqs. (5) and
(6). The next step is to replace the antisymmetrization
operator by its definition and to
replace
The integral vanishes if two or more particles are permuted in only one
of the Hartree-functions
Orthogonality of the single-particle functions allows us to further simplify the integral, and we arrive at the following expression for the expectation values of the sum of one-body Hamiltonians
We introduce the following shorthand for the above integral
and rewrite Eq. (7) as
The expectation value of the two-body part of the Hamiltonian is obtained in a similar manner. We have
which reduces to
by following the same arguments as for the one-body Hamiltonian.
Because of the dependence on the inter-particle distance
where
We obtain
The first term is the so-called direct term. It is frequently also called the Hartree term,
while the second is due to the Pauli principle and is called
the exchange term or just the Fock term.
The factor
The last equation allows us to introduce some further definitions.
The single-particle wave functions
We introduce the following shorthands for the above two integrals
and
1.2. Preparing for later studies: varying the coefficients of a wave function expansion and orthogonal transformations¶
It is common to expand the single-particle functions in a known basis and vary the coefficients, that is, the new single-particle wave function is written as a linear expansion in terms of a fixed chosen orthogonal basis (for example the well-known harmonic oscillator functions or the hydrogen-like functions etc). We define our new single-particle basis (this is a normal approach for Hartree-Fock theory) by performing a unitary transformation on our previous basis (labelled with greek indices) as
In this case we vary the coefficients
It is normal to choose a single-particle basis defined as the eigenfunctions of parts of the full Hamiltonian. The typical situation consists of the solutions of the one-body part of the Hamiltonian, that is we have
The single-particle wave functions
In deriving the Hartree-Fock equations, we will expand the single-particle functions in a known basis and vary the coefficients, that is, the new single-particle wave function is written as a linear expansion in terms of a fixed chosen orthogonal basis (for example the well-known harmonic oscillator functions or the hydrogen-like functions etc).
We stated that a unitary transformation keeps the orthogonality. To see this consider first a basis of vectors
We assume that the basis is orthogonal, that is
An orthogonal or unitary transformation
preserves the dot product and orthogonality since
This means that if the coefficients
orthogonality is preserved, that is
This propertry is extremely useful when we build up a basis of many-body Stater determinant based states.
Note also that although a basis
Before we develop for example the Hartree-Fock equations, there is another very useful property of determinants that we will use both in connection with Hartree-Fock calculations and later shell-model calculations.
Consider the following determinant
We can generalize this to an
This is a property we will use in our Hartree-Fock discussions.
We can generalize the previous results, now
with all elements
where
This is a property we will use in our Hartree-Fock discussions. Convince yourself about the correctness of the above expression by setting
With our definition of the new basis in terms of an orthogonal basis we have
If the coefficients
which is nothing but
In our discussions hereafter we will use our definitions of single-particle states above and below the Fermi (
The energy functional is
we found the expression for the energy functional in terms of the basis function
where
Using Eq. (11) we can rewrite Eq. (12) as
1.3. Second quantization¶
We introduce the time-independent operators
and
In Eq. (14)
the operator
In Eq. (15)
It is easy to derive the commutation and anticommutation rules for the fermionic creation operators
we obtain
Using the Pauli principle
it follows that
If we combine Eqs. (18) and (20), we obtain the well-known anti-commutation rule
The hermitian conjugate of
If we take the hermitian conjugate of Eq. (21), we arrive at
What is the physical interpretation of the operator
where both sides are antisymmetric. We distinguish between two cases. The first (1) is when
The second (2) case is when
Eq. (26) holds for case (1) since the lefthand side is zero due to the Pauli principle. We write Eq. (24) as
Here we must have
For the last case, the minus and plus signs apply when the sequence
when
and in particular
If
and thus
The action of the operator
The next step is to establish the commutator algebra of
The action of the anti-commutator
if the single-particle state
If it is present we arrive at
From Eqs. (33) and (34) we arrive at
The action of
The first case results in
while the second case gives
Finally if the state vector does not contain
For all three cases we have
We can summarize our findings in Eqs. (35) and (39) as
with
The properties of the creation and annihilation operators can be summarized as (for fermions)
and
from which follows
The hermitian conjugate has the folowing properties
Finally we found
and
and the corresponding commutator algebra
1.4. One-body operators in second quantization¶
A very useful operator is the so-called number-operator. Most physics cases we will
study in this text conserve the total number of particles. The number operator is therefore
a useful quantity which allows us to test that our many-body formalism conserves the number of particles.
In for example
Let us consider an operator proportional with
Summing over all possible one-particle states we arrive at
The operator
is called the number operator since it counts the number of particles in a give state vector when it acts
on the different single-particle states. It acts on one single-particle state at the time and falls
therefore under category one-body operators.
Next we look at another important one-body operator, namely
We want to obtain an expression for a one-body operator which conserves the number of particles.
Here we study the one-body operator for the kinetic energy plus an eventual external one-body potential.
The action of this operator on a particular
and the anti-symmetric
Defining
we can easily evaluate the action of
If we interchange particles
We can continue by computing all possible permutations.
We rewrite also our Slater determinant in its second quantized form and skip the dependence on the quantum numbers
In Eq. (48)
we have expressed the action of the one-body operator
of Eq. (44) on the
Inserting this in the right-hand side of Eq. (48) results in
In the number occupation representation or second quantization we get the following expression for a one-body operator which conserves the number of particles
Obviously,
The opearator
It is instructive to verify Eq. (51) by computing the expectation value of
Using the commutation relations for the creation and annihilation operators we have
which results in
and
1.5. Two-body operators in second quantization¶
Let us now derive the expression for our two-body interaction part, which also conserves the number of particles. We can proceed in exactly the same way as for the one-body operator. In the coordinate representation our two-body interaction part takes the following expression
where the summation runs over distinct pairs. The term
The action of this operator on a product of two single-particle functions is defined as
We can now let
where on the rhs we have a term for each distinct pairs.
For the other terms on the rhs we obtain similar expressions and summing over all terms we obtain
We introduce second quantization via the relation
Inserting this in (59) gives
Here we let
we get
where we have used the anti-commutation rules.
Changing the summation indices
From this it follows that the restriction on the summation over
where we sum freely over all single-particle states
With this expression we can now verify that the second quantization form of
Using the commutation relations we get
The vacuum expectation value of this product of operators becomes
Insertion of Eq. (69) in Eq. (67) results in
The two-body operator can also be expressed in terms of the anti-symmetrized matrix elements we discussed previously as
The factors in front of the operator, either
We can now express the Hamiltonian operator for a many-fermion system in the occupation basis representation as
This is the form we will use in the rest of these lectures, assuming that we work with anti-symmetrized two-body matrix elements.
1.6. Particle-hole formalism¶
Second quantization is a useful and elegant formalism for constructing many-body states and
quantum mechanical operators. One can express and translate many physical processes
into simple pictures such as Feynman diagrams. Expecation values of many-body states are also easily calculated.
However, although the equations are seemingly easy to set up, from a practical point of view, that is
the solution of Schroedinger’s equation, there is no particular gain.
The many-body equation is equally hard to solve, irrespective of representation.
The cliche that
there is no free lunch brings us down to earth again.
Note however that a transformation to a particular
basis, for cases where the interaction obeys specific symmetries, can ease the solution of Schroedinger’s equation.
But there is at least one important case where second quantization comes to our rescue.
It is namely easy to introduce another reference state than the pure vacuum
In the original particle representation these states are products of the creation operators
If we use Eq. (73) as our new reference state, we can simplify considerably the representation of this state
The new reference states for the
The first state has one additional particle with respect to the new vacuum state
since
The new reference state leads to the definition of new creation and annihilation operators which satisfy the following relations
We assume also that the new reference state is properly normalized
The physical interpretation of these new operators is that of so-called quasiparticle states.
This means that a state defined by the addition of one extra particle to a reference state
where
The annihilation is the hermitian conjugate of the creation operator
resulting in
With the new creation and annihilation operator we can now construct many-body quasiparticle states, with one-particle-one-hole states, two-particle-two-hole states etc in the same fashion as we previously constructed many-particle states. We can write a general particle-hole state as
We can now rewrite our one-body and two-body operators in terms of the new creation and annihilation operators. The number operator becomes
where
The action of
Here
gives us the number of quasi-particles as can be seen by computing
where
We express the one-body operator
The first term gives contribution only for particle states, while the last one
contributes only for holestates. The second term can create or destroy a set of
quasi-particles and
the third term is the contribution from the vacuum state
Before we continue with the expressions for the two-body operator, we introduce a nomenclature we will use for the rest of this
text. It is inspired by the notation used in quantum chemistry.
We reserve the labels
The two-particle operator in the particle-hole formalism is more complicated since we have
to translate four indices
Using anti-symmetrized matrix elements,
bthe term
The next term
This term conserves the number of quasiparticles but creates or removes a
three-particle-one-hole state.
For
The first line stands for the creation of a two-particle-two-hole state, while the second line represents the creation to two one-particle-one-hole pairs while the last term represents a contribution to the particle single-particle energy from the hole states, that is an interaction between the particle states and the hole states within the new vacuum state. The fourth term reads
The terms in the first line stand for the creation of a particle-hole state interacting with hole states, we will label this as a two-hole-one-particle contribution. The remaining terms are a particle-hole state interacting with the holes in the vacuum state. Finally we have
The first terms represents the interaction between two holes while the second stands for the interaction between a hole and the remaining holes in the vacuum state. It represents a contribution to single-hole energy to first order. The last term collects all contributions to the energy of the ground state of a closed-shell system arising from hole-hole correlations.
1.7. Summarizing and defining a normal-ordered Hamiltonian¶
which is equivalent with
2 0 3
< < < ! ! M A T H _ B L O C K
and
2 0 5
< < < ! ! M A T H _ B L O C K
2 0 7
< < < ! ! M A T H _ B L O C K
with
and
The one-body operator is defined as
while the two-body opreator is defined as
where we have defined the antisymmetric matrix elements
We can also define a three-body operator
with the antisymmetrized matrix element
1.8. Operators in second quantization¶
In the build-up of a shell-model or FCI code that is meant to tackle large dimensionalities
is the action of the Hamiltonian
The time consuming part stems from the action of the Hamiltonian on the above determinant,
A practically useful way to implement this action is to encode a Slater determinant as a bit pattern.
Assume that we have at our disposal
A Slater determinant can then be coded as an integer of
The unoccupied single-particle states have bit value
which translates into the decimal number
We can thus encode a Slater determinant as a bit pattern.
With
The total number of bit patterns is
We assume again that we have at our disposal
in a more compact way as
The action of a creation operator is thus
which becomes
Similarly
which becomes
This gives a simple recipe:
If one of the bits
is and we act with a creation operator on this bit, we return a null vectorIf
, we set it to and return a sign factor , where is the number of bits set before bit .
Consider the action of
What is the simplest way to obtain the phase when we act with one annihilation(creation) operator on the given Slater determinant representation?
We have an SD representation
in a more compact way as
The action of
which becomes
The action
can be obtained by subtracting the logical sum (AND operation) of
from
This operation gives
Similarly, we can form
It is trickier however to get the phase
Let
be a word that represents the bit to be removed and all others set to zero.
In the previous example
Define
as the similar word that represents the bit to be added, that is in our case
Compute then
, which here becomes
Perform then the logical AND operation of
with the word containing
which results in
1.9. Exercise 1: Relation between basis functions¶
This exercise serves to convince you about the relation between two different single-particle bases, where one could be our new Hartree-Fock basis and the other a harmonic oscillator basis.
Consider a Slater determinant built up of single-particle orbitals
brings us into the new basis.
The new basis has quantum numbers
Starting with the second quantization representation of the Slater determinant
use Wick’s theorem to compute the normalization integral
1.10. Exercise 2: Matrix elements¶
Calculate the matrix elements
and
with
2 4 1
< < < ! ! M A T H _ B L O C K
2 4 2
< < < ! ! M A T H _ B L O C K
2 4 3
< < < ! ! M A T H _ B L O C K
and
Compare these results with those from exercise 3c).
1.11. Exercise 3: Normal-ordered one-body operator¶
Show that the onebody part of the Hamiltonian
can be written, using standard annihilation and creation operators, in normal-ordered form as
Explain the meaning of the various symbols. Which reference vacuum has been used?
1.12. Exercise 4: Normal-ordered two-body operator¶
Show that the twobody part of the Hamiltonian
can be written, using standard annihilation and creation operators, in normal-ordered form as
Explain again the meaning of the various symbols.
This exercise is optional: Derive the normal-ordered form of the threebody part of the Hamiltonian.
and specify the contributions to the twobody, onebody and the scalar part.
1.13. Exercise 5: Matrix elements using the Slater-Condon rule¶
The aim of this exercise is to set up specific matrix elements that will turn useful when we start our discussions of the nuclear shell model. In particular you will notice, depending on the character of the operator, that many matrix elements will actually be zero.
Consider three
with
and a general normal-ordered two-body operator
with for example the direct matrix element given as
with
How would you write the above Slater determinants in a second quantization formalism, utilizing the fact that we have defined a new reference state?
Use thereafter Wick’s theorem to find the expectation values of
and
Find thereafter
and
Finally, find
and
What happens with the two-body operator if we have a transition probability of the type
where the Slater determinant to the right of the operator differs by more than two single-particle states?
1.14. Exercise 6: Program to set up Slater determinants¶
Write a program which sets up all possible Slater determinants given
1.15. Exercise 7: Using sympy to compute matrix elements¶
Compute the matrix element
using Wick’s theorem and express the two-body operator
1.16. Exercise 8: Using sympy to compute matrix elements¶
The last exercise can be solved using the symbolic Python package called SymPy. SymPy is a Python package for general purpose symbolic algebra. There is a physics module with several interesting submodules. Among these, the submodule called secondquant, contains several functionalities that allow us to test our algebraic manipulations using Wick’s theorem and operators for second quantization.
from sympy import *
from sympy.physics.secondquant import *
i, j = symbols('i,j', below_fermi=True)
a, b = symbols('a,b', above_fermi=True)
p, q = symbols('p,q')
print simplify(wicks(Fd(i)*F(a)*Fd(p)*F(q)*Fd(b)*F(j), keep_only_fully_contracted=True))
Input In [1]
print simplify(wicks(Fd(i)*F(a)*Fd(p)*F(q)*Fd(b)*F(j), keep_only_fully_contracted=True))
^
SyntaxError: invalid syntax
The code defines single-particle states above and below the Fermi level, in addition to the genereal symbols
1.17. Exercise 9: Using sympy to compute matrix elements¶
We can expand the above Python code by defining one-body and two-body operators using the following SymPy code
# This code sets up a two-body Hamiltonian for fermions
from sympy import symbols, latex, WildFunction, collect, Rational
from sympy.physics.secondquant import F, Fd, wicks, AntiSymmetricTensor, substitute_dummies, NO
# setup hamiltonian
p,q,r,s = symbols('p q r s',dummy=True)
f = AntiSymmetricTensor('f',(p,),(q,))
pr = NO((Fd(p)*F(q)))
v = AntiSymmetricTensor('v',(p,q),(r,s))
pqsr = NO(Fd(p)*Fd(q)*F(s)*F(r))
Hamiltonian=f*pr + Rational(1)/Rational(4)*v*pqsr
print "Hamiltonian defined as:", latex(Hamiltonian)
Here we have used the AntiSymmetricTensor functionality, together with normal-ordering defined by the NO function. Using the latex option, this program produces the following output
1.18. Exercise 10: Using sympy to compute matrix elements¶
We can now use this code to compute the matrix elements between two two-body Slater determinants using Wick’s theorem.
from sympy import symbols, latex, WildFunction, collect, Rational, simplify
from sympy.physics.secondquant import F, Fd, wicks, AntiSymmetricTensor, substitute_dummies, NO, evaluate_deltas
# setup hamiltonian
p,q,r,s = symbols('p q r s',dummy=True)
f = AntiSymmetricTensor('f',(p,),(q,))
pr = NO((Fd(p)*F(q)))
v = AntiSymmetricTensor('v',(p,q),(r,s))
pqsr = NO(Fd(p)*Fd(q)*F(s)*F(r))
Hamiltonian=f*pr + Rational(1)/Rational(4)*v*pqsr
c,d = symbols('c, d',above_fermi=True)
a,b = symbols('a, b',above_fermi=True)
expression = wicks(F(b)*F(a)*Hamiltonian*Fd(c)*Fd(d),keep_only_fully_contracted=True, simplify_kronecker_deltas=True)
expression = evaluate_deltas(expression)
expression = simplify(expression)
print "Hamiltonian defined as:", latex(expression)
The result is as expected,
1.19. Exercise 11: Using sympy to compute matrix elements¶
We can continue along these lines and define a normal-ordered Hamiltonian with respect to a given reference state. In our first step we just define the Hamiltonian
from sympy import symbols, latex, WildFunction, collect, Rational, simplify
from sympy.physics.secondquant import F, Fd, wicks, AntiSymmetricTensor, substitute_dummies, NO, evaluate_deltas
# setup hamiltonian
p,q,r,s = symbols('p q r s',dummy=True)
f = AntiSymmetricTensor('f',(p,),(q,))
pr = Fd(p)*F(q)
v = AntiSymmetricTensor('v',(p,q),(r,s))
pqsr = Fd(p)*Fd(q)*F(s)*F(r)
#define the Hamiltonian
Hamiltonian = f*pr + Rational(1)/Rational(4)*v*pqsr
#define indices for states above and below the Fermi level
index_rule = {
'below': 'kl',
'above': 'cd',
'general': 'pqrs'
}
Hnormal = substitute_dummies(Hamiltonian,new_indices=True, pretty_indices=index_rule)
print "Hamiltonian defined as:", latex(Hnormal)
which results in
1.20. Exercise 12: Using sympy to compute matrix elements¶
In our next step we define the reference energy
from sympy import symbols, latex, WildFunction, collect, Rational, simplify
from sympy.physics.secondquant import F, Fd, wicks, AntiSymmetricTensor, substitute_dummies, NO, evaluate_deltas
# setup hamiltonian
p,q,r,s = symbols('p q r s',dummy=True)
f = AntiSymmetricTensor('f',(p,),(q,))
pr = Fd(p)*F(q)
v = AntiSymmetricTensor('v',(p,q),(r,s))
pqsr = Fd(p)*Fd(q)*F(s)*F(r)
#define the Hamiltonian
Hamiltonian=f*pr + Rational(1)/Rational(4)*v*pqsr
#define indices for states above and below the Fermi level
index_rule = {
'below': 'kl',
'above': 'cd',
'general': 'pqrs'
}
Hnormal = substitute_dummies(Hamiltonian,new_indices=True, pretty_indices=index_rule)
E0 = wicks(Hnormal,keep_only_fully_contracted=True)
Hnormal = Hnormal-E0
w = WildFunction('w')
Hnormal = collect(Hnormal, NO(w))
Hnormal = evaluate_deltas(Hnormal)
print latex(Hnormal)
which gives us
again as expected, with the reference energy to be subtracted.
1.21. Exercise 13: Using sympy to compute matrix elements¶
We can now go back to exercise 7 and define the Hamiltonian and the second-quantized representation of a three-body Slater determinant.
from sympy import symbols, latex, WildFunction, collect, Rational, simplify
from sympy.physics.secondquant import F, Fd, wicks, AntiSymmetricTensor, substitute_dummies, NO, evaluate_deltas
# setup hamiltonian
p,q,r,s = symbols('p q r s',dummy=True)
v = AntiSymmetricTensor('v',(p,q),(r,s))
pqsr = NO(Fd(p)*Fd(q)*F(s)*F(r))
Hamiltonian=Rational(1)/Rational(4)*v*pqsr
a,b,c,d,e,f = symbols('a,b, c, d, e, f',above_fermi=True)
expression = wicks(F(c)*F(b)*F(a)*Hamiltonian*Fd(d)*Fd(e)*Fd(f),keep_only_fully_contracted=True, simplify_kronecker_deltas=True)
expression = evaluate_deltas(expression)
expression = simplify(expression)
print latex(expression)
resulting in nine terms (as expected),
1.22. Exercise 14: Diagrammatic representation of Hartree-Fock equations¶
What is the diagrammatic representation of the HF equation?
(Represent
1.23. Exercise 15: Derivation of Hartree-Fock equations¶
Consider the ground state
where
Show that
where
If we assume that
is the Hartree-Fock result, find the
relation between
and
We have assumed an antisymmetrized matrix element here. Discuss the result.
The Hamiltonian operator is defined as