mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-09 21:50:45 +01:00
Fix the ZMobius (I think)
This commit is contained in:
parent
a8d83d886e
commit
077aa728b9
@ -170,7 +170,6 @@ void CayleyFermion5D<Impl>::Mooee (const FermionField &psi, FermionField &
|
|||||||
lower[0] =-mass*lower[0];
|
lower[0] =-mass*lower[0];
|
||||||
M5D(psi,psi,chi,lower,diag,upper);
|
M5D(psi,psi,chi,lower,diag,upper);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class Impl>
|
template<class Impl>
|
||||||
void CayleyFermion5D<Impl>::MooeeDag (const FermionField &psi, FermionField &chi)
|
void CayleyFermion5D<Impl>::MooeeDag (const FermionField &psi, FermionField &chi)
|
||||||
{
|
{
|
||||||
@ -192,7 +191,7 @@ void CayleyFermion5D<Impl>::MooeeDag (const FermionField &psi, FermionField &
|
|||||||
lower[s]=-cee[s-1];
|
lower[s]=-cee[s-1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Conjugate the terms ?
|
// Conjugate the terms
|
||||||
for (int s=0;s<Ls;s++){
|
for (int s=0;s<Ls;s++){
|
||||||
diag[s] =conjugate(diag[s]);
|
diag[s] =conjugate(diag[s]);
|
||||||
upper[s]=conjugate(upper[s]);
|
upper[s]=conjugate(upper[s]);
|
||||||
@ -219,14 +218,22 @@ void CayleyFermion5D<Impl>::MeooeDag5D (const FermionField &psi, FermionField
|
|||||||
int Ls=this->Ls;
|
int Ls=this->Ls;
|
||||||
std::vector<Coeff_t> diag =bs;
|
std::vector<Coeff_t> diag =bs;
|
||||||
std::vector<Coeff_t> upper=cs;
|
std::vector<Coeff_t> upper=cs;
|
||||||
std::vector<Coeff_t> lower=cs;
|
std::vector<Coeff_t> lower=cs;
|
||||||
upper[Ls-1]=-mass*upper[Ls-1];
|
|
||||||
lower[0] =-mass*lower[0];
|
|
||||||
// Conjugate the terms ?
|
|
||||||
for (int s=0;s<Ls;s++){
|
for (int s=0;s<Ls;s++){
|
||||||
diag[s] =conjugate(diag[s]);
|
if ( s== 0 ) {
|
||||||
upper[s]=conjugate(upper[s]);
|
upper[s] = cs[s+1];
|
||||||
lower[s]=conjugate(lower[s]);
|
lower[s] =-mass*cs[Ls-1];
|
||||||
|
} else if ( s==(Ls-1) ) {
|
||||||
|
upper[s] =-mass*cs[0];
|
||||||
|
lower[s] = cs[s-1];
|
||||||
|
} else {
|
||||||
|
upper[s] = cs[s+1];
|
||||||
|
lower[s] = cs[s-1];
|
||||||
|
}
|
||||||
|
upper[s] = conjugate(upper[s]);
|
||||||
|
lower[s] = conjugate(lower[s]);
|
||||||
|
diag[s] = conjugate(diag[s]);
|
||||||
}
|
}
|
||||||
M5Ddag(psi,psi,Din,lower,diag,upper);
|
M5Ddag(psi,psi,Din,lower,diag,upper);
|
||||||
}
|
}
|
||||||
@ -313,7 +320,7 @@ void CayleyFermion5D<Impl>::MDeriv (GaugeField &mat,const FermionField &U,const
|
|||||||
this->DhopDeriv(mat,U,Din,dag);
|
this->DhopDeriv(mat,U,Din,dag);
|
||||||
} else {
|
} else {
|
||||||
// U d/du [D_w D5]^dag V = U D5^dag d/du DW^dag Y // implicit adj on U in call
|
// U d/du [D_w D5]^dag V = U D5^dag d/du DW^dag Y // implicit adj on U in call
|
||||||
Meooe5D(U,Din);
|
MeooeDag5D(U,Din);
|
||||||
this->DhopDeriv(mat,Din,V,dag);
|
this->DhopDeriv(mat,Din,V,dag);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -328,7 +335,7 @@ void CayleyFermion5D<Impl>::MoeDeriv(GaugeField &mat,const FermionField &U,const
|
|||||||
this->DhopDerivOE(mat,U,Din,dag);
|
this->DhopDerivOE(mat,U,Din,dag);
|
||||||
} else {
|
} else {
|
||||||
// U d/du [D_w D5]^dag V = U D5^dag d/du DW^dag Y // implicit adj on U in call
|
// U d/du [D_w D5]^dag V = U D5^dag d/du DW^dag Y // implicit adj on U in call
|
||||||
Meooe5D(U,Din);
|
MeooeDag5D(U,Din);
|
||||||
this->DhopDerivOE(mat,Din,V,dag);
|
this->DhopDerivOE(mat,Din,V,dag);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -343,7 +350,7 @@ void CayleyFermion5D<Impl>::MeoDeriv(GaugeField &mat,const FermionField &U,const
|
|||||||
this->DhopDerivEO(mat,U,Din,dag);
|
this->DhopDerivEO(mat,U,Din,dag);
|
||||||
} else {
|
} else {
|
||||||
// U d/du [D_w D5]^dag V = U D5^dag d/du DW^dag Y // implicit adj on U in call
|
// U d/du [D_w D5]^dag V = U D5^dag d/du DW^dag Y // implicit adj on U in call
|
||||||
Meooe5D(U,Din);
|
MeooeDag5D(U,Din);
|
||||||
this->DhopDerivEO(mat,Din,V,dag);
|
this->DhopDerivEO(mat,Din,V,dag);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user