mirror of
https://github.com/paboyle/Grid.git
synced 2025-06-16 14:57:05 +01:00
Hadrons: better metadata for eigenpack
This commit is contained in:
@ -44,11 +44,9 @@ class EigenPack
|
||||
{
|
||||
public:
|
||||
typedef F Field;
|
||||
struct PackRecord: Serializable
|
||||
struct PackRecord
|
||||
{
|
||||
GRID_SERIALIZABLE_CLASS_MEMBERS(PackRecord,
|
||||
std::string, operatorPar,
|
||||
std::string, solverPar);
|
||||
std::string operatorXml, solverXml;
|
||||
};
|
||||
struct VecRecord: Serializable
|
||||
{
|
||||
@ -116,7 +114,7 @@ protected:
|
||||
ScidacReader binReader;
|
||||
|
||||
binReader.open(filename);
|
||||
binReader.readScidacFileRecord(evec[0]._grid, record);
|
||||
binReader.skipPastObjectRecord(SCIDAC_FILE_XML);
|
||||
for(int k = 0; k < size; ++k)
|
||||
{
|
||||
VecRecord vecRecord;
|
||||
@ -136,10 +134,13 @@ protected:
|
||||
void basicWrite(const std::string filename, std::vector<T> &evec,
|
||||
const unsigned int size)
|
||||
{
|
||||
ScidacWriter binWriter(evec[0]._grid->IsBoss());
|
||||
ScidacWriter binWriter(evec[0]._grid->IsBoss());
|
||||
XmlWriter xmlWriter("", "");
|
||||
|
||||
xmlWriter.pushXmlString(record.operatorXml);
|
||||
xmlWriter.pushXmlString(record.solverXml);
|
||||
binWriter.writeLimeObject(1, 1, xmlWriter, "parameters", SCIDAC_FILE_XML);
|
||||
binWriter.open(filename);
|
||||
binWriter.writeScidacFileRecord(evec[0]._grid, record);
|
||||
for(int k = 0; k < size; ++k)
|
||||
{
|
||||
VecRecord vecRecord;
|
||||
|
@ -256,11 +256,11 @@ void Module<P>::saveParameters(XmlWriter &writer, const std::string name)
|
||||
template <typename P>
|
||||
std::string Module<P>::parString(void) const
|
||||
{
|
||||
std::ostringstream s;
|
||||
XmlWriter writer("", "");
|
||||
|
||||
s << par();
|
||||
write(writer, par_.SerialisableClassName(), par_);
|
||||
|
||||
return s.str();
|
||||
return writer.string();
|
||||
}
|
||||
|
||||
template <typename P>
|
||||
|
@ -148,8 +148,8 @@ void TLocalCoherenceLanczos<FImpl, nBasis>::execute(void)
|
||||
auto &coarsePar = par().coarseParams;
|
||||
auto &epack = envGetDerived(BasePack, CoarsePack, getName());
|
||||
|
||||
epack.record.operatorPar = vm().getModule(par().action)->parString();
|
||||
epack.record.solverPar = parString();
|
||||
epack.record.operatorXml = vm().getModule(par().action)->parString();
|
||||
epack.record.solverXml = parString();
|
||||
envGetTmp(LCL, solver);
|
||||
LOG(Message) << "Performing fine grid IRL -- Nstop= "
|
||||
<< finePar.Nstop << ", Nk= " << finePar.Nk << ", Nm= "
|
||||
|
Reference in New Issue
Block a user