−Table of Contents
This is an old revision of the document!
Coulomb repulsion operator (U)
The Coulomb interaction is given as: H=∑i≠j12e2|ri−rj|, whereby the sum runs over all electrons and the factor 1/2 takes care of the double counting as each pair of electrons only repels once. In second quantization this Hamiltonian can be written as: H=∑τ1τ2τ3τ4Uτ1τ2τ3τ4a†τ1a†τ2a†τ3a†τ4, whereby τ labels the spin and orbital degrees of freedom.
Using Feynman diagrams this interaction can be depicted as two electrons entering with quantum numbers τ4 and τ3, exchanging an entity κ and leaving with quantum numbers τ1 and τ2.
Calculating the Coulomb interaction is more difficult as one might expect. The interaction strength diverges when r1=r2 and one needs to calculate the principle integral in three dimensions. A good way to evaluate this integral is to expand 1/|r1−r2| in spherical harmonics and separate the integrals over the angle for the integral over r. The angular integrals turn trivial with analytical solutions whereas the radial integral becomes non-divergent. If we assume spherical symmetry for the basis functions the result for the radial integrals are the Slater integrals. If the basis functions are more complex we still can expand these in spherical symmetry and the result is a sum over Slater integrals. The standard operator in Quanty implements the spherical case, the more general case can be created by importing results from DFT and will be discussed in those sections.
The expansion of e2/|r1−r2| is: ∑i≠j12e2|ri−rj|=∑i≠j12∞∑k=0m=k∑m=−k4π2k+1Min[ri,rj]kMax[ri,rj]k+1Y(k)m(θi,ϕi)Y(k)m(θj,ϕj)∗.
Expanding our basis states in spherical harmonics times radial wave functions the quantum number τi labels the set of quantum numbers ni,li,mi,σi. This allows us to separate the radial from angular part of the equation. Using that: ∑i√4π2k+1Y(k)m(θi,ϕi)=∑iC(k)m(θi,ϕi)=∑τ1,τ3δσ1,σ3δm,m1−m3⟨Y(l1)m1(θ,ϕ)|C(k)m(θ,ϕ)|Y(l3)m3(θ,ϕ)⟩a†τ1a†τ3, we can rewrite: ∑i≠j12∞∑k=0m=k∑m=−k4π2k+1Y(k)m(θi,ϕi)Y(k)m(θj,ϕj)∗ as: 12k=∞∑k=0∑τ1,τ2,τ3,τ4δσ1,σ3δσ2,σ4δm4−m2,m1−m3×⟨Y(l1)m1|C(k)m1−m3|Y(l3)m3⟩⟨Y(l4)m4|C(k)m4−m2|Y(l2)m2⟩a†τ1a†τ3a†τ2a†τ4, which after reordering to normal order becomes: −12k=∞∑k=0∑τ1,τ2,τ3,τ4δσ1,σ3δσ2,σ4δm4−m2,m1−m3×⟨Y(l1)m1|C(k)m1−m3|Y(l3)m3⟩⟨Y(l4)m4|C(k)m4−m2|Y(l2)m2⟩a†τ1a†τ2a†τ3a†τ4.
The radial part of the operator (Min[ri,rj]kMax[ri,rj]k+1) is more difficult and will be cast into parameters: R(k)[τ1τ2τ3τ4]=e2∫∞0∫∞0Min[ri,rj]kMax[ri,rj]k+1R1[ri]R2[rj]R3[ri]R4[rj]dridrj.
Which gives the final result: H=∑τ1τ2τ3τ4Uτ1τ2τ3τ4a†τ1a†τ2a†τ3a†τ4,Uτ1τ2τ3τ4=−12δσ1,σ3δσ2,σ4∞∑k=0c(k)[l1,m1;l3,m3]c(k)[l4,m4;l2,m2]×R(k)[τ1τ2τ3τ4],c(k)[l1,m1;l2,m2]=⟨Y(l1)m1|C(k)m1−m2|Y(l2)m2⟩.
Using angular momentum as a basis the scattering event described is given by the diagram on the left. An angular momentum →k with a projection m on the z direction is exchanged.
Using conservation of angular momentum we can see that |l1−l3|≤k≤|l1+l3| and |l2−l4|≤k≤|l2+l4|. This can be used to restrict the number of radial integrals one needs to compute.
Single shell
For the case where n1=n2=n3=n4 and l1=l2=l3=l4, i.e. Coulomb repulsion within one shell one defines: F(k)=R(k)[τ1τ2τ3τ4]. In Quanty one can add this Coulomb operator as:
- Example.Quanty
NewOperator("U", NF, IndexUp, IndexDn, SlaterIntegrals)
whereby SlaterIntegrals represents a list of F(k) with k running from 0 to 2l in steps of 2.
For a d shell one can define:
- Example.Quanty
OppF0 = NewOperator("U", NF, IndexUp, IndexDn, {1,0,0}) OppF2 = NewOperator("U", NF, IndexUp, IndexDn, {0,1,0}) OppF4 = NewOperator("U", NF, IndexUp, IndexDn, {0,0,1})
to get the Coulomb operator proportional to F(0), F(2) and F(4).
Two shells, shell occupation conserving
The Coulomb repulsion between two shells which does not change the number of electrons is given by a direct term (l1=l3 and l2=l4) and an indirect or exchange term (l1=l4 and l2=l3). The direct term is given by the Slater integrals: F(k)=e2∫∞0∫∞0Min[ri,rj]kMax[ri,rj]k+1R1[ri]2R2[rj]2dridrj, with 0≤k≤Min[2l1,2l2]. The indirect term is given by the exchange integrals: G(k)=e2∫∞0∫∞0Min[ri,rj]kMax[ri,rj]k+1R1[ri]R1[rj]R2[ri]R2[rj]dridrj, with |l1−l2|≤k≤|l1+l2|.
In Quanty one can implement these operators as:
- Example.Quanty
NewOperator("U", NF, IndexUp_1, IndexDn_1, IndexUp_2, IndexDn_2, Fk, Gk) \end{lstlisting} For $l_1=1$ and $l_2=2$ one could define: \begin{lstlisting} OppF0pd = NewOperator("U", NF, IndexUp_1, IndexDn_1, IndexUp_2, IndexDn_2, {1,0}, {0,0}) OppF2pd = NewOperator("U", NF, IndexUp_1, IndexDn_1, IndexUp_2, IndexDn_2, {0,1}, {0,0}) OppG1pd = NewOperator("U", NF, IndexUp_1, IndexDn_1, IndexUp_2, IndexDn_2, {0,0}, {1,0}) OppG3pd = NewOperator("U", NF, IndexUp_1, IndexDn_1, IndexUp_2, IndexDn_2, {0,0}, {0,1})