NESSi  v1.0.2
The NonEquilibrium Systems Simulation Library

◆ dyson()

template<typename T >
void cntr::dyson ( herm_matrix< T > &  G,
mu,
function< T > &  H,
herm_matrix< T > &  Sigma,
beta,
h,
const int  SolveOrder,
const int  matsubara_method,
const bool  force_hermitian 
)

Solver of the Dyson equation in the integral-differential form for a Green's function \(G\)

Purpose

One solves the Dyson equation of the following form: \( [ id/dt + \mu - H(t) ] G(t,t^\prime) - [\Sigma*G](t,t^\prime) = \delta(t,t^\prime)\) for a hermitian matrix \(G(t, t^\prime)\) with given \(\Sigma(t, t^\prime)\), \(\mu\), and \(H(t)\). Here, one calls the routines 'dyson_mat()', 'dyson_start()', 'dyson_timestep'.

Parameters
&G

[herm_matrix<T>] solution

mu

[T] chemical potential

&H

[function<T>] time-dependent function

&Sigma

[herm_matrix<T>] self-energy

beta

[double] inverse temperature

h

[double] time interval

SolveOrder

[int] integrator order

matsubara_method

[int] Solution method on the Matsubara axis with 0: Fourier, 1: steep, 2: fixpoint

force_hermitian

[bool] force hermitian solution

Definition at line 1725 of file cntr_dyson_impl.hpp.

References cntr::herm_matrix< T >::nt().

1727  {
1728  int n, nt = G.nt();
1729  dyson_mat(G, mu, H, Sigma, beta, SolveOrder, matsubara_method, force_hermitian);
1730  if (nt >= 0)
1731  dyson_start(G, mu, H, Sigma, beta, h, SolveOrder);
1732  for (n = SolveOrder + 1; n <= nt; n++)
1733  dyson_timestep(n, G, mu, H, Sigma, beta, h, SolveOrder);
1734 }
+ Here is the call graph for this function: