mirror of
https://github.com/paboyle/Grid.git
synced 2024-11-13 01:05:36 +00:00
Merge branch 'develop' of https://github.com/paboyle/Grid into develop
This commit is contained in:
commit
ff53b231c8
@ -108,7 +108,6 @@ void basisRotate(std::vector<Field> &basis,Eigen::MatrixXd& Qt,int j0, int j1, i
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Block the loop to keep storage footprint down
|
// Block the loop to keep storage footprint down
|
||||||
vobj zz=Zero();
|
|
||||||
for(uint64_t s=0;s<oSites;s+=siteBlock){
|
for(uint64_t s=0;s<oSites;s+=siteBlock){
|
||||||
|
|
||||||
// remaining work in this block
|
// remaining work in this block
|
||||||
@ -116,7 +115,8 @@ void basisRotate(std::vector<Field> &basis,Eigen::MatrixXd& Qt,int j0, int j1, i
|
|||||||
|
|
||||||
// zero out the accumulators
|
// zero out the accumulators
|
||||||
accelerator_for(ss,siteBlock*nrot,vobj::Nsimd(),{
|
accelerator_for(ss,siteBlock*nrot,vobj::Nsimd(),{
|
||||||
auto z=coalescedRead(zz);
|
auto z=coalescedRead(Bp[ss]);
|
||||||
|
z=Zero();
|
||||||
coalescedWrite(Bp[ss],z);
|
coalescedWrite(Bp[ss],z);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -158,12 +158,12 @@ void basisRotateJ(Field &result,std::vector<Field> &basis,Eigen::MatrixXd& Qt,in
|
|||||||
for(int k=0;k<basis.size();k++){
|
for(int k=0;k<basis.size();k++){
|
||||||
basis_v[k] = basis[k].View();
|
basis_v[k] = basis[k].View();
|
||||||
}
|
}
|
||||||
vobj zz=Zero();
|
|
||||||
Vector<double> Qt_jv(Nm);
|
Vector<double> Qt_jv(Nm);
|
||||||
double * Qt_j = & Qt_jv[0];
|
double * Qt_j = & Qt_jv[0];
|
||||||
for(int k=0;k<Nm;++k) Qt_j[k]=Qt(j,k);
|
for(int k=0;k<Nm;++k) Qt_j[k]=Qt(j,k);
|
||||||
accelerator_for(ss, grid->oSites(),vobj::Nsimd(),{
|
accelerator_for(ss, grid->oSites(),vobj::Nsimd(),{
|
||||||
auto B=coalescedRead(zz);
|
auto B=coalescedRead(basis_v[k0][ss]);
|
||||||
|
B=Zero();
|
||||||
for(int k=k0; k<k1; ++k){
|
for(int k=k0; k<k1; ++k){
|
||||||
B +=Qt_j[k] * coalescedRead(basis_v[k][ss]);
|
B +=Qt_j[k] * coalescedRead(basis_v[k][ss]);
|
||||||
}
|
}
|
||||||
|
@ -156,7 +156,7 @@ void peekSite(sobj &s,const Lattice<vobj> &l,const Coordinate &site){
|
|||||||
// Peek a scalar object from the SIMD array
|
// Peek a scalar object from the SIMD array
|
||||||
//////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////
|
||||||
template<class vobj,class sobj>
|
template<class vobj,class sobj>
|
||||||
accelerator_inline void peekLocalSite(sobj &s,const Lattice<vobj> &l,Coordinate &site){
|
inline void peekLocalSite(sobj &s,const Lattice<vobj> &l,Coordinate &site){
|
||||||
|
|
||||||
GridBase *grid = l.Grid();
|
GridBase *grid = l.Grid();
|
||||||
|
|
||||||
@ -185,7 +185,7 @@ accelerator_inline void peekLocalSite(sobj &s,const Lattice<vobj> &l,Coordinate
|
|||||||
};
|
};
|
||||||
|
|
||||||
template<class vobj,class sobj>
|
template<class vobj,class sobj>
|
||||||
accelerator_inline void pokeLocalSite(const sobj &s,Lattice<vobj> &l,Coordinate &site){
|
inline void pokeLocalSite(const sobj &s,Lattice<vobj> &l,Coordinate &site){
|
||||||
|
|
||||||
GridBase *grid=l.Grid();
|
GridBase *grid=l.Grid();
|
||||||
|
|
||||||
|
@ -133,23 +133,23 @@ typedef iSpinColourMatrix<vComplex > vSpinColourMatrix;
|
|||||||
typedef iSpinColourMatrix<vComplexF> vSpinColourMatrixF;
|
typedef iSpinColourMatrix<vComplexF> vSpinColourMatrixF;
|
||||||
typedef iSpinColourMatrix<vComplexD> vSpinColourMatrixD;
|
typedef iSpinColourMatrix<vComplexD> vSpinColourMatrixD;
|
||||||
|
|
||||||
// SpinColourSpinColour matrix
|
// SpinColourSpinColour matrix
|
||||||
typedef iSpinColourSpinColourMatrix<Complex > SpinColourSpinColourMatrix;
|
typedef iSpinColourSpinColourMatrix<Complex > SpinColourSpinColourMatrix;
|
||||||
typedef iSpinColourSpinColourMatrix<ComplexF > SpinColourSpinColourMatrixF;
|
typedef iSpinColourSpinColourMatrix<ComplexF > SpinColourSpinColourMatrixF;
|
||||||
typedef iSpinColourSpinColourMatrix<ComplexD > SpinColourSpinColourMatrixD;
|
typedef iSpinColourSpinColourMatrix<ComplexD > SpinColourSpinColourMatrixD;
|
||||||
|
|
||||||
typedef iSpinColourSpinColourMatrix<vComplex > vSpinColourSpinColourMatrix;
|
typedef iSpinColourSpinColourMatrix<vComplex > vSpinColourSpinColourMatrix;
|
||||||
typedef iSpinColourSpinColourMatrix<vComplexF> vSpinColourSpinColourMatrixF;
|
typedef iSpinColourSpinColourMatrix<vComplexF> vSpinColourSpinColourMatrixF;
|
||||||
typedef iSpinColourSpinColourMatrix<vComplexD> vSpinColourSpinColourMatrixD;
|
typedef iSpinColourSpinColourMatrix<vComplexD> vSpinColourSpinColourMatrixD;
|
||||||
|
|
||||||
// SpinColourSpinColour matrix
|
// SpinColourSpinColour matrix
|
||||||
typedef iSpinColourSpinColourMatrix<Complex > SpinColourSpinColourMatrix;
|
typedef iSpinColourSpinColourMatrix<Complex > SpinColourSpinColourMatrix;
|
||||||
typedef iSpinColourSpinColourMatrix<ComplexF > SpinColourSpinColourMatrixF;
|
typedef iSpinColourSpinColourMatrix<ComplexF > SpinColourSpinColourMatrixF;
|
||||||
typedef iSpinColourSpinColourMatrix<ComplexD > SpinColourSpinColourMatrixD;
|
typedef iSpinColourSpinColourMatrix<ComplexD > SpinColourSpinColourMatrixD;
|
||||||
|
|
||||||
typedef iSpinColourSpinColourMatrix<vComplex > vSpinColourSpinColourMatrix;
|
typedef iSpinColourSpinColourMatrix<vComplex > vSpinColourSpinColourMatrix;
|
||||||
typedef iSpinColourSpinColourMatrix<vComplexF> vSpinColourSpinColourMatrixF;
|
typedef iSpinColourSpinColourMatrix<vComplexF> vSpinColourSpinColourMatrixF;
|
||||||
typedef iSpinColourSpinColourMatrix<vComplexD> vSpinColourSpinColourMatrixD;
|
typedef iSpinColourSpinColourMatrix<vComplexD> vSpinColourSpinColourMatrixD;
|
||||||
|
|
||||||
// LorentzColour
|
// LorentzColour
|
||||||
typedef iLorentzColourMatrix<Complex > LorentzColourMatrix;
|
typedef iLorentzColourMatrix<Complex > LorentzColourMatrix;
|
||||||
@ -443,16 +443,16 @@ template<class vobj> void pokeLorentz(vobj &lhs,const decltype(peekIndex<Lorentz
|
|||||||
//////////////////////////////////////////////
|
//////////////////////////////////////////////
|
||||||
// Fermion <-> propagator assignements
|
// Fermion <-> propagator assignements
|
||||||
//////////////////////////////////////////////
|
//////////////////////////////////////////////
|
||||||
//template <class Prop, class Ferm>
|
//template <class Prop, class Ferm>
|
||||||
template <class Fimpl>
|
template <class Fimpl>
|
||||||
void FermToProp(typename Fimpl::PropagatorField &p, const typename Fimpl::FermionField &f, const int s, const int c)
|
void FermToProp(typename Fimpl::PropagatorField &p, const typename Fimpl::FermionField &f, const int s, const int c)
|
||||||
{
|
{
|
||||||
for(int j = 0; j < Ns; ++j)
|
for(int j = 0; j < Ns; ++j)
|
||||||
{
|
{
|
||||||
auto pjs = peekSpin(p, j, s);
|
auto pjs = peekSpin(p, j, s);
|
||||||
auto fj = peekSpin(f, j);
|
auto fj = peekSpin(f, j);
|
||||||
|
|
||||||
for(int i = 0; i < Fimpl::Dimension; ++i)
|
for(int i = 0; i < Fimpl::Dimension; ++i)
|
||||||
{
|
{
|
||||||
pokeColour(pjs, peekColour(fj, i), i, c);
|
pokeColour(pjs, peekColour(fj, i), i, c);
|
||||||
}
|
}
|
||||||
@ -460,16 +460,16 @@ template<class vobj> void pokeLorentz(vobj &lhs,const decltype(peekIndex<Lorentz
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//template <class Prop, class Ferm>
|
//template <class Prop, class Ferm>
|
||||||
template <class Fimpl>
|
template <class Fimpl>
|
||||||
void PropToFerm(typename Fimpl::FermionField &f, const typename Fimpl::PropagatorField &p, const int s, const int c)
|
void PropToFerm(typename Fimpl::FermionField &f, const typename Fimpl::PropagatorField &p, const int s, const int c)
|
||||||
{
|
{
|
||||||
for(int j = 0; j < Ns; ++j)
|
for(int j = 0; j < Ns; ++j)
|
||||||
{
|
{
|
||||||
auto pjs = peekSpin(p, j, s);
|
auto pjs = peekSpin(p, j, s);
|
||||||
auto fj = peekSpin(f, j);
|
auto fj = peekSpin(f, j);
|
||||||
|
|
||||||
for(int i = 0; i < Fimpl::Dimension; ++i)
|
for(int i = 0; i < Fimpl::Dimension; ++i)
|
||||||
{
|
{
|
||||||
pokeColour(fj, peekColour(pjs, i, c), i);
|
pokeColour(fj, peekColour(pjs, i, c), i);
|
||||||
}
|
}
|
||||||
|
@ -141,7 +141,33 @@ public:
|
|||||||
Vector<iSinglet<Simd> > MatpInvDag;
|
Vector<iSinglet<Simd> > MatpInvDag;
|
||||||
Vector<iSinglet<Simd> > MatmInvDag;
|
Vector<iSinglet<Simd> > MatmInvDag;
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
// Conserved current utilities
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Virtual can't template
|
||||||
|
void ContractConservedCurrent(PropagatorField &q_in_1,
|
||||||
|
PropagatorField &q_in_2,
|
||||||
|
PropagatorField &q_out,
|
||||||
|
PropagatorField &phys_src,
|
||||||
|
Current curr_type,
|
||||||
|
unsigned int mu);
|
||||||
|
|
||||||
|
void SeqConservedCurrent(PropagatorField &q_in,
|
||||||
|
PropagatorField &q_out,
|
||||||
|
PropagatorField &phys_src,
|
||||||
|
Current curr_type,
|
||||||
|
unsigned int mu,
|
||||||
|
unsigned int tmin,
|
||||||
|
unsigned int tmax,
|
||||||
|
ComplexField &lattice_cmplx);
|
||||||
|
|
||||||
|
void ContractJ5q(PropagatorField &q_in,ComplexField &J5q);
|
||||||
|
void ContractJ5q(FermionField &q_in,ComplexField &J5q);
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
// Constructors
|
// Constructors
|
||||||
|
///////////////////////////////////////////////////////////////
|
||||||
CayleyFermion5D(GaugeField &_Umu,
|
CayleyFermion5D(GaugeField &_Umu,
|
||||||
GridCartesian &FiveDimGrid,
|
GridCartesian &FiveDimGrid,
|
||||||
GridRedBlackCartesian &FiveDimRedBlackGrid,
|
GridRedBlackCartesian &FiveDimRedBlackGrid,
|
||||||
|
@ -148,15 +148,19 @@ public:
|
|||||||
virtual void ContractConservedCurrent(PropagatorField &q_in_1,
|
virtual void ContractConservedCurrent(PropagatorField &q_in_1,
|
||||||
PropagatorField &q_in_2,
|
PropagatorField &q_in_2,
|
||||||
PropagatorField &q_out,
|
PropagatorField &q_out,
|
||||||
|
PropagatorField &phys_src,
|
||||||
Current curr_type,
|
Current curr_type,
|
||||||
unsigned int mu)=0;
|
unsigned int mu)
|
||||||
|
{assert(0);};
|
||||||
virtual void SeqConservedCurrent(PropagatorField &q_in,
|
virtual void SeqConservedCurrent(PropagatorField &q_in,
|
||||||
PropagatorField &q_out,
|
PropagatorField &q_out,
|
||||||
|
PropagatorField &phys_src,
|
||||||
Current curr_type,
|
Current curr_type,
|
||||||
unsigned int mu,
|
unsigned int mu,
|
||||||
unsigned int tmin,
|
unsigned int tmin,
|
||||||
unsigned int tmax,
|
unsigned int tmax,
|
||||||
ComplexField &lattice_cmplx)=0;
|
ComplexField &lattice_cmplx)
|
||||||
|
{assert(0);};
|
||||||
|
|
||||||
// Only reimplemented in Wilson5D
|
// Only reimplemented in Wilson5D
|
||||||
// Default to just a zero correlation function
|
// Default to just a zero correlation function
|
||||||
|
@ -38,6 +38,7 @@ public:
|
|||||||
static const bool isFundamental = Representation::isFundamental;
|
static const bool isFundamental = Representation::isFundamental;
|
||||||
static const int Nhcs = Options::Nhcs;
|
static const int Nhcs = Options::Nhcs;
|
||||||
static const bool LsVectorised=false;
|
static const bool LsVectorised=false;
|
||||||
|
static const bool isGparity=true;
|
||||||
|
|
||||||
typedef ConjugateGaugeImpl< GaugeImplTypes<S,Dimension> > Gimpl;
|
typedef ConjugateGaugeImpl< GaugeImplTypes<S,Dimension> > Gimpl;
|
||||||
INHERIT_GIMPL_TYPES(Gimpl);
|
INHERIT_GIMPL_TYPES(Gimpl);
|
||||||
@ -46,7 +47,7 @@ public:
|
|||||||
typedef typename Options::template PrecisionMapper<Simd>::LowerPrecVector SimdL;
|
typedef typename Options::template PrecisionMapper<Simd>::LowerPrecVector SimdL;
|
||||||
|
|
||||||
template <typename vtype> using iImplSpinor = iVector<iVector<iVector<vtype, Dimension>, Ns>, Ngp>;
|
template <typename vtype> using iImplSpinor = iVector<iVector<iVector<vtype, Dimension>, Ns>, Ngp>;
|
||||||
template <typename vtype> using iImplPropagator = iVector<iMatrix<iMatrix<vtype, Dimension>, Ns>, Ngp>;
|
template <typename vtype> using iImplPropagator = iMatrix<iMatrix<iMatrix<vtype, Dimension>, Ns>, Ngp>;
|
||||||
template <typename vtype> using iImplHalfSpinor = iVector<iVector<iVector<vtype, Dimension>, Nhs>, Ngp>;
|
template <typename vtype> using iImplHalfSpinor = iVector<iVector<iVector<vtype, Dimension>, Nhs>, Ngp>;
|
||||||
template <typename vtype> using iImplHalfCommSpinor = iVector<iVector<iVector<vtype, Dimension>, Nhcs>, Ngp>;
|
template <typename vtype> using iImplHalfCommSpinor = iVector<iVector<iVector<vtype, Dimension>, Nhcs>, Ngp>;
|
||||||
template <typename vtype> using iImplDoubledGaugeField = iVector<iVector<iScalar<iMatrix<vtype, Dimension> >, Nds>, Ngp>;
|
template <typename vtype> using iImplDoubledGaugeField = iVector<iVector<iScalar<iMatrix<vtype, Dimension> >, Nds>, Ngp>;
|
||||||
@ -80,6 +81,7 @@ public:
|
|||||||
{
|
{
|
||||||
assert(0);
|
assert(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class _Spinor>
|
template<class _Spinor>
|
||||||
static accelerator_inline void multLink(_Spinor &phi,
|
static accelerator_inline void multLink(_Spinor &phi,
|
||||||
const SiteDoubledGaugeField &U,
|
const SiteDoubledGaugeField &U,
|
||||||
@ -191,6 +193,16 @@ public:
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class _SpinorField>
|
||||||
|
inline void multLinkField(_SpinorField & out,
|
||||||
|
const DoubledGaugeField &Umu,
|
||||||
|
const _SpinorField & phi,
|
||||||
|
int mu)
|
||||||
|
{
|
||||||
|
assert(0);
|
||||||
|
}
|
||||||
|
|
||||||
template <class ref>
|
template <class ref>
|
||||||
static accelerator_inline void loadLinkElement(Simd ®, ref &memory)
|
static accelerator_inline void loadLinkElement(Simd ®, ref &memory)
|
||||||
{
|
{
|
||||||
|
@ -185,10 +185,12 @@ public:
|
|||||||
void ContractConservedCurrent(PropagatorField &q_in_1,
|
void ContractConservedCurrent(PropagatorField &q_in_1,
|
||||||
PropagatorField &q_in_2,
|
PropagatorField &q_in_2,
|
||||||
PropagatorField &q_out,
|
PropagatorField &q_out,
|
||||||
|
PropagatorField &src,
|
||||||
Current curr_type,
|
Current curr_type,
|
||||||
unsigned int mu);
|
unsigned int mu);
|
||||||
void SeqConservedCurrent(PropagatorField &q_in,
|
void SeqConservedCurrent(PropagatorField &q_in,
|
||||||
PropagatorField &q_out,
|
PropagatorField &q_out,
|
||||||
|
PropagatorField &srct,
|
||||||
Current curr_type,
|
Current curr_type,
|
||||||
unsigned int mu,
|
unsigned int mu,
|
||||||
unsigned int tmin,
|
unsigned int tmin,
|
||||||
|
@ -217,15 +217,17 @@ public:
|
|||||||
void ContractConservedCurrent(PropagatorField &q_in_1,
|
void ContractConservedCurrent(PropagatorField &q_in_1,
|
||||||
PropagatorField &q_in_2,
|
PropagatorField &q_in_2,
|
||||||
PropagatorField &q_out,
|
PropagatorField &q_out,
|
||||||
|
PropagatorField &src,
|
||||||
Current curr_type,
|
Current curr_type,
|
||||||
unsigned int mu);
|
unsigned int mu);
|
||||||
void SeqConservedCurrent(PropagatorField &q_in,
|
void SeqConservedCurrent(PropagatorField &q_in,
|
||||||
PropagatorField &q_out,
|
PropagatorField &q_out,
|
||||||
|
PropagatorField &src,
|
||||||
Current curr_type,
|
Current curr_type,
|
||||||
unsigned int mu,
|
unsigned int mu,
|
||||||
unsigned int tmin,
|
unsigned int tmin,
|
||||||
unsigned int tmax,
|
unsigned int tmax,
|
||||||
ComplexField &lattice_cmplx);
|
ComplexField &lattice_cmplx);
|
||||||
};
|
};
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
NAMESPACE_END(Grid);
|
||||||
|
@ -179,15 +179,17 @@ public:
|
|||||||
void ContractConservedCurrent(PropagatorField &q_in_1,
|
void ContractConservedCurrent(PropagatorField &q_in_1,
|
||||||
PropagatorField &q_in_2,
|
PropagatorField &q_in_2,
|
||||||
PropagatorField &q_out,
|
PropagatorField &q_out,
|
||||||
|
PropagatorField &phys_src,
|
||||||
Current curr_type,
|
Current curr_type,
|
||||||
unsigned int mu);
|
unsigned int mu);
|
||||||
void SeqConservedCurrent(PropagatorField &q_in,
|
void SeqConservedCurrent(PropagatorField &q_in,
|
||||||
PropagatorField &q_out,
|
PropagatorField &q_out,
|
||||||
|
PropagatorField &phys_src,
|
||||||
Current curr_type,
|
Current curr_type,
|
||||||
unsigned int mu,
|
unsigned int mu,
|
||||||
unsigned int tmin,
|
unsigned int tmin,
|
||||||
unsigned int tmax,
|
unsigned int tmax,
|
||||||
ComplexField &lattice_cmplx);
|
ComplexField &lattice_cmplx);
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef WilsonFermion<WilsonImplF> WilsonFermionF;
|
typedef WilsonFermion<WilsonImplF> WilsonFermionF;
|
||||||
|
@ -217,25 +217,7 @@ public:
|
|||||||
|
|
||||||
// Comms buffer
|
// Comms buffer
|
||||||
std::vector<SiteHalfSpinor,alignedAllocator<SiteHalfSpinor> > comm_buf;
|
std::vector<SiteHalfSpinor,alignedAllocator<SiteHalfSpinor> > comm_buf;
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////
|
|
||||||
// Conserved current utilities
|
|
||||||
///////////////////////////////////////////////////////////////
|
|
||||||
void ContractConservedCurrent(PropagatorField &q_in_1,
|
|
||||||
PropagatorField &q_in_2,
|
|
||||||
PropagatorField &q_out,
|
|
||||||
Current curr_type,
|
|
||||||
unsigned int mu);
|
|
||||||
void SeqConservedCurrent(PropagatorField &q_in,
|
|
||||||
PropagatorField &q_out,
|
|
||||||
Current curr_type,
|
|
||||||
unsigned int mu,
|
|
||||||
unsigned int tmin,
|
|
||||||
unsigned int tmax,
|
|
||||||
ComplexField &lattice_cmplx);
|
|
||||||
|
|
||||||
void ContractJ5q(PropagatorField &q_in,ComplexField &J5q);
|
|
||||||
void ContractJ5q(FermionField &q_in,ComplexField &J5q);
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -41,6 +41,7 @@ public:
|
|||||||
static const int Dimension = Representation::Dimension;
|
static const int Dimension = Representation::Dimension;
|
||||||
static const bool isFundamental = Representation::isFundamental;
|
static const bool isFundamental = Representation::isFundamental;
|
||||||
static const bool LsVectorised=false;
|
static const bool LsVectorised=false;
|
||||||
|
static const bool isGparity=false;
|
||||||
static const int Nhcs = Options::Nhcs;
|
static const int Nhcs = Options::Nhcs;
|
||||||
|
|
||||||
typedef PeriodicGaugeImpl<GaugeImplTypes<S, Dimension > > Gimpl;
|
typedef PeriodicGaugeImpl<GaugeImplTypes<S, Dimension > > Gimpl;
|
||||||
@ -98,8 +99,21 @@ public:
|
|||||||
{
|
{
|
||||||
multLink(phi,U,chi,mu);
|
multLink(phi,U,chi,mu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<class _SpinorField>
|
||||||
|
inline void multLinkField(_SpinorField & out,
|
||||||
|
const DoubledGaugeField &Umu,
|
||||||
|
const _SpinorField & phi,
|
||||||
|
int mu)
|
||||||
|
{
|
||||||
|
auto out_v= out.View();
|
||||||
|
auto phi_v= phi.View();
|
||||||
|
auto Umu_v= Umu.View();
|
||||||
|
thread_for(sss,out.Grid()->oSites(),{
|
||||||
|
multLink(out_v[sss],Umu_v[sss],phi_v[sss],mu);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
template <class ref>
|
template <class ref>
|
||||||
static accelerator_inline void loadLinkElement(Simd ®, ref &memory)
|
static accelerator_inline void loadLinkElement(Simd ®, ref &memory)
|
||||||
{
|
{
|
||||||
|
@ -66,41 +66,6 @@ public:
|
|||||||
static void DhopDirKernel(StencilImpl &st, DoubledGaugeField &U,SiteHalfSpinor * buf,
|
static void DhopDirKernel(StencilImpl &st, DoubledGaugeField &U,SiteHalfSpinor * buf,
|
||||||
int Ls, int Nsite, const FermionField &in, FermionField &out, int dirdisp, int gamma);
|
int Ls, int Nsite, const FermionField &in, FermionField &out, int dirdisp, int gamma);
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Utilities for inserting Wilson conserved current.
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
|
||||||
static void ContractConservedCurrentSiteFwd(const SitePropagator &q_in_1,
|
|
||||||
const SitePropagator &q_in_2,
|
|
||||||
SitePropagator &q_out,
|
|
||||||
DoubledGaugeFieldView &U,
|
|
||||||
unsigned int sU,
|
|
||||||
unsigned int mu,
|
|
||||||
bool switch_sign = false);
|
|
||||||
|
|
||||||
static void ContractConservedCurrentSiteBwd(const SitePropagator &q_in_1,
|
|
||||||
const SitePropagator &q_in_2,
|
|
||||||
SitePropagator &q_out,
|
|
||||||
DoubledGaugeFieldView &U,
|
|
||||||
unsigned int sU,
|
|
||||||
unsigned int mu,
|
|
||||||
bool switch_sign = false);
|
|
||||||
|
|
||||||
static void SeqConservedCurrentSiteFwd(const SitePropagator &q_in,
|
|
||||||
SitePropagator &q_out,
|
|
||||||
DoubledGaugeFieldView &U,
|
|
||||||
unsigned int sU,
|
|
||||||
unsigned int mu,
|
|
||||||
vPredicate t_mask,
|
|
||||||
bool switch_sign = false);
|
|
||||||
|
|
||||||
static void SeqConservedCurrentSiteBwd(const SitePropagator &q_in,
|
|
||||||
SitePropagator &q_out,
|
|
||||||
DoubledGaugeFieldView &U,
|
|
||||||
unsigned int sU,
|
|
||||||
unsigned int mu,
|
|
||||||
vPredicate t_mask,
|
|
||||||
bool switch_sign = false);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
static accelerator_inline void DhopDirK(StencilView &st, DoubledGaugeFieldView &U,SiteHalfSpinor * buf,
|
static accelerator_inline void DhopDirK(StencilView &st, DoubledGaugeFieldView &U,SiteHalfSpinor * buf,
|
||||||
|
@ -588,6 +588,355 @@ void CayleyFermion5D<Impl>::SetCoefficientsInternal(RealD zolo_hi,Vector<Coeff_t
|
|||||||
// this->MooeeInternalCompute(1,inv,MatpInvDag,MatmInvDag);
|
// this->MooeeInternalCompute(1,inv,MatpInvDag,MatmInvDag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <class Impl>
|
||||||
|
void CayleyFermion5D<Impl>::ContractJ5q(FermionField &q_in,ComplexField &J5q)
|
||||||
|
{
|
||||||
|
conformable(this->GaugeGrid(), J5q.Grid());
|
||||||
|
conformable(q_in.Grid(), this->FermionGrid());
|
||||||
|
Gamma G5(Gamma::Algebra::Gamma5);
|
||||||
|
// 4d field
|
||||||
|
int Ls = this->Ls;
|
||||||
|
FermionField psi(this->GaugeGrid());
|
||||||
|
FermionField p_plus (this->GaugeGrid());
|
||||||
|
FermionField p_minus(this->GaugeGrid());
|
||||||
|
FermionField p(this->GaugeGrid());
|
||||||
|
|
||||||
|
ExtractSlice(p_plus , q_in, Ls/2-1 , 0);
|
||||||
|
ExtractSlice(p_minus, q_in, Ls/2 , 0);
|
||||||
|
p_plus = p_plus + G5*p_plus;
|
||||||
|
p_minus= p_minus - G5*p_minus;
|
||||||
|
p=0.5*(p_plus+p_minus);
|
||||||
|
J5q = localInnerProduct(p,p);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class Impl>
|
||||||
|
void CayleyFermion5D<Impl>::ContractJ5q(PropagatorField &q_in,ComplexField &J5q)
|
||||||
|
{
|
||||||
|
conformable(this->GaugeGrid(), J5q.Grid());
|
||||||
|
conformable(q_in.Grid(), this->FermionGrid());
|
||||||
|
Gamma G5(Gamma::Algebra::Gamma5);
|
||||||
|
// 4d field
|
||||||
|
int Ls = this->Ls;
|
||||||
|
PropagatorField psi(this->GaugeGrid());
|
||||||
|
PropagatorField p_plus (this->GaugeGrid());
|
||||||
|
PropagatorField p_minus(this->GaugeGrid());
|
||||||
|
PropagatorField p(this->GaugeGrid());
|
||||||
|
|
||||||
|
ExtractSlice(p_plus , q_in, Ls/2-1 , 0);
|
||||||
|
ExtractSlice(p_minus, q_in, Ls/2 , 0);
|
||||||
|
p_plus = p_plus + G5*p_plus;
|
||||||
|
p_minus= p_minus - G5*p_minus;
|
||||||
|
p=0.5*(p_plus+p_minus);
|
||||||
|
J5q = localInnerProduct(p,p);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define Pp(Q) (0.5*(Q+g5*Q))
|
||||||
|
#define Pm(Q) (0.5*(Q-g5*Q))
|
||||||
|
#define Q_4d(Q) (Pm((Q)[0]) + Pp((Q)[Ls-1]))
|
||||||
|
#define TopRowWithSource(Q) (phys_src + (1.0-mass)*Q_4d(Q))
|
||||||
|
|
||||||
|
template <class Impl>
|
||||||
|
void CayleyFermion5D<Impl>::ContractConservedCurrent( PropagatorField &q_in_1,
|
||||||
|
PropagatorField &q_in_2,
|
||||||
|
PropagatorField &q_out,
|
||||||
|
PropagatorField &phys_src,
|
||||||
|
Current curr_type,
|
||||||
|
unsigned int mu)
|
||||||
|
{
|
||||||
|
#ifndef GRID_NVCC
|
||||||
|
Gamma::Algebra Gmu [] = {
|
||||||
|
Gamma::Algebra::GammaX,
|
||||||
|
Gamma::Algebra::GammaY,
|
||||||
|
Gamma::Algebra::GammaZ,
|
||||||
|
Gamma::Algebra::GammaT,
|
||||||
|
Gamma::Algebra::Gamma5
|
||||||
|
};
|
||||||
|
|
||||||
|
auto UGrid= this->GaugeGrid();
|
||||||
|
auto FGrid= this->FermionGrid();
|
||||||
|
RealD sgn=1.0;
|
||||||
|
if ( curr_type == Current::Axial ) sgn = -1.0;
|
||||||
|
|
||||||
|
int Ls = this->Ls;
|
||||||
|
|
||||||
|
std::vector<PropagatorField> L_Q(Ls,UGrid);
|
||||||
|
std::vector<PropagatorField> R_Q(Ls,UGrid);
|
||||||
|
for(int s=0;s<Ls;s++){
|
||||||
|
ExtractSlice(L_Q[s], q_in_1, s , 0);
|
||||||
|
ExtractSlice(R_Q[s], q_in_2, s , 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
Gamma g5(Gamma::Algebra::Gamma5);
|
||||||
|
PropagatorField C(UGrid);
|
||||||
|
PropagatorField p5d(UGrid);
|
||||||
|
PropagatorField us_p5d(UGrid);
|
||||||
|
PropagatorField gp5d(UGrid);
|
||||||
|
PropagatorField gus_p5d(UGrid);
|
||||||
|
|
||||||
|
PropagatorField L_TmLsGq0(UGrid);
|
||||||
|
PropagatorField L_TmLsTmp(UGrid);
|
||||||
|
PropagatorField R_TmLsGq0(UGrid);
|
||||||
|
PropagatorField R_TmLsTmp(UGrid);
|
||||||
|
{
|
||||||
|
PropagatorField TermA(UGrid);
|
||||||
|
PropagatorField TermB(UGrid);
|
||||||
|
PropagatorField TermC(UGrid);
|
||||||
|
PropagatorField TermD(UGrid);
|
||||||
|
TermA = (Pp(Q_4d(L_Q)));
|
||||||
|
TermB = (Pm(Q_4d(L_Q)));
|
||||||
|
TermC = (Pm(TopRowWithSource(L_Q)));
|
||||||
|
TermD = (Pp(TopRowWithSource(L_Q)));
|
||||||
|
|
||||||
|
L_TmLsGq0 = (TermD - TermA + TermB);
|
||||||
|
L_TmLsTmp = (TermC - TermB + TermA);
|
||||||
|
|
||||||
|
TermA = (Pp(Q_4d(R_Q)));
|
||||||
|
TermB = (Pm(Q_4d(R_Q)));
|
||||||
|
TermC = (Pm(TopRowWithSource(R_Q)));
|
||||||
|
TermD = (Pp(TopRowWithSource(R_Q)));
|
||||||
|
|
||||||
|
R_TmLsGq0 = (TermD - TermA + TermB);
|
||||||
|
R_TmLsTmp = (TermC - TermB + TermA);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<PropagatorField> R_TmLsGq(Ls,UGrid);
|
||||||
|
std::vector<PropagatorField> L_TmLsGq(Ls,UGrid);
|
||||||
|
for(int s=0;s<Ls;s++){
|
||||||
|
R_TmLsGq[s] = (Pm((R_Q)[(s)]) + Pp((R_Q)[((s)-1+Ls)%Ls]));
|
||||||
|
L_TmLsGq[s] = (Pm((L_Q)[(s)]) + Pp((L_Q)[((s)-1+Ls)%Ls]));
|
||||||
|
}
|
||||||
|
|
||||||
|
Gamma gmu=Gamma(Gmu[mu]);
|
||||||
|
|
||||||
|
q_out = Zero();
|
||||||
|
PropagatorField tmp(UGrid);
|
||||||
|
for(int s=0;s<Ls;s++){
|
||||||
|
|
||||||
|
int sp = (s+1)%Ls;
|
||||||
|
int sr = Ls-1-s;
|
||||||
|
int srp= (sr+1)%Ls;
|
||||||
|
|
||||||
|
// Mobius parameters
|
||||||
|
auto b=this->bs[s];
|
||||||
|
auto c=this->cs[s];
|
||||||
|
auto bpc = 1.0/(b+c); // -0.5 factor in gauge links
|
||||||
|
if (s == 0) {
|
||||||
|
p5d =(b*Pm(L_TmLsGq[Ls-1])+ c*Pp(L_TmLsGq[Ls-1]) + b*Pp(L_TmLsTmp) + c*Pm(L_TmLsTmp ));
|
||||||
|
tmp =(b*Pm(R_TmLsGq0) + c*Pp(R_TmLsGq0 ) + b*Pp(R_TmLsGq[1]) + c*Pm(R_TmLsGq[1]));
|
||||||
|
} else if (s == Ls-1) {
|
||||||
|
p5d =(b*Pm(L_TmLsGq0) + c*Pp(L_TmLsGq0 ) + b*Pp(L_TmLsGq[1]) + c*Pm(L_TmLsGq[1]));
|
||||||
|
tmp =(b*Pm(R_TmLsGq[Ls-1])+ c*Pp(R_TmLsGq[Ls-1]) + b*Pp(R_TmLsTmp) + c*Pm(R_TmLsTmp ));
|
||||||
|
} else {
|
||||||
|
p5d =(b*Pm(L_TmLsGq[sr]) + c*Pp(L_TmLsGq[sr])+ b*Pp(L_TmLsGq[srp])+ c*Pm(L_TmLsGq[srp]));
|
||||||
|
tmp =(b*Pm(R_TmLsGq[s]) + c*Pp(R_TmLsGq[s]) + b*Pp(R_TmLsGq[sp ])+ c*Pm(R_TmLsGq[sp]));
|
||||||
|
}
|
||||||
|
tmp = Cshift(tmp,mu,1);
|
||||||
|
Impl::multLinkField(us_p5d,this->Umu,tmp,mu);
|
||||||
|
|
||||||
|
gp5d=g5*p5d*g5;
|
||||||
|
gus_p5d=gmu*us_p5d;
|
||||||
|
|
||||||
|
C = bpc*(adj(gp5d)*us_p5d);
|
||||||
|
C-= bpc*(adj(gp5d)*gus_p5d);
|
||||||
|
|
||||||
|
if (s == 0) {
|
||||||
|
p5d =(b*Pm(R_TmLsGq0) + c*Pp(R_TmLsGq0 ) + b*Pp(R_TmLsGq[1]) + c*Pm(R_TmLsGq[1]));
|
||||||
|
tmp =(b*Pm(L_TmLsGq[Ls-1])+ c*Pp(L_TmLsGq[Ls-1]) + b*Pp(L_TmLsTmp) + c*Pm(L_TmLsTmp ));
|
||||||
|
} else if (s == Ls-1) {
|
||||||
|
p5d =(b*Pm(R_TmLsGq[Ls-1])+ c*Pp(R_TmLsGq[Ls-1]) + b*Pp(R_TmLsTmp) + c*Pm(R_TmLsTmp ));
|
||||||
|
tmp =(b*Pm(L_TmLsGq0) + c*Pp(L_TmLsGq0 ) + b*Pp(L_TmLsGq[1]) + c*Pm(L_TmLsGq[1]));
|
||||||
|
} else {
|
||||||
|
p5d =(b*Pm(R_TmLsGq[s]) + c*Pp(R_TmLsGq[s]) + b*Pp(R_TmLsGq[sp ])+ c*Pm(R_TmLsGq[sp]));
|
||||||
|
tmp =(b*Pm(L_TmLsGq[sr]) + c*Pp(L_TmLsGq[sr]) + b*Pp(L_TmLsGq[srp])+ c*Pm(L_TmLsGq[srp]));
|
||||||
|
}
|
||||||
|
tmp = Cshift(tmp,mu,1);
|
||||||
|
Impl::multLinkField(us_p5d,this->Umu,tmp,mu);
|
||||||
|
|
||||||
|
gp5d=gmu*p5d;
|
||||||
|
gus_p5d=g5*us_p5d*g5;
|
||||||
|
|
||||||
|
C-= bpc*(adj(gus_p5d)*gp5d);
|
||||||
|
C-= bpc*(adj(gus_p5d)*p5d);
|
||||||
|
|
||||||
|
if (s < Ls/2) q_out += sgn*C;
|
||||||
|
else q_out += C;
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class Impl>
|
||||||
|
void CayleyFermion5D<Impl>::SeqConservedCurrent(PropagatorField &q_in,
|
||||||
|
PropagatorField &q_out,
|
||||||
|
PropagatorField &phys_src,
|
||||||
|
Current curr_type,
|
||||||
|
unsigned int mu,
|
||||||
|
unsigned int tmin,
|
||||||
|
unsigned int tmax,
|
||||||
|
ComplexField &ph)// Complex phase factor
|
||||||
|
{
|
||||||
|
assert(mu>=0);
|
||||||
|
assert(mu<Nd);
|
||||||
|
|
||||||
|
int tshift = (mu == Nd-1) ? 1 : 0;
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
////////////////////////////////////////////////
|
||||||
|
// SHAMIR CASE
|
||||||
|
////////////////////////////////////////////////
|
||||||
|
int Ls = this->Ls;
|
||||||
|
auto UGrid= this->GaugeGrid();
|
||||||
|
auto FGrid= this->FermionGrid();
|
||||||
|
Gamma::Algebra Gmu [] = {
|
||||||
|
Gamma::Algebra::GammaX,
|
||||||
|
Gamma::Algebra::GammaY,
|
||||||
|
Gamma::Algebra::GammaZ,
|
||||||
|
Gamma::Algebra::GammaT
|
||||||
|
};
|
||||||
|
Gamma gmu=Gamma(Gmu[mu]);
|
||||||
|
|
||||||
|
PropagatorField L_Q(UGrid);
|
||||||
|
PropagatorField R_Q(UGrid);
|
||||||
|
|
||||||
|
PropagatorField tmp(UGrid);
|
||||||
|
PropagatorField Utmp(UGrid);
|
||||||
|
LatticeInteger zz (UGrid); zz=0.0;
|
||||||
|
LatticeInteger lcoor(UGrid); LatticeCoordinate(lcoor,Nd-1);
|
||||||
|
for (int s=0;s<Ls;s++) {
|
||||||
|
|
||||||
|
RealD G_s = (curr_type == Current::Axial ) ? ((s < Ls/2) ? -1 : 1) : 1;
|
||||||
|
|
||||||
|
ExtractSlice(R_Q, q_in, s , 0);
|
||||||
|
|
||||||
|
tmp = Cshift(R_Q,mu,1);
|
||||||
|
Impl::multLinkField(Utmp,this->Umu,tmp,mu);
|
||||||
|
tmp = G_s*( Utmp*ph - gmu*Utmp*ph ); // Forward hop
|
||||||
|
tmp = where((lcoor>=tmin),tmp,zz); // Mask the time
|
||||||
|
tmp = where((lcoor<=tmax),tmp,zz);
|
||||||
|
L_Q = tmp;
|
||||||
|
|
||||||
|
tmp = R_Q*ph;
|
||||||
|
tmp = Cshift(tmp,mu,-1);
|
||||||
|
Impl::multLinkField(Utmp,this->Umu,tmp,mu+Nd);// Adjoint link
|
||||||
|
tmp = -G_s*( Utmp + gmu*Utmp );
|
||||||
|
tmp = where((lcoor>=tmin+tshift),tmp,zz); // Mask the time
|
||||||
|
tmp = where((lcoor<=tmax+tshift),tmp,zz); // Position of current complicated
|
||||||
|
L_Q= L_Q+tmp;
|
||||||
|
|
||||||
|
InsertSlice(L_Q, q_out, s , 0);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GRID_NVCC
|
||||||
|
////////////////////////////////////////////////
|
||||||
|
// GENERAL CAYLEY CASE
|
||||||
|
////////////////////////////////////////////////
|
||||||
|
Gamma::Algebra Gmu [] = {
|
||||||
|
Gamma::Algebra::GammaX,
|
||||||
|
Gamma::Algebra::GammaY,
|
||||||
|
Gamma::Algebra::GammaZ,
|
||||||
|
Gamma::Algebra::GammaT,
|
||||||
|
Gamma::Algebra::Gamma5
|
||||||
|
};
|
||||||
|
Gamma gmu=Gamma(Gmu[mu]);
|
||||||
|
Gamma g5(Gamma::Algebra::Gamma5);
|
||||||
|
|
||||||
|
int Ls = this->Ls;
|
||||||
|
auto UGrid= this->GaugeGrid();
|
||||||
|
auto FGrid= this->FermionGrid();
|
||||||
|
|
||||||
|
std::vector<PropagatorField> R_Q(Ls,UGrid);
|
||||||
|
PropagatorField L_Q(UGrid);
|
||||||
|
PropagatorField tmp(UGrid);
|
||||||
|
PropagatorField Utmp(UGrid);
|
||||||
|
|
||||||
|
LatticeInteger zz (UGrid); zz=0.0;
|
||||||
|
LatticeInteger lcoor(UGrid); LatticeCoordinate(lcoor,Nd-1);
|
||||||
|
|
||||||
|
for(int s=0;s<Ls;s++){
|
||||||
|
ExtractSlice(R_Q[s], q_in, s , 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
PropagatorField R_TmLsGq0(UGrid);
|
||||||
|
PropagatorField R_TmLsTmp(UGrid);
|
||||||
|
{
|
||||||
|
PropagatorField TermA(UGrid);
|
||||||
|
PropagatorField TermB(UGrid);
|
||||||
|
PropagatorField TermC(UGrid);
|
||||||
|
PropagatorField TermD(UGrid);
|
||||||
|
|
||||||
|
TermA = (Pp(Q_4d(R_Q)));
|
||||||
|
TermB = (Pm(Q_4d(R_Q)));
|
||||||
|
TermC = (Pm(TopRowWithSource(R_Q)));
|
||||||
|
TermD = (Pp(TopRowWithSource(R_Q)));
|
||||||
|
|
||||||
|
R_TmLsGq0 = (TermD - TermA + TermB);
|
||||||
|
R_TmLsTmp = (TermC - TermB + TermA);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<PropagatorField> R_TmLsGq(Ls,UGrid);
|
||||||
|
for(int s=0;s<Ls;s++){
|
||||||
|
R_TmLsGq[s] = (Pm((R_Q)[(s)]) + Pp((R_Q)[((s)-1+Ls)%Ls]));
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<RealD> G_s(Ls,1.0);
|
||||||
|
if ( curr_type == Current::Axial ) {
|
||||||
|
for(int s=0;s<Ls/2;s++){
|
||||||
|
G_s[s] = -1.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int s=0;s<Ls;s++){
|
||||||
|
|
||||||
|
int sp = (s+1)%Ls;
|
||||||
|
int sr = Ls-1-s;
|
||||||
|
int srp= (sr+1)%Ls;
|
||||||
|
|
||||||
|
// Mobius parameters
|
||||||
|
auto b=this->bs[s];
|
||||||
|
auto c=this->cs[s];
|
||||||
|
// auto bpc = G_s[s]*1.0/(b+c); // -0.5 factor in gauge links
|
||||||
|
|
||||||
|
if (s == 0) {
|
||||||
|
tmp =(b*Pm(R_TmLsGq0) + c*Pp(R_TmLsGq0 ) + b*Pp(R_TmLsGq[1]) + c*Pm(R_TmLsGq[1]));
|
||||||
|
} else if (s == Ls-1) {
|
||||||
|
tmp =(b*Pm(R_TmLsGq[Ls-1])+ c*Pp(R_TmLsGq[Ls-1]) + b*Pp(R_TmLsTmp) + c*Pm(R_TmLsTmp ));
|
||||||
|
} else {
|
||||||
|
tmp =(b*Pm(R_TmLsGq[s]) + c*Pp(R_TmLsGq[s]) + b*Pp(R_TmLsGq[sp ])+ c*Pm(R_TmLsGq[sp]));
|
||||||
|
}
|
||||||
|
|
||||||
|
tmp = Cshift(tmp,mu,1);
|
||||||
|
Impl::multLinkField(Utmp,this->Umu,tmp,mu);
|
||||||
|
tmp = G_s[s]*( Utmp*ph - gmu*Utmp*ph ); // Forward hop
|
||||||
|
tmp = where((lcoor>=tmin),tmp,zz); // Mask the time
|
||||||
|
L_Q = where((lcoor<=tmax),tmp,zz); // Position of current complicated
|
||||||
|
|
||||||
|
if (s == 0) {
|
||||||
|
tmp =(b*Pm(R_TmLsGq0) + c*Pp(R_TmLsGq0 ) + b*Pp(R_TmLsGq[1]) + c*Pm(R_TmLsGq[1]));
|
||||||
|
} else if (s == Ls-1) {
|
||||||
|
tmp =(b*Pm(R_TmLsGq[Ls-1])+ c*Pp(R_TmLsGq[Ls-1]) + b*Pp(R_TmLsTmp) + c*Pm(R_TmLsTmp ));
|
||||||
|
} else {
|
||||||
|
tmp =(b*Pm(R_TmLsGq[s]) + c*Pp(R_TmLsGq[s]) + b*Pp(R_TmLsGq[sp])+ c*Pm(R_TmLsGq[sp]));
|
||||||
|
}
|
||||||
|
tmp = tmp *ph;
|
||||||
|
tmp = Cshift(tmp,mu,-1);
|
||||||
|
Impl::multLinkField(Utmp,this->Umu,tmp,mu+Nd); // Adjoint link
|
||||||
|
tmp = -G_s[s]*( Utmp + gmu*Utmp );
|
||||||
|
tmp = where((lcoor>=tmin+tshift),tmp,zz); // Mask the time
|
||||||
|
L_Q += where((lcoor<=tmax+tshift),tmp,zz); // Position of current complicated
|
||||||
|
|
||||||
|
InsertSlice(L_Q, q_out, s , 0);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#undef Pp
|
||||||
|
#undef Pm
|
||||||
|
#undef Q_4d
|
||||||
|
#undef TopRowWithSource
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
template<class Impl>
|
template<class Impl>
|
||||||
void CayleyFermion5D<Impl>::MooeeInternalCompute(int dag, int inv,
|
void CayleyFermion5D<Impl>::MooeeInternalCompute(int dag, int inv,
|
||||||
|
@ -611,6 +611,7 @@ template <class Impl>
|
|||||||
void ImprovedStaggeredFermion5D<Impl>::ContractConservedCurrent(PropagatorField &q_in_1,
|
void ImprovedStaggeredFermion5D<Impl>::ContractConservedCurrent(PropagatorField &q_in_1,
|
||||||
PropagatorField &q_in_2,
|
PropagatorField &q_in_2,
|
||||||
PropagatorField &q_out,
|
PropagatorField &q_out,
|
||||||
|
PropagatorField &src,
|
||||||
Current curr_type,
|
Current curr_type,
|
||||||
unsigned int mu)
|
unsigned int mu)
|
||||||
{
|
{
|
||||||
@ -620,11 +621,12 @@ void ImprovedStaggeredFermion5D<Impl>::ContractConservedCurrent(PropagatorField
|
|||||||
template <class Impl>
|
template <class Impl>
|
||||||
void ImprovedStaggeredFermion5D<Impl>::SeqConservedCurrent(PropagatorField &q_in,
|
void ImprovedStaggeredFermion5D<Impl>::SeqConservedCurrent(PropagatorField &q_in,
|
||||||
PropagatorField &q_out,
|
PropagatorField &q_out,
|
||||||
|
PropagatorField &src,
|
||||||
Current curr_type,
|
Current curr_type,
|
||||||
unsigned int mu,
|
unsigned int mu,
|
||||||
unsigned int tmin,
|
unsigned int tmin,
|
||||||
unsigned int tmax,
|
unsigned int tmax,
|
||||||
ComplexField &lattice_cmplx)
|
ComplexField &lattice_cmplx)
|
||||||
{
|
{
|
||||||
assert(0);
|
assert(0);
|
||||||
|
|
||||||
|
@ -600,6 +600,7 @@ template <class Impl>
|
|||||||
void ImprovedStaggeredFermion<Impl>::ContractConservedCurrent(PropagatorField &q_in_1,
|
void ImprovedStaggeredFermion<Impl>::ContractConservedCurrent(PropagatorField &q_in_1,
|
||||||
PropagatorField &q_in_2,
|
PropagatorField &q_in_2,
|
||||||
PropagatorField &q_out,
|
PropagatorField &q_out,
|
||||||
|
PropagatorField &src,
|
||||||
Current curr_type,
|
Current curr_type,
|
||||||
unsigned int mu)
|
unsigned int mu)
|
||||||
{
|
{
|
||||||
@ -609,6 +610,7 @@ void ImprovedStaggeredFermion<Impl>::ContractConservedCurrent(PropagatorField &q
|
|||||||
template <class Impl>
|
template <class Impl>
|
||||||
void ImprovedStaggeredFermion<Impl>::SeqConservedCurrent(PropagatorField &q_in,
|
void ImprovedStaggeredFermion<Impl>::SeqConservedCurrent(PropagatorField &q_in,
|
||||||
PropagatorField &q_out,
|
PropagatorField &q_out,
|
||||||
|
PropagatorField &src,
|
||||||
Current curr_type,
|
Current curr_type,
|
||||||
unsigned int mu,
|
unsigned int mu,
|
||||||
unsigned int tmin,
|
unsigned int tmin,
|
||||||
|
@ -861,7 +861,6 @@ void WilsonFermion5D<Impl>::MomentumSpacePropagatorHw(FermionField &out,const Fe
|
|||||||
* Conserved current utilities for Wilson fermions, for contracting propagators
|
* Conserved current utilities for Wilson fermions, for contracting propagators
|
||||||
* to make a conserved current sink or inserting the conserved current
|
* to make a conserved current sink or inserting the conserved current
|
||||||
* sequentially.
|
* sequentially.
|
||||||
******************************************************************************/
|
|
||||||
|
|
||||||
// Helper macro to reverse Simd vector. Fixme: slow, generic implementation.
|
// Helper macro to reverse Simd vector. Fixme: slow, generic implementation.
|
||||||
#define REVERSE_LS(qSite, qSiteRev, Nsimd) \
|
#define REVERSE_LS(qSite, qSiteRev, Nsimd) \
|
||||||
@ -877,220 +876,10 @@ void WilsonFermion5D<Impl>::MomentumSpacePropagatorHw(FermionField &out,const Fe
|
|||||||
merge(qSiteRev, qSiteVec); \
|
merge(qSiteRev, qSiteVec); \
|
||||||
}
|
}
|
||||||
|
|
||||||
// psi = chiralProjectPlus(Result_s[Ls/2-1]);
|
******************************************************************************/
|
||||||
// psi+= chiralProjectMinus(Result_s[Ls/2]);
|
|
||||||
// PJ5q+=localInnerProduct(psi,psi);
|
|
||||||
|
|
||||||
template<class vobj>
|
|
||||||
Lattice<vobj> spProj5p(const Lattice<vobj> & in)
|
|
||||||
{
|
|
||||||
GridBase *grid=in.Grid();
|
|
||||||
Gamma G5(Gamma::Algebra::Gamma5);
|
|
||||||
Lattice<vobj> ret(grid);
|
|
||||||
auto ret_v = ret.View();
|
|
||||||
auto in_v = in.View();
|
|
||||||
thread_for(ss,grid->oSites(),{
|
|
||||||
ret_v[ss] = in_v[ss] + G5*in_v[ss];
|
|
||||||
});
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
template<class vobj>
|
|
||||||
Lattice<vobj> spProj5m(const Lattice<vobj> & in)
|
|
||||||
{
|
|
||||||
Gamma G5(Gamma::Algebra::Gamma5);
|
|
||||||
GridBase *grid=in.Grid();
|
|
||||||
Lattice<vobj> ret(grid);
|
|
||||||
auto ret_v = ret.View();
|
|
||||||
auto in_v = in.View();
|
|
||||||
thread_for(ss,grid->oSites(),{
|
|
||||||
ret_v[ss] = in_v[ss] - G5*in_v[ss];
|
|
||||||
});
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
template <class Impl>
|
|
||||||
void WilsonFermion5D<Impl>::ContractJ5q(FermionField &q_in,ComplexField &J5q)
|
|
||||||
{
|
|
||||||
conformable(GaugeGrid(), J5q.Grid());
|
|
||||||
conformable(q_in.Grid(), FermionGrid());
|
|
||||||
|
|
||||||
// 4d field
|
|
||||||
int Ls = this->Ls;
|
|
||||||
FermionField psi(GaugeGrid());
|
|
||||||
FermionField p_plus (GaugeGrid());
|
|
||||||
FermionField p_minus(GaugeGrid());
|
|
||||||
FermionField p(GaugeGrid());
|
|
||||||
|
|
||||||
ExtractSlice(p_plus , q_in, Ls/2 , 0);
|
|
||||||
ExtractSlice(p_minus, q_in, Ls/2-1 , 0);
|
|
||||||
p_plus = spProj5p(p_plus );
|
|
||||||
p_minus= spProj5m(p_minus);
|
|
||||||
p=p_plus+p_minus;
|
|
||||||
J5q = localInnerProduct(p,p);
|
|
||||||
}
|
|
||||||
|
|
||||||
template <class Impl>
|
|
||||||
void WilsonFermion5D<Impl>::ContractJ5q(PropagatorField &q_in,ComplexField &J5q)
|
|
||||||
{
|
|
||||||
conformable(GaugeGrid(), J5q.Grid());
|
|
||||||
conformable(q_in.Grid(), FermionGrid());
|
|
||||||
|
|
||||||
// 4d field
|
|
||||||
int Ls = this->Ls;
|
|
||||||
PropagatorField psi(GaugeGrid());
|
|
||||||
PropagatorField p_plus (GaugeGrid());
|
|
||||||
PropagatorField p_minus(GaugeGrid());
|
|
||||||
PropagatorField p(GaugeGrid());
|
|
||||||
|
|
||||||
ExtractSlice(p_plus , q_in, Ls/2 , 0);
|
|
||||||
ExtractSlice(p_minus, q_in, Ls/2-1 , 0);
|
|
||||||
p_plus = spProj5p(p_plus );
|
|
||||||
p_minus= spProj5m(p_minus);
|
|
||||||
p=p_plus+p_minus;
|
|
||||||
J5q = localInnerProduct(p,p);
|
|
||||||
}
|
|
||||||
|
|
||||||
template <class Impl>
|
|
||||||
void WilsonFermion5D<Impl>::ContractConservedCurrent(PropagatorField &q_in_1,
|
|
||||||
PropagatorField &q_in_2,
|
|
||||||
PropagatorField &q_out,
|
|
||||||
Current curr_type,
|
|
||||||
unsigned int mu)
|
|
||||||
{
|
|
||||||
conformable(q_in_1.Grid(), FermionGrid());
|
|
||||||
conformable(q_in_1.Grid(), q_in_2.Grid());
|
|
||||||
conformable(_FourDimGrid, q_out.Grid());
|
|
||||||
|
|
||||||
PropagatorField tmp1(FermionGrid()), tmp2(FermionGrid());
|
|
||||||
unsigned int LLs = q_in_1.Grid()->_rdimensions[0];
|
|
||||||
q_out = Zero();
|
|
||||||
|
|
||||||
// Forward, need q1(x + mu, s), q2(x, Ls - 1 - s). Backward, need q1(x, s),
|
|
||||||
// q2(x + mu, Ls - 1 - s). 5D lattice so shift 4D coordinate mu by one.
|
|
||||||
tmp1 = Cshift(q_in_1, mu + 1, 1);
|
|
||||||
tmp2 = Cshift(q_in_2, mu + 1, 1);
|
|
||||||
auto q_in_1_v = q_in_1.View();
|
|
||||||
auto q_in_2_v = q_in_2.View();
|
|
||||||
auto tmp1_v = tmp1.View();
|
|
||||||
auto tmp2_v = tmp2.View();
|
|
||||||
auto q_out_v = q_out.View();
|
|
||||||
auto Umu_v = Umu.View();
|
|
||||||
thread_for(sU, Umu.Grid()->oSites(),{
|
|
||||||
|
|
||||||
unsigned int sF1 = sU * LLs;
|
|
||||||
unsigned int sF2 = (sU + 1) * LLs - 1;
|
|
||||||
|
|
||||||
for (unsigned int s = 0; s < LLs; ++s)
|
|
||||||
{
|
|
||||||
bool axial_sign = ((curr_type == Current::Axial) && \
|
|
||||||
(s < (LLs / 2)));
|
|
||||||
SitePropagator qSite2, qmuSite2;
|
|
||||||
|
|
||||||
// If vectorised in 5th dimension, reverse q2 vector to match up
|
|
||||||
// sites correctly.
|
|
||||||
if (Impl::LsVectorised)
|
|
||||||
{
|
|
||||||
REVERSE_LS(q_in_2_v[sF2], qSite2, Ls / LLs);
|
|
||||||
REVERSE_LS(tmp2_v[sF2], qmuSite2, Ls / LLs);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
qSite2 = q_in_2_v[sF2];
|
|
||||||
qmuSite2 = tmp2_v[sF2];
|
|
||||||
}
|
|
||||||
Kernels::ContractConservedCurrentSiteFwd(tmp1_v[sF1],
|
|
||||||
qSite2,
|
|
||||||
q_out_v[sU],
|
|
||||||
Umu_v, sU, mu, axial_sign);
|
|
||||||
Kernels::ContractConservedCurrentSiteBwd(q_in_1_v[sF1],
|
|
||||||
qmuSite2,
|
|
||||||
q_out_v[sU],
|
|
||||||
Umu_v, sU, mu, axial_sign);
|
|
||||||
sF1++;
|
|
||||||
sF2--;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template <class Impl>
|
|
||||||
void WilsonFermion5D<Impl>::SeqConservedCurrent(PropagatorField &q_in,
|
|
||||||
PropagatorField &q_out,
|
|
||||||
Current curr_type,
|
|
||||||
unsigned int mu,
|
|
||||||
unsigned int tmin,
|
|
||||||
unsigned int tmax,
|
|
||||||
ComplexField &lattice_cmplx)
|
|
||||||
{
|
|
||||||
conformable(q_in.Grid(), FermionGrid());
|
|
||||||
conformable(q_in.Grid(), q_out.Grid());
|
|
||||||
PropagatorField tmp(GaugeGrid()),tmp2(GaugeGrid());
|
|
||||||
unsigned int tshift = (mu == Tp) ? 1 : 0;
|
|
||||||
unsigned int LLs = q_in.Grid()->_rdimensions[0];
|
|
||||||
unsigned int LLt = GridDefaultLatt()[Tp];
|
|
||||||
|
|
||||||
q_out = Zero();
|
|
||||||
LatticeInteger coords(_FourDimGrid);
|
|
||||||
LatticeCoordinate(coords, Tp);
|
|
||||||
|
|
||||||
auto q_out_v = q_out.View();
|
|
||||||
auto tmp2_v = tmp2.View();
|
|
||||||
auto coords_v= coords.View();
|
|
||||||
auto Umu_v = Umu.View();
|
|
||||||
for (unsigned int s = 0; s < LLs; ++s)
|
|
||||||
{
|
|
||||||
bool axial_sign = ((curr_type == Current::Axial) && (s < (LLs / 2)));
|
|
||||||
bool tadpole_sign = (curr_type == Current::Tadpole);
|
|
||||||
bool switch_sgn = tadpole_sign || axial_sign;
|
|
||||||
|
|
||||||
|
|
||||||
//forward direction: Need q(x + mu, s)*A(x)
|
|
||||||
ExtractSlice(tmp2, q_in, s, 0); //q(x,s)
|
|
||||||
tmp = Cshift(tmp2, mu, 1); //q(x+mu,s)
|
|
||||||
tmp2 = tmp*lattice_cmplx; //q(x+mu,s)*A(x)
|
|
||||||
|
|
||||||
thread_for(sU, Umu.Grid()->oSites(),{
|
|
||||||
// Compute the sequential conserved current insertion only if our simd
|
|
||||||
// object contains a timeslice we need.
|
|
||||||
vPredicate t_mask;
|
|
||||||
t_mask() = ((coords_v[sU] >= tmin) && (coords_v[sU] <= tmax));
|
|
||||||
Integer timeSlices = Reduce(t_mask());
|
|
||||||
|
|
||||||
if (timeSlices > 0)
|
|
||||||
{
|
|
||||||
unsigned int sF = sU * LLs + s;
|
|
||||||
Kernels::SeqConservedCurrentSiteFwd(tmp2_v[sU],
|
|
||||||
q_out_v[sF], Umu_v, sU,
|
|
||||||
mu, t_mask, switch_sgn);
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
//backward direction: Need q(x - mu, s)*A(x-mu)
|
|
||||||
ExtractSlice(tmp2, q_in, s, 0); //q(x,s)
|
|
||||||
tmp = lattice_cmplx*tmp2; //q(x,s)*A(x)
|
|
||||||
tmp2 = Cshift(tmp, mu, -1); //q(x-mu,s)*A(x-mu,s)
|
|
||||||
|
|
||||||
thread_for(sU, Umu.Grid()->oSites(),
|
|
||||||
{
|
|
||||||
vPredicate t_mask;
|
|
||||||
t_mask()= ((coords_v[sU] >= (tmin + tshift)) && (coords_v[sU] <= (tmax + tshift)));
|
|
||||||
|
|
||||||
//if tmax = LLt-1 (last timeslice) include timeslice 0 if the time is shifted (mu=3)
|
|
||||||
unsigned int t0 = 0;
|
|
||||||
if((tmax==LLt-1) && (tshift==1)) t_mask() = (t_mask() || (coords_v[sU] == t0 ));
|
|
||||||
|
|
||||||
Integer timeSlices = Reduce(t_mask());
|
|
||||||
|
|
||||||
if (timeSlices > 0) {
|
|
||||||
unsigned int sF = sU * LLs + s;
|
|
||||||
Kernels::SeqConservedCurrentSiteBwd(tmp2_v[sU],
|
|
||||||
q_out_v[sF], Umu_v, sU,
|
|
||||||
mu, t_mask, axial_sign);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
NAMESPACE_END(Grid);
|
||||||
|
|
||||||
|
@ -459,6 +459,7 @@ template <class Impl>
|
|||||||
void WilsonFermion<Impl>::ContractConservedCurrent(PropagatorField &q_in_1,
|
void WilsonFermion<Impl>::ContractConservedCurrent(PropagatorField &q_in_1,
|
||||||
PropagatorField &q_in_2,
|
PropagatorField &q_in_2,
|
||||||
PropagatorField &q_out,
|
PropagatorField &q_out,
|
||||||
|
PropagatorField &src,
|
||||||
Current curr_type,
|
Current curr_type,
|
||||||
unsigned int mu)
|
unsigned int mu)
|
||||||
{
|
{
|
||||||
@ -466,6 +467,7 @@ void WilsonFermion<Impl>::ContractConservedCurrent(PropagatorField &q_in_1,
|
|||||||
conformable(_grid, q_in_1.Grid());
|
conformable(_grid, q_in_1.Grid());
|
||||||
conformable(_grid, q_in_2.Grid());
|
conformable(_grid, q_in_2.Grid());
|
||||||
conformable(_grid, q_out.Grid());
|
conformable(_grid, q_out.Grid());
|
||||||
|
#if 0
|
||||||
PropagatorField tmp1(_grid), tmp2(_grid);
|
PropagatorField tmp1(_grid), tmp2(_grid);
|
||||||
q_out = Zero();
|
q_out = Zero();
|
||||||
|
|
||||||
@ -489,12 +491,15 @@ void WilsonFermion<Impl>::ContractConservedCurrent(PropagatorField &q_in_1,
|
|||||||
q_out_v[sU],
|
q_out_v[sU],
|
||||||
Umu_v, sU, mu);
|
Umu_v, sU, mu);
|
||||||
});
|
});
|
||||||
|
#else
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template <class Impl>
|
template <class Impl>
|
||||||
void WilsonFermion<Impl>::SeqConservedCurrent(PropagatorField &q_in,
|
void WilsonFermion<Impl>::SeqConservedCurrent(PropagatorField &q_in,
|
||||||
PropagatorField &q_out,
|
PropagatorField &q_out,
|
||||||
|
PropagatorField &src,
|
||||||
Current curr_type,
|
Current curr_type,
|
||||||
unsigned int mu,
|
unsigned int mu,
|
||||||
unsigned int tmin,
|
unsigned int tmin,
|
||||||
@ -503,6 +508,7 @@ void WilsonFermion<Impl>::SeqConservedCurrent(PropagatorField &q_in,
|
|||||||
{
|
{
|
||||||
conformable(_grid, q_in.Grid());
|
conformable(_grid, q_in.Grid());
|
||||||
conformable(_grid, q_out.Grid());
|
conformable(_grid, q_out.Grid());
|
||||||
|
#if 0
|
||||||
|
|
||||||
// Lattice<iSinglet<Simd>> ph(_grid), coor(_grid);
|
// Lattice<iSinglet<Simd>> ph(_grid), coor(_grid);
|
||||||
Complex i(0.0,1.0);
|
Complex i(0.0,1.0);
|
||||||
@ -556,6 +562,8 @@ void WilsonFermion<Impl>::SeqConservedCurrent(PropagatorField &q_in,
|
|||||||
Umu_v, sU, mu, t_mask);
|
Umu_v, sU, mu, t_mask);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
#else
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
NAMESPACE_END(Grid);
|
||||||
|
@ -493,131 +493,5 @@ void WilsonKernels<Impl>::DhopKernel(int Opt,StencilImpl &st, DoubledGaugeField
|
|||||||
assert(0 && " Kernel optimisation case not covered ");
|
assert(0 && " Kernel optimisation case not covered ");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* Conserved current utilities for Wilson fermions, for contracting propagators
|
|
||||||
* to make a conserved current sink or inserting the conserved current
|
|
||||||
* sequentially. Common to both 4D and 5D.
|
|
||||||
******************************************************************************/
|
|
||||||
// N.B. Functions below assume a -1/2 factor within U.
|
|
||||||
#define WilsonCurrentFwd(expr, mu) ((expr - Gamma::gmu[mu]*expr))
|
|
||||||
#define WilsonCurrentBwd(expr, mu) ((expr + Gamma::gmu[mu]*expr))
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* Name: ContractConservedCurrentSiteFwd
|
|
||||||
* Operation: (1/2) * q2[x] * U(x) * (g[mu] - 1) * q1[x + mu]
|
|
||||||
* Notes: - DoubledGaugeField U assumed to contain -1/2 factor.
|
|
||||||
* - Pass in q_in_1 shifted in +ve mu direction.
|
|
||||||
******************************************************************************/
|
|
||||||
template<class Impl>
|
|
||||||
void WilsonKernels<Impl>::ContractConservedCurrentSiteFwd(const SitePropagator &q_in_1,
|
|
||||||
const SitePropagator &q_in_2,
|
|
||||||
SitePropagator &q_out,
|
|
||||||
DoubledGaugeFieldView &U,
|
|
||||||
unsigned int sU,
|
|
||||||
unsigned int mu,
|
|
||||||
bool switch_sign)
|
|
||||||
{
|
|
||||||
SitePropagator result, tmp;
|
|
||||||
Gamma g5(Gamma::Algebra::Gamma5);
|
|
||||||
|
|
||||||
Impl::multLink(tmp, U[sU], q_in_1, mu);
|
|
||||||
|
|
||||||
result = g5 * adj(q_in_2) * g5 * WilsonCurrentFwd(tmp, mu);
|
|
||||||
|
|
||||||
if (switch_sign) {
|
|
||||||
q_out -= result;
|
|
||||||
} else {
|
|
||||||
q_out += result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* Name: ContractConservedCurrentSiteBwd
|
|
||||||
* Operation: (1/2) * q2[x + mu] * U^dag(x) * (g[mu] + 1) * q1[x]
|
|
||||||
* Notes: - DoubledGaugeField U assumed to contain -1/2 factor.
|
|
||||||
* - Pass in q_in_2 shifted in +ve mu direction.
|
|
||||||
******************************************************************************/
|
|
||||||
template<class Impl>
|
|
||||||
void WilsonKernels<Impl>::ContractConservedCurrentSiteBwd(const SitePropagator &q_in_1,
|
|
||||||
const SitePropagator &q_in_2,
|
|
||||||
SitePropagator &q_out,
|
|
||||||
DoubledGaugeFieldView &U,
|
|
||||||
unsigned int sU,
|
|
||||||
unsigned int mu,
|
|
||||||
bool switch_sign)
|
|
||||||
{
|
|
||||||
SitePropagator result, tmp;
|
|
||||||
Gamma g5(Gamma::Algebra::Gamma5);
|
|
||||||
|
|
||||||
Impl::multLink(tmp, U[sU], q_in_1, mu + Nd);
|
|
||||||
|
|
||||||
result = g5 * adj(q_in_2) * g5 * WilsonCurrentBwd(tmp, mu);
|
|
||||||
if (switch_sign) {
|
|
||||||
q_out += result;
|
|
||||||
} else {
|
|
||||||
q_out -= result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* Name: SeqConservedCurrentSiteFwd
|
|
||||||
* Operation: (1/2) * U(x) * (g[mu] - 1) * q[x + mu]
|
|
||||||
* Notes: - DoubledGaugeField U assumed to contain -1/2 factor.
|
|
||||||
* - Pass in q_in shifted in +ve mu direction.
|
|
||||||
******************************************************************************/
|
|
||||||
template<class Impl>
|
|
||||||
void WilsonKernels<Impl>::SeqConservedCurrentSiteFwd(const SitePropagator &q_in,
|
|
||||||
SitePropagator &q_out,
|
|
||||||
DoubledGaugeFieldView &U,
|
|
||||||
unsigned int sU,
|
|
||||||
unsigned int mu,
|
|
||||||
vPredicate t_mask,
|
|
||||||
bool switch_sign)
|
|
||||||
{
|
|
||||||
SitePropagator result;
|
|
||||||
|
|
||||||
Impl::multLink(result, U[sU], q_in, mu);
|
|
||||||
result = WilsonCurrentFwd(result, mu);
|
|
||||||
|
|
||||||
// Zero any unwanted timeslice entries.
|
|
||||||
result = predicatedWhere(t_mask, result, 0.*result);
|
|
||||||
|
|
||||||
if (switch_sign) {
|
|
||||||
q_out -= result;
|
|
||||||
} else {
|
|
||||||
q_out += result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* Name: SeqConservedCurrentSiteFwd
|
|
||||||
* Operation: (1/2) * U^dag(x) * (g[mu] + 1) * q[x - mu]
|
|
||||||
* Notes: - DoubledGaugeField U assumed to contain -1/2 factor.
|
|
||||||
* - Pass in q_in shifted in -ve mu direction.
|
|
||||||
******************************************************************************/
|
|
||||||
template<class Impl>
|
|
||||||
void WilsonKernels<Impl>::SeqConservedCurrentSiteBwd(const SitePropagator &q_in,
|
|
||||||
SitePropagator &q_out,
|
|
||||||
DoubledGaugeFieldView &U,
|
|
||||||
unsigned int sU,
|
|
||||||
unsigned int mu,
|
|
||||||
vPredicate t_mask,
|
|
||||||
bool switch_sign)
|
|
||||||
{
|
|
||||||
SitePropagator result;
|
|
||||||
Impl::multLink(result, U[sU], q_in, mu + Nd);
|
|
||||||
result = WilsonCurrentBwd(result, mu);
|
|
||||||
|
|
||||||
// Zero any unwanted timeslice entries.
|
|
||||||
result = predicatedWhere(t_mask, result, 0.*result);
|
|
||||||
|
|
||||||
if (switch_sign) {
|
|
||||||
q_out += result;
|
|
||||||
} else {
|
|
||||||
q_out -= result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
NAMESPACE_END(Grid);
|
||||||
|
|
||||||
|
@ -1,44 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonKernels.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution
|
|
||||||
directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/CayleyFermion5DImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/CayleyFermion5Dcache.h>
|
|
||||||
|
|
||||||
//#include <Grid/qcd/action/fermion/implementation/CayleyFermion5Dvec.h>
|
|
||||||
//#include <Grid/qcd/action/fermion/implementation/CayleyFermion5Dgpu.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class CayleyFermion5D<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../CayleyFermion5DInstantiation.cc.master
|
@ -1,38 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/ContinuedFractionFermion5D.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <pabobyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/ContinuedFractionFermion5D.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/ContinuedFractionFermion5DImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class ContinuedFractionFermion5D<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../ContinuedFractionFermion5DInstantiation.cc.master
|
@ -1,44 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/DomainWallEOFAFermion.cc
|
|
||||||
|
|
||||||
Copyright (C) 2017
|
|
||||||
|
|
||||||
Author: Peter Boyle <pabobyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: David Murphy <dmurphy@phys.columbia.edu>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
|
|
||||||
#include <Grid/Grid_Eigen_Dense.h>
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/DomainWallEOFAFermion.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/DomainWallEOFAFermionImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/DomainWallEOFAFermionCache.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class DomainWallEOFAFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../DomainWallEOFAFermionInstantiation.cc.master
|
@ -1,44 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/MobiusEOFAFermion.cc
|
|
||||||
|
|
||||||
Copyright (C) 2017
|
|
||||||
|
|
||||||
Author: Peter Boyle <pabobyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: David Murphy <dmurphy@phys.columbia.edu>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
|
|
||||||
#include <Grid/Grid_Eigen_Dense.h>
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/MobiusEOFAFermion.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/MobiusEOFAFermionImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/MobiusEOFAFermionCache.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class MobiusEOFAFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../MobiusEOFAFermionInstantiation.cc.master
|
@ -1,39 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/PartialFractionFermion5D.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <pabobyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/PartialFractionFermion5D.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/PartialFractionFermion5DImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class PartialFractionFermion5D<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../PartialFractionFermion5DInstantiation.cc.master
|
@ -1,40 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonCloverFermion.cc
|
|
||||||
|
|
||||||
Copyright (C) 2017
|
|
||||||
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Guido Cossu <guido.cossu@ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
|
|
||||||
#include <Grid/Grid.h>
|
|
||||||
#include <Grid/qcd/spin/Dirac.h>
|
|
||||||
#include <Grid/qcd/action/fermion/WilsonCloverFermion.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonCloverFermionImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class WilsonCloverFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonCloverFermionInstantiation.cc.master
|
@ -1,40 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonKernels.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution
|
|
||||||
directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonFermion5DImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class WilsonFermion5D<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonFermion5DInstantiation.cc.master
|
@ -1,40 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonKernels.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution
|
|
||||||
directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonFermionImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class WilsonFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonFermionInstantiation.cc.master
|
@ -1,74 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonKernels.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution
|
|
||||||
directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonKernelsImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonKernelsAsmImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonKernelsHandImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonKernelsHandGparityImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
// Move these
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
|
|
||||||
// G-parity requires more specialised implementation.
|
|
||||||
template <>
|
|
||||||
void WilsonKernels<IMPLEMENTATION>::ContractConservedCurrentSiteFwd(const SitePropagator &q_in_1,
|
|
||||||
const SitePropagator &q_in_2,
|
|
||||||
SitePropagator &q_out,
|
|
||||||
DoubledGaugeFieldView &U,
|
|
||||||
unsigned int sU,
|
|
||||||
unsigned int mu,
|
|
||||||
bool switch_sign)
|
|
||||||
{
|
|
||||||
assert(0);
|
|
||||||
}
|
|
||||||
template <>
|
|
||||||
void WilsonKernels<IMPLEMENTATION>::ContractConservedCurrentSiteBwd( const SitePropagator &q_in_1,
|
|
||||||
const SitePropagator &q_in_2,
|
|
||||||
SitePropagator &q_out,
|
|
||||||
DoubledGaugeFieldView &U,
|
|
||||||
unsigned int mu,
|
|
||||||
unsigned int sU,
|
|
||||||
bool switch_sign)
|
|
||||||
{
|
|
||||||
assert(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
HAND_SPECIALISE_GPARITY(IMPLEMENTATION);
|
|
||||||
|
|
||||||
|
|
||||||
template class WilsonKernels<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonKernelsInstantiationGparity.cc.master
|
@ -1,37 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonTMFermion.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/WilsonTMFermion.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonTMFermionImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class WilsonTMFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonTMFermionInstantiation.cc.master
|
@ -1,44 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonKernels.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution
|
|
||||||
directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/CayleyFermion5DImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/CayleyFermion5Dcache.h>
|
|
||||||
|
|
||||||
//#include <Grid/qcd/action/fermion/implementation/CayleyFermion5Dvec.h>
|
|
||||||
//#include <Grid/qcd/action/fermion/implementation/CayleyFermion5Dgpu.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class CayleyFermion5D<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../CayleyFermion5DInstantiation.cc.master
|
@ -1,38 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/ContinuedFractionFermion5D.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <pabobyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/ContinuedFractionFermion5D.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/ContinuedFractionFermion5DImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class ContinuedFractionFermion5D<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../ContinuedFractionFermion5DInstantiation.cc.master
|
@ -1,44 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/DomainWallEOFAFermion.cc
|
|
||||||
|
|
||||||
Copyright (C) 2017
|
|
||||||
|
|
||||||
Author: Peter Boyle <pabobyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: David Murphy <dmurphy@phys.columbia.edu>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
|
|
||||||
#include <Grid/Grid_Eigen_Dense.h>
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/DomainWallEOFAFermion.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/DomainWallEOFAFermionImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/DomainWallEOFAFermionCache.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class DomainWallEOFAFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../DomainWallEOFAFermionInstantiation.cc.master
|
@ -1,44 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/MobiusEOFAFermion.cc
|
|
||||||
|
|
||||||
Copyright (C) 2017
|
|
||||||
|
|
||||||
Author: Peter Boyle <pabobyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: David Murphy <dmurphy@phys.columbia.edu>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
|
|
||||||
#include <Grid/Grid_Eigen_Dense.h>
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/MobiusEOFAFermion.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/MobiusEOFAFermionImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/MobiusEOFAFermionCache.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class MobiusEOFAFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../MobiusEOFAFermionInstantiation.cc.master
|
@ -1,39 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/PartialFractionFermion5D.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <pabobyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/PartialFractionFermion5D.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/PartialFractionFermion5DImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class PartialFractionFermion5D<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../PartialFractionFermion5DInstantiation.cc.master
|
@ -1,40 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonCloverFermion.cc
|
|
||||||
|
|
||||||
Copyright (C) 2017
|
|
||||||
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Guido Cossu <guido.cossu@ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
|
|
||||||
#include <Grid/Grid.h>
|
|
||||||
#include <Grid/qcd/spin/Dirac.h>
|
|
||||||
#include <Grid/qcd/action/fermion/WilsonCloverFermion.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonCloverFermionImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class WilsonCloverFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonCloverFermionInstantiation.cc.master
|
@ -1,40 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonKernels.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution
|
|
||||||
directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonFermion5DImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class WilsonFermion5D<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonFermion5DInstantiation.cc.master
|
@ -1,40 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonKernels.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution
|
|
||||||
directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonFermionImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class WilsonFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonFermionInstantiation.cc.master
|
@ -1,74 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonKernels.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution
|
|
||||||
directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonKernelsImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonKernelsAsmImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonKernelsHandImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonKernelsHandGparityImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
// Move these
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
|
|
||||||
// G-parity requires more specialised implementation.
|
|
||||||
template <>
|
|
||||||
void WilsonKernels<IMPLEMENTATION>::ContractConservedCurrentSiteFwd(const SitePropagator &q_in_1,
|
|
||||||
const SitePropagator &q_in_2,
|
|
||||||
SitePropagator &q_out,
|
|
||||||
DoubledGaugeFieldView &U,
|
|
||||||
unsigned int sU,
|
|
||||||
unsigned int mu,
|
|
||||||
bool switch_sign)
|
|
||||||
{
|
|
||||||
assert(0);
|
|
||||||
}
|
|
||||||
template <>
|
|
||||||
void WilsonKernels<IMPLEMENTATION>::ContractConservedCurrentSiteBwd( const SitePropagator &q_in_1,
|
|
||||||
const SitePropagator &q_in_2,
|
|
||||||
SitePropagator &q_out,
|
|
||||||
DoubledGaugeFieldView &U,
|
|
||||||
unsigned int mu,
|
|
||||||
unsigned int sU,
|
|
||||||
bool switch_sign)
|
|
||||||
{
|
|
||||||
assert(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
HAND_SPECIALISE_GPARITY(IMPLEMENTATION);
|
|
||||||
|
|
||||||
|
|
||||||
template class WilsonKernels<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonKernelsInstantiationGparity.cc.master
|
@ -1,37 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonTMFermion.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/WilsonTMFermion.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonTMFermionImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class WilsonTMFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonTMFermionInstantiation.cc.master
|
@ -1,44 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonKernels.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution
|
|
||||||
directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/CayleyFermion5DImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/CayleyFermion5Dcache.h>
|
|
||||||
|
|
||||||
//#include <Grid/qcd/action/fermion/implementation/CayleyFermion5Dvec.h>
|
|
||||||
//#include <Grid/qcd/action/fermion/implementation/CayleyFermion5Dgpu.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class CayleyFermion5D<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../CayleyFermion5DInstantiation.cc.master
|
@ -1,38 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/ContinuedFractionFermion5D.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <pabobyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/ContinuedFractionFermion5D.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/ContinuedFractionFermion5DImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class ContinuedFractionFermion5D<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../ContinuedFractionFermion5DInstantiation.cc.master
|
@ -1,44 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/DomainWallEOFAFermion.cc
|
|
||||||
|
|
||||||
Copyright (C) 2017
|
|
||||||
|
|
||||||
Author: Peter Boyle <pabobyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: David Murphy <dmurphy@phys.columbia.edu>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
|
|
||||||
#include <Grid/Grid_Eigen_Dense.h>
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/DomainWallEOFAFermion.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/DomainWallEOFAFermionImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/DomainWallEOFAFermionCache.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class DomainWallEOFAFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../DomainWallEOFAFermionInstantiation.cc.master
|
@ -1,44 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/MobiusEOFAFermion.cc
|
|
||||||
|
|
||||||
Copyright (C) 2017
|
|
||||||
|
|
||||||
Author: Peter Boyle <pabobyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: David Murphy <dmurphy@phys.columbia.edu>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
|
|
||||||
#include <Grid/Grid_Eigen_Dense.h>
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/MobiusEOFAFermion.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/MobiusEOFAFermionImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/MobiusEOFAFermionCache.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class MobiusEOFAFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../MobiusEOFAFermionInstantiation.cc.master
|
@ -1,39 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/PartialFractionFermion5D.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <pabobyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/PartialFractionFermion5D.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/PartialFractionFermion5DImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class PartialFractionFermion5D<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../PartialFractionFermion5DInstantiation.cc.master
|
@ -1,40 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonCloverFermion.cc
|
|
||||||
|
|
||||||
Copyright (C) 2017
|
|
||||||
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Guido Cossu <guido.cossu@ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
|
|
||||||
#include <Grid/Grid.h>
|
|
||||||
#include <Grid/qcd/spin/Dirac.h>
|
|
||||||
#include <Grid/qcd/action/fermion/WilsonCloverFermion.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonCloverFermionImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class WilsonCloverFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonCloverFermionInstantiation.cc.master
|
@ -1,40 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonKernels.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution
|
|
||||||
directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonFermion5DImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class WilsonFermion5D<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonFermion5DInstantiation.cc.master
|
@ -1,40 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonKernels.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution
|
|
||||||
directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonFermionImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class WilsonFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonFermionInstantiation.cc.master
|
@ -1,74 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonKernels.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution
|
|
||||||
directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonKernelsImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonKernelsAsmImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonKernelsHandImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonKernelsHandGparityImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
// Move these
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
|
|
||||||
// G-parity requires more specialised implementation.
|
|
||||||
template <>
|
|
||||||
void WilsonKernels<IMPLEMENTATION>::ContractConservedCurrentSiteFwd(const SitePropagator &q_in_1,
|
|
||||||
const SitePropagator &q_in_2,
|
|
||||||
SitePropagator &q_out,
|
|
||||||
DoubledGaugeFieldView &U,
|
|
||||||
unsigned int sU,
|
|
||||||
unsigned int mu,
|
|
||||||
bool switch_sign)
|
|
||||||
{
|
|
||||||
assert(0);
|
|
||||||
}
|
|
||||||
template <>
|
|
||||||
void WilsonKernels<IMPLEMENTATION>::ContractConservedCurrentSiteBwd( const SitePropagator &q_in_1,
|
|
||||||
const SitePropagator &q_in_2,
|
|
||||||
SitePropagator &q_out,
|
|
||||||
DoubledGaugeFieldView &U,
|
|
||||||
unsigned int mu,
|
|
||||||
unsigned int sU,
|
|
||||||
bool switch_sign)
|
|
||||||
{
|
|
||||||
assert(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
HAND_SPECIALISE_GPARITY(IMPLEMENTATION);
|
|
||||||
|
|
||||||
|
|
||||||
template class WilsonKernels<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonKernelsInstantiationGparity.cc.master
|
@ -1,37 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonTMFermion.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/WilsonTMFermion.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonTMFermionImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class WilsonTMFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonTMFermionInstantiation.cc.master
|
@ -1,44 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonKernels.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution
|
|
||||||
directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/CayleyFermion5DImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/CayleyFermion5Dcache.h>
|
|
||||||
|
|
||||||
//#include <Grid/qcd/action/fermion/implementation/CayleyFermion5Dvec.h>
|
|
||||||
//#include <Grid/qcd/action/fermion/implementation/CayleyFermion5Dgpu.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class CayleyFermion5D<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../CayleyFermion5DInstantiation.cc.master
|
@ -1,38 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/ContinuedFractionFermion5D.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <pabobyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/ContinuedFractionFermion5D.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/ContinuedFractionFermion5DImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class ContinuedFractionFermion5D<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../ContinuedFractionFermion5DInstantiation.cc.master
|
@ -1,44 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/DomainWallEOFAFermion.cc
|
|
||||||
|
|
||||||
Copyright (C) 2017
|
|
||||||
|
|
||||||
Author: Peter Boyle <pabobyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: David Murphy <dmurphy@phys.columbia.edu>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
|
|
||||||
#include <Grid/Grid_Eigen_Dense.h>
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/DomainWallEOFAFermion.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/DomainWallEOFAFermionImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/DomainWallEOFAFermionCache.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class DomainWallEOFAFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../DomainWallEOFAFermionInstantiation.cc.master
|
@ -1,44 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/MobiusEOFAFermion.cc
|
|
||||||
|
|
||||||
Copyright (C) 2017
|
|
||||||
|
|
||||||
Author: Peter Boyle <pabobyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: David Murphy <dmurphy@phys.columbia.edu>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
|
|
||||||
#include <Grid/Grid_Eigen_Dense.h>
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/MobiusEOFAFermion.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/MobiusEOFAFermionImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/MobiusEOFAFermionCache.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class MobiusEOFAFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../MobiusEOFAFermionInstantiation.cc.master
|
@ -1,39 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/PartialFractionFermion5D.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <pabobyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/PartialFractionFermion5D.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/PartialFractionFermion5DImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class PartialFractionFermion5D<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../PartialFractionFermion5DInstantiation.cc.master
|
@ -1,40 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonCloverFermion.cc
|
|
||||||
|
|
||||||
Copyright (C) 2017
|
|
||||||
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Guido Cossu <guido.cossu@ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
|
|
||||||
#include <Grid/Grid.h>
|
|
||||||
#include <Grid/qcd/spin/Dirac.h>
|
|
||||||
#include <Grid/qcd/action/fermion/WilsonCloverFermion.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonCloverFermionImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class WilsonCloverFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonCloverFermionInstantiation.cc.master
|
@ -1,40 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonKernels.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution
|
|
||||||
directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonFermion5DImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class WilsonFermion5D<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonFermion5DInstantiation.cc.master
|
@ -1,40 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonKernels.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution
|
|
||||||
directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonFermionImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class WilsonFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonFermionInstantiation.cc.master
|
@ -1,74 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonKernels.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <peterboyle@Peters-MacBook-Pro-2.local>
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution
|
|
||||||
directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonKernelsImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonKernelsAsmImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonKernelsHandImplementation.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonKernelsHandGparityImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
// Move these
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
|
|
||||||
// G-parity requires more specialised implementation.
|
|
||||||
template <>
|
|
||||||
void WilsonKernels<IMPLEMENTATION>::ContractConservedCurrentSiteFwd(const SitePropagator &q_in_1,
|
|
||||||
const SitePropagator &q_in_2,
|
|
||||||
SitePropagator &q_out,
|
|
||||||
DoubledGaugeFieldView &U,
|
|
||||||
unsigned int sU,
|
|
||||||
unsigned int mu,
|
|
||||||
bool switch_sign)
|
|
||||||
{
|
|
||||||
assert(0);
|
|
||||||
}
|
|
||||||
template <>
|
|
||||||
void WilsonKernels<IMPLEMENTATION>::ContractConservedCurrentSiteBwd( const SitePropagator &q_in_1,
|
|
||||||
const SitePropagator &q_in_2,
|
|
||||||
SitePropagator &q_out,
|
|
||||||
DoubledGaugeFieldView &U,
|
|
||||||
unsigned int mu,
|
|
||||||
unsigned int sU,
|
|
||||||
bool switch_sign)
|
|
||||||
{
|
|
||||||
assert(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
HAND_SPECIALISE_GPARITY(IMPLEMENTATION);
|
|
||||||
|
|
||||||
|
|
||||||
template class WilsonKernels<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonKernelsInstantiationGparity.cc.master
|
@ -1,37 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/WilsonTMFermion.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: paboyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
#include <Grid/qcd/action/fermion/WilsonTMFermion.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/WilsonTMFermionImplementation.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class WilsonTMFermion<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
@ -0,0 +1 @@
|
|||||||
|
../WilsonTMFermionInstantiation.cc.master
|
@ -1,44 +0,0 @@
|
|||||||
/*************************************************************************************
|
|
||||||
|
|
||||||
Grid physics library, www.github.com/paboyle/Grid
|
|
||||||
|
|
||||||
Source file: ./lib/qcd/action/fermion/ImprovedStaggeredFermion5D.cc
|
|
||||||
|
|
||||||
Copyright (C) 2015
|
|
||||||
|
|
||||||
Author: Azusa Yamaguchi <ayamaguc@staffmail.ed.ac.uk>
|
|
||||||
Author: Peter Boyle <paboyle@ph.ed.ac.uk>
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along
|
|
||||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
||||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
||||||
|
|
||||||
See the full license in the file "LICENSE" in the top level distribution directory
|
|
||||||
*************************************************************************************/
|
|
||||||
/* END LEGAL */
|
|
||||||
#include <Grid/qcd/action/fermion/FermionCore.h>
|
|
||||||
|
|
||||||
#include <Grid/qcd/action/fermion/ImprovedStaggeredFermion5D.h>
|
|
||||||
#include <Grid/qcd/action/fermion/implementation/ImprovedStaggeredFermion5DImplementation.h>
|
|
||||||
#include <Grid/perfmon/PerfCount.h>
|
|
||||||
|
|
||||||
NAMESPACE_BEGIN(Grid);
|
|
||||||
|
|
||||||
#include "impl.h"
|
|
||||||
template class ImprovedStaggeredFermion5D<IMPLEMENTATION>;
|
|
||||||
|
|
||||||
NAMESPACE_END(Grid);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1 @@
|
|||||||
|
../ImprovedStaggeredFermion5DInstantiation.cc.master
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user