NESSi  v1.0.2
The NonEquilibrium Systems Simulation Library

◆ get_timestep_pseudo()

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

Definition at line 1046 of file cntr_herm_pseudo_impl.hpp.

Referenced by get_timestep_matrix_pseudo(), and increment_timestep_matrix_pseudo().

1046  {
1047 int sg=G.element_size(),ntau=G.ntau(),m,l=0;
1048  std::complex<double> *x1;
1049  x1=timestep;
1050  //std::cout << "get tsp " << tstp << std::endl;
1051  if(tstp>=0){
1052  for(m=0;m<=tstp;m++){
1053  // ret(tstp,tstp-m) = gtr(tstp,tstp-m)
1054  // = -G^gtr(tstp-m,tstp)^*
1055  G.element_set(x1,G.retptr(tstp,tstp-m),G);
1056  G.element_smul(x1,-1);
1057  G.element_conj(x1);
1058  x1+=sg;l++;
1059  }
1060  for(m=0;m<=ntau;m++){
1061  // x1 points to Gvt(m,tstp) = -bosefermi *Gtv(tstp,ntau-m)^*
1062  G.element_set(x1,G.tvptr(tstp,ntau-m),G);
1063  G.element_conj(x1);
1064  G.element_smul(x1,-G.sig());
1065  x1+=sg;l++;
1066  }
1067  for(m=0;m<=tstp;m++){
1068  // x1 points to G(m+,tstp+)=les(m,tstp)
1069  G.element_set(x1,G.lesptr(m,tstp),G);
1070  x1+=sg;l++;
1071  }
1072  }else{
1073  for(m=0;m<=ntau;m++){
1074  // x1 points to Gmat(m,0) = i*Gmat(m)
1075  G.element_set(x1,G.matptr(m),G);
1076  G.element_smul(x1,std::complex<double>(0,1));
1077  x1+=sg;l++;
1078  }
1079  }
1080 }
+ Here is the caller graph for this function: