Beispiel #1
0
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;
}
Beispiel #2
0
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(")");
}