00001
00002 void rotate_field(fermi_field& psi, gauge_field& U, coefficients &coeff) {
00003 fermi_field psi_rot(psi.lattice(),psi.nspin,psi.nc);
00004 mdp_real d1=coeff["rotate_field:d1"];
00005 psi_rot=psi;
00006 mdp_site x(psi.lattice());
00007 forallsites(x)
00008 for(int mu=1;mu<U.ndim;mu++)
00009 for(int a=0;a<psi.nspin;a++)
00010 for(int b=0;b<psi.nspin;b++) {
00011 psi(x,a)+=d1*0.5*Gamma[mu](a,b)*(U(x,mu)*psi_rot(x+mu,b)-(U(x,-1,mu))*psi_rot(x-mu,b));
00012 }
00013 psi.update();
00014 }
00015