mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-03 21:44:33 +00:00 
			
		
		
		
	Merge branch 'feature/dirichlet' into feature/block_lanczos22
This commit is contained in:
		@@ -28,19 +28,21 @@ directory
 | 
			
		||||
/*  END LEGAL */
 | 
			
		||||
#include <Grid/Grid.h>
 | 
			
		||||
 | 
			
		||||
#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<PeriodicGimplR> Checkpoint(CPparams);
 | 
			
		||||
 | 
			
		||||
  Grid_finalize();
 | 
			
		||||
}
 | 
			
		||||
#else
 | 
			
		||||
int main(int argc,char **argv){ return 0;};
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -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<ZMobiusFermionR,LatticeFermion> HermOp(Ddwf);
 | 
			
		||||
  ZMobiusFermionD Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mass, M5, Params.omega,1.,0.);
 | 
			
		||||
  SchurDiagTwoOperator<ZMobiusFermionD,LatticeFermion> HermOp(Ddwf);
 | 
			
		||||
 | 
			
		||||
  // Eigenvector storage
 | 
			
		||||
  LanczosParams fine  =Params.FineParams;  
 | 
			
		||||
 
 | 
			
		||||
@@ -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<ZMobiusFermionR,LatticeFermion> HermOp(Ddwf);
 | 
			
		||||
  ZMobiusFermionD Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mass, M5, Params.omega,1.,0.);
 | 
			
		||||
  SchurDiagTwoOperator<ZMobiusFermionD,LatticeFermion> HermOp(Ddwf);
 | 
			
		||||
 | 
			
		||||
  // Eigenvector storage
 | 
			
		||||
  LanczosParams fine  =Params.FineParams;  
 | 
			
		||||
 
 | 
			
		||||
@@ -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<ZMobiusFermionR,LatticeFermion> HermOp(Ddwf);
 | 
			
		||||
  ZMobiusFermionD Ddwf(Umu, *FGrid, *FrbGrid, *UGrid, *UrbGrid, mass, M5, Params.omega,1.,0.);
 | 
			
		||||
  SchurDiagTwoOperator<ZMobiusFermionD,LatticeFermion> HermOp(Ddwf);
 | 
			
		||||
 | 
			
		||||
  // Eigenvector storage
 | 
			
		||||
  LanczosParams fine  =Params.FineParams;  
 | 
			
		||||
 
 | 
			
		||||
@@ -51,6 +51,8 @@ struct Setup<GparityMobiusFermionF>{
 | 
			
		||||
template<>
 | 
			
		||||
struct Setup<DomainWallFermionF>{
 | 
			
		||||
  static DomainWallFermionF* getAction(LatticeGaugeFieldF &Umu,
 | 
			
		||||
struct Setup<DomainWallFermionD>{
 | 
			
		||||
  static DomainWallFermionD* getAction(LatticeGaugeField &Umu,
 | 
			
		||||
					  GridCartesian* FGrid, GridRedBlackCartesian* FrbGrid, GridCartesian* UGrid, GridRedBlackCartesian* UrbGrid){
 | 
			
		||||
    RealD mass=0.00054;
 | 
			
		||||
    RealD M5=1.8;
 | 
			
		||||
 
 | 
			
		||||
@@ -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.; }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user