NESSi  v1.0.2 The NonEquilibrium Systems Simulation Library

## ◆ dyson_mat() [1/2]

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

Dyson solver (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)$$ on a Matsubara axis. There are 3 possible methods for solution: Fourier, steep, and fixpoint.

Parameters
 &G [herm_matrix] solution mu [T] chemical potential &Sigma [herm_matrix] self-energy &H [function] time-dependent function SolveOrder [int] integrator order beta [double] inverse temperature method [int] Solution method on the Matsubara axis with 0: Fourier, 1: steep, 2: fixpoint force_hermitian [bool] force hermitian solution, if 'true'

Definition at line 1393 of file cntr_dyson_impl.hpp.

References force_matsubara_hermitian().

1394  {
1395  assert(method <= 2 && "UNKNOWN CNTR_MAT_METHOD");
1396  assert(SolveOrder <= MAX_SOLVE_ORDER);
1397
1398  const int fourier_order = 3;
1399  const double tol=1.0e-12;
1400  int maxiter;
1401
1402  switch(method){
1403  case 0:
1404  dyson_mat_fourier(G, Sigma, mu, H, beta, fourier_order);
1405  break;
1406  case 1:
1407  maxiter = 40;
1408  dyson_mat_steep(G, Sigma, mu, H, integration::I<T>(SolveOrder), beta, maxiter, tol);
1409  break;
1410  case 2:
1411  maxiter=6;
1412  dyson_mat_fixpoint(G, Sigma, mu, H, integration::I<T>(SolveOrder), beta, maxiter);
1413  break;
1414  }
1415  if(force_hermitian){
1417  }
1418 }
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: