UegVertexGenerator

Table of Contents

1. Brief description

UegVertexGenerator computes a CoulomVertex for the uniform electron gas model Hamiltonian.

The purpose of the UegVertexGenerator is to enable a direct application of the available many-electron methods ( CoupledCluster,PerturbativeTriples ) to the uniform electron gas. These calculations should only be used for simple tests. There are coupled-cluster theory implementations that are fully optimized for the UEG Hamiltonian. These implementations take full advantage of momentum conservation and are much faster.

2. Algorithm call

A typical input file snippet to call the UegVertexGenerator algorithm is given below.

- name: UegVertexGenerator
  in:
    No: 7
    Nv: 50
    NF: 500
    complexAmplitudes: 1
    rs: 1.0
  out:
    eigenEnergies: EigenEnergies
    coulombVertex: CoulombVertex

3. Algorithm input

Table 1: Input keywords
Keyword Value
No Number of occupied spatial plane-wave orbitals
Nv Number of unoccupied/virtual spatial plane-wave orbitals
NF Number of plane wave basis functions used to represent the co-densities
rs Wigner-Seitz radius in units of the Bohr radius (\(a_0\))

4. Algorithm output

Keyword Value
EigenEnergies The Hartree-Fock one-electron eigenenergies
CoulombVertex Coulomb vertex, which can be used to compute the Coulomb Integrals for the UEG

4.1. Sample stdout

A sample output of this algorithm reads

step: 1, UegVertexGenerator
WARNING: the Vertex will not be correct! Just for profiling!
System Information:
  rs 1, No 7, Nv50
  Volume 58.64306287, madelung 0.730296676
  HOMO 0.3111615073, LUMO 2.323245265
  Reference Energy per Electron/total 0.6065343288/8.491480604
realtime 0.084418698 s

4.2. Sample yaml output

A sample yaml output of this algorithm reads

    in:
      NF: 1000
      No: 7
      Nv: 50
      complexAmplitudes: 1
      hartreeFock: 1
      madelung: -1
      rs: 1
    name: UegVertexGenerator
    out:
      coulombVertex:
        field: Complex<>
        pointer: 0x34e2540
        tensor-engine: DefaultTensorEngine
        type: Tensor
      eigenEnergies:
        field: Real<>
        pointer: 0x34c87a0
        tensor-engine: DefaultTensorEngine
        type: Tensor

5. Computational complexity

The memory footprint of the CoulombVertex is \(\mathcal{O}((N_{\rm o}+N_{\rm v})^2 N_{\rm F})\). Most elements are zero because momentum conservation is not explicitly considered. The main purpose of this inefficient representation is to facilitate test calculations.

6. Theory

The CoulombVertex for the uniform electron gas is given by

\begin{equation} \Gamma^q_{rG} = \int_\Omega dr\, \sqrt{w_G} \sqrt{\frac{4\pi}{\mathbf{G}^2}}\, e^{-i \mathbf{r}\cdot \mathbf{G}}\, {\psi^\ast}^q(\mathbf{r})\, \psi_r(\mathbf{r}) = \delta_{\mathbf{G},\mathbf{k}_p-\mathbf{k}_s}\sqrt{\frac{w_G 4\pi}{\mathbf{G}^2}}, \end{equation}

where \(\mathbf{G}\) denotes the momentum vector associated to the momentum index \(G\) and where the indices \(q\) and \(r\) refer to the outgoing and incoming states at the right interaction vertex, respectively. In the uniform electron gas, these states are plane waves with corresponding wave vectors. Note, that the square root of the numerical integration weight \(w_G\) and of the Coulomb kernel \(4\pi/\mathbf{G}^2\) are contained in the above definition, such that the desired resolution-of-identity factorization of the electron repulsion integrals holds

\begin{equation} V^{pq}_{sr} = \sum_G {\tilde\Gamma^\ast}^{pG}_s \tilde\Gamma^q_{rG}=\frac{4 \pi}{\Omega |\mathbf{k}_p-\mathbf{k}_s|^2}. \end{equation}

At the singularity \[\mathbf{k}_p-\mathbf{k}_s=\mathbf{0},\] we employ the regularization as described in Ref. (NO_ITEM_DATA:Fraser1996) which is interpreted as the potential at the unit point charge due to its background of its own periodic images. Oftentimes this term is also referred to as the Madelung term.

7. Literature

NO_ITEM_DATA:Fraser1996

Created: 2025-09-04 Thu 15:35