FiniteSizeCorrection
Table of Contents
1. Brief description
This algorithm calculates the electronic transition structure factor and performs a tricubic interpolaton to estimate a finite size correlation energy correction.
2. Algorithm call
A typical input file snippet to call the FiniteSizeCorrection
algorithm is given below.
- name: FiniteSizeCorrection in: slicedCoulombVertex: CoulombVertex amplitudes: Amplitudes coulombVertexSingularVectors: CoulombVertexSingularVectors coulombPotential: CoulombPotential gridVectors: GridVectors out: transitionStructureFactor: SF
3. Algorithm input
Keyword | Value |
---|---|
slicedCoulombVertex |
Sliced Coulomb vertex |
amplitudes |
Singles and doubles amplitudes |
coulombVertexSingularVectors |
coulombVertexSingularVectors |
coulombPotential |
Coulomb potential |
gridVectors |
Grid Vectors |
interpolationGridSize |
Interpolation grid size |
3.1. interpolationGridSize
The interpolationGridSize
keyword can be used to control the density of the mesh used to interpolate the
electronic transition structure factor in each spatial direction.
A value of \(N\) for the interpolationGridSize
means that \(2 N\) sampling points are used to sample the interpolated structure factor in each direction
between neighbouring Grid Vectors.
4. Algorithm output
Keyword | Value |
---|---|
transitionStructureFactor |
Transition Structure factor |
The output of the FiniteSizeCorrection
algorithm includes transition structure factor \(S(G)\) and
an estimate of the finitie size error correction to the correlation energy. The finite size error is estimated using a tricubic interpolation
algorithm of the electronic transition structure factor.
4.1. Sample stdout
Below an example standard output stream is shown for a successful FiniteSizeCorrection
algorithm run.
step: 15, FiniteSizeCorrection Finite-size energy correction: -1.1152868081 realtime 0.373321931 s --
5. Sample yaml
output
Below an example yaml
output stream is shown for a successful FiniteSizeCorrection
algorithm run.
floatingPointOperations: 49641291048 flops: 38600052331.414169 in: amplitudes: 0x24cd038 coulombPotential: 0x2487fa8 coulombVertexSingularVectors: 0x248b168 gridVectors: 0x2474ce8 interpolationGridSize: 20 slicedCoulombVertex: 0x24aee28 name: FiniteSizeCorrection out: energy: corrected: -26.560663044130632 correction: -1.1152868080903175 uncorrected: -25.445376236040314 unit: 0.03674932217686841 transitionStructureFactor: 0x2bb8ff8 realtime: 0.373321931
6. Computational complexity
No considerable memory footprints or computational cost bottle necks are expected for this algorithm compared to preceding Coupled Cluster theory calculations.
7. Theory
The methods employed in this algorithm are discussed in Refs. (Liao and Grüneis 2016) and (Gruber et al. 2018) . We employ a tricubic interpolation technique to reduce quadrature errors in the numerical expression of the electronic correlation energy: \(\sum_{ G}S({ G}){\tilde{v}}({ G})\). In particular, the quadrature errors around \({G}=0\) are large and result in significant finite-size errors for small simulation cells. In order to obtain a more accurate estimate of the correlation energy in the thermodynamic limit, we proceed as follows. We introduce additional sampling points at an arbitrarily dense grid, which we choose to be \(2N\times 2N \times 2N\) times denser than the original one. The interpolated transition structure factor and the analytic expression of the Coulomb kernel can be used to calculate the correlation energy with the usual expression given above. The difference between the correlation energies computed with the interpolated and non-interpolated structure factor yields an estimate of the finite correction to the electronic correlation energy that is returned by this algorithm. We find that \(N=20\) yields well converged correlation energies for sufficiently large unit cells. However, we recommend to check convergence with respect to this parameter for each system separetely.