From 21bba95909a320a9477452d761fbe58e1c894418 Mon Sep 17 00:00:00 2001 From: Antonin Portelli Date: Mon, 1 Oct 2018 19:33:45 +0100 Subject: [PATCH] Hadrons: eigenpack metadata is no ignored anymore when reading --- Hadrons/EigenPack.hpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/Hadrons/EigenPack.hpp b/Hadrons/EigenPack.hpp index 49fecc34..3e0a6fb4 100644 --- a/Hadrons/EigenPack.hpp +++ b/Hadrons/EigenPack.hpp @@ -122,10 +122,16 @@ protected: void basicRead(std::vector &evec, std::vector &eval, const std::string filename, const unsigned int size) { - ScidacReader binReader; + ScidacReader binReader; + std::string recordXml; binReader.open(filename); - binReader.skipPastObjectRecord(SCIDAC_FILE_XML); + binReader.readLimeObject(recordXml, SCIDAC_FILE_XML); + XmlReader xmlReader(recordXml, true, "eigenPackPar"); + xmlReader.push(); + xmlReader.readCurrentSubtree(record.operatorXml); + xmlReader.nextElement(); + xmlReader.readCurrentSubtree(record.solverXml); for(int k = 0; k < size; ++k) { VecRecord vecRecord; @@ -149,9 +155,15 @@ protected: { ScidacReader binReader; VecRecord vecRecord; + std::string recordXml; binReader.open(filename); - binReader.skipPastObjectRecord(SCIDAC_FILE_XML); + binReader.readLimeObject(recordXml, SCIDAC_FILE_XML); + XmlReader xmlReader(recordXml, true, "eigenPackPar"); + xmlReader.push(); + xmlReader.readCurrentSubtree(record.operatorXml); + xmlReader.nextElement(); + xmlReader.readCurrentSubtree(record.solverXml); LOG(Message) << "Reading eigenvector " << index << std::endl; binReader.readScidacFieldRecord(evec, vecRecord); if (vecRecord.index != index)