mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-10-31 12:04:33 +00:00 
			
		
		
		
	Namespace changes; need to simplify the EOFA as too many cases and duplicated from Mobius
This commit is contained in:
		| @@ -26,22 +26,21 @@ with this program; if not, write to the Free Software Foundation, Inc., | |||||||
|  |  | ||||||
| See the full license in the file "LICENSE" in the top level distribution directory | See the full license in the file "LICENSE" in the top level distribution directory | ||||||
| *************************************************************************************/ | *************************************************************************************/ | ||||||
| /*  END LEGAL */ | 			   /*  END LEGAL */ | ||||||
| #ifndef  GRID_QCD_MOBIUS_EOFA_FERMION_H | #ifndef  GRID_QCD_MOBIUS_EOFA_FERMION_H | ||||||
| #define  GRID_QCD_MOBIUS_EOFA_FERMION_H | #define  GRID_QCD_MOBIUS_EOFA_FERMION_H | ||||||
|  |  | ||||||
| #include <Grid/qcd/action/fermion/AbstractEOFAFermion.h> | #include <Grid/qcd/action/fermion/AbstractEOFAFermion.h> | ||||||
|  |  | ||||||
| namespace Grid { | NAMESPACE_BEGIN(Grid); | ||||||
| namespace QCD { |  | ||||||
|  |  | ||||||
|   template<class Impl> | template<class Impl> | ||||||
|   class MobiusEOFAFermion : public AbstractEOFAFermion<Impl> | class MobiusEOFAFermion : public AbstractEOFAFermion<Impl> | ||||||
|   { | { | ||||||
|     public: | public: | ||||||
|   INHERIT_IMPL_TYPES(Impl); |   INHERIT_IMPL_TYPES(Impl); | ||||||
|  |  | ||||||
|     public: | public: | ||||||
|   // Shift operator coefficients for red-black preconditioned Mobius EOFA |   // Shift operator coefficients for red-black preconditioned Mobius EOFA | ||||||
|   std::vector<Coeff_t> Mooee_shift; |   std::vector<Coeff_t> Mooee_shift; | ||||||
|   std::vector<Coeff_t> MooeeInv_shift_lc; |   std::vector<Coeff_t> MooeeInv_shift_lc; | ||||||
| @@ -106,24 +105,25 @@ namespace QCD { | |||||||
| 		    RealD _mq1, RealD _mq2, RealD _mq3, RealD _shift, int pm, | 		    RealD _mq1, RealD _mq2, RealD _mq3, RealD _shift, int pm, | ||||||
| 		    RealD _M5, RealD _b, RealD _c, const ImplParams& p=ImplParams()); | 		    RealD _M5, RealD _b, RealD _c, const ImplParams& p=ImplParams()); | ||||||
|  |  | ||||||
|     protected: | protected: | ||||||
|   void SetCoefficientsPrecondShiftOps(void); |   void SetCoefficientsPrecondShiftOps(void); | ||||||
|   }; | }; | ||||||
| }} |  | ||||||
|  |  | ||||||
| #define INSTANTIATE_DPERP_MOBIUS_EOFA(A)\ | NAMESPACE_END(Grid); | ||||||
| template void MobiusEOFAFermion<A>::M5D(const FermionField& psi, const FermionField& phi, FermionField& chi, \ |  | ||||||
|  | #define INSTANTIATE_DPERP_MOBIUS_EOFA(A)				\ | ||||||
|  |   template void MobiusEOFAFermion<A>::M5D(const FermionField& psi, const FermionField& phi, FermionField& chi, \ | ||||||
| 					  std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper); \ | 					  std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper); \ | ||||||
| template void MobiusEOFAFermion<A>::M5D_shift(const FermionField& psi, const FermionField& phi, FermionField& chi, \ |   template void MobiusEOFAFermion<A>::M5D_shift(const FermionField& psi, const FermionField& phi, FermionField& chi, \ | ||||||
| 						std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper, std::vector<Coeff_t>& shift_coeffs); \ | 						std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper, std::vector<Coeff_t>& shift_coeffs); \ | ||||||
| template void MobiusEOFAFermion<A>::M5Ddag(const FermionField& psi, const FermionField& phi, FermionField& chi, \ |   template void MobiusEOFAFermion<A>::M5Ddag(const FermionField& psi, const FermionField& phi, FermionField& chi, \ | ||||||
| 					     std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper); \ | 					     std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper); \ | ||||||
| template void MobiusEOFAFermion<A>::M5Ddag_shift(const FermionField& psi, const FermionField& phi, FermionField& chi, \ |   template void MobiusEOFAFermion<A>::M5Ddag_shift(const FermionField& psi, const FermionField& phi, FermionField& chi, \ | ||||||
| 						   std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper, std::vector<Coeff_t>& shift_coeffs); \ | 						   std::vector<Coeff_t>& lower, std::vector<Coeff_t>& diag, std::vector<Coeff_t>& upper, std::vector<Coeff_t>& shift_coeffs); \ | ||||||
| template void MobiusEOFAFermion<A>::MooeeInv(const FermionField& psi, FermionField& chi); \ |   template void MobiusEOFAFermion<A>::MooeeInv(const FermionField& psi, FermionField& chi); \ | ||||||
| template void MobiusEOFAFermion<A>::MooeeInv_shift(const FermionField& psi, FermionField& chi); \ |   template void MobiusEOFAFermion<A>::MooeeInv_shift(const FermionField& psi, FermionField& chi); \ | ||||||
| template void MobiusEOFAFermion<A>::MooeeInvDag(const FermionField& psi, FermionField& chi); \ |   template void MobiusEOFAFermion<A>::MooeeInvDag(const FermionField& psi, FermionField& chi); \ | ||||||
| template void MobiusEOFAFermion<A>::MooeeInvDag_shift(const FermionField& psi, FermionField& chi); |   template void MobiusEOFAFermion<A>::MooeeInvDag_shift(const FermionField& psi, FermionField& chi); | ||||||
|  |  | ||||||
| #undef  MOBIUS_EOFA_DPERP_DENSE | #undef  MOBIUS_EOFA_DPERP_DENSE | ||||||
| #define MOBIUS_EOFA_DPERP_CACHE | #define MOBIUS_EOFA_DPERP_CACHE | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user