NESSi  v1.0.2 The NonEquilibrium Systems Simulation Library

## ◆ vie2_omp()

template<typename T >
 void cntr::vie2_omp ( int omp_num_threads, herm_matrix< T > & G, herm_matrix< T > & F, herm_matrix< T > & Fcc, herm_matrix< T > & Q, T beta, T h, const int SolveOrder, const int matsubara_method )

One step VIE solver $$(1+F)*G=Q$$ for a Green's function $$G$$. OpenMP parallelized

Purpose

OpenMP version of 'vie2'. One solves the linear equation $$(1+F)*G=Q$$ for a hermitian matrix $$G(t, t^\prime)$$ with given $$F(t, t^\prime)$$ and $$Q(t, t^\prime)$$. Here, one calls the routines 'vie2_mat()', 'vie2_start()', 'vie2_timestep'.

Parameters
 omp_num_threads [int] The number of openMP threads to be used. Set to the number of threads in the current team. &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 h [double] time interval SolveOrder [int] integrator order matsubara_method [const] Solution method on the Matsubara axis with 0: Fourier, 1: steep, 2: fixpoint

Definition at line 2508 of file cntr_vie2_impl.hpp.

References cntr::herm_matrix< T >::nt().

2509  {
2510  int tstp;
2511  vie2_mat(G, F, Fcc, Q, beta, SolveOrder, matsubara_method);
2512  if (G.nt() >= 0)
2513  vie2_start(G, F, Fcc, Q, beta, h, SolveOrder);
2514  for (tstp = SolveOrder + 1; tstp <= G.nt(); tstp++)
2515  vie2_timestep_omp(omp_num_threads, tstp, G, F, Fcc, Q, beta, h, SolveOrder);
2516 }
Here is the call graph for this function: