Overview¶
Dopyqo performs many-body post-processing of Kohn-Sham density functional theory (DFT) calculations. Starting from a Quantum ESPRESSO plane-wave DFT result, it constructs a second-quantized many-body Hamiltonian and solves it with classical (FCI) or quantum (VQE) algorithms, and then can compute Bader charges from the resulting many-body charge density.
Workflow¶
Quantum ESPRESSO (DFT)
│
│ wfc.dat / wfc.hdf5
│ data-file-schema.xml
▼
Kohn-Sham orbitals & crystal structure
│
│ active space selection
▼
Many-body Hamiltonian (matrix elements and constant energies)
│
├──► FCI (PySCF) ──► ground-state energy & density
└──► VQE (TenCirChem / Qiskit) ──► ground-state energy & density
│
▼
Bader charge analysis
Many-body Hamiltonian¶
The electronic Hamiltonian in second quantization is (see our paper):
where \(a_t^\dagger\) and \(a_t\) are fermionic creation and annihilation operators for spin-orbital \(t\), \(E_{\text{n-n}}\) is the nuclear repulsion (Ewald) energy, and \(E_{\text{e-self}}\) is the electron self-interaction energy.
Electron Repulsion Integrals¶
The two-electron integrals are computed efficiently in reciprocal space via pair densities:
where \(V\) is the unit-cell volume, \(\mathbf{G}\) are reciprocal-lattice vectors, and \(\tilde{\rho}_{tu}(\mathbf{G})\) is the Fourier transform of the real-space pair density \(\rho_{tu}(\mathbf{r})=\psi^\ast_t(\mathbf{r}) \psi_u(\mathbf{r})\), where \(\psi_t(\mathbf{r})\) is the real-space representation of the \(t\)-th Kohn-Sham orbital.
The \(\mathbf{G} = 0\) term is omitted, as it cancels with the compensating background charge in a periodic system.
Bader Charge Analysis¶
After obtaining the many-body ground-state charge density \(\rho(\mathbf{r})\), atoms are assigned charges by integrating over their Bader regions \(\mathcal{B}_I\):
Each region \(\mathcal{B}_I\) is bounded by zero-flux surfaces running through minima of the charge density. The external Bader charge analysis code is used to determine the region boundaries.
Active Space¶
Because exactly solving the many-body Hamiltonian with classical algorithms scales exponentially with system size, Dopyqo uses an active space approach: only \(N_e\) electrons in \(N_o\) orbitals are treated at the many-body level. Orbitals outside the active space are either frozen (occupied) or discarded (virtual). The frozen orbitals are treated on a mean-field level using the frozen-core approximation.
The active-space parameters are set via active_electrons
and active_orbitals in DopyqoConfig.