1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-06-13 04:37:05 +01:00

Checked the hermiticity of the op in derivative, ok

Still CG fails to converge
This commit is contained in:
Guido Cossu
2016-07-31 12:37:33 +01:00
parent 089f0ab582
commit 49b5c49851
6 changed files with 47 additions and 38 deletions

View File

@ -134,9 +134,9 @@ class TwoFlavourPseudoFermionAction : public Action<typename Impl::GaugeField> {
MdagMOp.Op(X, Y);
// Check hermiticity
/*
std::vector<int> seeds({1,2,3,4});
GridParallelRNG RNG(U._grid); RNG.SeedFixedIntegers(seeds);
GridParallelRNG RNG(U._grid); RNG.SeedFixedIntegers(seeds);
FermionField RNGphi(FermOp.FermionGrid());
FermionField RNGchi(FermOp.FermionGrid());
FermionField Achi(FermOp.FermionGrid());
@ -144,8 +144,8 @@ class TwoFlavourPseudoFermionAction : public Action<typename Impl::GaugeField> {
random(RNG, RNGphi);
random(RNG, RNGchi);
MdagMOp.Op(RNGchi, Achi);
MdagMOp.Op(RNGphi, Aphi);
MdagMOp.HermOp(RNGchi, Achi);
MdagMOp.HermOp(RNGphi, Aphi);
ComplexD pAc = innerProduct(RNGphi, Achi);
ComplexD cAp = innerProduct(RNGchi, Aphi);
//these should be real
@ -153,8 +153,9 @@ class TwoFlavourPseudoFermionAction : public Action<typename Impl::GaugeField> {
ComplexD cAc = innerProduct(RNGchi, Achi);
std::cout<<GridLogMessage<< "pAc "<<pAc<<" cAp "<< cAp<< " diff "<<pAc-adj(cAp)<<std::endl;
// These ones should be real
std::cout << GridLogMessage << "pAp " << pAp << " cAc " << cAc << std::endl;
*/
// Our conventions really make this UdSdU; We do not differentiate wrt Udag
// here.
// So must take dSdU - adj(dSdU) and left multiply by mom to get dS/dt.