calculateHamiltonianAndOverlap¶
- calculateHamiltonianAndOverlap(configuration, kpoint=None, spin=<class 'NL.ComputerScienceUtilities.NLFlag.Spin.All'>)¶
Calculate the Fourier transformed Hamiltonian (H) and the overlap (S) matrices.
- Parameters:
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
- Returns:
H as a PhysicalQuantity array and S as a
numpy.array
.- Return type:
tuple
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))
Notes¶
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 Spin for details on how to handle the spin parameter.