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,
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.

References cntr::herm_matrix< T >::nt(), cntr::herm_matrix< T >::ntau(), and cntr::herm_matrix< T >::size1().

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: