From 3dbfce522320128e26fcc3fc7223e33fe221d964 Mon Sep 17 00:00:00 2001 From: Peter Boyle Date: Wed, 16 Nov 2022 20:15:51 -0500 Subject: [PATCH] Tests clean build on HIP --- Grid/algorithms/CoarsenedMatrix.h | 22 ++--- Grid/algorithms/LinearOperator.h | 1 + Grid/qcd/action/ActionParams.h | 9 -- Grid/stencil/Stencil.h | 10 ++ Grid/tensors/Tensor_traits.h | 2 +- systems/Crusher/config-command | 4 +- systems/Crusher/sourceme.sh | 2 + tests/debug/Test_cayley_cg.cc | 48 ++++----- tests/debug/Test_cayley_coarsen_support.cc | 6 +- tests/debug/Test_cayley_even_odd.cc | 32 +++--- tests/debug/Test_cayley_ldop_cr.cc | 6 +- tests/debug/Test_cayley_mres.cc | 28 +++--- tests/debug/Test_heatbath_dwf_eofa.cc | 4 +- tests/debug/Test_heatbath_dwf_eofa_gparity.cc | 4 +- tests/debug/Test_heatbath_mobius_eofa.cc | 4 +- .../Test_heatbath_mobius_eofa_gparity.cc | 2 +- tests/debug/Test_reweight_dwf_eofa.cc | 16 +-- tests/debug/Test_reweight_dwf_eofa_gparity.cc | 20 ++-- tests/debug/Test_reweight_mobius_eofa.cc | 16 +-- .../Test_reweight_mobius_eofa_gparity.cc | 20 ++-- tests/hmc/Test_hmc_WC2ASFG_Production.cc | 6 +- tests/hmc/Test_hmc_WC2SFG_Production.cc | 4 + tests/hmc/Test_hmc_WCMixedRepFG_Production.cc | 4 + tests/hmc/Test_hmc_WCadjFG_Production.cc | 4 + .../hmc/Test_hmc_WilsonAdjointFermionGauge.cc | 6 +- ..._WilsonMixedRepresentationsFermionGauge.cc | 4 + ...hmc_WilsonTwoIndexSymmetricFermionGauge.cc | 4 + tests/lanczos/Test_WCMultiRep_lanczos.cc | 13 ++- tests/lanczos/Test_compressed_lanczos.cc | 4 +- .../Test_dwf_compressed_lanczos_reorg.cc | 4 +- ..._dwf_compressed_lanczos_reorg_synthetic.cc | 4 +- tests/lanczos/Test_dwf_lanczos.cc | 16 +-- tests/lanczos/Test_wilson_lanczos.cc | 4 +- tests/smearing/Test_WilsonFlow.cc | 9 +- tests/solver/Test_cf_cr_unprec.cc | 6 +- tests/solver/Test_coarse_even_odd.cc | 4 +- tests/solver/Test_contfrac_cg.cc | 16 +-- tests/solver/Test_dwf_cg_prec.cc | 7 +- tests/solver/Test_dwf_cg_schur.cc | 2 +- tests/solver/Test_dwf_cg_unprec.cc | 4 +- tests/solver/Test_dwf_cr_unprec.cc | 6 +- tests/solver/Test_dwf_fpgcr.cc | 6 +- tests/solver/Test_dwf_hdcr.cc | 14 +-- tests/solver/Test_dwf_hdcr_16_rb.cc | 14 +-- tests/solver/Test_dwf_hdcr_24_regression.cc | 18 ++-- tests/solver/Test_dwf_hdcr_2level.cc | 30 +++--- tests/solver/Test_dwf_hdcr_48_rb.cc | 14 +-- tests/solver/Test_dwf_hdcr_48_regression.cc | 18 ++-- tests/solver/Test_dwf_mrhs_cg.cc | 14 +-- tests/solver/Test_dwf_mrhs_cg_mpi.cc | 14 +-- tests/solver/Test_dwf_mrhs_cg_mpieo.cc | 14 +-- tests/solver/Test_dwf_multigrid.cc | 20 ++-- tests/solver/Test_dwf_qmr_unprec.cc | 8 +- tests/solver/Test_eofa_inv.cc | 4 +- tests/solver/Test_hw_multigrid.cc | 10 +- tests/solver/Test_hw_multigrid_mixed_48.cc | 98 +++++++++---------- tests/solver/Test_hw_multigrid_mixed_48_rb.cc | 96 +++++++++--------- tests/solver/Test_mobius_bcg.cc | 14 +-- tests/solver/Test_mobius_bcg_nosplit.cc | 10 +- tests/solver/Test_mobius_bcg_phys_nosplit.cc | 10 +- tests/solver/Test_mobius_bcg_prec_nosplit.cc | 10 +- tests/solver/Test_split_grid.cc | 14 +-- tests/solver/Test_staggered_block_cg_prec.cc | 18 ++-- .../solver/Test_staggered_block_cg_unprec.cc | 26 ++--- tests/solver/Test_staggered_cagmres_unprec.cc | 10 +- tests/solver/Test_staggered_cg_prec.cc | 8 +- tests/solver/Test_staggered_cg_schur.cc | 6 +- tests/solver/Test_staggered_cg_unprec.cc | 10 +- tests/solver/Test_staggered_fcagmres_prec.cc | 10 +- tests/solver/Test_staggered_fgmres_prec.cc | 10 +- tests/solver/Test_staggered_gmres_unprec.cc | 10 +- tests/solver/Test_staggered_mr_unprec.cc | 10 +- tests/solver/Test_staggered_multishift.cc | 8 +- tests/solver/Test_wilson_cagmres_unprec.cc | 4 +- tests/solver/Test_wilson_cg_prec.cc | 4 +- tests/solver/Test_wilson_cg_schur.cc | 2 +- tests/solver/Test_wilson_cg_unprec.cc | 4 +- tests/solver/Test_wilson_cr_unprec.cc | 4 +- tests/solver/Test_wilson_fcagmres_prec.cc | 4 +- tests/solver/Test_wilson_fgmres_prec.cc | 4 +- tests/solver/Test_wilson_gmres_unprec.cc | 4 +- tests/solver/Test_wilson_mg.cc | 6 +- tests/solver/Test_wilson_mr_unprec.cc | 4 +- tests/solver/Test_wilson_qmr_unprec.cc | 4 +- .../solver/Test_wilsonclover_bicgstab_prec.cc | 4 +- .../Test_wilsonclover_bicgstab_schur.cc | 2 +- .../Test_wilsonclover_bicgstab_unprec.cc | 4 +- .../Test_wilsonclover_cagmres_unprec.cc | 8 +- tests/solver/Test_wilsonclover_cg_prec.cc | 16 +-- tests/solver/Test_wilsonclover_cg_schur.cc | 8 +- tests/solver/Test_wilsonclover_cg_unprec.cc | 16 +-- .../solver/Test_wilsonclover_fcagmres_prec.cc | 8 +- tests/solver/Test_wilsonclover_fgmres_prec.cc | 8 +- .../solver/Test_wilsonclover_gmres_unprec.cc | 8 +- tests/solver/Test_wilsonclover_mg.cc | 6 +- tests/solver/Test_wilsonclover_mr_unprec.cc | 8 +- tests/solver/Test_zmobius_cg_prec.cc | 5 +- 97 files changed, 564 insertions(+), 544 deletions(-) diff --git a/Grid/algorithms/CoarsenedMatrix.h b/Grid/algorithms/CoarsenedMatrix.h index ba4abecd..7008008c 100644 --- a/Grid/algorithms/CoarsenedMatrix.h +++ b/Grid/algorithms/CoarsenedMatrix.h @@ -324,9 +324,9 @@ public: GridBase* _cbgrid; int hermitian; - CartesianStencil Stencil; - CartesianStencil StencilEven; - CartesianStencil StencilOdd; + CartesianStencil Stencil; + CartesianStencil StencilEven; + CartesianStencil StencilOdd; std::vector A; std::vector Aeven; @@ -631,7 +631,7 @@ public: assert(Aself != nullptr); } - void DselfInternal(CartesianStencil &st, CoarseMatrix &a, + void DselfInternal(CartesianStencil &st, CoarseMatrix &a, const CoarseVector &in, CoarseVector &out, int dag) { int point = geom.npoint-1; autoView( out_v, out, AcceleratorWrite); @@ -694,7 +694,7 @@ public: } } - void DhopInternal(CartesianStencil &st, std::vector &a, + void DhopInternal(CartesianStencil &st, std::vector &a, const CoarseVector &in, CoarseVector &out, int dag) { SimpleCompressor compressor; @@ -784,9 +784,9 @@ public: _cbgrid(new GridRedBlackCartesian(&CoarseGrid)), geom(CoarseGrid._ndimension), hermitian(hermitian_), - Stencil(&CoarseGrid,geom.npoint,Even,geom.directions,geom.displacements,0), - StencilEven(_cbgrid,geom.npoint,Even,geom.directions,geom.displacements,0), - StencilOdd(_cbgrid,geom.npoint,Odd,geom.directions,geom.displacements,0), + Stencil(&CoarseGrid,geom.npoint,Even,geom.directions,geom.displacements), + StencilEven(_cbgrid,geom.npoint,Even,geom.directions,geom.displacements), + StencilOdd(_cbgrid,geom.npoint,Odd,geom.directions,geom.displacements), A(geom.npoint,&CoarseGrid), Aeven(geom.npoint,_cbgrid), Aodd(geom.npoint,_cbgrid), @@ -804,9 +804,9 @@ public: _cbgrid(&CoarseRBGrid), geom(CoarseGrid._ndimension), hermitian(hermitian_), - Stencil(&CoarseGrid,geom.npoint,Even,geom.directions,geom.displacements,0), - StencilEven(&CoarseRBGrid,geom.npoint,Even,geom.directions,geom.displacements,0), - StencilOdd(&CoarseRBGrid,geom.npoint,Odd,geom.directions,geom.displacements,0), + Stencil(&CoarseGrid,geom.npoint,Even,geom.directions,geom.displacements), + StencilEven(&CoarseRBGrid,geom.npoint,Even,geom.directions,geom.displacements), + StencilOdd(&CoarseRBGrid,geom.npoint,Odd,geom.directions,geom.displacements), A(geom.npoint,&CoarseGrid), Aeven(geom.npoint,&CoarseRBGrid), Aodd(geom.npoint,&CoarseRBGrid), diff --git a/Grid/algorithms/LinearOperator.h b/Grid/algorithms/LinearOperator.h index b1cf4d97..090fed46 100644 --- a/Grid/algorithms/LinearOperator.h +++ b/Grid/algorithms/LinearOperator.h @@ -526,6 +526,7 @@ public: (*this)(Linop,in[k],out[k]); } }; + virtual ~OperatorFunction(){}; }; template class LinearFunction { diff --git a/Grid/qcd/action/ActionParams.h b/Grid/qcd/action/ActionParams.h index b332a2c3..122dfb9c 100644 --- a/Grid/qcd/action/ActionParams.h +++ b/Grid/qcd/action/ActionParams.h @@ -34,15 +34,6 @@ directory NAMESPACE_BEGIN(Grid); -// These can move into a params header and be given MacroMagic serialisation -struct DefaultImplParams { - Coordinate dirichlet; // Blocksize of dirichlet BCs - int partialDirichlet; - DefaultImplParams() { - dirichlet.resize(0); - partialDirichlet=0; - }; -}; struct GparityWilsonImplParams { Coordinate twists; diff --git a/Grid/stencil/Stencil.h b/Grid/stencil/Stencil.h index ff8a6433..da230e7e 100644 --- a/Grid/stencil/Stencil.h +++ b/Grid/stencil/Stencil.h @@ -52,6 +52,16 @@ NAMESPACE_BEGIN(Grid); +// These can move into a params header and be given MacroMagic serialisation +struct DefaultImplParams { + Coordinate dirichlet; // Blocksize of dirichlet BCs + int partialDirichlet; + DefaultImplParams() { + dirichlet.resize(0); + partialDirichlet=0; + }; +}; + /////////////////////////////////////////////////////////////////// // Gather for when there *is* need to SIMD split with compression /////////////////////////////////////////////////////////////////// diff --git a/Grid/tensors/Tensor_traits.h b/Grid/tensors/Tensor_traits.h index 99633cee..58fdc6ce 100644 --- a/Grid/tensors/Tensor_traits.h +++ b/Grid/tensors/Tensor_traits.h @@ -143,7 +143,7 @@ NAMESPACE_BEGIN(Grid); typedef ComplexD DoublePrecision2; }; -#ifdef GRID_CUDA +#if defined(GRID_CUDA) || defined(GRID_HIP) template<> struct GridTypeMapper > : public GridTypeMapper_Base { typedef std::complex scalar_type; typedef std::complex scalar_typeD; diff --git a/systems/Crusher/config-command b/systems/Crusher/config-command index ca1d6348..bd825ab3 100644 --- a/systems/Crusher/config-command +++ b/systems/Crusher/config-command @@ -1,4 +1,6 @@ +CLIME=`spack find --paths c-lime@2-3-9 | grep c-lime| cut -c 15-` ../../configure --enable-comms=mpi-auto \ +--with-lime=$CLIME \ --enable-unified=no \ --enable-shm=nvlink \ --enable-accelerator=hip \ @@ -7,7 +9,7 @@ --with-gmp=$OLCF_GMP_ROOT \ --with-fftw=$FFTW_DIR/.. \ --with-mpfr=/opt/cray/pe/gcc/mpfr/3.1.4/ \ ---disable-gparity \ +--disable-fermion-reps \ CXX=hipcc MPICXX=mpicxx \ CXXFLAGS="-fPIC -I{$ROCM_PATH}/include/ -std=c++14 -I${MPICH_DIR}/include -L/lib64 " \ LDFLAGS="-L/lib64 -L/opt/rocm-5.2.0/lib/ -L${MPICH_DIR}/lib -lmpi -L${CRAY_MPICH_ROOTDIR}/gtl/lib -lmpi_gtl_hsa -lamdhip64 " diff --git a/systems/Crusher/sourceme.sh b/systems/Crusher/sourceme.sh index 42e15fb1..ac248b93 100644 --- a/systems/Crusher/sourceme.sh +++ b/systems/Crusher/sourceme.sh @@ -1,3 +1,5 @@ +. /autofs/nccs-svm1_home1/paboyle/Crusher/Grid/spack/share/spack/setup-env.sh +spack load c-lime export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/sw/crusher/spack-envs/base/opt/cray-sles15-zen3/gcc-11.2.0/gperftools-2.9.1-72ubwtuc5wcz2meqltbfdb76epufgzo2/lib module load emacs #module load gperftools diff --git a/tests/debug/Test_cayley_cg.cc b/tests/debug/Test_cayley_cg.cc index 5418a8af..74492fd9 100644 --- a/tests/debug/Test_cayley_cg.cc +++ b/tests/debug/Test_cayley_cg.cc @@ -125,10 +125,10 @@ int main (int argc, char ** argv) std::cout<(Ddwf,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); - TestReconstruct5DFA(Ddwf,DdwfF,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + TestCGinversions(Ddwf,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + TestReconstruct5DFA(Ddwf,DdwfF,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); RealD b=1.5;// Scale factor b+c=2, b-c=1 RealD c=0.5; @@ -137,54 +137,54 @@ int main (int argc, char ** argv) std::cout<(Dmob,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); - TestReconstruct5DFA(Dmob,DmobF,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + TestCGinversions(Dmob,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + TestReconstruct5DFA(Dmob,DmobF,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); std::cout<(ZDmob,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); - TestReconstruct5D(ZDmob,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + ZMobiusFermionD ZDmob(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,gamma,b,c); + TestCGinversions(ZDmob,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + TestReconstruct5D(ZDmob,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); std::cout<(Dzolo,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); - TestReconstruct5D(Dzolo,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + MobiusZolotarevFermionD Dzolo(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,b,c,0.1,2.0); + TestCGinversions(Dzolo,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + TestReconstruct5D(Dzolo,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); std::cout<(Dsham,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); - TestReconstruct5DFA(Dsham,DshamF,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + TestCGinversions(Dsham,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + TestReconstruct5DFA(Dsham,DshamF,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); std::cout<(Dshamz,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); - TestReconstruct5D(Dshamz,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + ShamirZolotarevFermionD Dshamz(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,0.1,2.0); + TestCGinversions(Dshamz,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + TestReconstruct5D(Dshamz,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); std::cout<(Dov,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); - TestReconstruct5DFA(Dov,DovF,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + TestCGinversions(Dov,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + TestReconstruct5DFA(Dov,DovF,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); std::cout<(Dovz,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); - TestReconstruct5D(Dovz,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + OverlapWilsonCayleyZolotarevFermionD Dovz(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,0.1,2.0); + TestCGinversions(Dovz,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + TestReconstruct5D(Dovz,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); Grid_finalize(); } diff --git a/tests/debug/Test_cayley_coarsen_support.cc b/tests/debug/Test_cayley_coarsen_support.cc index b2f691d7..2190a9b0 100644 --- a/tests/debug/Test_cayley_coarsen_support.cc +++ b/tests/debug/Test_cayley_coarsen_support.cc @@ -95,8 +95,8 @@ int main (int argc, char ** argv) RealD mass=0.5; RealD M5=1.8; - DomainWallFermionR Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); - Gamma5R5HermitianLinearOperator HermIndefOp(Ddwf); + DomainWallFermionD Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); + Gamma5R5HermitianLinearOperator HermIndefOp(Ddwf); HermIndefOp.Op(src,ref); HermIndefOp.OpDiag(src,result); @@ -118,7 +118,7 @@ int main (int argc, char ** argv) std::cout< HermDefOp(Ddwf); + MdagMLinearOperator HermDefOp(Ddwf); typedef Aggregation Subspace; Subspace Aggregates(Coarse5d,FGrid,cb); diff --git a/tests/debug/Test_cayley_even_odd.cc b/tests/debug/Test_cayley_even_odd.cc index 5e800b26..b6eecc0f 100644 --- a/tests/debug/Test_cayley_even_odd.cc +++ b/tests/debug/Test_cayley_even_odd.cc @@ -76,41 +76,41 @@ int main (int argc, char ** argv) RealD mass=0.1; RealD M5 =1.8; std::cout<(Ddwf,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + DomainWallFermionD Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); + TestWhat(Ddwf,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); RealD b=1.5;// Scale factor b+c=2, b-c=1 RealD c=0.5; std::vector gamma(Ls,ComplexD(1.0,0.1)); std::cout<(Dmob,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + MobiusFermionD Dmob(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,b,c); + TestWhat(Dmob,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); std::cout<(ZDmob,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + ZMobiusFermionD ZDmob(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,gamma,b,c); + TestWhat(ZDmob,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); std::cout<(Dzolo,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + MobiusZolotarevFermionD Dzolo(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,b,c,0.1,2.0); + TestWhat(Dzolo,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); std::cout<(Dsham,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + ScaledShamirFermionD Dsham(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,2.0); + TestWhat(Dsham,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); std::cout<(Dshamz,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + ShamirZolotarevFermionD Dshamz(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,0.1,2.0); + TestWhat(Dshamz,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); std::cout<(Dov,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + OverlapWilsonCayleyTanhFermionD Dov(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,1.0); + TestWhat(Dov,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); std::cout<(Dovz,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + OverlapWilsonCayleyZolotarevFermionD Dovz(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,0.1,2.0); + TestWhat(Dovz,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); Grid_finalize(); } diff --git a/tests/debug/Test_cayley_ldop_cr.cc b/tests/debug/Test_cayley_ldop_cr.cc index 416017e5..997b8df5 100644 --- a/tests/debug/Test_cayley_ldop_cr.cc +++ b/tests/debug/Test_cayley_ldop_cr.cc @@ -83,8 +83,8 @@ int main (int argc, char ** argv) std::cout< HermIndefOp(Ddwf); + DomainWallFermionD Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); + Gamma5R5HermitianLinearOperator HermIndefOp(Ddwf); const int nbasis = 8; @@ -95,7 +95,7 @@ int main (int argc, char ** argv) std::cout< HermDefOp(Ddwf); + MdagMLinearOperator HermDefOp(Ddwf); Subspace Aggregates(Coarse5d,FGrid,cb); Aggregates.CreateSubspace(RNG5,HermDefOp); diff --git a/tests/debug/Test_cayley_mres.cc b/tests/debug/Test_cayley_mres.cc index bfbc3cf7..26d3dc60 100644 --- a/tests/debug/Test_cayley_mres.cc +++ b/tests/debug/Test_cayley_mres.cc @@ -128,8 +128,8 @@ int main (int argc, char ** argv) std::cout<(Ddwf,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + DomainWallFermionD Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); + TestConserved(Ddwf,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); RealD b=1.5;// Scale factor b+c=2, b-c=1 RealD c=0.5; @@ -138,23 +138,23 @@ int main (int argc, char ** argv) std::cout<(Dmob,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + MobiusFermionD Dmob(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,b,c); + TestConserved(Dmob,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); std::cout<(Dsham,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + ScaledShamirFermionD Dsham(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,2.0); + TestConserved(Dsham,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); std::cout<(ZDmob,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5,&ZDmobrev); + ZMobiusFermionD ZDmob(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,omegas,b,c); + ZMobiusFermionD ZDmobrev(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,omegasrev,b,c); + TestConserved(ZDmob,Umu,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5,&ZDmobrev); Grid_finalize(); } @@ -290,7 +290,7 @@ void TestConserved(Action & Ddwf, const RealD DmuPAmu{real(TensorRemove(sumPA[t]-sumPA[(t-1+Nt)%Nt]))}; std::cout< sumPAref; @@ -565,8 +565,8 @@ void TestConserved1(Action & Ddwf, Action & Ddwfrev, std::cout <<" PAc action "<oSites(),{ diff --git a/tests/debug/Test_heatbath_dwf_eofa.cc b/tests/debug/Test_heatbath_dwf_eofa.cc index e1c18021..5920054d 100644 --- a/tests/debug/Test_heatbath_dwf_eofa.cc +++ b/tests/debug/Test_heatbath_dwf_eofa.cc @@ -77,8 +77,8 @@ int main(int argc, char** argv) LatticeGaugeField Umu(UGrid); SU::HotConfiguration(RNG4, Umu); - DomainWallEOFAFermionR Lop(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, mf, mpv, 0.0, -1, M5); - DomainWallEOFAFermionR Rop(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mpv, mf, mpv, -1.0, 1, M5); + DomainWallEOFAFermionD Lop(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, mf, mpv, 0.0, -1, M5); + DomainWallEOFAFermionD Rop(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mpv, mf, mpv, -1.0, 1, M5); // Construct the action and test the heatbath (zero initial guess) { diff --git a/tests/debug/Test_heatbath_dwf_eofa_gparity.cc b/tests/debug/Test_heatbath_dwf_eofa_gparity.cc index 7eabfc65..982f35db 100644 --- a/tests/debug/Test_heatbath_dwf_eofa_gparity.cc +++ b/tests/debug/Test_heatbath_dwf_eofa_gparity.cc @@ -41,7 +41,7 @@ using namespace Grid; ; typedef GparityWilsonImplR FermionImplPolicy; -typedef GparityDomainWallEOFAFermionR FermionAction; +typedef GparityDomainWallEOFAFermionD FermionAction; typedef typename FermionAction::FermionField FermionField; // Parameters for test @@ -82,7 +82,7 @@ int main(int argc, char** argv) LatticeGaugeField Umu(UGrid); SU::HotConfiguration(RNG4, Umu); - // GparityDomainWallFermionR::ImplParams params; + // GparityDomainWallFermionD::ImplParams params; FermionAction::ImplParams params; FermionAction Lop(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, mf, mpv, 0.0, -1, M5, params); FermionAction Rop(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mpv, mf, mpv, -1.0, 1, M5, params); diff --git a/tests/debug/Test_heatbath_mobius_eofa.cc b/tests/debug/Test_heatbath_mobius_eofa.cc index 48806642..3824daab 100644 --- a/tests/debug/Test_heatbath_mobius_eofa.cc +++ b/tests/debug/Test_heatbath_mobius_eofa.cc @@ -79,8 +79,8 @@ int main(int argc, char** argv) LatticeGaugeField Umu(UGrid); SU::HotConfiguration(RNG4, Umu); - MobiusEOFAFermionR Lop(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, mf, mpv, 0.0, -1, M5, b, c); - MobiusEOFAFermionR Rop(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mpv, mf, mpv, -1.0, 1, M5, b, c); + MobiusEOFAFermionD Lop(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, mf, mpv, 0.0, -1, M5, b, c); + MobiusEOFAFermionD Rop(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mpv, mf, mpv, -1.0, 1, M5, b, c); // Construct the action and test the heatbath (zero initial guess) { diff --git a/tests/debug/Test_heatbath_mobius_eofa_gparity.cc b/tests/debug/Test_heatbath_mobius_eofa_gparity.cc index 52447e5e..fd3d96f8 100644 --- a/tests/debug/Test_heatbath_mobius_eofa_gparity.cc +++ b/tests/debug/Test_heatbath_mobius_eofa_gparity.cc @@ -41,7 +41,7 @@ using namespace Grid; ; typedef GparityWilsonImplR FermionImplPolicy; -typedef GparityMobiusEOFAFermionR FermionAction; +typedef GparityMobiusEOFAFermionD FermionAction; typedef typename FermionAction::FermionField FermionField; // Parameters for test diff --git a/tests/debug/Test_reweight_dwf_eofa.cc b/tests/debug/Test_reweight_dwf_eofa.cc index a150b18f..6a5452c7 100644 --- a/tests/debug/Test_reweight_dwf_eofa.cc +++ b/tests/debug/Test_reweight_dwf_eofa.cc @@ -105,10 +105,10 @@ int main(int argc, char **argv) SU::HotConfiguration(RNG4, Umu); // Initialize RHMC fermion operators - DomainWallFermionR Ddwf_f(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, M5); - DomainWallFermionR Ddwf_b(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mb, M5); - SchurDiagMooeeOperator MdagM(Ddwf_f); - SchurDiagMooeeOperator VdagV(Ddwf_b); + DomainWallFermionD Ddwf_f(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, M5); + DomainWallFermionD Ddwf_b(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mb, M5); + SchurDiagMooeeOperator MdagM(Ddwf_f); + SchurDiagMooeeOperator VdagV(Ddwf_b); // Degree 12 rational approximations to x^(1/4) and x^(-1/4) double lo = 0.0001; @@ -153,10 +153,10 @@ int main(int argc, char **argv) RealD shift_L = 0.0; RealD shift_R = -1.0; int pm = 1; - DomainWallEOFAFermionR Deofa_L(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, mf, mb, shift_L, pm, M5); - DomainWallEOFAFermionR Deofa_R(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mb, mf, mb, shift_R, pm, M5); - MdagMLinearOperator LdagL(Deofa_L); - MdagMLinearOperator RdagR(Deofa_R); + DomainWallEOFAFermionD Deofa_L(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, mf, mb, shift_L, pm, M5); + DomainWallEOFAFermionD Deofa_R(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mb, mf, mb, shift_R, pm, M5); + MdagMLinearOperator LdagL(Deofa_L); + MdagMLinearOperator RdagR(Deofa_R); // Stochastically estimate reweighting factor via EOFA RealD k = Deofa_L.k; diff --git a/tests/debug/Test_reweight_dwf_eofa_gparity.cc b/tests/debug/Test_reweight_dwf_eofa_gparity.cc index df2d95a0..70ae94aa 100644 --- a/tests/debug/Test_reweight_dwf_eofa_gparity.cc +++ b/tests/debug/Test_reweight_dwf_eofa_gparity.cc @@ -33,7 +33,7 @@ using namespace std; using namespace Grid; ; -typedef typename GparityDomainWallFermionR::FermionField FermionField; +typedef typename GparityDomainWallFermionD::FermionField FermionField; // parameters for test const std::vector grid_dim = { 8, 8, 8, 8 }; @@ -107,11 +107,11 @@ int main(int argc, char **argv) SU::HotConfiguration(RNG4, Umu); // Initialize RHMC fermion operators - GparityDomainWallFermionR::ImplParams params; - GparityDomainWallFermionR Ddwf_f(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, M5, params); - GparityDomainWallFermionR Ddwf_b(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mb, M5, params); - SchurDiagMooeeOperator MdagM(Ddwf_f); - SchurDiagMooeeOperator VdagV(Ddwf_b); + GparityDomainWallFermionD::ImplParams params; + GparityDomainWallFermionD Ddwf_f(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, M5, params); + GparityDomainWallFermionD Ddwf_b(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mb, M5, params); + SchurDiagMooeeOperator MdagM(Ddwf_f); + SchurDiagMooeeOperator VdagV(Ddwf_b); // Degree 12 rational approximations to x^(1/4) and x^(-1/4) double lo = 0.0001; @@ -156,10 +156,10 @@ int main(int argc, char **argv) RealD shift_L = 0.0; RealD shift_R = -1.0; int pm = 1; - GparityDomainWallEOFAFermionR Deofa_L(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, mf, mb, shift_L, pm, M5, params); - GparityDomainWallEOFAFermionR Deofa_R(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mb, mf, mb, shift_R, pm, M5, params); - MdagMLinearOperator LdagL(Deofa_L); - MdagMLinearOperator RdagR(Deofa_R); + GparityDomainWallEOFAFermionD Deofa_L(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, mf, mb, shift_L, pm, M5, params); + GparityDomainWallEOFAFermionD Deofa_R(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mb, mf, mb, shift_R, pm, M5, params); + MdagMLinearOperator LdagL(Deofa_L); + MdagMLinearOperator RdagR(Deofa_R); // Stochastically estimate reweighting factor via EOFA RealD k = Deofa_L.k; diff --git a/tests/debug/Test_reweight_mobius_eofa.cc b/tests/debug/Test_reweight_mobius_eofa.cc index 88ecab7d..744dd302 100644 --- a/tests/debug/Test_reweight_mobius_eofa.cc +++ b/tests/debug/Test_reweight_mobius_eofa.cc @@ -107,10 +107,10 @@ int main(int argc, char **argv) SU::HotConfiguration(RNG4, Umu); // Initialize RHMC fermion operators - MobiusFermionR Ddwf_f(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, M5, b, c); - MobiusFermionR Ddwf_b(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mb, M5, b, c); - SchurDiagMooeeOperator MdagM(Ddwf_f); - SchurDiagMooeeOperator VdagV(Ddwf_b); + MobiusFermionD Ddwf_f(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, M5, b, c); + MobiusFermionD Ddwf_b(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mb, M5, b, c); + SchurDiagMooeeOperator MdagM(Ddwf_f); + SchurDiagMooeeOperator VdagV(Ddwf_b); // Degree 12 rational approximations to x^(1/4) and x^(-1/4) double lo = 0.0001; @@ -155,10 +155,10 @@ int main(int argc, char **argv) RealD shift_L = 0.0; RealD shift_R = -1.0; int pm = 1; - MobiusEOFAFermionR Deofa_L(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, mf, mb, shift_L, pm, M5, b, c); - MobiusEOFAFermionR Deofa_R(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mb, mf, mb, shift_R, pm, M5, b, c); - MdagMLinearOperator LdagL(Deofa_L); - MdagMLinearOperator RdagR(Deofa_R); + MobiusEOFAFermionD Deofa_L(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, mf, mb, shift_L, pm, M5, b, c); + MobiusEOFAFermionD Deofa_R(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mb, mf, mb, shift_R, pm, M5, b, c); + MdagMLinearOperator LdagL(Deofa_L); + MdagMLinearOperator RdagR(Deofa_R); // Stochastically estimate reweighting factor via EOFA RealD k = Deofa_L.k; diff --git a/tests/debug/Test_reweight_mobius_eofa_gparity.cc b/tests/debug/Test_reweight_mobius_eofa_gparity.cc index 31708265..e2a4fb47 100644 --- a/tests/debug/Test_reweight_mobius_eofa_gparity.cc +++ b/tests/debug/Test_reweight_mobius_eofa_gparity.cc @@ -33,7 +33,7 @@ using namespace std; using namespace Grid; ; -typedef typename GparityDomainWallFermionR::FermionField FermionField; +typedef typename GparityDomainWallFermionD::FermionField FermionField; // parameters for test const std::vector grid_dim = { 8, 8, 8, 8 }; @@ -109,11 +109,11 @@ int main(int argc, char **argv) SU::HotConfiguration(RNG4, Umu); // Initialize RHMC fermion operators - GparityDomainWallFermionR::ImplParams params; - GparityMobiusFermionR Ddwf_f(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, M5, b, c, params); - GparityMobiusFermionR Ddwf_b(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mb, M5, b, c, params); - SchurDiagMooeeOperator MdagM(Ddwf_f); - SchurDiagMooeeOperator VdagV(Ddwf_b); + GparityDomainWallFermionD::ImplParams params; + GparityMobiusFermionD Ddwf_f(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, M5, b, c, params); + GparityMobiusFermionD Ddwf_b(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mb, M5, b, c, params); + SchurDiagMooeeOperator MdagM(Ddwf_f); + SchurDiagMooeeOperator VdagV(Ddwf_b); // Degree 12 rational approximations to x^(1/4) and x^(-1/4) double lo = 0.0001; @@ -158,10 +158,10 @@ int main(int argc, char **argv) RealD shift_L = 0.0; RealD shift_R = -1.0; int pm = 1; - GparityMobiusEOFAFermionR Deofa_L(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, mf, mb, shift_L, pm, M5, b, c, params); - GparityMobiusEOFAFermionR Deofa_R(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mb, mf, mb, shift_R, pm, M5, b, c, params); - MdagMLinearOperator LdagL(Deofa_L); - MdagMLinearOperator RdagR(Deofa_R); + GparityMobiusEOFAFermionD Deofa_L(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, mf, mb, shift_L, pm, M5, b, c, params); + GparityMobiusEOFAFermionD Deofa_R(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mb, mf, mb, shift_R, pm, M5, b, c, params); + MdagMLinearOperator LdagL(Deofa_L); + MdagMLinearOperator RdagR(Deofa_R); // Stochastically estimate reweighting factor via EOFA RealD k = Deofa_L.k; diff --git a/tests/hmc/Test_hmc_WC2ASFG_Production.cc b/tests/hmc/Test_hmc_WC2ASFG_Production.cc index 55c84c0a..90f43ede 100644 --- a/tests/hmc/Test_hmc_WC2ASFG_Production.cc +++ b/tests/hmc/Test_hmc_WC2ASFG_Production.cc @@ -28,7 +28,7 @@ directory /* END LEGAL */ #include - +#ifdef ENABLE_FERMION_REPS namespace Grid{ struct FermionParameters: Serializable { GRID_SERIALIZABLE_CLASS_MEMBERS(FermionParameters, @@ -210,4 +210,6 @@ int main(int argc, char **argv) Grid_finalize(); } // main - +#else +int main(int argc, char **argv){} +#endif diff --git a/tests/hmc/Test_hmc_WC2SFG_Production.cc b/tests/hmc/Test_hmc_WC2SFG_Production.cc index 80f7baaf..16ca05a0 100644 --- a/tests/hmc/Test_hmc_WC2SFG_Production.cc +++ b/tests/hmc/Test_hmc_WC2SFG_Production.cc @@ -29,6 +29,7 @@ directory #include +#ifdef ENABLE_FERMION_REPS namespace Grid{ struct FermionParameters: Serializable { GRID_SERIALIZABLE_CLASS_MEMBERS(FermionParameters, @@ -211,3 +212,6 @@ int main(int argc, char **argv) Grid_finalize(); } // main +#else +int main(int argc, char **argv){} +#endif diff --git a/tests/hmc/Test_hmc_WCMixedRepFG_Production.cc b/tests/hmc/Test_hmc_WCMixedRepFG_Production.cc index ac017860..3be63a15 100644 --- a/tests/hmc/Test_hmc_WCMixedRepFG_Production.cc +++ b/tests/hmc/Test_hmc_WCMixedRepFG_Production.cc @@ -32,6 +32,7 @@ directory #include "Grid/Grid.h" +#ifdef ENABLE_FERMION_REPS namespace Grid{ struct FermionParameters: Serializable { GRID_SERIALIZABLE_CLASS_MEMBERS(FermionParameters, @@ -222,3 +223,6 @@ int main(int argc, char **argv) { Grid_finalize(); } // main +#else +int main(int argc, char **argv){} +#endif diff --git a/tests/hmc/Test_hmc_WCadjFG_Production.cc b/tests/hmc/Test_hmc_WCadjFG_Production.cc index a9673e6c..f0e2742d 100644 --- a/tests/hmc/Test_hmc_WCadjFG_Production.cc +++ b/tests/hmc/Test_hmc_WCadjFG_Production.cc @@ -29,6 +29,7 @@ directory #include +#ifdef ENABLE_FERMION_REPS namespace Grid{ struct FermionParameters: Serializable { GRID_SERIALIZABLE_CLASS_MEMBERS(FermionParameters, @@ -211,3 +212,6 @@ int main(int argc, char **argv) } // main +#else +int main(int argc, char **argv){} +#endif diff --git a/tests/hmc/Test_hmc_WilsonAdjointFermionGauge.cc b/tests/hmc/Test_hmc_WilsonAdjointFermionGauge.cc index 774c9037..3d601d25 100644 --- a/tests/hmc/Test_hmc_WilsonAdjointFermionGauge.cc +++ b/tests/hmc/Test_hmc_WilsonAdjointFermionGauge.cc @@ -31,9 +31,10 @@ directory /* END LEGAL */ #include "Grid/Grid.h" +#ifdef ENABLE_FERMION_REPS + int main(int argc, char **argv) { using namespace Grid; - ; // Here change the allowed (higher) representations typedef Representations< FundamentalRepresentation, AdjointRepresentation > TheRepresentations; @@ -127,3 +128,6 @@ int main(int argc, char **argv) { } // main +#else +int main(int argc, char **argv){} +#endif diff --git a/tests/hmc/Test_hmc_WilsonMixedRepresentationsFermionGauge.cc b/tests/hmc/Test_hmc_WilsonMixedRepresentationsFermionGauge.cc index 60d760a6..66a325f2 100644 --- a/tests/hmc/Test_hmc_WilsonMixedRepresentationsFermionGauge.cc +++ b/tests/hmc/Test_hmc_WilsonMixedRepresentationsFermionGauge.cc @@ -33,6 +33,7 @@ directory +#ifdef ENABLE_FERMION_REPS int main(int argc, char **argv) { #ifndef GRID_CUDA @@ -138,3 +139,6 @@ int main(int argc, char **argv) { } // main +#else +int main(int argc, char **argv){} +#endif diff --git a/tests/hmc/Test_hmc_WilsonTwoIndexSymmetricFermionGauge.cc b/tests/hmc/Test_hmc_WilsonTwoIndexSymmetricFermionGauge.cc index bdcd27c5..4769e396 100644 --- a/tests/hmc/Test_hmc_WilsonTwoIndexSymmetricFermionGauge.cc +++ b/tests/hmc/Test_hmc_WilsonTwoIndexSymmetricFermionGauge.cc @@ -29,6 +29,7 @@ directory /* END LEGAL */ #include "Grid/Grid.h" +#ifdef ENABLE_FERMION_REPS int main(int argc, char **argv) { using namespace Grid; ; @@ -127,3 +128,6 @@ int main(int argc, char **argv) { } // main +#else +int main(int argc, char **argv){} +#endif diff --git a/tests/lanczos/Test_WCMultiRep_lanczos.cc b/tests/lanczos/Test_WCMultiRep_lanczos.cc index 58759c96..0bfc75be 100644 --- a/tests/lanczos/Test_WCMultiRep_lanczos.cc +++ b/tests/lanczos/Test_WCMultiRep_lanczos.cc @@ -28,19 +28,21 @@ directory /* END LEGAL */ #include +#ifdef ENABLE_FERMION_REPS + using namespace std; using namespace Grid; -//typedef WilsonCloverFermionR FermionOp; -//typedef typename WilsonFermionR::FermionField FermionField; +//typedef WilsonCloverFermionD FermionOp; +//typedef typename WilsonFermionD::FermionField FermionField; typedef WilsonImplR FundImplPolicy; -typedef WilsonCloverFermionR FundFermionAction; +typedef WilsonCloverFermionD FundFermionAction; typedef typename FundFermionAction::FermionField FundFermionField; typedef WilsonTwoIndexAntiSymmetricImplR ASymmImplPolicy; -typedef WilsonCloverTwoIndexAntiSymmetricFermionR ASymmFermionAction; +typedef WilsonCloverTwoIndexAntiSymmetricFermionD ASymmFermionAction; typedef typename ASymmFermionAction::FermionField ASymmFermionField; @@ -175,3 +177,6 @@ NerscHmcCheckpointer Checkpoint(CPparams); Grid_finalize(); } +#else +int main(int argc,char **argv){ return 0;}; +#endif diff --git a/tests/lanczos/Test_compressed_lanczos.cc b/tests/lanczos/Test_compressed_lanczos.cc index d7d0d52d..28df3f99 100644 --- a/tests/lanczos/Test_compressed_lanczos.cc +++ b/tests/lanczos/Test_compressed_lanczos.cc @@ -188,8 +188,8 @@ int main (int argc, char ** argv) { std::cout << GridLogMessage << "Lattice dimensions: " << GridDefaultLatt() << " Ls: " << Ls << std::endl; // ZMobius EO Operator - ZMobiusFermionR Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mass, M5, Params.omega,1.,0.); - SchurDiagTwoOperator HermOp(Ddwf); + ZMobiusFermionD Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mass, M5, Params.omega,1.,0.); + SchurDiagTwoOperator HermOp(Ddwf); // Eigenvector storage LanczosParams fine =Params.FineParams; diff --git a/tests/lanczos/Test_dwf_compressed_lanczos_reorg.cc b/tests/lanczos/Test_dwf_compressed_lanczos_reorg.cc index 669a7b6d..7a84a465 100644 --- a/tests/lanczos/Test_dwf_compressed_lanczos_reorg.cc +++ b/tests/lanczos/Test_dwf_compressed_lanczos_reorg.cc @@ -188,8 +188,8 @@ int main (int argc, char ** argv) { std::cout << GridLogMessage << "Lattice dimensions: " << GridDefaultLatt() << " Ls: " << Ls << std::endl; // ZMobius EO Operator - ZMobiusFermionR Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mass, M5, Params.omega,1.,0.); - SchurDiagTwoOperator HermOp(Ddwf); + ZMobiusFermionD Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mass, M5, Params.omega,1.,0.); + SchurDiagTwoOperator HermOp(Ddwf); // Eigenvector storage LanczosParams fine =Params.FineParams; diff --git a/tests/lanczos/Test_dwf_compressed_lanczos_reorg_synthetic.cc b/tests/lanczos/Test_dwf_compressed_lanczos_reorg_synthetic.cc index f3cb567c..e82a9741 100644 --- a/tests/lanczos/Test_dwf_compressed_lanczos_reorg_synthetic.cc +++ b/tests/lanczos/Test_dwf_compressed_lanczos_reorg_synthetic.cc @@ -301,8 +301,8 @@ int main (int argc, char ** argv) { std::cout << GridLogMessage << "Lattice dimensions: " << GridDefaultLatt() << " Ls: " << Ls << std::endl; // ZMobius EO Operator - ZMobiusFermionR Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mass, M5, Params.omega,1.,0.); - SchurDiagTwoOperator HermOp(Ddwf); + ZMobiusFermionD Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mass, M5, Params.omega,1.,0.); + SchurDiagTwoOperator HermOp(Ddwf); // Eigenvector storage LanczosParams fine =Params.FineParams; diff --git a/tests/lanczos/Test_dwf_lanczos.cc b/tests/lanczos/Test_dwf_lanczos.cc index 1fe29bb2..1723e756 100644 --- a/tests/lanczos/Test_dwf_lanczos.cc +++ b/tests/lanczos/Test_dwf_lanczos.cc @@ -35,8 +35,8 @@ template struct Setup{}; template<> -struct Setup{ - static GparityMobiusFermionR* getAction(LatticeGaugeField &Umu, +struct Setup{ + static GparityMobiusFermionD* getAction(LatticeGaugeField &Umu, GridCartesian* FGrid, GridRedBlackCartesian* FrbGrid, GridCartesian* UGrid, GridRedBlackCartesian* UrbGrid){ RealD mass=0.01; RealD M5=1.8; @@ -44,17 +44,17 @@ struct Setup{ GparityMobiusFermionD ::ImplParams params; std::vector twists({1,1,1,0}); params.twists = twists; - return new GparityMobiusFermionR(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,mob_b,mob_b-1.,params); + return new GparityMobiusFermionD(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,mob_b,mob_b-1.,params); } }; template<> -struct Setup{ - static DomainWallFermionR* getAction(LatticeGaugeField &Umu, +struct Setup{ + static DomainWallFermionD* getAction(LatticeGaugeField &Umu, GridCartesian* FGrid, GridRedBlackCartesian* FrbGrid, GridCartesian* UGrid, GridRedBlackCartesian* UrbGrid){ RealD mass=0.01; RealD M5=1.8; - return new DomainWallFermionR(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); + return new DomainWallFermionD(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); } }; @@ -127,9 +127,9 @@ int main (int argc, char ** argv) } if(action == "GparityMobius"){ - run(); + run(); }else if(action == "DWF"){ - run(); + run(); }else{ std::cout << "Unknown action" << std::endl; exit(1); diff --git a/tests/lanczos/Test_wilson_lanczos.cc b/tests/lanczos/Test_wilson_lanczos.cc index af21fb1d..4814e8c6 100644 --- a/tests/lanczos/Test_wilson_lanczos.cc +++ b/tests/lanczos/Test_wilson_lanczos.cc @@ -32,8 +32,8 @@ using namespace std; using namespace Grid; ; -typedef WilsonFermionR FermionOp; -typedef typename WilsonFermionR::FermionField FermionField; +typedef WilsonFermionD FermionOp; +typedef typename WilsonFermionD::FermionField FermionField; RealD AllZero(RealD x) { return 0.; } diff --git a/tests/smearing/Test_WilsonFlow.cc b/tests/smearing/Test_WilsonFlow.cc index f339959a..e0726f87 100644 --- a/tests/smearing/Test_WilsonFlow.cc +++ b/tests/smearing/Test_WilsonFlow.cc @@ -96,13 +96,16 @@ int main(int argc, char **argv) { std::cout << GridLogMessage << "Initial plaquette: " << WilsonLoops::avgPlaquette(Umu) << std::endl; - WilsonFlow WF(WFPar.steps, WFPar.step_size, WFPar.meas_interval); + int t=WFPar.maxTau; + WilsonFlowAdaptive WF(WFPar.step_size, WFPar.maxTau, + 1.0e-4, + WFPar.meas_interval); - WF.smear_adaptive(Uflow, Umu, WFPar.maxTau); + WF.smear(Uflow, Umu); RealD WFlow_plaq = WilsonLoops::avgPlaquette(Uflow); RealD WFlow_TC = WilsonLoops::TopologicalCharge(Uflow); - RealD WFlow_T0 = WF.energyDensityPlaquette(Uflow); + RealD WFlow_T0 = WF.energyDensityPlaquette(t,Uflow); std::cout << GridLogMessage << "Plaquette "<< conf << " " << WFlow_plaq << std::endl; std::cout << GridLogMessage << "T0 "<< conf << " " << WFlow_T0 << std::endl; std::cout << GridLogMessage << "TopologicalCharge "<< conf << " " << WFlow_TC << std::endl; diff --git a/tests/solver/Test_cf_cr_unprec.cc b/tests/solver/Test_cf_cr_unprec.cc index aa750175..3addcb62 100644 --- a/tests/solver/Test_cf_cr_unprec.cc +++ b/tests/solver/Test_cf_cr_unprec.cc @@ -71,14 +71,14 @@ int main (int argc, char ** argv) RealD mass=0.1; RealD M5=1.8; - OverlapWilsonContFracTanhFermionR Dcf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,1.0); + OverlapWilsonContFracTanhFermionD Dcf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,1.0); ConjugateResidual MCR(1.0e-8,10000); - MdagMLinearOperator HermPosDefOp(Dcf); + MdagMLinearOperator HermPosDefOp(Dcf); MCR(HermPosDefOp,src,result); - HermitianLinearOperator HermIndefOp(Dcf); + HermitianLinearOperator HermIndefOp(Dcf); MCR(HermIndefOp,src,result); Grid_finalize(); diff --git a/tests/solver/Test_coarse_even_odd.cc b/tests/solver/Test_coarse_even_odd.cc index c7127121..9d2f8c22 100644 --- a/tests/solver/Test_coarse_even_odd.cc +++ b/tests/solver/Test_coarse_even_odd.cc @@ -108,8 +108,8 @@ int main(int argc, char** argv) { RealD mass = -0.30; RealD csw = 1.9192; - WilsonCloverFermionR Dwc(Umu, *Grid_f, *RBGrid_f, mass, csw, csw); - MdagMLinearOperator MdagMOp_Dwc(Dwc); + WilsonCloverFermionD Dwc(Umu, *Grid_f, *RBGrid_f, mass, csw, csw); + MdagMLinearOperator MdagMOp_Dwc(Dwc); ///////////////////////////////////////////////////////////////////////////// // Type definitions // diff --git a/tests/solver/Test_contfrac_cg.cc b/tests/solver/Test_contfrac_cg.cc index afabae4c..52599d07 100644 --- a/tests/solver/Test_contfrac_cg.cc +++ b/tests/solver/Test_contfrac_cg.cc @@ -102,21 +102,21 @@ int main (int argc, char ** argv) std::cout<(Dcf,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + OverlapWilsonContFracTanhFermionD Dcf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,1.0); + TestCGinversions(Dcf,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); std::cout<(Dcfz,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + OverlapWilsonContFracZolotarevFermionD Dcfz(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,0.1,6.0); + TestCGinversions(Dcfz,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); std::cout<(Dpf,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + OverlapWilsonPartialFractionTanhFermionD Dpf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,1.0); + TestCGinversions(Dpf,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); std::cout<(Dpfz,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); + OverlapWilsonPartialFractionZolotarevFermionD Dpfz(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5,0.1,6.0); + TestCGinversions(Dpfz,FGrid,FrbGrid,UGrid,UrbGrid,mass,M5,&RNG4,&RNG5); Grid_finalize(); diff --git a/tests/solver/Test_dwf_cg_prec.cc b/tests/solver/Test_dwf_cg_prec.cc index debb736a..f4e346bf 100644 --- a/tests/solver/Test_dwf_cg_prec.cc +++ b/tests/solver/Test_dwf_cg_prec.cc @@ -79,7 +79,7 @@ int main(int argc, char** argv) { RealD mass = 0.01; RealD M5 = 1.8; - DomainWallFermionR Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mass, M5); + DomainWallFermionD Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mass, M5); LatticeFermion src_o(FrbGrid); LatticeFermion result_o(FrbGrid); @@ -88,7 +88,7 @@ int main(int argc, char** argv) { GridStopWatch CGTimer; - SchurDiagMooeeOperator HermOpEO(Ddwf); + SchurDiagMooeeOperator HermOpEO(Ddwf); ConjugateGradient CG(1.0e-5, 10000, 0);// switch off the assert CGTimer.Start(); @@ -98,8 +98,5 @@ int main(int argc, char** argv) { std::cout << GridLogMessage << "Total CG time : " << CGTimer.Elapsed() << std::endl; - std::cout << GridLogMessage << "######## Dhop calls summary" << std::endl; - Ddwf.Report(); - Grid_finalize(); } diff --git a/tests/solver/Test_dwf_cg_schur.cc b/tests/solver/Test_dwf_cg_schur.cc index 6541e73d..bcc0cc40 100644 --- a/tests/solver/Test_dwf_cg_schur.cc +++ b/tests/solver/Test_dwf_cg_schur.cc @@ -70,7 +70,7 @@ int main (int argc, char ** argv) RealD mass=0.1; RealD M5=1.8; - DomainWallFermionR Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); + DomainWallFermionD Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); ConjugateGradient CG(1.0e-8,10000); SchurRedBlackDiagMooeeSolve SchurSolver(CG); diff --git a/tests/solver/Test_dwf_cg_unprec.cc b/tests/solver/Test_dwf_cg_unprec.cc index c867ccf3..58614c49 100644 --- a/tests/solver/Test_dwf_cg_unprec.cc +++ b/tests/solver/Test_dwf_cg_unprec.cc @@ -70,9 +70,9 @@ int main (int argc, char ** argv) RealD mass=0.1; RealD M5=1.8; - DomainWallFermionR Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); + DomainWallFermionD Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); - MdagMLinearOperator HermOp(Ddwf); + MdagMLinearOperator HermOp(Ddwf); ConjugateGradient CG(1.0e-6,10000); CG(HermOp,src,result); diff --git a/tests/solver/Test_dwf_cr_unprec.cc b/tests/solver/Test_dwf_cr_unprec.cc index 8c8583ba..4d67231d 100644 --- a/tests/solver/Test_dwf_cr_unprec.cc +++ b/tests/solver/Test_dwf_cr_unprec.cc @@ -77,12 +77,12 @@ int main (int argc, char ** argv) RealD mass=0.5; RealD M5=1.8; - DomainWallFermionR Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); + DomainWallFermionD Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); - MdagMLinearOperator HermOp(Ddwf); + MdagMLinearOperator HermOp(Ddwf); MCR(HermOp,src,result); - Gamma5R5HermitianLinearOperator g5HermOp(Ddwf); + Gamma5R5HermitianLinearOperator g5HermOp(Ddwf); MCR(g5HermOp,src,result); diff --git a/tests/solver/Test_dwf_fpgcr.cc b/tests/solver/Test_dwf_fpgcr.cc index 42cc8de1..3d779474 100644 --- a/tests/solver/Test_dwf_fpgcr.cc +++ b/tests/solver/Test_dwf_fpgcr.cc @@ -77,12 +77,12 @@ int main (int argc, char ** argv) RealD mass=0.5; RealD M5=1.8; - DomainWallFermionR Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); + DomainWallFermionD Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); std::cout< HermOp(Ddwf); + MdagMLinearOperator HermOp(Ddwf); TrivialPrecon simple; PrecGeneralisedConjugateResidual PGCR(1.0e-6,10000,HermOp,simple,4,160); @@ -92,7 +92,7 @@ int main (int argc, char ** argv) std::cout< g5HermOp(Ddwf); + Gamma5R5HermitianLinearOperator g5HermOp(Ddwf); PrecGeneralisedConjugateResidual PGCR5(1.0e-6,10000,g5HermOp,simple,4,160); result=Zero(); PGCR5(src,result); diff --git a/tests/solver/Test_dwf_hdcr.cc b/tests/solver/Test_dwf_hdcr.cc index ba77dffa..31b58284 100644 --- a/tests/solver/Test_dwf_hdcr.cc +++ b/tests/solver/Test_dwf_hdcr.cc @@ -254,7 +254,7 @@ int main (int argc, char ** argv) std::cout< Subspace; typedef CoarsenedMatrix CoarseOperator; @@ -263,7 +263,7 @@ int main (int argc, char ** argv) std::cout< HermDefOp(Ddwf); + MdagMLinearOperator HermDefOp(Ddwf); Subspace Aggregates(Coarse5d,FGrid,0); @@ -290,7 +290,7 @@ int main (int argc, char ** argv) typedef CoarsenedMatrix Level1Op; typedef CoarsenedMatrix,nbasisc> Level2Op; - Gamma5R5HermitianLinearOperator HermIndefOp(Ddwf); + Gamma5R5HermitianLinearOperator HermIndefOp(Ddwf); Level1Op LDOp(*Coarse5d,*Coarse5dRB,1); LDOp.CoarsenOperator(FGrid,HermIndefOp,Aggregates); @@ -351,16 +351,16 @@ int main (int argc, char ** argv) std::cout< , NormalEquations > TwoLevelMG; + typedef MultiGridPreconditioner , NormalEquations > TwoLevelMG; typedef MultiGridPreconditioner,nbasisc,Level1Op, DeflatedGuesser, NormalEquations > CoarseMG; - typedef MultiGridPreconditioner, LinearFunction > ThreeLevelMG; + typedef MultiGridPreconditioner, LinearFunction > ThreeLevelMG; // MultiGrid preconditioner acting on the coarse space <-> coarsecoarse space ChebyshevSmoother CoarseSmoother(0.1,12.0,3,L1LinOp,LDOp); - ChebyshevSmoother FineSmoother(0.5,60.0,10,HermIndefOp,Ddwf); + ChebyshevSmoother FineSmoother(0.5,60.0,10,HermIndefOp,Ddwf); // MirsSmoother CoarseCGSmoother(0.1,0.1,4,L1LinOp,LDOp); - // MirsSmoother FineCGSmoother(0.0,0.01,8,HermIndefOp,Ddwf); + // MirsSmoother FineCGSmoother(0.0,0.01,8,HermIndefOp,Ddwf); CoarseMG Level2Precon (CoarseAggregates, L2Op, L1LinOp,LDOp, diff --git a/tests/solver/Test_dwf_hdcr_16_rb.cc b/tests/solver/Test_dwf_hdcr_16_rb.cc index 4682272d..ae8e7ae5 100644 --- a/tests/solver/Test_dwf_hdcr_16_rb.cc +++ b/tests/solver/Test_dwf_hdcr_16_rb.cc @@ -268,7 +268,7 @@ int main (int argc, char ** argv) std::cout< Subspace; typedef CoarsenedMatrix CoarseOperator; @@ -277,7 +277,7 @@ int main (int argc, char ** argv) std::cout< HermDefOp(Ddwf); + MdagMLinearOperator HermDefOp(Ddwf); Subspace Aggregates(Coarse5d,FGrid,0); @@ -311,7 +311,7 @@ int main (int argc, char ** argv) typedef CoarsenedMatrix Level1Op; typedef CoarsenedMatrix,nbasisc> Level2Op; - Gamma5R5HermitianLinearOperator HermIndefOp(Ddwf); + Gamma5R5HermitianLinearOperator HermIndefOp(Ddwf); GridRedBlackCartesian * Coarse4dRB = SpaceTimeGrid::makeFourDimRedBlackGrid(Coarse4d); @@ -338,11 +338,11 @@ int main (int argc, char ** argv) std::cout< , SolverWrapper > TwoLevelMG; + typedef MultiGridPreconditioner , SolverWrapper > TwoLevelMG; typedef MultiGridPreconditioner,nbasisc,Level1Op, DeflatedGuesser, NormalEquations > CoarseMG; - typedef MultiGridPreconditioner, LinearFunction > ThreeLevelMG; + typedef MultiGridPreconditioner, LinearFunction > ThreeLevelMG; - ChebyshevSmoother FineSmoother(0.5,60.0,12,HermIndefOp,Ddwf); + ChebyshevSmoother FineSmoother(0.5,60.0,12,HermIndefOp,Ddwf); std::cout< HermOpEO(Ddwf); + SchurDiagMooeeOperator HermOpEO(Ddwf); // pCG(HermOpEO,src_o,result_o); std::cout< Subspace; typedef CoarsenedMatrix CoarseOperator; @@ -259,7 +259,7 @@ int main (int argc, char ** argv) std::cout< HermDefOp(Ddwf); + MdagMLinearOperator HermDefOp(Ddwf); Subspace Aggregates(Coarse5d,FGrid,0); @@ -292,7 +292,7 @@ int main (int argc, char ** argv) typedef CoarsenedMatrix Level1Op; typedef CoarsenedMatrix,nbasisc> Level2Op; - Gamma5R5HermitianLinearOperator HermIndefOp(Ddwf); + Gamma5R5HermitianLinearOperator HermIndefOp(Ddwf); GridRedBlackCartesian * Coarse4dRB = SpaceTimeGrid::makeFourDimRedBlackGrid(Coarse4d); @@ -391,18 +391,18 @@ int main (int argc, char ** argv) std::cout< , NormalEquations > TwoLevelMG; - typedef MultiGridPreconditioner , NormalEquations > TwoLevelMG; + // typedef MultiGridPreconditioner , NormalEquations > TwoLevelMG; + typedef MultiGridPreconditioner , NormalEquations > TwoLevelMG; typedef MultiGridPreconditioner,nbasisc,Level1Op, DeflatedGuesser, NormalEquations > CoarseMG; - typedef MultiGridPreconditioner, LinearFunction > ThreeLevelMG; + typedef MultiGridPreconditioner, LinearFunction > ThreeLevelMG; - ChebyshevSmoother FineSmoother(0.25,60.0,12,HermIndefOp,Ddwf); + ChebyshevSmoother FineSmoother(0.25,60.0,12,HermIndefOp,Ddwf); /* // MultiGrid preconditioner acting on the coarse space <-> coarsecoarse space ChebyshevSmoother CoarseSmoother(0.1,15.0,3,L1LinOp,LDOp); // MirsSmoother CoarseCGSmoother(0.1,0.1,4,L1LinOp,LDOp); - // MirsSmoother FineCGSmoother(0.0,0.01,8,HermIndefOp,Ddwf); + // MirsSmoother FineCGSmoother(0.0,0.01,8,HermIndefOp,Ddwf); CoarseMG Level2Precon (CoarseAggregates, L2Op, L1LinOp,LDOp, @@ -463,7 +463,7 @@ int main (int argc, char ** argv) LatticeFermion result_o(FrbGrid); pickCheckerboard(Odd,src_o,src); result_o=Zero(); - SchurDiagMooeeOperator HermOpEO(Ddwf); + SchurDiagMooeeOperator HermOpEO(Ddwf); // pCG(HermOpEO,src_o,result_o); std::cout< Subspace; typedef CoarsenedMatrix CoarseOperator; @@ -297,7 +297,7 @@ int main (int argc, char ** argv) std::cout< HermDefOp(Ddwf); + MdagMLinearOperator HermDefOp(Ddwf); Subspace Aggregates(Coarse5d,FGrid,0); @@ -332,7 +332,7 @@ int main (int argc, char ** argv) std::cout< Level1Op; - Gamma5R5HermitianLinearOperator HermIndefOp(Ddwf); + Gamma5R5HermitianLinearOperator HermIndefOp(Ddwf); Level1Op LDOp(*Coarse5d,*Coarse5dRB,1); LDOp.CoarsenOperator(FGrid,HermIndefOp,Aggregates); @@ -375,21 +375,21 @@ int main (int argc, char ** argv) std::cout< , NormalEquations > TwoLevelMG; + typedef MultiGridPreconditioner , NormalEquations > TwoLevelMG; // MultiGrid preconditioner acting on the coarse space <-> coarsecoarse space - // ChebyshevSmoother FineSmoother(0.5,60.0,14,HermIndefOp,Ddwf); // 72 iter 63s - // ChebyshevSmoother FineSmoother(0.1,60.0,20,HermIndefOp,Ddwf); // 66 iter 69s - // ChebyshevSmoother FineSmoother(0.5,60.0,20,HermIndefOp,Ddwf); // 63 iter 65 s - // ChebyshevSmoother FineSmoother(1.0,60.0,20,HermIndefOp,Ddwf); // 69, 70 - // ChebyshevSmoother FineSmoother(1.0,60.0,14,HermIndefOp,Ddwf); // 77 + // ChebyshevSmoother FineSmoother(0.5,60.0,14,HermIndefOp,Ddwf); // 72 iter 63s + // ChebyshevSmoother FineSmoother(0.1,60.0,20,HermIndefOp,Ddwf); // 66 iter 69s + // ChebyshevSmoother FineSmoother(0.5,60.0,20,HermIndefOp,Ddwf); // 63 iter 65 s + // ChebyshevSmoother FineSmoother(1.0,60.0,20,HermIndefOp,Ddwf); // 69, 70 + // ChebyshevSmoother FineSmoother(1.0,60.0,14,HermIndefOp,Ddwf); // 77 - // ChebyshevSmoother FineSmoother(0.5,60.0,10,HermIndefOp,Ddwf); // 23 iter 15.9s - // ChebyshevSmoother FineSmoother(0.5,60.0,14,HermIndefOp,Ddwf); // 20, 16.9s - ChebyshevSmoother FineSmoother(0.5,60.0,12,HermIndefOp,Ddwf); // 21, 15.6s + // ChebyshevSmoother FineSmoother(0.5,60.0,10,HermIndefOp,Ddwf); // 23 iter 15.9s + // ChebyshevSmoother FineSmoother(0.5,60.0,14,HermIndefOp,Ddwf); // 20, 16.9s + ChebyshevSmoother FineSmoother(0.5,60.0,12,HermIndefOp,Ddwf); // 21, 15.6s - // MirsSmoother FineCGSmoother(0.05,0.01,20,HermIndefOp,Ddwf); - // RedBlackSmoother FineRBSmoother(0.00,0.001,100,Ddwf); + // MirsSmoother FineCGSmoother(0.05,0.01,20,HermIndefOp,Ddwf); + // RedBlackSmoother FineRBSmoother(0.00,0.001,100,Ddwf); // Wrap the 2nd level solver in a MultiGrid preconditioner acting on the fine space // ZeroGuesser CoarseZeroGuesser; @@ -416,7 +416,7 @@ int main (int argc, char ** argv) ConjugateGradient FineCG(1.0e-8,10000); - SchurDiagMooeeOperator FineDiagMooee(Ddwf); // M_ee - Meo Moo^-1 Moe + SchurDiagMooeeOperator FineDiagMooee(Ddwf); // M_ee - Meo Moo^-1 Moe LatticeFermion f_src_e(FrbGrid); f_src_e=1.0; LatticeFermion f_res_e(FrbGrid); f_res_e=Zero(); FineCG(FineDiagMooee,f_src_e,f_res_e); diff --git a/tests/solver/Test_dwf_hdcr_48_rb.cc b/tests/solver/Test_dwf_hdcr_48_rb.cc index 2b76681e..25ac1dac 100644 --- a/tests/solver/Test_dwf_hdcr_48_rb.cc +++ b/tests/solver/Test_dwf_hdcr_48_rb.cc @@ -264,7 +264,7 @@ int main (int argc, char ** argv) std::cout< Subspace; typedef CoarsenedMatrix CoarseOperator; @@ -273,7 +273,7 @@ int main (int argc, char ** argv) std::cout< HermDefOp(Ddwf); + MdagMLinearOperator HermDefOp(Ddwf); Subspace Aggregates(Coarse5d,FGrid,0); @@ -306,7 +306,7 @@ int main (int argc, char ** argv) typedef CoarsenedMatrix Level1Op; typedef CoarsenedMatrix,nbasisc> Level2Op; - Gamma5R5HermitianLinearOperator HermIndefOp(Ddwf); + Gamma5R5HermitianLinearOperator HermIndefOp(Ddwf); GridRedBlackCartesian * Coarse4dRB = SpaceTimeGrid::makeFourDimRedBlackGrid(Coarse4d); @@ -332,9 +332,9 @@ int main (int argc, char ** argv) std::cout< , SolverWrapper > TwoLevelMG; + typedef MultiGridPreconditioner , SolverWrapper > TwoLevelMG; typedef MultiGridPreconditioner,nbasisc,Level1Op, DeflatedGuesser, NormalEquations > CoarseMG; - typedef MultiGridPreconditioner, LinearFunction > ThreeLevelMG; + typedef MultiGridPreconditioner, LinearFunction > ThreeLevelMG; std::cout< FineSmoother(los[l],60.0,ords[o],HermIndefOp,Ddwf); + ChebyshevSmoother FineSmoother(los[l],60.0,ords[o],HermIndefOp,Ddwf); ZeroGuesser CoarseZeroGuesser; ConjugateGradient CoarseCG(tols[t],10000); SchurRedBlackDiagMooeeSolve CoarseRBCG(CoarseCG); @@ -376,7 +376,7 @@ int main (int argc, char ** argv) LatticeFermion result_o(FrbGrid); pickCheckerboard(Odd,src_o,src); result_o=Zero(); - SchurDiagMooeeOperator HermOpEO(Ddwf); + SchurDiagMooeeOperator HermOpEO(Ddwf); pCG(HermOpEO,src_o,result_o); std::cout< Subspace; typedef CoarsenedMatrix CoarseOperator; @@ -257,7 +257,7 @@ int main (int argc, char ** argv) std::cout< HermDefOp(Ddwf); + MdagMLinearOperator HermDefOp(Ddwf); Subspace Aggregates(Coarse5d,FGrid,0); @@ -290,7 +290,7 @@ int main (int argc, char ** argv) typedef CoarsenedMatrix Level1Op; typedef CoarsenedMatrix,nbasisc> Level2Op; - Gamma5R5HermitianLinearOperator HermIndefOp(Ddwf); + Gamma5R5HermitianLinearOperator HermIndefOp(Ddwf); GridRedBlackCartesian * Coarse4dRB = SpaceTimeGrid::makeFourDimRedBlackGrid(Coarse4d); @@ -386,18 +386,18 @@ int main (int argc, char ** argv) std::cout< , NormalEquations > TwoLevelMG; - typedef MultiGridPreconditioner , NormalEquations > TwoLevelMG; + // typedef MultiGridPreconditioner , NormalEquations > TwoLevelMG; + typedef MultiGridPreconditioner , NormalEquations > TwoLevelMG; typedef MultiGridPreconditioner,nbasisc,Level1Op, DeflatedGuesser, NormalEquations > CoarseMG; - typedef MultiGridPreconditioner, LinearFunction > ThreeLevelMG; + typedef MultiGridPreconditioner, LinearFunction > ThreeLevelMG; - ChebyshevSmoother FineSmoother(0.25,60.0,12,HermIndefOp,Ddwf); + ChebyshevSmoother FineSmoother(0.25,60.0,12,HermIndefOp,Ddwf); /* // MultiGrid preconditioner acting on the coarse space <-> coarsecoarse space ChebyshevSmoother CoarseSmoother(0.1,15.0,3,L1LinOp,LDOp); // MirsSmoother CoarseCGSmoother(0.1,0.1,4,L1LinOp,LDOp); - // MirsSmoother FineCGSmoother(0.0,0.01,8,HermIndefOp,Ddwf); + // MirsSmoother FineCGSmoother(0.0,0.01,8,HermIndefOp,Ddwf); CoarseMG Level2Precon (CoarseAggregates, L2Op, L1LinOp,LDOp, @@ -458,7 +458,7 @@ int main (int argc, char ** argv) LatticeFermion result_o(FrbGrid); pickCheckerboard(Odd,src_o,src); result_o=Zero(); - SchurDiagMooeeOperator HermOpEO(Ddwf); + SchurDiagMooeeOperator HermOpEO(Ddwf); pCG(HermOpEO,src_o,result_o); std::cout< HermOp(Ddwf); - MdagMLinearOperator HermOpCk(Dchk); + MdagMLinearOperator HermOp(Ddwf); + MdagMLinearOperator HermOpCk(Dchk); ConjugateGradient CG((1.0e-5/(me+1)),10000); s_res = Zero(); CG(HermOp,s_src,s_res); diff --git a/tests/solver/Test_dwf_mrhs_cg_mpi.cc b/tests/solver/Test_dwf_mrhs_cg_mpi.cc index d0a32460..1a679f45 100644 --- a/tests/solver/Test_dwf_mrhs_cg_mpi.cc +++ b/tests/solver/Test_dwf_mrhs_cg_mpi.cc @@ -34,9 +34,9 @@ using namespace Grid; int main (int argc, char ** argv) { - typedef typename DomainWallFermionR::FermionField FermionField; - typedef typename DomainWallFermionR::ComplexField ComplexField; - typename DomainWallFermionR::ImplParams params; + typedef typename DomainWallFermionD::FermionField FermionField; + typedef typename DomainWallFermionD::ComplexField ComplexField; + typename DomainWallFermionD::ImplParams params; double stp=1.0e-5; const int Ls=4; @@ -189,15 +189,15 @@ int main (int argc, char ** argv) std::cout << GridLogMessage << " Building the solvers"< HermOp(Ddwf); - MdagMLinearOperator HermOpCk(Dchk); + MdagMLinearOperator HermOp(Ddwf); + MdagMLinearOperator HermOpCk(Dchk); ConjugateGradient CG((stp),10000); s_res = Zero(); CG(HermOp,s_src,s_res); diff --git a/tests/solver/Test_dwf_mrhs_cg_mpieo.cc b/tests/solver/Test_dwf_mrhs_cg_mpieo.cc index 1906619f..0dcab577 100644 --- a/tests/solver/Test_dwf_mrhs_cg_mpieo.cc +++ b/tests/solver/Test_dwf_mrhs_cg_mpieo.cc @@ -34,9 +34,9 @@ using namespace Grid; int main (int argc, char ** argv) { - typedef typename DomainWallFermionR::FermionField FermionField; - typedef typename DomainWallFermionR::ComplexField ComplexField; - typename DomainWallFermionR::ImplParams params; + typedef typename DomainWallFermionD::FermionField FermionField; + typedef typename DomainWallFermionD::ComplexField ComplexField; + typename DomainWallFermionD::ImplParams params; const int Ls=4; @@ -124,15 +124,15 @@ int main (int argc, char ** argv) /////////////////////////////////////////////////////////////// RealD mass=0.01; RealD M5=1.8; - DomainWallFermionR Dchk(Umu,*FGrid,*FrbGrid,*UGrid,*rbGrid,mass,M5); - DomainWallFermionR Ddwf(s_Umu,*SFGrid,*SFrbGrid,*SGrid,*SrbGrid,mass,M5); + DomainWallFermionD Dchk(Umu,*FGrid,*FrbGrid,*UGrid,*rbGrid,mass,M5); + DomainWallFermionD Ddwf(s_Umu,*SFGrid,*SFrbGrid,*SGrid,*SrbGrid,mass,M5); std::cout << GridLogMessage << "****************************************************************** "< HermOp(Ddwf); - MdagMLinearOperator HermOpCk(Dchk); + MdagMLinearOperator HermOp(Ddwf); + MdagMLinearOperator HermOpCk(Dchk); ConjugateGradient CG((1.0e-8/(me+1)),10000); s_res = Zero(); CG(HermOp,s_src,s_res); diff --git a/tests/solver/Test_dwf_multigrid.cc b/tests/solver/Test_dwf_multigrid.cc index e670b358..1cd83375 100644 --- a/tests/solver/Test_dwf_multigrid.cc +++ b/tests/solver/Test_dwf_multigrid.cc @@ -397,8 +397,8 @@ int main (int argc, char ** argv) std::cout< Subspace; typedef CoarsenedMatrix CoarseOperator; @@ -407,7 +407,7 @@ int main (int argc, char ** argv) std::cout< HermDefOp(Ddwf); + MdagMLinearOperator HermDefOp(Ddwf); Subspace Aggregates(Coarse5d,FGrid,0); @@ -435,8 +435,8 @@ int main (int argc, char ** argv) typedef CoarsenedMatrix Level1Op; typedef CoarsenedMatrix,nbasisc> Level2Op; - Gamma5R5HermitianLinearOperator HermIndefOp(Ddwf); - Gamma5R5HermitianLinearOperator HermIndefOpPV(Dpv); + Gamma5R5HermitianLinearOperator HermIndefOp(Ddwf); + Gamma5R5HermitianLinearOperator HermIndefOpPV(Dpv); std::cout< FineCG(tol,MaxIt); // GeneralisedMinimalResidual FineGMRES(tol,MaxIt,20); - MdagMLinearOperator FineMdagM(Ddwf); // M^\dag M - PVdagMLinearOperator FinePVdagM(Ddwf,Dpv);// M_{pv}^\dag M - SchurDiagMooeeOperator FineDiagMooee(Ddwf); // M_ee - Meo Moo^-1 Moe - SchurDiagOneOperator FineDiagOne(Ddwf); // 1 - M_ee^{-1} Meo Moo^{-1} Moe e + MdagMLinearOperator FineMdagM(Ddwf); // M^\dag M + PVdagMLinearOperator FinePVdagM(Ddwf,Dpv);// M_{pv}^\dag M + SchurDiagMooeeOperator FineDiagMooee(Ddwf); // M_ee - Meo Moo^-1 Moe + SchurDiagOneOperator FineDiagOne(Ddwf); // 1 - M_ee^{-1} Meo Moo^{-1} Moe e MdagMLinearOperator CoarseMdagM(LDOp); PVdagMLinearOperator CoarsePVdagM(LDOp,LDOpPV); @@ -552,7 +552,7 @@ int main (int argc, char ** argv) std::cout< CoarseMgridCG(0.001,1000); - ChebyshevSmoother FineSmoother(0.5,60.0,10,HermIndefOp,Ddwf); + ChebyshevSmoother FineSmoother(0.5,60.0,10,HermIndefOp,Ddwf); typedef HDCRPreconditioner > TwoLevelHDCR; TwoLevelHDCR TwoLevelPrecon(Aggregates, diff --git a/tests/solver/Test_dwf_qmr_unprec.cc b/tests/solver/Test_dwf_qmr_unprec.cc index 370e7409..eeb20c95 100644 --- a/tests/solver/Test_dwf_qmr_unprec.cc +++ b/tests/solver/Test_dwf_qmr_unprec.cc @@ -66,17 +66,17 @@ int main (int argc, char ** argv) RealD mass=0.0; RealD M5=-1.8; - DomainWallFermionR Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); + DomainWallFermionD Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); - Gamma5R5HermitianLinearOperator g5HermOp(Ddwf); + Gamma5R5HermitianLinearOperator g5HermOp(Ddwf); QMR(g5HermOp,src,result); GMR(g5HermOp,src,result); - NonHermitianLinearOperator NonHermOp(Ddwf); + NonHermitianLinearOperator NonHermOp(Ddwf); QMR(NonHermOp,src,result); GMR(NonHermOp,src,result); - MdagMLinearOperator HermOp(Ddwf); + MdagMLinearOperator HermOp(Ddwf); ConjugateGradient CG(1.0e-8,10000); CG(HermOp,src,result); diff --git a/tests/solver/Test_eofa_inv.cc b/tests/solver/Test_eofa_inv.cc index 564405c2..71952b97 100644 --- a/tests/solver/Test_eofa_inv.cc +++ b/tests/solver/Test_eofa_inv.cc @@ -83,8 +83,8 @@ int main (int argc, char** argv) RealD mf = 0.01; RealD mb = 1.0; RealD M5 = 1.8; - MobiusEOFAFermionR Lop(U, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, mf, mb, 0.0, -1, M5, b, c); - MobiusEOFAFermionR Rop(U, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mb, mf, mb, -1.0, 1, M5, b, c); + MobiusEOFAFermionD Lop(U, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mf, mf, mb, 0.0, -1, M5, b, c); + MobiusEOFAFermionD Rop(U, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mb, mf, mb, -1.0, 1, M5, b, c); OneFlavourRationalParams Params(0.95, 100.0, 5000, 1.0e-10, 12); ConjugateGradient CG(1.0e-10, 5000); ExactOneFlavourRatioPseudoFermionAction Meofa(Lop, Rop, CG, CG, CG, CG, CG, Params, false); diff --git a/tests/solver/Test_hw_multigrid.cc b/tests/solver/Test_hw_multigrid.cc index 66c88883..fd30bca7 100644 --- a/tests/solver/Test_hw_multigrid.cc +++ b/tests/solver/Test_hw_multigrid.cc @@ -292,9 +292,9 @@ int main (int argc, char ** argv) std::cout< Subspace; typedef CoarsenedMatrix CoarseOperator; @@ -304,7 +304,7 @@ int main (int argc, char ** argv) std::cout< SubspaceOp(Dw); + MdagMLinearOperator SubspaceOp(Dw); Subspace Aggregates4D(Coarse4d,UGrid,0); Subspace Aggregates5D(Coarse5d,FGrid,0); @@ -335,7 +335,7 @@ int main (int argc, char ** argv) std::cout< Level1Op; - NonHermitianLinearOperator LinOpDwf(Ddwf); + NonHermitianLinearOperator LinOpDwf(Ddwf); Level1Op LDOp (*Coarse5d,*Coarse5dRB,0); diff --git a/tests/solver/Test_hw_multigrid_mixed_48.cc b/tests/solver/Test_hw_multigrid_mixed_48.cc index 0e8d6a17..3a31ddbe 100644 --- a/tests/solver/Test_hw_multigrid_mixed_48.cc +++ b/tests/solver/Test_hw_multigrid_mixed_48.cc @@ -395,7 +395,7 @@ public: Geometry geom; GridBase *Coarse5D; GridBase *Coarse4D; - CartesianStencil Stencil; + CartesianStencil Stencil; CoarsenedMatrix &Dw; GridBase * Grid(void) { return Coarse5D; }; // this is all the linalg routines need to know @@ -409,7 +409,7 @@ public: Coarse5D(&CoarseGrid5), Dw(_Dw), geom(CoarseGrid5._ndimension), - Stencil( &CoarseGrid5,geom.npoint,Even,geom.directions,geom.displacements,0) + Stencil( &CoarseGrid5,geom.npoint,Even,geom.directions,geom.displacements,DefaultImplParams()) { }; @@ -981,9 +981,9 @@ int main (int argc, char ** argv) RealD mass=0.00078; - WilsonFermionR Dw(Umu,*UGrid,*UrbGrid,-M5); - DomainWallFermionR Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); - DomainWallFermionR Dpv (Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,1.0,M5); + WilsonFermionD Dw(Umu,*UGrid,*UrbGrid,-M5); + DomainWallFermionD Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); + DomainWallFermionD Dpv (Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,1.0,M5); typedef Aggregation Subspace; typedef CoarsenedMatrix CoarseOperator; @@ -994,21 +994,21 @@ int main (int argc, char ** argv) std::cout< MdagM_Dw(Dw_null); + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.75); // 600 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.80); // 800 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.82); // 1023 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.85); // 1428 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.87); // 1900 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.90); // 3900 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.92); // 6200 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.94); // 8882 iters + WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.95); // 9170 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.96); // 8882 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.97); // 8406 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.99); // 6900 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-1.01); // 6397 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-1.00); // 5900 iters + MdagMLinearOperator MdagM_Dw(Dw_null); std::cout< Level1Op4; typedef CoarseCayleyFermion Level1Op5; Level1Op4 c_Dw (*Coarse4d,0); - NonHermitianLinearOperator LinOpDw(Dw); + NonHermitianLinearOperator LinOpDw(Dw); c_Dw.CoarsenOperator(UGrid,LinOpDw,Aggregates4D); // contains the M5 from Dw(-M5) // c_Dw.Test(Aggregates4D,UGrid,LinOpDw); @@ -1127,8 +1127,8 @@ int main (int argc, char ** argv) ConjugateGradient CoarseCG(tol,MaxIt); ConjugateGradient FineCG(tol,MaxIt); - NonHermitianLinearOperator FineM(Ddwf); - MdagMLinearOperator FineMdagM(Ddwf); // M^\dag M + NonHermitianLinearOperator FineM(Ddwf); + MdagMLinearOperator FineMdagM(Ddwf); // M^\dag M NonHermitianLinearOperator CoarseM(c_Dwf); MdagMLinearOperator CoarseMdagM(c_Dwf); @@ -1233,39 +1233,39 @@ typedef HDCRPreconditioner,nbasisc,NormalEquations // Wrap the 2nd level solver in a MultiGrid preconditioner acting on the fine space - // ChebyshevSmoother FineSmoother1(0.5,60.0,14,FineM,Ddwf); // 26 iter, 39s - // ChebyshevSmoother FineSmoother2(0.5,60.0,14,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(0.5,60.0,14,FineM,Ddwf); // 26 iter, 39s + // ChebyshevSmoother FineSmoother2(0.5,60.0,14,FineM,Ddwf); - // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // 25 iter, 38s - // ChebyshevSmoother FineSmoother2(0.5,60.0,16,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // 25 iter, 38s + // ChebyshevSmoother FineSmoother2(0.5,60.0,16,FineM,Ddwf); - // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // 23 iter, 39s - // ChebyshevSmoother FineSmoother2(0.5,60.0,20,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // 23 iter, 39s + // ChebyshevSmoother FineSmoother2(0.5,60.0,20,FineM,Ddwf); - // ChebyshevSmoother FineSmoother1(0.5,60.0,10,FineM,Ddwf);24 iter, 44s - // ChebyshevSmoother FineSmoother2(0.5,60.0,24,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(0.5,60.0,10,FineM,Ddwf);24 iter, 44s + // ChebyshevSmoother FineSmoother2(0.5,60.0,24,FineM,Ddwf); - // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // odd convergence tail at 10^-9 ish - // ChebyshevSmoother FineSmoother2(0.1,60.0,24,FineM,Ddwf); // 33 iter, waas O(10-9 by 26) + // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // odd convergence tail at 10^-9 ish + // ChebyshevSmoother FineSmoother2(0.1,60.0,24,FineM,Ddwf); // 33 iter, waas O(10-9 by 26) - // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // 25 iter, 39s - // ChebyshevSmoother FineSmoother2(0.5,60.0,18,FineM,Ddwf); // + // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // 25 iter, 39s + // ChebyshevSmoother FineSmoother2(0.5,60.0,18,FineM,Ddwf); // - ChebyshevSmoother FineSmoother1(0.5,60.0,16,FineM,Ddwf); - ChebyshevSmoother FineSmoother2(0.5,60.0,16,FineM,Ddwf); // + ChebyshevSmoother FineSmoother1(0.5,60.0,16,FineM,Ddwf); + ChebyshevSmoother FineSmoother2(0.5,60.0,16,FineM,Ddwf); // - // ChebyshevSmoother FineSmoother1(0.5,60.0,11,FineM,Ddwf); // 33 iter, 49s - // ChebyshevSmoother FineSmoother2(0.5,60.0,11,FineM,Ddwf); - // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // 26 iter, 37s - // ChebyshevSmoother FineSmoother2(0.5,60.0,12,FineM,Ddwf); - // ChebyshevSmoother FineSmoother1(0.4,60.0,12,FineM,Ddwf); // iter 26 no change in final residual - // ChebyshevSmoother FineSmoother2(0.4,60.0,12,FineM,Ddwf); - // ChebyshevSmoother FineSmoother1(0.3,60.0,12,FineM,Ddwf); // 27 iter 39s. - // ChebyshevSmoother FineSmoother2(0.3,60.0,12,FineM,Ddwf); - // ChebyshevSmoother FineSmoother1(0.3,60.0,13,FineM,Ddwf); // 26 iter, but slower - // ChebyshevSmoother FineSmoother2(0.3,60.0,13,FineM,Ddwf); - // ChebyshevSmoother FineSmoother1(1.0,60.0,12,FineM,Ddwf); // 34 iter, slower - // ChebyshevSmoother FineSmoother2(1.0,60.0,12,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(0.5,60.0,11,FineM,Ddwf); // 33 iter, 49s + // ChebyshevSmoother FineSmoother2(0.5,60.0,11,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // 26 iter, 37s + // ChebyshevSmoother FineSmoother2(0.5,60.0,12,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(0.4,60.0,12,FineM,Ddwf); // iter 26 no change in final residual + // ChebyshevSmoother FineSmoother2(0.4,60.0,12,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(0.3,60.0,12,FineM,Ddwf); // 27 iter 39s. + // ChebyshevSmoother FineSmoother2(0.3,60.0,12,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(0.3,60.0,13,FineM,Ddwf); // 26 iter, but slower + // ChebyshevSmoother FineSmoother2(0.3,60.0,13,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(1.0,60.0,12,FineM,Ddwf); // 34 iter, slower + // ChebyshevSmoother FineSmoother2(1.0,60.0,12,FineM,Ddwf); ThreeLevelMG ThreeLevelPrecon(Aggregates4D, FineM, diff --git a/tests/solver/Test_hw_multigrid_mixed_48_rb.cc b/tests/solver/Test_hw_multigrid_mixed_48_rb.cc index e7ceb022..0f18893e 100644 --- a/tests/solver/Test_hw_multigrid_mixed_48_rb.cc +++ b/tests/solver/Test_hw_multigrid_mixed_48_rb.cc @@ -395,7 +395,7 @@ public: Geometry geom; GridBase *Coarse5D; GridBase *Coarse4D; - CartesianStencil Stencil; + CartesianStencil Stencil; CoarsenedMatrix &Dw; GridBase * Grid(void) { return Coarse5D; }; // this is all the linalg routines need to know @@ -409,7 +409,7 @@ public: Coarse5D(&CoarseGrid5), Dw(_Dw), geom(CoarseGrid5._ndimension), - Stencil( &CoarseGrid5,geom.npoint,Even,geom.directions,geom.displacements,0) + Stencil( &CoarseGrid5,geom.npoint,Even,geom.directions,geom.displacements,DefaultImplParams()) { }; @@ -1005,9 +1005,9 @@ int main (int argc, char ** argv) RealD mass=0.00078; - WilsonFermionR Dw(Umu,*UGrid,*UrbGrid,-M5); - DomainWallFermionR Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); - DomainWallFermionR Dpv (Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,1.0,M5); + WilsonFermionD Dw(Umu,*UGrid,*UrbGrid,-M5); + DomainWallFermionD Ddwf(Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,M5); + DomainWallFermionD Dpv (Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,1.0,M5); typedef Aggregation Subspace; typedef CoarsenedMatrix CoarseOperator; @@ -1018,21 +1018,21 @@ int main (int argc, char ** argv) std::cout< MdagM_Dw(Dw_null); + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.75); // 600 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.80); // 800 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.82); // 1023 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.85); // 1428 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.87); // 1900 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.90); // 3900 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.92); // 6200 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.94); // 8882 iters + WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.95); // 9170 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.96); // 8882 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.97); // 8406 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-0.99); // 6900 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-1.01); // 6397 iters + // WilsonFermionD Dw_null(Umu,*UGrid,*UrbGrid,-1.00); // 5900 iters + MdagMLinearOperator MdagM_Dw(Dw_null); std::cout< Level1Op4; typedef CoarseCayleyFermion Level1Op5; Level1Op4 c_Dw (*Coarse4d,0); - NonHermitianLinearOperator LinOpDw(Dw); + NonHermitianLinearOperator LinOpDw(Dw); c_Dw.CoarsenOperator(UGrid,LinOpDw,Aggregates4D); // contains the M5 from Dw(-M5) // c_Dw.Test(Aggregates4D,UGrid,LinOpDw); @@ -1148,8 +1148,8 @@ int main (int argc, char ** argv) ConjugateGradient CoarseCG(tol,MaxIt); ConjugateGradient FineCG(tol,MaxIt); - NonHermitianLinearOperator FineM(Ddwf); - MdagMLinearOperator FineMdagM(Ddwf); // M^\dag M + NonHermitianLinearOperator FineM(Ddwf); + MdagMLinearOperator FineMdagM(Ddwf); // M^\dag M NonHermitianLinearOperator CoarseM(c_Dwf); MdagMLinearOperator CoarseMdagM(c_Dwf); @@ -1272,38 +1272,38 @@ typedef HDCRPreconditioner,nbasisc,LinearFunction< // Wrap the 2nd level solver in a MultiGrid preconditioner acting on the fine space - // ChebyshevSmoother FineSmoother1(0.5,60.0,14,FineM,Ddwf); // 26 iter, 39s - // ChebyshevSmoother FineSmoother2(0.5,60.0,14,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(0.5,60.0,14,FineM,Ddwf); // 26 iter, 39s + // ChebyshevSmoother FineSmoother2(0.5,60.0,14,FineM,Ddwf); - // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // 25 iter, 38s - // ChebyshevSmoother FineSmoother2(0.5,60.0,16,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // 25 iter, 38s + // ChebyshevSmoother FineSmoother2(0.5,60.0,16,FineM,Ddwf); - // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // 23 iter, 39s - // ChebyshevSmoother FineSmoother2(0.5,60.0,20,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // 23 iter, 39s + // ChebyshevSmoother FineSmoother2(0.5,60.0,20,FineM,Ddwf); - // ChebyshevSmoother FineSmoother1(0.5,60.0,10,FineM,Ddwf);24 iter, 44s - // ChebyshevSmoother FineSmoother2(0.5,60.0,24,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(0.5,60.0,10,FineM,Ddwf);24 iter, 44s + // ChebyshevSmoother FineSmoother2(0.5,60.0,24,FineM,Ddwf); - // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // odd convergence tail at 10^-9 ish - // ChebyshevSmoother FineSmoother2(0.1,60.0,24,FineM,Ddwf); // 33 iter, waas O(10-9 by 26) + // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // odd convergence tail at 10^-9 ish + // ChebyshevSmoother FineSmoother2(0.1,60.0,24,FineM,Ddwf); // 33 iter, waas O(10-9 by 26) - // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // 25 iter, 39s - // ChebyshevSmoother FineSmoother2(0.5,60.0,18,FineM,Ddwf); // + // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // 25 iter, 39s + // ChebyshevSmoother FineSmoother2(0.5,60.0,18,FineM,Ddwf); // - ChebyshevSmoother FineSmoother(f_lo,f_hi,f_ord,FineM,Ddwf); + ChebyshevSmoother FineSmoother(f_lo,f_hi,f_ord,FineM,Ddwf); - // ChebyshevSmoother FineSmoother1(0.5,60.0,11,FineM,Ddwf); // 33 iter, 49s - // ChebyshevSmoother FineSmoother2(0.5,60.0,11,FineM,Ddwf); - // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // 26 iter, 37s - // ChebyshevSmoother FineSmoother2(0.5,60.0,12,FineM,Ddwf); - // ChebyshevSmoother FineSmoother1(0.4,60.0,12,FineM,Ddwf); // iter 26 no change in final residual - // ChebyshevSmoother FineSmoother2(0.4,60.0,12,FineM,Ddwf); - // ChebyshevSmoother FineSmoother1(0.3,60.0,12,FineM,Ddwf); // 27 iter 39s. - // ChebyshevSmoother FineSmoother2(0.3,60.0,12,FineM,Ddwf); - // ChebyshevSmoother FineSmoother1(0.3,60.0,13,FineM,Ddwf); // 26 iter, but slower - // ChebyshevSmoother FineSmoother2(0.3,60.0,13,FineM,Ddwf); - // ChebyshevSmoother FineSmoother1(1.0,60.0,12,FineM,Ddwf); // 34 iter, slower - // ChebyshevSmoother FineSmoother2(1.0,60.0,12,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(0.5,60.0,11,FineM,Ddwf); // 33 iter, 49s + // ChebyshevSmoother FineSmoother2(0.5,60.0,11,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(0.5,60.0,12,FineM,Ddwf); // 26 iter, 37s + // ChebyshevSmoother FineSmoother2(0.5,60.0,12,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(0.4,60.0,12,FineM,Ddwf); // iter 26 no change in final residual + // ChebyshevSmoother FineSmoother2(0.4,60.0,12,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(0.3,60.0,12,FineM,Ddwf); // 27 iter 39s. + // ChebyshevSmoother FineSmoother2(0.3,60.0,12,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(0.3,60.0,13,FineM,Ddwf); // 26 iter, but slower + // ChebyshevSmoother FineSmoother2(0.3,60.0,13,FineM,Ddwf); + // ChebyshevSmoother FineSmoother1(1.0,60.0,12,FineM,Ddwf); // 34 iter, slower + // ChebyshevSmoother FineSmoother2(1.0,60.0,12,FineM,Ddwf); ThreeLevelMG ThreeLevelPrecon(Aggregates4D, FineM, diff --git a/tests/solver/Test_mobius_bcg.cc b/tests/solver/Test_mobius_bcg.cc index 8092d61c..a54b4a05 100644 --- a/tests/solver/Test_mobius_bcg.cc +++ b/tests/solver/Test_mobius_bcg.cc @@ -33,9 +33,9 @@ using namespace Grid; int main (int argc, char ** argv) { - typedef typename MobiusFermionR::FermionField FermionField; - typedef typename MobiusFermionR::ComplexField ComplexField; - typename MobiusFermionR::ImplParams params; + typedef typename MobiusFermionD::FermionField FermionField; + typedef typename MobiusFermionD::ComplexField ComplexField; + typename MobiusFermionD::ImplParams params; const int Ls=12; @@ -158,15 +158,15 @@ int main (int argc, char ** argv) RealD mobius_factor=32./12.; RealD mobius_b=0.5*(mobius_factor+1.); RealD mobius_c=0.5*(mobius_factor-1.); - MobiusFermionR Dchk(Umu,*FGrid,*FrbGrid,*UGrid,*rbGrid,mass,M5,mobius_b,mobius_c,params); - MobiusFermionR Ddwf(s_Umu,*SFGrid,*SFrbGrid,*SGrid,*SrbGrid,mass,M5,mobius_b,mobius_c,params); + MobiusFermionD Dchk(Umu,*FGrid,*FrbGrid,*UGrid,*rbGrid,mass,M5,mobius_b,mobius_c,params); + MobiusFermionD Ddwf(s_Umu,*SFGrid,*SFrbGrid,*SGrid,*SrbGrid,mass,M5,mobius_b,mobius_c,params); std::cout << GridLogMessage << "****************************************************************** "< HermOp(Ddwf); - MdagMLinearOperator HermOpCk(Dchk); + MdagMLinearOperator HermOp(Ddwf); + MdagMLinearOperator HermOpCk(Dchk); ConjugateGradient CG((stp),100000); s_res = Zero(); diff --git a/tests/solver/Test_mobius_bcg_nosplit.cc b/tests/solver/Test_mobius_bcg_nosplit.cc index de02b1e3..f33a40ea 100644 --- a/tests/solver/Test_mobius_bcg_nosplit.cc +++ b/tests/solver/Test_mobius_bcg_nosplit.cc @@ -35,9 +35,9 @@ using namespace Grid; int main (int argc, char ** argv) { - typedef typename DomainWallFermionR::FermionField FermionField; - typedef typename DomainWallFermionR::ComplexField ComplexField; - typename DomainWallFermionR::ImplParams params; + typedef typename DomainWallFermionD::FermionField FermionField; + typedef typename DomainWallFermionD::ComplexField ComplexField; + typename DomainWallFermionD::ImplParams params; const int Ls=16; @@ -106,13 +106,13 @@ int main (int argc, char ** argv) std::cout << GridLogMessage << " Building the solvers"< HermOp(Ddwf); + MdagMLinearOperator HermOp(Ddwf); ConjugateGradient CG((stp),100000); for(int rhs=0;rhs<1;rhs++){ diff --git a/tests/solver/Test_mobius_bcg_phys_nosplit.cc b/tests/solver/Test_mobius_bcg_phys_nosplit.cc index 2fe573ce..76a6f7e1 100644 --- a/tests/solver/Test_mobius_bcg_phys_nosplit.cc +++ b/tests/solver/Test_mobius_bcg_phys_nosplit.cc @@ -35,9 +35,9 @@ using namespace Grid; int main (int argc, char ** argv) { - typedef typename DomainWallFermionR::FermionField FermionField; - typedef typename DomainWallFermionR::ComplexField ComplexField; - typename DomainWallFermionR::ImplParams params; + typedef typename DomainWallFermionD::FermionField FermionField; + typedef typename DomainWallFermionD::ComplexField ComplexField; + typename DomainWallFermionD::ImplParams params; const int Ls=16; @@ -107,7 +107,7 @@ int main (int argc, char ** argv) std::cout << GridLogMessage << " Building the solvers"< HermOp(Ddwf); + MdagMLinearOperator HermOp(Ddwf); ConjugateGradient CG((stp),100000); for(int rhs=0;rhs<1;rhs++){ diff --git a/tests/solver/Test_mobius_bcg_prec_nosplit.cc b/tests/solver/Test_mobius_bcg_prec_nosplit.cc index 3ac0d42b..f793893c 100644 --- a/tests/solver/Test_mobius_bcg_prec_nosplit.cc +++ b/tests/solver/Test_mobius_bcg_prec_nosplit.cc @@ -35,9 +35,9 @@ using namespace Grid; int main (int argc, char ** argv) { - typedef typename DomainWallFermionR::FermionField FermionField; - typedef typename DomainWallFermionR::ComplexField ComplexField; - typename DomainWallFermionR::ImplParams params; + typedef typename DomainWallFermionD::FermionField FermionField; + typedef typename DomainWallFermionD::ComplexField ComplexField; + typename DomainWallFermionD::ImplParams params; const int Ls=16; @@ -106,13 +106,13 @@ int main (int argc, char ** argv) std::cout << GridLogMessage << " Building the solvers"< HermOp(Ddwf); + MdagMLinearOperator HermOp(Ddwf); ConjugateGradient CG((stp),100000); for(int rhs=0;rhs<1;rhs++){ diff --git a/tests/solver/Test_split_grid.cc b/tests/solver/Test_split_grid.cc index 85626c8e..39441c82 100644 --- a/tests/solver/Test_split_grid.cc +++ b/tests/solver/Test_split_grid.cc @@ -34,9 +34,9 @@ using namespace Grid; int main (int argc, char ** argv) { - typedef typename DomainWallFermionR::FermionField FermionField; - typedef typename DomainWallFermionR::ComplexField ComplexField; - typename DomainWallFermionR::ImplParams params; + typedef typename DomainWallFermionD::FermionField FermionField; + typedef typename DomainWallFermionD::ComplexField ComplexField; + typename DomainWallFermionD::ImplParams params; const int Ls=4; @@ -117,15 +117,15 @@ int main (int argc, char ** argv) /////////////////////////////////////////////////////////////// RealD mass=0.01; RealD M5=1.8; - DomainWallFermionR Dchk(Umu,*FGrid,*FrbGrid,*UGrid,*rbGrid,mass,M5); - DomainWallFermionR Ddwf(s_Umu,*SFGrid,*SFrbGrid,*SGrid,*SrbGrid,mass,M5); + DomainWallFermionD Dchk(Umu,*FGrid,*FrbGrid,*UGrid,*rbGrid,mass,M5); + DomainWallFermionD Ddwf(s_Umu,*SFGrid,*SFrbGrid,*SGrid,*SrbGrid,mass,M5); std::cout << GridLogMessage << "****************************************************************** "< HermOp(Ddwf); - MdagMLinearOperator HermOpCk(Dchk); + MdagMLinearOperator HermOp(Ddwf); + MdagMLinearOperator HermOpCk(Dchk); ConjugateGradient CG((1.0e-8/(me+1)),10000); s_res = Zero(); CG(HermOp,s_src,s_res); diff --git a/tests/solver/Test_staggered_block_cg_prec.cc b/tests/solver/Test_staggered_block_cg_prec.cc index c5306e85..4cb7801e 100644 --- a/tests/solver/Test_staggered_block_cg_prec.cc +++ b/tests/solver/Test_staggered_block_cg_prec.cc @@ -46,9 +46,9 @@ struct scal { int main (int argc, char ** argv) { - typedef typename ImprovedStaggeredFermion5DR::FermionField FermionField; - typedef typename ImprovedStaggeredFermion5DR::ComplexField ComplexField; - typename ImprovedStaggeredFermion5DR::ImplParams params; + typedef typename ImprovedStaggeredFermion5DD::FermionField FermionField; + typedef typename ImprovedStaggeredFermion5DD::ComplexField ComplexField; + typename ImprovedStaggeredFermion5DD::ImplParams params; const int Ls=8; @@ -98,8 +98,8 @@ int main (int argc, char ** argv) RealD c1=9.0/8.0; RealD c2=-1.0/24.0; RealD u0=1.0; - ImprovedStaggeredFermion5DR Ds(Umu,Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,c1,c2,u0); - SchurStaggeredOperator HermOp(Ds); + ImprovedStaggeredFermion5DD Ds(Umu,Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,c1,c2,u0); + SchurStaggeredOperator HermOp(Ds); ConjugateGradient CG(1.0e-8,10000); int blockDim = 0; @@ -111,8 +111,8 @@ int main (int argc, char ** argv) std::cout << GridLogMessage << "****************************************************************** "< HermOp4d(Ds4d); + ImprovedStaggeredFermionD Ds4d(Umu,Umu,*UGrid,*UrbGrid,mass,c1,c2,u0); + SchurStaggeredOperator HermOp4d(Ds4d); FermionField src4d(UGrid); random(pRNG,src4d); FermionField src4d_o(UrbGrid); pickCheckerboard(Odd,src4d_o,src4d); FermionField result4d_o(UrbGrid); @@ -135,7 +135,6 @@ int main (int argc, char ** argv) std::cout << GridLogMessage << "************************************************************************ "< using namespace std; using namespace Grid; - ; - -template -struct scal { - d internal; -}; Gamma::Algebra Gmu [] = { Gamma::Algebra::GammaX, @@ -46,9 +40,9 @@ struct scal { int main (int argc, char ** argv) { - typedef typename ImprovedStaggeredFermion5DR::FermionField FermionField; - typedef typename ImprovedStaggeredFermion5DR::ComplexField ComplexField; - typename ImprovedStaggeredFermion5DR::ImplParams params; + typedef typename ImprovedStaggeredFermion5DD::FermionField FermionField; + typedef typename ImprovedStaggeredFermion5DD::ComplexField ComplexField; + typename ImprovedStaggeredFermion5DD::ImplParams params; const int Ls=8; @@ -83,8 +77,8 @@ int main (int argc, char ** argv) volume=volume*latt_size[mu]; } - ImprovedStaggeredFermion5DR Ds(Umu,Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,c1,c2,u0); - MdagMLinearOperator HermOp(Ds); + ImprovedStaggeredFermion5DD Ds(Umu,Umu,*FGrid,*FrbGrid,*UGrid,*UrbGrid,mass,c1,c2,u0); + MdagMLinearOperator HermOp(Ds); ConjugateGradient CG(1.0e-8,10000); int blockDim = 0; @@ -95,8 +89,8 @@ int main (int argc, char ** argv) std::cout << GridLogMessage << "****************************************************************** "< HermOp4d(Ds4d); + ImprovedStaggeredFermionD Ds4d(Umu,Umu,*UGrid,*UrbGrid,mass,c1,c2,u0); + MdagMLinearOperator HermOp4d(Ds4d); FermionField src4d(UGrid); random(pRNG,src4d); FermionField result4d(UGrid); result4d=Zero(); @@ -120,7 +114,6 @@ int main (int argc, char ** argv) std::cout << GridLogMessage << "************************************************************************ "< HermOp(Ds); + MdagMLinearOperator HermOp(Ds); CommunicationAvoidingGeneralisedMinimalResidual CAGMRES(1.0e-8, 10000, 25); CAGMRES(HermOp,src,result); diff --git a/tests/solver/Test_staggered_cg_prec.cc b/tests/solver/Test_staggered_cg_prec.cc index 854ef632..bc80da09 100644 --- a/tests/solver/Test_staggered_cg_prec.cc +++ b/tests/solver/Test_staggered_cg_prec.cc @@ -47,8 +47,8 @@ struct scal { int main (int argc, char ** argv) { - typedef typename ImprovedStaggeredFermionR::FermionField FermionField; - typename ImprovedStaggeredFermionR::ImplParams params; + typedef typename ImprovedStaggeredFermionD::FermionField FermionField; + typename ImprovedStaggeredFermionD::ImplParams params; Grid_init(&argc,&argv); @@ -74,14 +74,14 @@ int main (int argc, char ** argv) RealD c1=9.0/8.0; RealD c2=-1.0/24.0; RealD u0=1.0; - ImprovedStaggeredFermionR Ds(Umu,Umu,Grid,RBGrid,mass,c1,c2,u0); + ImprovedStaggeredFermionD Ds(Umu,Umu,Grid,RBGrid,mass,c1,c2,u0); FermionField res_o(&RBGrid); FermionField src_o(&RBGrid); pickCheckerboard(Odd,src_o,src); res_o=Zero(); - SchurStaggeredOperator HermOpEO(Ds); + SchurStaggeredOperator HermOpEO(Ds); ConjugateGradient CG(1.0e-8,10000); double t1=usecond(); CG(HermOpEO,src_o,res_o); diff --git a/tests/solver/Test_staggered_cg_schur.cc b/tests/solver/Test_staggered_cg_schur.cc index d8e5bdd4..5d7d073e 100644 --- a/tests/solver/Test_staggered_cg_schur.cc +++ b/tests/solver/Test_staggered_cg_schur.cc @@ -45,8 +45,8 @@ struct scal { int main (int argc, char ** argv) { - typedef typename ImprovedStaggeredFermionR::FermionField FermionField; - typename ImprovedStaggeredFermionR::ImplParams params; + typedef typename ImprovedStaggeredFermionD::FermionField FermionField; + typename ImprovedStaggeredFermionD::ImplParams params; Grid_init(&argc,&argv); Coordinate latt_size = GridDefaultLatt(); @@ -68,7 +68,7 @@ int main (int argc, char ** argv) RealD c1=9.0/8.0; RealD c2=-1.0/24.0; RealD u0=1.0; - ImprovedStaggeredFermionR Ds(Umu,Umu,Grid,RBGrid,mass,c1,c2,u0); + ImprovedStaggeredFermionD Ds(Umu,Umu,Grid,RBGrid,mass,c1,c2,u0); ConjugateGradient CG(1.0e-8,10000); SchurRedBlackStaggeredSolve SchurSolver(CG); diff --git a/tests/solver/Test_staggered_cg_unprec.cc b/tests/solver/Test_staggered_cg_unprec.cc index e023b910..466f1d04 100644 --- a/tests/solver/Test_staggered_cg_unprec.cc +++ b/tests/solver/Test_staggered_cg_unprec.cc @@ -47,9 +47,9 @@ struct scal { int main (int argc, char ** argv) { - typedef typename ImprovedStaggeredFermionR::FermionField FermionField; - typedef typename ImprovedStaggeredFermionR::ComplexField ComplexField; - typename ImprovedStaggeredFermionR::ImplParams params; + typedef typename ImprovedStaggeredFermionD::FermionField FermionField; + typedef typename ImprovedStaggeredFermionD::ComplexField ComplexField; + typename ImprovedStaggeredFermionD::ImplParams params; Grid_init(&argc,&argv); @@ -76,9 +76,9 @@ int main (int argc, char ** argv) RealD c1=9.0/8.0; RealD c2=-1.0/24.0; RealD u0=1.0; - ImprovedStaggeredFermionR Ds(Umu,Umu,Grid,RBGrid,mass,c1,c2,u0); + ImprovedStaggeredFermionD Ds(Umu,Umu,Grid,RBGrid,mass,c1,c2,u0); - MdagMLinearOperator HermOp(Ds); + MdagMLinearOperator HermOp(Ds); ConjugateGradient CG(1.0e-6,10000); CG(HermOp,src,result); diff --git a/tests/solver/Test_staggered_fcagmres_prec.cc b/tests/solver/Test_staggered_fcagmres_prec.cc index 692d688e..7587748e 100644 --- a/tests/solver/Test_staggered_fcagmres_prec.cc +++ b/tests/solver/Test_staggered_fcagmres_prec.cc @@ -33,9 +33,9 @@ using namespace Grid; int main (int argc, char ** argv) { - typedef typename ImprovedStaggeredFermionR::FermionField FermionField; - typedef typename ImprovedStaggeredFermionR::ComplexField ComplexField; - typename ImprovedStaggeredFermionR::ImplParams params; + typedef typename ImprovedStaggeredFermionD::FermionField FermionField; + typedef typename ImprovedStaggeredFermionD::ComplexField ComplexField; + typename ImprovedStaggeredFermionD::ImplParams params; Grid_init(&argc,&argv); @@ -62,9 +62,9 @@ int main (int argc, char ** argv) RealD c1=9.0/8.0; RealD c2=-1.0/24.0; RealD u0=1.0; - ImprovedStaggeredFermionR Ds(Umu,Umu,Grid,RBGrid,mass,c1,c2,u0); + ImprovedStaggeredFermionD Ds(Umu,Umu,Grid,RBGrid,mass,c1,c2,u0); - MdagMLinearOperator HermOp(Ds); + MdagMLinearOperator HermOp(Ds); TrivialPrecon simple; diff --git a/tests/solver/Test_staggered_fgmres_prec.cc b/tests/solver/Test_staggered_fgmres_prec.cc index fe6da67c..a3c65057 100644 --- a/tests/solver/Test_staggered_fgmres_prec.cc +++ b/tests/solver/Test_staggered_fgmres_prec.cc @@ -33,9 +33,9 @@ using namespace Grid; int main (int argc, char ** argv) { - typedef typename ImprovedStaggeredFermionR::FermionField FermionField; - typedef typename ImprovedStaggeredFermionR::ComplexField ComplexField; - typename ImprovedStaggeredFermionR::ImplParams params; + typedef typename ImprovedStaggeredFermionD::FermionField FermionField; + typedef typename ImprovedStaggeredFermionD::ComplexField ComplexField; + typename ImprovedStaggeredFermionD::ImplParams params; Grid_init(&argc,&argv); @@ -62,9 +62,9 @@ int main (int argc, char ** argv) RealD c1=9.0/8.0; RealD c2=-1.0/24.0; RealD u0=1.0; - ImprovedStaggeredFermionR Ds(Umu,Umu,Grid,RBGrid,mass,c1,c2,u0); + ImprovedStaggeredFermionD Ds(Umu,Umu,Grid,RBGrid,mass,c1,c2,u0); - MdagMLinearOperator HermOp(Ds); + MdagMLinearOperator HermOp(Ds); TrivialPrecon simple; diff --git a/tests/solver/Test_staggered_gmres_unprec.cc b/tests/solver/Test_staggered_gmres_unprec.cc index ec9d4608..abfeab75 100644 --- a/tests/solver/Test_staggered_gmres_unprec.cc +++ b/tests/solver/Test_staggered_gmres_unprec.cc @@ -33,9 +33,9 @@ using namespace Grid; int main (int argc, char ** argv) { - typedef typename ImprovedStaggeredFermionR::FermionField FermionField; - typedef typename ImprovedStaggeredFermionR::ComplexField ComplexField; - typename ImprovedStaggeredFermionR::ImplParams params; + typedef typename ImprovedStaggeredFermionD::FermionField FermionField; + typedef typename ImprovedStaggeredFermionD::ComplexField ComplexField; + typename ImprovedStaggeredFermionD::ImplParams params; Grid_init(&argc,&argv); @@ -62,9 +62,9 @@ int main (int argc, char ** argv) RealD c1=9.0/8.0; RealD c2=-1.0/24.0; RealD u0=1.0; - ImprovedStaggeredFermionR Ds(Umu,Umu,Grid,RBGrid,mass,c1,c2,u0); + ImprovedStaggeredFermionD Ds(Umu,Umu,Grid,RBGrid,mass,c1,c2,u0); - MdagMLinearOperator HermOp(Ds); + MdagMLinearOperator HermOp(Ds); GeneralisedMinimalResidual GMRES(1.0e-8, 10000, 25); GMRES(HermOp,src,result); diff --git a/tests/solver/Test_staggered_mr_unprec.cc b/tests/solver/Test_staggered_mr_unprec.cc index ddbb8de3..1cdd60f9 100644 --- a/tests/solver/Test_staggered_mr_unprec.cc +++ b/tests/solver/Test_staggered_mr_unprec.cc @@ -33,9 +33,9 @@ using namespace Grid; int main (int argc, char ** argv) { - typedef typename ImprovedStaggeredFermionR::FermionField FermionField; - typedef typename ImprovedStaggeredFermionR::ComplexField ComplexField; - typename ImprovedStaggeredFermionR::ImplParams params; + typedef typename ImprovedStaggeredFermionD::FermionField FermionField; + typedef typename ImprovedStaggeredFermionD::ComplexField ComplexField; + typename ImprovedStaggeredFermionD::ImplParams params; Grid_init(&argc,&argv); @@ -62,9 +62,9 @@ int main (int argc, char ** argv) RealD c1=9.0/8.0; RealD c2=-1.0/24.0; RealD u0=1.0; - ImprovedStaggeredFermionR Ds(Umu,Umu,Grid,RBGrid,mass,c1,c2,u0); + ImprovedStaggeredFermionD Ds(Umu,Umu,Grid,RBGrid,mass,c1,c2,u0); - MdagMLinearOperator HermOp(Ds); + MdagMLinearOperator HermOp(Ds); MinimalResidual MR(1.0e-8,10000,0.8); MR(HermOp,src,result); diff --git a/tests/solver/Test_staggered_multishift.cc b/tests/solver/Test_staggered_multishift.cc index 856f0b87..9f6b37d6 100644 --- a/tests/solver/Test_staggered_multishift.cc +++ b/tests/solver/Test_staggered_multishift.cc @@ -46,8 +46,8 @@ struct scal { int main (int argc, char ** argv) { - typedef typename ImprovedStaggeredFermionR::FermionField FermionField; - typename ImprovedStaggeredFermionR::ImplParams params; + typedef typename ImprovedStaggeredFermionD::FermionField FermionField; + typename ImprovedStaggeredFermionD::ImplParams params; Grid_init(&argc,&argv); @@ -90,8 +90,8 @@ int main (int argc, char ** argv) RealD c2=-1.0/24.0; RealD u0=1.0; - ImprovedStaggeredFermionR Ds(Umu,Umu,Grid,RBGrid,mass,c1,c2,u0); - SchurStaggeredOperator HermOpEO(Ds); + ImprovedStaggeredFermionD Ds(Umu,Umu,Grid,RBGrid,mass,c1,c2,u0); + SchurStaggeredOperator HermOpEO(Ds); FermionField src(&Grid); random(pRNG,src); FermionField src_o(&RBGrid); diff --git a/tests/solver/Test_wilson_cagmres_unprec.cc b/tests/solver/Test_wilson_cagmres_unprec.cc index 226d0719..80381a27 100644 --- a/tests/solver/Test_wilson_cagmres_unprec.cc +++ b/tests/solver/Test_wilson_cagmres_unprec.cc @@ -55,9 +55,9 @@ int main (int argc, char ** argv) } RealD mass=0.5; - WilsonFermionR Dw(Umu,Grid,RBGrid,mass); + WilsonFermionD Dw(Umu,Grid,RBGrid,mass); - MdagMLinearOperator HermOp(Dw); + MdagMLinearOperator HermOp(Dw); CommunicationAvoidingGeneralisedMinimalResidual CAGMRES(1.0e-8, 10000, 25); CAGMRES(HermOp,src,result); diff --git a/tests/solver/Test_wilson_cg_prec.cc b/tests/solver/Test_wilson_cg_prec.cc index a28e014e..cb480e8c 100644 --- a/tests/solver/Test_wilson_cg_prec.cc +++ b/tests/solver/Test_wilson_cg_prec.cc @@ -69,7 +69,7 @@ int main (int argc, char ** argv) } RealD mass=0.5; - WilsonFermionR Dw(Umu,Grid,RBGrid,mass); + WilsonFermionD Dw(Umu,Grid,RBGrid,mass); // HermitianOperator HermOp(Dw); // ConjugateGradient CG(1.0e-8,10000); @@ -80,7 +80,7 @@ int main (int argc, char ** argv) pickCheckerboard(Odd,src_o,src); result_o=Zero(); - SchurDiagMooeeOperator HermOpEO(Dw); + SchurDiagMooeeOperator HermOpEO(Dw); ConjugateGradient CG(1.0e-8,10000); CG(HermOpEO,src_o,result_o); diff --git a/tests/solver/Test_wilson_cg_schur.cc b/tests/solver/Test_wilson_cg_schur.cc index 97482131..601eb6b2 100644 --- a/tests/solver/Test_wilson_cg_schur.cc +++ b/tests/solver/Test_wilson_cg_schur.cc @@ -64,7 +64,7 @@ int main (int argc, char ** argv) LatticeFermion resid(&Grid); RealD mass=0.5; - WilsonFermionR Dw(Umu,Grid,RBGrid,mass); + WilsonFermionD Dw(Umu,Grid,RBGrid,mass); ConjugateGradient CG(1.0e-8,10000); SchurRedBlackDiagMooeeSolve SchurSolver(CG); diff --git a/tests/solver/Test_wilson_cg_unprec.cc b/tests/solver/Test_wilson_cg_unprec.cc index 07f6ba7b..f1ecebd3 100644 --- a/tests/solver/Test_wilson_cg_unprec.cc +++ b/tests/solver/Test_wilson_cg_unprec.cc @@ -68,9 +68,9 @@ int main (int argc, char ** argv) } RealD mass=0.5; - WilsonFermionR Dw(Umu,Grid,RBGrid,mass); + WilsonFermionD Dw(Umu,Grid,RBGrid,mass); - MdagMLinearOperator HermOp(Dw); + MdagMLinearOperator HermOp(Dw); ConjugateGradient CG(1.0e-8,10000); CG(HermOp,src,result); diff --git a/tests/solver/Test_wilson_cr_unprec.cc b/tests/solver/Test_wilson_cr_unprec.cc index 67510a23..a8b49afd 100644 --- a/tests/solver/Test_wilson_cr_unprec.cc +++ b/tests/solver/Test_wilson_cr_unprec.cc @@ -70,9 +70,9 @@ int main (int argc, char ** argv) } RealD mass=0.5; - WilsonFermionR Dw(Umu,Grid,RBGrid,mass); + WilsonFermionD Dw(Umu,Grid,RBGrid,mass); - MdagMLinearOperator HermOp(Dw); + MdagMLinearOperator HermOp(Dw); ConjugateResidual MCR(1.0e-8,10000); diff --git a/tests/solver/Test_wilson_fcagmres_prec.cc b/tests/solver/Test_wilson_fcagmres_prec.cc index d2a1acf4..66f9f518 100644 --- a/tests/solver/Test_wilson_fcagmres_prec.cc +++ b/tests/solver/Test_wilson_fcagmres_prec.cc @@ -55,9 +55,9 @@ int main (int argc, char ** argv) } RealD mass=0.5; - WilsonFermionR Dw(Umu,Grid,RBGrid,mass); + WilsonFermionD Dw(Umu,Grid,RBGrid,mass); - MdagMLinearOperator HermOp(Dw); + MdagMLinearOperator HermOp(Dw); TrivialPrecon simple; diff --git a/tests/solver/Test_wilson_fgmres_prec.cc b/tests/solver/Test_wilson_fgmres_prec.cc index 02d8f9f2..61368636 100644 --- a/tests/solver/Test_wilson_fgmres_prec.cc +++ b/tests/solver/Test_wilson_fgmres_prec.cc @@ -55,9 +55,9 @@ int main (int argc, char ** argv) } RealD mass=0.5; - WilsonFermionR Dw(Umu,Grid,RBGrid,mass); + WilsonFermionD Dw(Umu,Grid,RBGrid,mass); - MdagMLinearOperator HermOp(Dw); + MdagMLinearOperator HermOp(Dw); TrivialPrecon simple; diff --git a/tests/solver/Test_wilson_gmres_unprec.cc b/tests/solver/Test_wilson_gmres_unprec.cc index e52c047f..5f2728ce 100644 --- a/tests/solver/Test_wilson_gmres_unprec.cc +++ b/tests/solver/Test_wilson_gmres_unprec.cc @@ -55,9 +55,9 @@ int main (int argc, char ** argv) } RealD mass=0.5; - WilsonFermionR Dw(Umu,Grid,RBGrid,mass); + WilsonFermionD Dw(Umu,Grid,RBGrid,mass); - MdagMLinearOperator HermOp(Dw); + MdagMLinearOperator HermOp(Dw); GeneralisedMinimalResidual GMRES(1.0e-8, 10000, 25); GMRES(HermOp,src,result); diff --git a/tests/solver/Test_wilson_mg.cc b/tests/solver/Test_wilson_mg.cc index 99a16e19..875bf32a 100644 --- a/tests/solver/Test_wilson_mg.cc +++ b/tests/solver/Test_wilson_mg.cc @@ -77,16 +77,16 @@ int main(int argc, char **argv) { // Note: We do chiral doubling, so actually only nbasis/2 full basis vectors are used const int nbasis = 40; - WilsonFermionR Dw(Umu, *FGrid, *FrbGrid, mass); + WilsonFermionD Dw(Umu, *FGrid, *FrbGrid, mass); - MdagMLinearOperator MdagMOpDw(Dw); + MdagMLinearOperator MdagMOpDw(Dw); std::cout << GridLogMessage << "**************************************************" << std::endl; std::cout << GridLogMessage << "Testing Multigrid for Wilson" << std::endl; std::cout << GridLogMessage << "**************************************************" << std::endl; TrivialPrecon TrivialPrecon; - auto MGPreconDw = createMGInstance(mgParams, levelInfo, Dw, Dw); + auto MGPreconDw = createMGInstance(mgParams, levelInfo, Dw, Dw); MGPreconDw->setup(); diff --git a/tests/solver/Test_wilson_mr_unprec.cc b/tests/solver/Test_wilson_mr_unprec.cc index fef83794..c71392e4 100644 --- a/tests/solver/Test_wilson_mr_unprec.cc +++ b/tests/solver/Test_wilson_mr_unprec.cc @@ -55,9 +55,9 @@ int main (int argc, char ** argv) } RealD mass=0.5; - WilsonFermionR Dw(Umu,Grid,RBGrid,mass); + WilsonFermionD Dw(Umu,Grid,RBGrid,mass); - MdagMLinearOperator HermOp(Dw); + MdagMLinearOperator HermOp(Dw); MinimalResidual MR(1.0e-8,10000,0.8); MR(HermOp,src,result); diff --git a/tests/solver/Test_wilson_qmr_unprec.cc b/tests/solver/Test_wilson_qmr_unprec.cc index c0b42a28..0cd132e4 100644 --- a/tests/solver/Test_wilson_qmr_unprec.cc +++ b/tests/solver/Test_wilson_qmr_unprec.cc @@ -56,9 +56,9 @@ int main (int argc, char ** argv) QuasiMinimalResidual QMR(1.0e-8,10000); RealD mass=0.0; - WilsonFermionR Dw(Umu,*Grid,*rbGrid,mass); + WilsonFermionD Dw(Umu,*Grid,*rbGrid,mass); - NonHermitianLinearOperator NonHermOp(Dw); + NonHermitianLinearOperator NonHermOp(Dw); QMR(NonHermOp,src,result); Grid_finalize(); diff --git a/tests/solver/Test_wilsonclover_bicgstab_prec.cc b/tests/solver/Test_wilsonclover_bicgstab_prec.cc index b382b1bb..d265e687 100644 --- a/tests/solver/Test_wilsonclover_bicgstab_prec.cc +++ b/tests/solver/Test_wilsonclover_bicgstab_prec.cc @@ -70,14 +70,14 @@ int main (int argc, char ** argv) RealD mass = -0.1; RealD csw_r = 1.0; RealD csw_t = 1.0; - WilsonCloverFermionR Dw(Umu, Grid, RBGrid, mass, csw_r, csw_t); + WilsonCloverFermionD Dw(Umu, Grid, RBGrid, mass, csw_r, csw_t); LatticeFermion src_o(&RBGrid); LatticeFermion result_o(&RBGrid); pickCheckerboard(Odd, src_o, src); result_o = Zero(); - NonHermitianSchurDiagMooeeOperator HermOp(Dw); + NonHermitianSchurDiagMooeeOperator HermOp(Dw); BiCGSTAB CG(1.0e-8,10000); CG(HermOp, src_o, result_o); diff --git a/tests/solver/Test_wilsonclover_bicgstab_schur.cc b/tests/solver/Test_wilsonclover_bicgstab_schur.cc index f09d7cd1..38bfdb72 100644 --- a/tests/solver/Test_wilsonclover_bicgstab_schur.cc +++ b/tests/solver/Test_wilsonclover_bicgstab_schur.cc @@ -70,7 +70,7 @@ int main (int argc, char ** argv) RealD mass = -0.1; RealD csw_r = 1.0; RealD csw_t = 1.0; - WilsonCloverFermionR Dw(Umu, Grid, RBGrid, mass, csw_r, csw_t); + WilsonCloverFermionD Dw(Umu, Grid, RBGrid, mass, csw_r, csw_t); BiCGSTAB CG(1.0e-8,10000); NonHermitianSchurRedBlackDiagMooeeSolve SchurSolver(CG); diff --git a/tests/solver/Test_wilsonclover_bicgstab_unprec.cc b/tests/solver/Test_wilsonclover_bicgstab_unprec.cc index f546a744..48f194b0 100644 --- a/tests/solver/Test_wilsonclover_bicgstab_unprec.cc +++ b/tests/solver/Test_wilsonclover_bicgstab_unprec.cc @@ -70,9 +70,9 @@ int main (int argc, char ** argv) RealD mass = -0.1; RealD csw_r = 1.0; RealD csw_t = 1.0; - WilsonCloverFermionR Dw(Umu, Grid, RBGrid, mass, csw_r, csw_t); + WilsonCloverFermionD Dw(Umu, Grid, RBGrid, mass, csw_r, csw_t); - NonHermitianLinearOperator HermOp(Dw); + NonHermitianLinearOperator HermOp(Dw); BiCGSTAB CG(1.0e-8,10000); CG(HermOp,src,result); diff --git a/tests/solver/Test_wilsonclover_cagmres_unprec.cc b/tests/solver/Test_wilsonclover_cagmres_unprec.cc index a8818168..8b264139 100644 --- a/tests/solver/Test_wilsonclover_cagmres_unprec.cc +++ b/tests/solver/Test_wilsonclover_cagmres_unprec.cc @@ -44,8 +44,8 @@ int main (int argc, char ** argv) std::vector seeds({1,2,3,4}); GridParallelRNG pRNG(&Grid); pRNG.SeedFixedIntegers(seeds); - typedef typename WilsonCloverFermionR::FermionField FermionField; - typename WilsonCloverFermionR::ImplParams params; + typedef typename WilsonCloverFermionD::FermionField FermionField; + typename WilsonCloverFermionD::ImplParams params; WilsonAnisotropyCoefficients anis; FermionField src(&Grid); random(pRNG,src); @@ -61,9 +61,9 @@ int main (int argc, char ** argv) RealD mass = 0.5; RealD csw_r = 1.0; RealD csw_t = 1.0; - WilsonCloverFermionR Dwc(Umu,Grid,RBGrid,mass,csw_r,csw_t,anis,params); + WilsonCloverFermionD Dwc(Umu,Grid,RBGrid,mass,csw_r,csw_t,anis,params); - MdagMLinearOperator HermOp(Dwc); + MdagMLinearOperator HermOp(Dwc); CommunicationAvoidingGeneralisedMinimalResidual CAGMRES(1.0e-8, 10000, 25); CAGMRES(HermOp,src,result); diff --git a/tests/solver/Test_wilsonclover_cg_prec.cc b/tests/solver/Test_wilsonclover_cg_prec.cc index abf64a1f..a0b3a712 100644 --- a/tests/solver/Test_wilsonclover_cg_prec.cc +++ b/tests/solver/Test_wilsonclover_cg_prec.cc @@ -72,10 +72,10 @@ int main (int argc, char ** argv) RealD csw_r = 1.0; RealD csw_t = 1.0; RealD cF = 1.0; - WilsonCloverFermionR Dw(Umu, Grid, RBGrid, mass, csw_r, csw_t); - CompactWilsonCloverFermionR Dw_compact(Umu, Grid, RBGrid, mass, csw_r, csw_t, 0.0); - WilsonExpCloverFermionR Dwe(Umu, Grid, RBGrid, mass, csw_r, csw_t); - CompactWilsonExpCloverFermionR Dwe_compact(Umu, Grid, RBGrid, mass, csw_r, csw_t, 0.0); + WilsonCloverFermionD Dw(Umu, Grid, RBGrid, mass, csw_r, csw_t); + CompactWilsonCloverFermionD Dw_compact(Umu, Grid, RBGrid, mass, csw_r, csw_t, 0.0); + WilsonExpCloverFermionD Dwe(Umu, Grid, RBGrid, mass, csw_r, csw_t); + CompactWilsonExpCloverFermionD Dwe_compact(Umu, Grid, RBGrid, mass, csw_r, csw_t, 0.0); // HermitianOperator HermOp(Dw); @@ -89,22 +89,22 @@ int main (int argc, char ** argv) ConjugateGradient CG(1.0e-8,10000); std::cout << GridLogMessage << "Testing Wilson Clover" << std::endl; - SchurDiagMooeeOperator HermOpEO(Dw); + SchurDiagMooeeOperator HermOpEO(Dw); result_o=Zero(); CG(HermOpEO,src_o,result_o); std::cout << GridLogMessage << "Testing Compact Wilson Clover" << std::endl; - SchurDiagMooeeOperator HermOpEO_compact(Dw_compact); + SchurDiagMooeeOperator HermOpEO_compact(Dw_compact); result_o=Zero(); CG(HermOpEO_compact,src_o,result_o); std::cout << GridLogMessage << "Testing Wilson Exp Clover" << std::endl; - SchurDiagMooeeOperator HermOpEO_exp(Dwe); + SchurDiagMooeeOperator HermOpEO_exp(Dwe); result_o=Zero(); CG(HermOpEO_exp,src_o,result_o); std::cout << GridLogMessage << "Testing Compact Wilson Exp Clover" << std::endl; - SchurDiagMooeeOperator HermOpEO_exp_compact(Dwe_compact); + SchurDiagMooeeOperator HermOpEO_exp_compact(Dwe_compact); result_o=Zero(); CG(HermOpEO_exp_compact,src_o,result_o); diff --git a/tests/solver/Test_wilsonclover_cg_schur.cc b/tests/solver/Test_wilsonclover_cg_schur.cc index 50d06af7..50a1c4a6 100644 --- a/tests/solver/Test_wilsonclover_cg_schur.cc +++ b/tests/solver/Test_wilsonclover_cg_schur.cc @@ -72,22 +72,22 @@ int main (int argc, char ** argv) RealD cF = 1.0; std::cout << GridLogMessage << "Testing Wilson Clover" << std::endl; - WilsonCloverFermionR Dw(Umu, Grid, RBGrid, mass, csw_r, csw_t); + WilsonCloverFermionD Dw(Umu, Grid, RBGrid, mass, csw_r, csw_t); result=Zero(); SchurSolver(Dw,src,result); std::cout << GridLogMessage << "Testing Compact Wilson Clover" << std::endl; - CompactWilsonCloverFermionR Dw_compact(Umu, Grid, RBGrid, mass, csw_r, csw_t, 0.0); + CompactWilsonCloverFermionD Dw_compact(Umu, Grid, RBGrid, mass, csw_r, csw_t, 0.0); result=Zero(); SchurSolver(Dw_compact,src,result); std::cout << GridLogMessage << "Testing Wilson Exp Clover" << std::endl; - WilsonExpCloverFermionR Dwe(Umu, Grid, RBGrid, mass, csw_r, csw_t); + WilsonExpCloverFermionD Dwe(Umu, Grid, RBGrid, mass, csw_r, csw_t); result=Zero(); SchurSolver(Dwe,src,result); std::cout << GridLogMessage << "Testing Compact Wilson Exp Clover" << std::endl; - CompactWilsonExpCloverFermionR Dwe_compact(Umu, Grid, RBGrid, mass, csw_r, csw_t, 0.0); + CompactWilsonExpCloverFermionD Dwe_compact(Umu, Grid, RBGrid, mass, csw_r, csw_t, 0.0); result=Zero(); SchurSolver(Dwe_compact,src,result); diff --git a/tests/solver/Test_wilsonclover_cg_unprec.cc b/tests/solver/Test_wilsonclover_cg_unprec.cc index 2a859f11..25cf07ee 100644 --- a/tests/solver/Test_wilsonclover_cg_unprec.cc +++ b/tests/solver/Test_wilsonclover_cg_unprec.cc @@ -71,31 +71,31 @@ int main (int argc, char ** argv) RealD csw_r = 1.0; RealD csw_t = 1.0; RealD cF = 1.0; - WilsonCloverFermionR Dw(Umu, Grid, RBGrid, mass, csw_r, csw_t); - CompactWilsonCloverFermionR Dw_compact(Umu, Grid, RBGrid, mass, csw_r, csw_t, 0.0); - WilsonExpCloverFermionR Dwe(Umu, Grid, RBGrid, mass, csw_r, csw_t); - CompactWilsonExpCloverFermionR Dwe_compact(Umu, Grid, RBGrid, mass, csw_r, csw_t, 0.0); + WilsonCloverFermionD Dw(Umu, Grid, RBGrid, mass, csw_r, csw_t); + CompactWilsonCloverFermionD Dw_compact(Umu, Grid, RBGrid, mass, csw_r, csw_t, 0.0); + WilsonExpCloverFermionD Dwe(Umu, Grid, RBGrid, mass, csw_r, csw_t); + CompactWilsonExpCloverFermionD Dwe_compact(Umu, Grid, RBGrid, mass, csw_r, csw_t, 0.0); ConjugateGradient CG(1.0e-8,10000); std::cout << GridLogMessage << "Testing Wilson Clover" << std::endl; - MdagMLinearOperator HermOp(Dw); + MdagMLinearOperator HermOp(Dw); result=Zero(); CG(HermOp,src,result); std::cout << GridLogMessage << "Testing Compact Wilson Clover" << std::endl; - MdagMLinearOperator HermOp_compact(Dw_compact); + MdagMLinearOperator HermOp_compact(Dw_compact); result=Zero(); CG(HermOp_compact,src,result); std::cout << GridLogMessage << "Testing Wilson Exp Clover" << std::endl; - MdagMLinearOperator HermOp_exp(Dwe); + MdagMLinearOperator HermOp_exp(Dwe); result=Zero(); CG(HermOp_exp,src,result); std::cout << GridLogMessage << "Testing Compact Wilson Exp Clover" << std::endl; - MdagMLinearOperator HermOp_exp_compact(Dwe_compact); + MdagMLinearOperator HermOp_exp_compact(Dwe_compact); result=Zero(); CG(HermOp_exp_compact,src,result); diff --git a/tests/solver/Test_wilsonclover_fcagmres_prec.cc b/tests/solver/Test_wilsonclover_fcagmres_prec.cc index 1a294821..77b2afff 100644 --- a/tests/solver/Test_wilsonclover_fcagmres_prec.cc +++ b/tests/solver/Test_wilsonclover_fcagmres_prec.cc @@ -44,8 +44,8 @@ int main (int argc, char ** argv) std::vector seeds({1,2,3,4}); GridParallelRNG pRNG(&Grid); pRNG.SeedFixedIntegers(seeds); - typedef typename WilsonCloverFermionR::FermionField FermionField; - typename WilsonCloverFermionR::ImplParams params; + typedef typename WilsonCloverFermionD::FermionField FermionField; + typename WilsonCloverFermionD::ImplParams params; WilsonAnisotropyCoefficients anis; FermionField src(&Grid); random(pRNG,src); @@ -61,9 +61,9 @@ int main (int argc, char ** argv) RealD mass = 0.5; RealD csw_r = 1.0; RealD csw_t = 1.0; - WilsonCloverFermionR Dwc(Umu,Grid,RBGrid,mass,csw_r,csw_t,anis,params); + WilsonCloverFermionD Dwc(Umu,Grid,RBGrid,mass,csw_r,csw_t,anis,params); - MdagMLinearOperator HermOp(Dwc); + MdagMLinearOperator HermOp(Dwc); TrivialPrecon simple; diff --git a/tests/solver/Test_wilsonclover_fgmres_prec.cc b/tests/solver/Test_wilsonclover_fgmres_prec.cc index 15bb4136..0f48871f 100644 --- a/tests/solver/Test_wilsonclover_fgmres_prec.cc +++ b/tests/solver/Test_wilsonclover_fgmres_prec.cc @@ -44,8 +44,8 @@ int main (int argc, char ** argv) std::vector seeds({1,2,3,4}); GridParallelRNG pRNG(&Grid); pRNG.SeedFixedIntegers(seeds); - typedef typename WilsonCloverFermionR::FermionField FermionField; - typename WilsonCloverFermionR::ImplParams params; + typedef typename WilsonCloverFermionD::FermionField FermionField; + typename WilsonCloverFermionD::ImplParams params; WilsonAnisotropyCoefficients anis; FermionField src(&Grid); random(pRNG,src); @@ -61,9 +61,9 @@ int main (int argc, char ** argv) RealD mass = 0.5; RealD csw_r = 1.0; RealD csw_t = 1.0; - WilsonCloverFermionR Dwc(Umu,Grid,RBGrid,mass,csw_r,csw_t,anis,params); + WilsonCloverFermionD Dwc(Umu,Grid,RBGrid,mass,csw_r,csw_t,anis,params); - MdagMLinearOperator HermOp(Dwc); + MdagMLinearOperator HermOp(Dwc); TrivialPrecon simple; diff --git a/tests/solver/Test_wilsonclover_gmres_unprec.cc b/tests/solver/Test_wilsonclover_gmres_unprec.cc index 00f33382..b660d716 100644 --- a/tests/solver/Test_wilsonclover_gmres_unprec.cc +++ b/tests/solver/Test_wilsonclover_gmres_unprec.cc @@ -44,8 +44,8 @@ int main (int argc, char ** argv) std::vector seeds({1,2,3,4}); GridParallelRNG pRNG(&Grid); pRNG.SeedFixedIntegers(seeds); - typedef typename WilsonCloverFermionR::FermionField FermionField; - typename WilsonCloverFermionR::ImplParams params; + typedef typename WilsonCloverFermionD::FermionField FermionField; + typename WilsonCloverFermionD::ImplParams params; WilsonAnisotropyCoefficients anis; FermionField src(&Grid); random(pRNG,src); @@ -61,9 +61,9 @@ int main (int argc, char ** argv) RealD mass = 0.5; RealD csw_r = 1.0; RealD csw_t = 1.0; - WilsonCloverFermionR Dwc(Umu,Grid,RBGrid,mass,csw_r,csw_t,anis,params); + WilsonCloverFermionD Dwc(Umu,Grid,RBGrid,mass,csw_r,csw_t,anis,params); - MdagMLinearOperator HermOp(Dwc); + MdagMLinearOperator HermOp(Dwc); GeneralisedMinimalResidual GMRES(1.0e-8, 10000, 25); GMRES(HermOp,src,result); diff --git a/tests/solver/Test_wilsonclover_mg.cc b/tests/solver/Test_wilsonclover_mg.cc index 605d225d..1b0e8bb7 100644 --- a/tests/solver/Test_wilsonclover_mg.cc +++ b/tests/solver/Test_wilsonclover_mg.cc @@ -80,16 +80,16 @@ int main(int argc, char **argv) { // Note: We do chiral doubling, so actually only nbasis/2 full basis vectors are used const int nbasis = 40; - WilsonCloverFermionR Dwc(Umu, *FGrid, *FrbGrid, mass, csw_r, csw_t); + WilsonCloverFermionD Dwc(Umu, *FGrid, *FrbGrid, mass, csw_r, csw_t); - MdagMLinearOperator MdagMOpDwc(Dwc); + MdagMLinearOperator MdagMOpDwc(Dwc); std::cout << GridLogMessage << "**************************************************" << std::endl; std::cout << GridLogMessage << "Testing Multigrid for Wilson Clover" << std::endl; std::cout << GridLogMessage << "**************************************************" << std::endl; TrivialPrecon TrivialPrecon; - auto MGPreconDwc = createMGInstance(mgParams, levelInfo, Dwc, Dwc); + auto MGPreconDwc = createMGInstance(mgParams, levelInfo, Dwc, Dwc); MGPreconDwc->setup(); diff --git a/tests/solver/Test_wilsonclover_mr_unprec.cc b/tests/solver/Test_wilsonclover_mr_unprec.cc index ab49ec1f..be721236 100644 --- a/tests/solver/Test_wilsonclover_mr_unprec.cc +++ b/tests/solver/Test_wilsonclover_mr_unprec.cc @@ -44,8 +44,8 @@ int main (int argc, char ** argv) std::vector seeds({1,2,3,4}); GridParallelRNG pRNG(&Grid); pRNG.SeedFixedIntegers(seeds); - typedef typename WilsonCloverFermionR::FermionField FermionField; - typename WilsonCloverFermionR::ImplParams params; + typedef typename WilsonCloverFermionD::FermionField FermionField; + typename WilsonCloverFermionD::ImplParams params; WilsonAnisotropyCoefficients anis; FermionField src(&Grid); random(pRNG,src); @@ -61,9 +61,9 @@ int main (int argc, char ** argv) RealD mass = 0.5; RealD csw_r = 1.0; RealD csw_t = 1.0; - WilsonCloverFermionR Dwc(Umu,Grid,RBGrid,mass,csw_r,csw_t,anis,params); + WilsonCloverFermionD Dwc(Umu,Grid,RBGrid,mass,csw_r,csw_t,anis,params); - MdagMLinearOperator HermOp(Dwc); + MdagMLinearOperator HermOp(Dwc); MinimalResidual MR(1.0e-8,10000,0.8); MR(HermOp,src,result); diff --git a/tests/solver/Test_zmobius_cg_prec.cc b/tests/solver/Test_zmobius_cg_prec.cc index 6b007afc..7f1f98b8 100644 --- a/tests/solver/Test_zmobius_cg_prec.cc +++ b/tests/solver/Test_zmobius_cg_prec.cc @@ -101,7 +101,7 @@ int main(int argc, char** argv) { omegas.push_back( std::complex(0.0686324988446592,-0.0550658530827402) ); #endif - ZMobiusFermionR Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mass, M5, omegas,1.,0.); + ZMobiusFermionD Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mass, M5, omegas,1.,0.); LatticeFermion src_o(FrbGrid); LatticeFermion result_o(FrbGrid); @@ -110,7 +110,7 @@ int main(int argc, char** argv) { GridStopWatch CGTimer; - SchurDiagMooeeOperator HermOpEO(Ddwf); + SchurDiagMooeeOperator HermOpEO(Ddwf); ConjugateGradient CG(1.0e-8, 10000, 0);// switch off the assert CGTimer.Start(); @@ -121,7 +121,6 @@ int main(int argc, char** argv) { << std::endl; std::cout << GridLogMessage << "######## Dhop calls summary" << std::endl; - Ddwf.Report(); Grid_finalize(); }