mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-09 21:50:45 +01:00
Z mobius hermiticity correction
This commit is contained in:
parent
8b99d80d8c
commit
447c5e6cd7
@ -102,5 +102,5 @@ script:
|
|||||||
- ../configure --enable-precision=single --enable-simd=SSE4 --enable-comms=mpi-auto
|
- ../configure --enable-precision=single --enable-simd=SSE4 --enable-comms=mpi-auto
|
||||||
- make -j4
|
- make -j4
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then mpirun.openmpi -n 2 ./benchmarks/Benchmark_dwf --threads 1 --mpi 2.1.1.1; fi
|
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then mpirun.openmpi -n 2 ./benchmarks/Benchmark_dwf --threads 1 --mpi 2.1.1.1; fi
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then mpirun -n 2 ./benchmarks/Benchmark_dwf --threads 1 --mpi 2.1.1.1; fi
|
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ./benchmarks/Benchmark_dwf --threads 1 ; fi
|
||||||
|
|
||||||
|
@ -190,7 +190,12 @@ void CayleyFermion5D<Impl>::MooeeDag (const FermionField &psi, FermionField &
|
|||||||
lower[s]=-cee[s-1];
|
lower[s]=-cee[s-1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Conjugate the terms ?
|
||||||
|
for (int s=0;s<Ls;s++){
|
||||||
|
diag[s] =conjugate(diag[s]);
|
||||||
|
upper[s]=conjugate(upper[s]);
|
||||||
|
lower[s]=conjugate(lower[s]);
|
||||||
|
}
|
||||||
M5Ddag(psi,psi,chi,lower,diag,upper);
|
M5Ddag(psi,psi,chi,lower,diag,upper);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -215,6 +220,12 @@ void CayleyFermion5D<Impl>::MeooeDag5D (const FermionField &psi, FermionField
|
|||||||
std::vector<Coeff_t> lower=cs;
|
std::vector<Coeff_t> lower=cs;
|
||||||
upper[Ls-1]=-mass*upper[Ls-1];
|
upper[Ls-1]=-mass*upper[Ls-1];
|
||||||
lower[0] =-mass*lower[0];
|
lower[0] =-mass*lower[0];
|
||||||
|
// Conjugate the terms ?
|
||||||
|
for (int s=0;s<Ls;s++){
|
||||||
|
diag[s] =conjugate(diag[s]);
|
||||||
|
upper[s]=conjugate(upper[s]);
|
||||||
|
lower[s]=conjugate(lower[s]);
|
||||||
|
}
|
||||||
M5Ddag(psi,psi,Din,lower,diag,upper);
|
M5Ddag(psi,psi,Din,lower,diag,upper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,10 +106,16 @@ int main (int argc, char ** argv)
|
|||||||
|
|
||||||
RealD b=1.5;// Scale factor b+c=2, b-c=1
|
RealD b=1.5;// Scale factor b+c=2, b-c=1
|
||||||
RealD c=0.5;
|
RealD c=0.5;
|
||||||
|
std::vector<ComplexD> gamma(Ls,ComplexD(1.0,0.0));
|
||||||
|
|
||||||
std::cout<<GridLogMessage <<"MobiusFermion test"<<std::endl;
|
std::cout<<GridLogMessage <<"MobiusFermion test"<<std::endl;
|
||||||
MobiusFermionR Dmob(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,b,c);
|
MobiusFermionR Dmob(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,b,c);
|
||||||
TestCGinversions<MobiusFermionR>(Dmob,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5);
|
TestCGinversions<MobiusFermionR>(Dmob,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5);
|
||||||
|
|
||||||
|
std::cout<<GridLogMessage <<"ZMobiusFermion test"<<std::endl;
|
||||||
|
ZMobiusFermionR ZDmob(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,gamma,b,c);
|
||||||
|
TestCGinversions<ZMobiusFermionR>(ZDmob,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5);
|
||||||
|
|
||||||
std::cout<<GridLogMessage <<"MobiusZolotarevFermion test"<<std::endl;
|
std::cout<<GridLogMessage <<"MobiusZolotarevFermion test"<<std::endl;
|
||||||
MobiusZolotarevFermionR Dzolo(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,b,c,0.1,2.0);
|
MobiusZolotarevFermionR Dzolo(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,b,c,0.1,2.0);
|
||||||
TestCGinversions<MobiusZolotarevFermionR>(Dzolo,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5);
|
TestCGinversions<MobiusZolotarevFermionR>(Dzolo,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5);
|
||||||
|
@ -81,10 +81,16 @@ int main (int argc, char ** argv)
|
|||||||
|
|
||||||
RealD b=1.5;// Scale factor b+c=2, b-c=1
|
RealD b=1.5;// Scale factor b+c=2, b-c=1
|
||||||
RealD c=0.5;
|
RealD c=0.5;
|
||||||
|
std::vector<ComplexD> gamma(Ls,ComplexD(1.0,0.1));
|
||||||
|
|
||||||
std::cout<<GridLogMessage <<"MobiusFermion test"<<std::endl;
|
std::cout<<GridLogMessage <<"MobiusFermion test"<<std::endl;
|
||||||
MobiusFermionR Dmob(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,b,c);
|
MobiusFermionR Dmob(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,b,c);
|
||||||
TestWhat<MobiusFermionR>(Dmob,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5);
|
TestWhat<MobiusFermionR>(Dmob,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5);
|
||||||
|
|
||||||
|
std::cout<<GridLogMessage <<"ZMobiusFermion test"<<std::endl;
|
||||||
|
ZMobiusFermionR ZDmob(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,gamma,b,c);
|
||||||
|
TestWhat<ZMobiusFermionR>(ZDmob,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5);
|
||||||
|
|
||||||
std::cout<<GridLogMessage <<"MobiusZolotarevFermion test"<<std::endl;
|
std::cout<<GridLogMessage <<"MobiusZolotarevFermion test"<<std::endl;
|
||||||
MobiusZolotarevFermionR Dzolo(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,b,c,0.1,2.0);
|
MobiusZolotarevFermionR Dzolo(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,b,c,0.1,2.0);
|
||||||
TestWhat<MobiusZolotarevFermionR>(Dzolo,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5);
|
TestWhat<MobiusZolotarevFermionR>(Dzolo,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5);
|
||||||
|
@ -26,7 +26,6 @@ See the full license in the file "LICENSE" in the top level distribution directo
|
|||||||
*************************************************************************************/
|
*************************************************************************************/
|
||||||
/* END LEGAL */
|
/* END LEGAL */
|
||||||
#include <Grid/Grid.h>
|
#include <Grid/Grid.h>
|
||||||
#include <Grid/PerfCount.h>
|
|
||||||
|
|
||||||
#ifdef TEST_ZMM
|
#ifdef TEST_ZMM
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user