1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-06-19 08:17:05 +01:00

Hadrons: multi-file support for eigenpacks

This commit is contained in:
2018-05-07 17:25:36 +01:00
parent 661381e881
commit 3252059daf
4 changed files with 176 additions and 83 deletions

View File

@ -45,6 +45,7 @@ class LoadCoarseEigenPackPar: Serializable
public:
GRID_SERIALIZABLE_CLASS_MEMBERS(LoadCoarseEigenPackPar,
std::string, filestem,
bool, multiFile,
unsigned int, sizeFine,
unsigned int, sizeCoarse,
unsigned int, Ls,
@ -120,7 +121,7 @@ void TLoadCoarseEigenPack<Pack>::execute(void)
auto &epack = envGetDerived(BasePack, Pack, getName());
Lattice<SiteComplex> dummy(cg);
epack.read(par().filestem, vm().getTrajectory());
epack.read(par().filestem, par().multiFile, vm().getTrajectory());
LOG(Message) << "Block Gramm-Schmidt pass 1"<< std::endl;
blockOrthogonalise(dummy, epack.evec);
LOG(Message) << "Block Gramm-Schmidt pass 2"<< std::endl;

View File

@ -45,6 +45,7 @@ class LoadEigenPackPar: Serializable
public:
GRID_SERIALIZABLE_CLASS_MEMBERS(LoadEigenPackPar,
std::string, filestem,
bool, multiFile,
unsigned int, size,
unsigned int, Ls);
};
@ -111,7 +112,7 @@ void TLoadEigenPack<Pack>::execute(void)
{
auto &epack = envGetDerived(BasePack, Pack, getName());
epack.read(par().filestem, vm().getTrajectory());
epack.read(par().filestem, par().multiFile, vm().getTrajectory());
epack.eval.resize(par().size);
}

View File

@ -51,7 +51,8 @@ public:
ChebyParams, smoother,
RealD, coarseRelaxTol,
std::string, blockSize,
std::string, output);
std::string, output,
bool, multiFile);
};
template <typename FImpl, int nBasis>
@ -156,7 +157,7 @@ void TLocalCoherenceLanczos<FImpl, nBasis>::execute(void)
solver.testFine(finePar.resid*100.0);
if (!par().output.empty())
{
epack.writeFine(par().output, vm().getTrajectory());
epack.writeFine(par().output, par().multiFile, vm().getTrajectory());
}
if (par().doCoarse)
{
@ -173,7 +174,7 @@ void TLocalCoherenceLanczos<FImpl, nBasis>::execute(void)
par().coarseRelaxTol);
if (!par().output.empty())
{
epack.writeCoarse(par().output, vm().getTrajectory());
epack.writeCoarse(par().output, par().multiFile, vm().getTrajectory());
}
}
}