NESSi  v1.0.2 The NonEquilibrium Systems Simulation Library

◆ incr_timestep() [2/2]

template<typename T >
 void cntr::herm_matrix_timestep< T >::incr_timestep ( int tstp, herm_matrix< T > & g, T alpha = 1.0 )

Increase the value of the herm_matrix_timestep by $$\alpha g(t)$$

Purpose

Increase the value of herm_matrix_timestep by a value of $$\alpha g(t)$$, where $$g(t)$$ is a herm_matrix and $$\alpha$$ is a complex number. If $$t>-1$$ then ret,les,tv components are set, otherwise mat. Works for scalar or square-matrix contour objects.

Parameters
 tstp time step tstp, identical to the time step of herm_matrix_timestep e(dummy argument in release mode) g The herm_matrix which is added alpha Constant multiplication factor

Definition at line 2019 of file cntr_herm_matrix_timestep_impl.hpp.

2019  {
2020  assert(tstp == tstp_);
2021  assert(tstp_ <= g.nt() && ntau_ == g.ntau() && size1_ == g.size1());
2022  int i, len;
2023  cplx *x, *x0;
2024  if (tstp_ == -1) {
2025  len = (ntau_ + 1) * element_size_;
2026  x = g.matptr(0);
2027  x0 = data_;
2028  HERM_MATRIX_INCR_TSTP
2029  } else {
2030  len = (tstp_ + 1) * element_size_;
2031  x = g.retptr(tstp_, 0);
2032  x0 = data_;
2033  HERM_MATRIX_INCR_TSTP
2034  len = (ntau_ + 1) * element_size_;
2035  x = g.tvptr(tstp_, 0);
2036  x0 = data_ + (tstp_ + 1) * element_size_;
2037  HERM_MATRIX_INCR_TSTP
2038  len = (tstp_ + 1) * element_size_;
2039  x = g.lesptr(0, tstp_);
2040  x0 = data_ + (tstp_ + 1 + ntau_ + 1) * element_size_;
2041  HERM_MATRIX_INCR_TSTP
2042  }
2043 }
Here is the call graph for this function: