mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-25 05:05:56 +01:00
4D pseudofermoin
This commit is contained in:
parent
fe00c96435
commit
09288d633c
@ -112,7 +112,6 @@ void CayleyFermion5D<Impl>::ImportUnphysicalFermion(const FermionField &input4d,
|
|||||||
axpby_ssp_pminus(tmp, 0., tmp, 1., tmp, Ls-1, Ls-1);
|
axpby_ssp_pminus(tmp, 0., tmp, 1., tmp, Ls-1, Ls-1);
|
||||||
imported5d=tmp;
|
imported5d=tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class Impl>
|
template<class Impl>
|
||||||
void CayleyFermion5D<Impl>::ImportPhysicalFermionSource(const FermionField &input4d,FermionField &imported5d)
|
void CayleyFermion5D<Impl>::ImportPhysicalFermionSource(const FermionField &input4d,FermionField &imported5d)
|
||||||
{
|
{
|
||||||
@ -127,6 +126,37 @@ void CayleyFermion5D<Impl>::ImportPhysicalFermionSource(const FermionField &inpu
|
|||||||
axpby_ssp_pminus(tmp, 0., tmp, 1., tmp, Ls-1, Ls-1);
|
axpby_ssp_pminus(tmp, 0., tmp, 1., tmp, Ls-1, Ls-1);
|
||||||
Dminus(tmp,imported5d);
|
Dminus(tmp,imported5d);
|
||||||
}
|
}
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
// Added for fourD pseudofermion det estimation
|
||||||
|
////////////////////////////////////////////////////
|
||||||
|
template<class Impl>
|
||||||
|
void CayleyFermion5D<Impl>::ImportFourDimPseudoFermion(const FermionField &input4d,FermionField &imported5d)
|
||||||
|
{
|
||||||
|
int Ls = this->Ls;
|
||||||
|
FermionField tmp(this->FermionGrid());
|
||||||
|
conformable(imported5d.Grid(),this->FermionGrid());
|
||||||
|
conformable(input4d.Grid() ,this->GaugeGrid());
|
||||||
|
tmp = Zero();
|
||||||
|
InsertSlice(input4d, tmp, 0 , 0);
|
||||||
|
InsertSlice(input4d, tmp, Ls-1, 0);
|
||||||
|
axpby_ssp_pminus(tmp, 0., tmp, 1., tmp, 0, 0);
|
||||||
|
axpby_ssp_pplus (tmp, 0., tmp, 1., tmp, Ls-1, Ls-1);
|
||||||
|
imported5d=tmp;
|
||||||
|
}
|
||||||
|
template<class Impl>
|
||||||
|
void CayleyFermion5D<Impl>::ExportFourDimPseudoFermion(const FermionField &solution5d,FermionField &exported4d)
|
||||||
|
{
|
||||||
|
int Ls = this->Ls;
|
||||||
|
FermionField tmp(this->FermionGrid());
|
||||||
|
tmp = solution5d;
|
||||||
|
conformable(solution5d.Grid(),this->FermionGrid());
|
||||||
|
conformable(exported4d.Grid(),this->GaugeGrid());
|
||||||
|
axpby_ssp_pminus(tmp, 0., solution5d, 1., solution5d, 0, 0);
|
||||||
|
axpby_ssp_pplus (tmp, 1., tmp , 1., solution5d, 0, Ls-1);
|
||||||
|
ExtractSlice(exported4d, tmp, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dminus
|
||||||
template<class Impl>
|
template<class Impl>
|
||||||
void CayleyFermion5D<Impl>::Dminus(const FermionField &psi, FermionField &chi)
|
void CayleyFermion5D<Impl>::Dminus(const FermionField &psi, FermionField &chi)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user