NESSI  v1.1.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,
integration::Integrator< T > &  I,
beta,
h,
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

I

[Integrator] integrator class

beta

[double] inverse temperature

h

[double] time interval

matsubara_method

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

force_hermitian

[const bool] force hermitian solution

Definition at line 1437 of file cntr_dyson_impl.hpp.

References dyson_mat(), dyson_start(), dyson_timestep(), integration::I(), and cntr::herm_matrix< T >::nt().

1439  {
1440  int n, k = I.k(), nt = G.nt();
1441  dyson_mat(G, Sigma, mu, H, I, beta, matsubara_method, force_hermitian);
1442  if (nt >= 0)
1443  dyson_start(G, mu, H, Sigma, I, beta, h);
1444  for (n = k + 1; n <= nt; n++)
1445  dyson_timestep(n, G, mu, H, Sigma, I, beta, h);
1446 }
void dyson_start(herm_matrix< T > &G, T mu, function< T > &H, herm_matrix< T > &Sigma, integration::Integrator< T > &I, T beta, T h)
Start-up procedure for solving the Dyson equation of the integral-differential form for a Green&#39;s fu...
void dyson_mat(herm_matrix< T > &G, herm_matrix< T > &Sigma, T mu, function< T > &H, integration::Integrator< T > &I, T beta, const int method=CNTR_MAT_FIXPOINT, const bool force_hermitian=true)
Dyson solver (integral-differential form) for a Green&#39;s function
Integrator< T > & I(int k)
void dyson_timestep(int n, herm_matrix< T > &G, T mu, function< T > &H, herm_matrix< T > &Sigma, integration::Integrator< T > &I, T beta, T h)
One step Dyson solver (integral-differential form) for a Green&#39;s function
+ Here is the call graph for this function: