NESSi  v1.0.2
The NonEquilibrium Systems Simulation Library

◆ dyson_mat() [2/2]

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

Dyson solver (integral-differential form) for a Green's function \(G\). Global interface

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)\) on a Matsubara axis. There are 3 possible methods for solution: Fourier, steep, and fixpoint. Fixpoint method is choosen by default.

Parameters
&G

[herm_matrix<T>] solution

mu

[T] chemical potential

&H

[function<T>] time-dependent function

&SigmaMF

[herm_matrix<T>] mean-field self-energy

&Sigma

[herm_matrix<T>] self-energy

beta

[double] inverse temperature

SolveOrder

[int] integrator order

method

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

force_hermitian

[const bool] force hermitian solution, if 'true'

Definition at line 1274 of file cntr_dyson_impl.hpp.

References force_matsubara_hermitian().

1276  {
1277  assert(method <= 2 && "UNKNOWN CNTR_MAT_METHOD");
1278  assert(SolveOrder <= MAX_SOLVE_ORDER);
1279 
1280  const int fourier_order = 3;
1281  const double tol=1.0e-12;
1282  int maxiter;
1283  switch(method){
1284  case CNTR_MAT_FOURIER:
1285  dyson_mat_fourier(G, Sigma, mu, H, SigmaMF, beta, fourier_order);
1286  break;
1287  case CNTR_MAT_CG:
1288  maxiter = 40;
1289  dyson_mat_steep(G, Sigma, mu, H, SigmaMF, integration::I<T>(SolveOrder), beta, maxiter, tol);
1290  break;
1291  default:
1292  maxiter = 6;
1293  dyson_mat_fixpoint(G, Sigma, mu, H, SigmaMF, integration::I<T>(SolveOrder), beta, maxiter);
1294  break;
1295  }
1296  if(force_hermitian){
1298  }
1299 }
void force_matsubara_hermitian(herm_matrix< T > &G)
Force the Matsubara component of herm_matrix to be a hermitian matrix at each . ...
+ Here is the call graph for this function: