NESSi  v1.0.2 The NonEquilibrium Systems Simulation Library

## ◆ dyson_start()

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

Start-up procedure for solving the Dyson equation of 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)$$ for the first k timesteps (given by the integrator class 'I'). One assumes that the Matsubara component of $$G$$ and $$\Sigma(t,t^\prime)$$ for $$t,t^\prime$$<=k are given.

Parameters
 &G [herm_matrix] solution mu [T] chemical potential &H [function] time-dependent function &Sigma [herm_matrix] self-energy beta [double] inverse temperature h [double] time interval SolveOrder [int] integrator order

Definition at line 1502 of file cntr_dyson_impl.hpp.

1503  {
1504  int size1 = G.size1();
1505  assert(G.size1() == Sigma.size1());
1506  assert(G.ntau() == Sigma.ntau());
1507  assert(G.nt() >= SolveOrder);
1508  assert(Sigma.nt() >= SolveOrder);
1509  if (size1 == 1) {
1510  dyson_start_ret<T, herm_matrix<T>, 1>(G, mu, H.ptr(0), Sigma, integration::I<T>(SolveOrder), h);
1511  dyson_start_tv<T, herm_matrix<T>, 1>(G, mu, H.ptr(0), Sigma, integration::I<T>(SolveOrder), beta, h);
1512  dyson_start_les<T, herm_matrix<T>, 1>(G, mu, H.ptr(0), Sigma, integration::I<T>(SolveOrder), beta, h);
1513  } else {
1514  dyson_start_ret<T, herm_matrix<T>, LARGESIZE>(G, mu, H.ptr(0), Sigma, integration::I<T>(SolveOrder), h);
1515  dyson_start_tv<T, herm_matrix<T>, LARGESIZE>(G, mu, H.ptr(0), Sigma, integration::I<T>(SolveOrder), beta, h);
1516  dyson_start_les<T, herm_matrix<T>, LARGESIZE>(G, mu, H.ptr(0), Sigma, integration::I<T>(SolveOrder), beta, h);
1517  }
1518 }
Here is the call graph for this function: