NESSi  v1.0.2 The NonEquilibrium Systems Simulation Library

## ◆ vie2_mat()

template<typename T >
 void cntr::vie2_mat ( herm_matrix< T > & G, herm_matrix< T > & F, herm_matrix< T > & Fcc, herm_matrix< T > & Q, T beta, const int SolveOrder, const int method )

VIE solver $$(1+F)*G=Q$$ for a Green's function $$G$$ on the Matsubara axis

Purpose

One solves the linear equation $$(1+F)*G=Q$$ for a hermitian matrix $$G(t, t^\prime)$$ on a Matsubara axis, for given: input kernel $$F(t, t^\prime)$$, its hermitian conjugate $$F^\ddagger(t, t^\prime)$$, and the source term $$Q(t, t^\prime)$$. There are 3 possible methods for solution: Fourier, steep, and fixpoint. Fixpoint method is choosen by default.

Parameters
 &G [herm_matrix] solution &F [herm_matrix] green's function on left-hand side &Fcc [herm_matrix] Complex conjugate of F &Q [herm_matrix] green's function on right-hand side beta [double] inverse temperature SolveOrder [int] integrator order method [const] Solution method on the Matsubara axis with 0: Fourier, 1: steep, 2: fixpoint

Definition at line 1283 of file cntr_vie2_impl.hpp.

1284  {
1285
1286  const int fourier_order=3;
1287  int maxiter;
1288  T tol = 1.0e-12;
1289
1290  switch(method) {
1291  case CNTR_MAT_FOURIER:
1292  vie2_mat_fourier(G, F, Fcc, Q, beta, fourier_order);
1293  break;
1294  case CNTR_MAT_CG:
1295  maxiter = 40;
1296  vie2_mat_steep(G, F, Fcc, Q, beta, integration::I<T>(SolveOrder), maxiter, tol);
1297  break;
1298  default:
1299  maxiter = 6;
1300  vie2_mat_fixpoint(G, F, Fcc, Q, beta, integration::I<T>(SolveOrder), maxiter);
1301  break;
1302  }
1303
1304 }