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

Hadrons: finished implementation of 5D quarks

This commit is contained in:
Antonin Portelli 2016-05-12 18:34:42 +01:00
parent 232fda5fe1
commit bb2125962b

View File

@ -76,6 +76,10 @@ void MQuark::execute(void)
<< std::endl; << std::endl;
LatticePropagator &prop = *env().create<LatticePropagator>(propName); LatticePropagator &prop = *env().create<LatticePropagator>(propName);
LatticePropagator &fullSrc = *env().get<LatticePropagator>(par().source); LatticePropagator &fullSrc = *env().get<LatticePropagator>(par().source);
if (Ls_ > 1)
{
env().create<LatticePropagator>(getName());
}
LOG(Message) << "Inverting using solver '" << par().solver LOG(Message) << "Inverting using solver '" << par().solver
<< "' on source '" << par().source << "'" << std::endl; << "' on source '" << par().source << "'" << std::endl;
@ -91,9 +95,10 @@ void MQuark::execute(void)
} }
else else
{ {
source = zero;
PropToFerm(tmp, fullSrc, s, c); PropToFerm(tmp, fullSrc, s, c);
InsertSlice(source, tmp, 0, 0); InsertSlice(tmp, source, 0, 0);
InsertSlice(source, tmp, Ls_-1, 0); InsertSlice(tmp, source, Ls_-1, 0);
axpby_ssp_pplus(source, 0., source, 1., source, 0, 0); axpby_ssp_pplus(source, 0., source, 1., source, 0, 0);
axpby_ssp_pminus(source, 0., source, 1., source, Ls_-1, Ls_-1); axpby_ssp_pminus(source, 0., source, 1., source, Ls_-1, Ls_-1);
} }
@ -113,12 +118,15 @@ void MQuark::execute(void)
sol = zero; sol = zero;
env().callSolver(par().solver, sol, source); env().callSolver(par().solver, sol, source);
FermToProp(prop, sol, s, c); FermToProp(prop, sol, s, c);
} // create 4D propagators from 5D one if necessary
// create 4D propagators from 5D one if necessary if (Ls_ > 1)
if (Ls_ > 1) {
{ LatticePropagator &p4d = *env().get<LatticePropagator>(getName());
LatticePropagator &prop4d = *env().create<LatticePropagator>(getName());
axpby_ssp_pminus(sol, 0., sol, 1., sol, 0, 0);
HADRON_ERROR("5D implementation not finished"); axpby_ssp_pplus(sol, 0., sol, 1., sol, 0, Ls_-1);
ExtractSlice(tmp, sol, 0, 0);
FermToProp(p4d, tmp, s, c);
}
} }
} }