cx_mat Chain::G_L(const double o1, const double o2, const double E) { //----------------------// // Sigma in 2x2 double fL = fermiD(E-barrier[0].bias_l, lead[0].temperature); double fR = fermiD(E-barrier[0].bias_r, lead[1].temperature); cx_mat22 S_L = lead[0].S(o1, o2, E); cx_mat22 S_R = lead[1].S(o1, o2, E); cx_mat22 S0_lesser_L = fL*(S_L.t() - S_L); cx_mat22 S0_lesser_R = fR*(S_R.t() - S_R); //----------------------// // the Big Sigma int dim_L = 2*(lead[0].numAtom + _numBarrierAtom); int dim_R = 2*(lead[1].numAtom + _numBarrierAtom); cx_mat tmp_zeros_L = zeros<cx_mat>(dim_L, dim_L); cx_mat tmp_zeros_R = zeros<cx_mat>(dim_R, dim_R); cx_mat S_lesser_L = blockDiag((cx_mat)S0_lesser_L, tmp_zeros_L); cx_mat S_lesser_R = blockDiag(tmp_zeros_R, (cx_mat)S0_lesser_R); //----------------------// // Lesser Grees's func. (as left and right term) cx_mat Gr = G_R(o1, o2, E); cx_mat G_lesser_L = (Gr.t() * S_lesser_L) * Gr; cx_mat G_lesser_R = (Gr.t() * S_lesser_R) * Gr; return G_lesser_L + G_lesser_R; }
void TSC_color::tostring(QString &str, int tpe) { QString st1; str.clear(); st1.formatscalar(G_R());str+=st1;str+=_qstr(", "); st1.formatscalar(G_G());str+=st1;str+=_qstr(", "); st1.formatscalar(G_B());str+=st1;str+=_qstr(", "); st1.formatscalar(G_A());str+=st1;//str+=_qstr(")"); }