triqs.sumk.sumk_discrete.SumkDiscrete.__call__

SumkDiscrete.__call__(Sigma, mu=0, field=None, epsilon_hat=None, result=None, selected_blocks=())[source]

Compute the momentum-summed local Green’s function.

Evaluates

\[G(i\omega_n) = \sum_k w_k \bigl[ (i\omega_n + \mu)\,\mathbf{1} - \mathrm{field} - \hat\epsilon(\epsilon_k) - \Sigma(k, i\omega_n) \bigr]^{-1}\]

over the stored grid (bz_points, bz_weights, hopping), in parallel across MPI ranks.

Parameters:
Sigmatriqs.gfs.BlockGf or callable

Either a Green’s function block, or a callable returning one. When callable, it must accept one argument k (1D numpy.ndarray of shape (dim,) with components in \((-1/2, 1/2)\)) or two arguments (k, eps_k) (with eps_k the (n_orb, n_orb) hopping matrix at that k). Each block of the result must have the same target shape as hopping (or as epsilon_hat(hopping[k]) when epsilon_hat is given).

mufloat, optional

Chemical potential. Default 0.

fieldoptional

Any k-independent object subtracted from the inverse propagator (e.g. a matrix-shaped array or a Green’s function block). Default None.

epsilon_hatcallable, optional

Function mapping hopping[k] to a matrix with the same target shape as each block of Sigma. Default None (use hopping[k] directly).

resulttriqs.gfs.BlockGf, optional

Pre-allocated output. If given, the calculation writes into it and returns the same object, enabling chained calls such as SK(mu=mu, Sigma=Sigma, result=G).total_density(). If None (default), a fresh copy of the model is returned.

selected_blockstuple, optional

Reserved for future use; currently must be ().

Returns:
triqs.gfs.BlockGf

The local Green’s function on the same triqs.gfs.MeshImFreq as the model (or as result when supplied).

Notes

The mesh of every block in the result must be a triqs.gfs.MeshImFreq. The orbital basis must be orthogonal (self.orthogonal_basis == True). The same \(t(k)\) is used for every block, and the partial sums from each MPI rank are combined with triqs.utility.mpi.all_reduce() followed by a barrier.