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
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
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.