Exploiting underlying crystal lattice for efficient computation of Coulomb matrix elements in multi-million atoms nanostructures
Atomistic modeling of nanostructures often leads to computationally challenging problems involving millions of atoms and tens of thousands of Coulomb matrix elements. In our previous work, we presented a practical solution to this problem, where quasi-linear efficiency, both in time and memory, was obtained by utilizing the fast Fourier transform. Here, we present an updated version of our highly-parallelized computer program, named Coulombo-Lattice, that eliminates the necessity of introducing an auxiliary basis set for the wave-function transfer to the computational grid. Here, we instead exploit the properties of the underlying crystal lattice and run calculations on a regular three-dimensional grid superimposed on the original, lower-symmetry lattice. Due to removal of spurious interactions from other supercells, the resulting Coulomb matrix elements are, up to numerical precision, identical to those obtained by the direct summation O(N^2) method, yet our code maintains O(N log N) scaling. We illustrate our approach by calculations involving up to 1.7 million integrals, and number of atoms reaching up to 2.8 million, for the problem of dopant charging energy for a single phosphorus dopant embedded in a silicon lattice. Next, to emphasize the broad applicability of our code, we show the results for mixed zinc-blend/wurtzite lattice systems, also known as crystal phase quantum dots.