1
0
mirror of https://github.com/paboyle/Grid.git synced 2024-11-10 07:55:35 +00:00

Inclusion of ExportPhysicalFermionSource that fixes a bug in the low mode w vectors

This commit is contained in:
fionnoh 2018-07-20 15:45:43 +01:00
parent cecee1ef2c
commit 7dfd3cdae8
4 changed files with 18 additions and 1 deletions

View File

@ -183,7 +183,7 @@ class A2AModesSchurDiagTwo
action.DminusDag(tmp_wout, wout_5d);
action.ExportPhysicalFermionSolution(wout_5d, wout_4d);
action.ExportPhysicalFermionSource(wout_5d, wout_4d);
}
void high_mode_v(Matrix &action, Solver &solver, const Field &source, Field &vout_5d, Field &vout_4d)

View File

@ -68,6 +68,18 @@ void CayleyFermion5D<Impl>::ExportPhysicalFermionSolution(const FermionField &so
ExtractSlice(exported4d, tmp, 0, 0);
}
template<class Impl>
void CayleyFermion5D<Impl>::ExportPhysicalFermionSource(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_pplus (tmp, 0., solution5d, 1., solution5d, 0, 0);
axpby_ssp_pminus(tmp, 1., tmp , 1., solution5d, 0, Ls-1);
ExtractSlice(exported4d, tmp, 0, 0);
}
template<class Impl>
void CayleyFermion5D<Impl>::ImportPhysicalFermionSource(const FermionField &input4d,FermionField &imported5d)
{
int Ls = this->Ls;

View File

@ -89,6 +89,7 @@ namespace Grid {
virtual void Dminus(const FermionField &psi, FermionField &chi);
virtual void DminusDag(const FermionField &psi, FermionField &chi);
virtual void ExportPhysicalFermionSolution(const FermionField &solution5d,FermionField &exported4d);
virtual void ExportPhysicalFermionSource(const FermionField &solution5d, FermionField &exported4d);
virtual void ImportPhysicalFermionSource(const FermionField &input4d,FermionField &imported5d);
/////////////////////////////////////////////////////

View File

@ -166,6 +166,10 @@ namespace Grid {
{
exported=solution;
};
virtual void ExportPhysicalFermionSource(const FermionField &solution, FermionField &exported)
{
exported = solution;
};
};
}