calculateHamiltonianAndOverlap(configuration, kpoint=None, spin=<class 'NL.ComputerScienceUtilities.NLFlag.Spin.All'>)

Calculate the Fourier transformed Hamiltonian (H) and the overlap (S) matrices.

  • configuration (MoleculeConfiguration | BulkConfiguration | DeviceConfiguration | SurfaceConfiguration) – The configuration to use for the calculation.
  • kpoint (tuple of floats) – The kpoint as three floats representing fractional reciprocal space coordinates.
    Default: The Gamma point (0.0, 0.0, 0.0)
  • spin (Spin.Up | Spin.Down | Spin.All) – The spin component for which to perform the calculation.
    Default: Spin.All

H as a PhysicalQuantity array and S as a numpy.array.

Return type:


Usage Examples

Evaluate a simple molecular system:

hamiltonian, overlap = calculateHamiltonianAndOverlap(molecule_configuration)

Evaluate a bulk system in a non-Gamma kpoint:

hamiltonian, overlap = calculateHamiltonianAndOverlap(bulk_configuration, kpoint=(0.1, 0.0, 0.0))


  • Calculates Fourier transformed Hamiltonian, \(H({\bf k})\) and overlap matrix \(S({\bf k})\). The real space Hamiltonian is defined by \(H_{ij} = \langle \phi_i | \hat{H}_{1el} | \phi_j \rangle,\) and the overlap matrix \(S_{ij} = \langle \phi_i | \phi_j \rangle\), where \(\phi_i\) are the basis functions. The Fourier transform is obtained by summing over all the cells in the periodic system

    \[M({\bf k})_{\mu \nu} = \sum_{\bf R} M_{(\mu, {\bf 0}),(\nu, {\bf R})} e^{i {\bf k} \cdot {\bf R}},\]

    where \({\bf R}\) is given relative to the central cell, \({\bf R}={\bf 0}\).

  • The calculator must be density matrix-based for this function to perform successfully.

  • Consider Note on Spin in low level interface functions for details on how to handle the spin parameter.