NESSi  v1.0.2
The NonEquilibrium Systems Simulation Library

◆ set_timestep_pseudo()

template<class GG >
void cntr::set_timestep_pseudo ( int  tstp,
GG &  G,
std::complex< double > *  timestep 
)

Definition at line 1011 of file cntr_herm_pseudo_impl.hpp.

Referenced by increment_timestep_matrix_pseudo(), and set_timestep_matrix_pseudo().

1011  {
1012  int sg=G.element_size(),ntau=G.ntau(),m,l=0;
1013  std::complex<double> *x1;
1014  x1=timestep;
1015  if(tstp>=0){
1016  for(m=0;m<=tstp;m++){
1017  // ret(tstp,m) = gtr(tstp,m)
1018  // = -G(m-,tstp-)^*
1019  G.element_set(G.retptr(tstp,tstp-m),x1,G);
1020  G.element_smul(G.retptr(tstp,tstp-m),-1);
1021  G.element_conj(G.retptr(tstp,tstp-m));
1022  x1+=sg;l++;
1023  }
1024  for(m=0;m<=ntau;m++){
1025  // x1 points to Gvt(m,tstp) = -bosefermi *Gtv(tstp,ntau-m)^*
1026  G.element_set(G.tvptr(tstp,ntau-m),x1,G);
1027  G.element_conj(G.tvptr(tstp,ntau-m));
1028  G.element_smul(G.tvptr(tstp,ntau-m),-G.sig());
1029  x1+=sg;l++;
1030  }
1031  for(m=0;m<=tstp;m++){
1032  // x1 points to G(m+,tstp+)=les(m,tstp)
1033  G.element_set(G.lesptr(m,tstp),x1,G);
1034  x1+=sg;l++;
1035  }
1036  }else{
1037  for(m=0;m<=ntau;m++){
1038  // x1 points to Gmat(m,0) = i*Gmat(m)
1039  G.element_set(G.matptr(m),x1,G);
1040  G.element_smul(G.matptr(m),std::complex<double>(0,-1));
1041  x1+=sg;l++;
1042  }
1043  }
1044 }
+ Here is the caller graph for this function: