triqs.sumk.sumk_discrete.SumkDiscrete
- class triqs.sumk.sumk_discrete.SumkDiscrete(dim, gf_struct, orthogonal_basis=True)[source]
Bases:
objectBase class for a discrete momentum sum of a lattice Green’s function.
Holds a discretized k-grid (points, weights, hoppings) and computes
\[G(i\omega_n) = \sum_k w_k \bigl[ (i\omega_n + \mu)\,\mathbf{1} - \epsilon_k - \Sigma(k, i\omega_n) \bigr]^{-1}\]for a
triqs.gfs.BlockGfwhose blocks have the same matrix size as \(\epsilon_k\). The grid itself is not populated by this class: the arrays are allocated byresize_arrays()and must be filled in by a subclass (typicallySumkDiscreteFromLattice).- Parameters:
- dimint
Spatial dimension of the underlying Brillouin zone (1, 2 or 3).
- gf_structlist
Block structure of the Green’s function: a list of block labels accepted by the
GandSigmaarguments of__call__().- orthogonal_basisbool, optional
Whether the orbital basis is orthonormal. Default
True. Non- orthogonal bases are not currently exercised by the implementation.
Attributes
Block structure (list of block labels) accepted by
__call__()for itsGandSigmaarguments.dim
(int) Spatial dimension of the Brillouin zone.
orthogonal_basis
(bool) Whether the orbital basis is orthonormal.
hopping
(numpy.ndarray) Complex array of shape
(nk, n_orbitals, n_orbitals)holding \(\epsilon_k = t(k)\) at each grid point. Allocated byresize_arrays().bz_points
(numpy.ndarray) Float array of shape
(nk, dim)with the k-vectors in the reduced Brillouin zone (components in \((-1/2,\,1/2)\)).bz_weights
(numpy.ndarray) Float array of shape
(nk,)with the integration weights of each k-point. Initialised to a uniform \(1/n_k\).Methods
__call__(Sigma[, mu, field, epsilon_hat, ...])Compute the momentum-summed local Green's function.
n_kpts()Number of k-points on the stored grid.
resize_arrays(nk)(Re)allocate the k-grid arrays for
nkpoints.Notes
The k-loop in
__call__()is parallelised with MPI viatriqs.utility.mpi.slice_array()and the partial results are summed withtriqs.utility.mpi.all_reduce(). For typical use, preferSumkDiscreteFromLattice, which constructs the grid directly from atriqs.lattice.tight_binding.TBLattice.