NESSi  v1.0.2
The NonEquilibrium Systems Simulation Library

◆ dyson_start()

template<typename T >
void cntr::dyson_start ( herm_matrix< T > &  G,
mu,
function< T > &  H,
herm_matrix< T > &  Sigma,
beta,
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<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

Definition at line 1502 of file cntr_dyson_impl.hpp.

References cntr::herm_matrix< T >::nt(), cntr::herm_matrix< T >::ntau(), cntr::function< T >::ptr(), and cntr::herm_matrix< T >::size1().

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: