mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-03 21:44:33 +00:00 
			
		
		
		
	Checked the hermiticity of the op in derivative, ok
Still CG fails to converge
This commit is contained in:
		@@ -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.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user