mirror of
https://github.com/paboyle/Grid.git
synced 2025-04-25 13:15:55 +01:00
Hadrons: better metadata for eigenpack
This commit is contained in:
parent
f117552334
commit
6b7228b3e6
@ -44,11 +44,9 @@ class EigenPack
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef F Field;
|
typedef F Field;
|
||||||
struct PackRecord: Serializable
|
struct PackRecord
|
||||||
{
|
{
|
||||||
GRID_SERIALIZABLE_CLASS_MEMBERS(PackRecord,
|
std::string operatorXml, solverXml;
|
||||||
std::string, operatorPar,
|
|
||||||
std::string, solverPar);
|
|
||||||
};
|
};
|
||||||
struct VecRecord: Serializable
|
struct VecRecord: Serializable
|
||||||
{
|
{
|
||||||
@ -116,7 +114,7 @@ protected:
|
|||||||
ScidacReader binReader;
|
ScidacReader binReader;
|
||||||
|
|
||||||
binReader.open(filename);
|
binReader.open(filename);
|
||||||
binReader.readScidacFileRecord(evec[0]._grid, record);
|
binReader.skipPastObjectRecord(SCIDAC_FILE_XML);
|
||||||
for(int k = 0; k < size; ++k)
|
for(int k = 0; k < size; ++k)
|
||||||
{
|
{
|
||||||
VecRecord vecRecord;
|
VecRecord vecRecord;
|
||||||
@ -137,9 +135,12 @@ protected:
|
|||||||
const unsigned int size)
|
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.open(filename);
|
||||||
binWriter.writeScidacFileRecord(evec[0]._grid, record);
|
|
||||||
for(int k = 0; k < size; ++k)
|
for(int k = 0; k < size; ++k)
|
||||||
{
|
{
|
||||||
VecRecord vecRecord;
|
VecRecord vecRecord;
|
||||||
|
@ -256,11 +256,11 @@ void Module<P>::saveParameters(XmlWriter &writer, const std::string name)
|
|||||||
template <typename P>
|
template <typename P>
|
||||||
std::string Module<P>::parString(void) const
|
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>
|
template <typename P>
|
||||||
|
@ -148,8 +148,8 @@ void TLocalCoherenceLanczos<FImpl, nBasis>::execute(void)
|
|||||||
auto &coarsePar = par().coarseParams;
|
auto &coarsePar = par().coarseParams;
|
||||||
auto &epack = envGetDerived(BasePack, CoarsePack, getName());
|
auto &epack = envGetDerived(BasePack, CoarsePack, getName());
|
||||||
|
|
||||||
epack.record.operatorPar = vm().getModule(par().action)->parString();
|
epack.record.operatorXml = vm().getModule(par().action)->parString();
|
||||||
epack.record.solverPar = parString();
|
epack.record.solverXml = parString();
|
||||||
envGetTmp(LCL, solver);
|
envGetTmp(LCL, solver);
|
||||||
LOG(Message) << "Performing fine grid IRL -- Nstop= "
|
LOG(Message) << "Performing fine grid IRL -- Nstop= "
|
||||||
<< finePar.Nstop << ", Nk= " << finePar.Nk << ", Nm= "
|
<< finePar.Nstop << ", Nk= " << finePar.Nk << ", Nm= "
|
||||||
|
@ -320,16 +320,11 @@ class GridLimeWriter : public BinaryIO
|
|||||||
////////////////////////////////////////////
|
////////////////////////////////////////////
|
||||||
// Write a generic serialisable object
|
// Write a generic serialisable object
|
||||||
////////////////////////////////////////////
|
////////////////////////////////////////////
|
||||||
template<class serialisable_object>
|
void writeLimeObject(int MB,int ME,XmlWriter &writer,std::string object_name,std::string record_name)
|
||||||
void writeLimeObject(int MB,int ME,serialisable_object &object,std::string object_name,std::string record_name)
|
|
||||||
{
|
{
|
||||||
if ( boss_node ) {
|
if ( boss_node ) {
|
||||||
std::string xmlstring;
|
std::string xmlstring = writer.docString();
|
||||||
{
|
|
||||||
XmlWriter WR("","");
|
|
||||||
write(WR,object_name,object);
|
|
||||||
xmlstring = WR.docString();
|
|
||||||
}
|
|
||||||
// std::cout << "WriteLimeObject" << record_name <<std::endl;
|
// std::cout << "WriteLimeObject" << record_name <<std::endl;
|
||||||
uint64_t nbytes = xmlstring.size();
|
uint64_t nbytes = xmlstring.size();
|
||||||
// std::cout << " xmlstring "<< nbytes<< " " << xmlstring <<std::endl;
|
// std::cout << " xmlstring "<< nbytes<< " " << xmlstring <<std::endl;
|
||||||
@ -343,6 +338,15 @@ class GridLimeWriter : public BinaryIO
|
|||||||
limeDestroyHeader(h);
|
limeDestroyHeader(h);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<class serialisable_object>
|
||||||
|
void writeLimeObject(int MB,int ME,serialisable_object &object,std::string object_name,std::string record_name)
|
||||||
|
{
|
||||||
|
XmlWriter WR("","");
|
||||||
|
|
||||||
|
write(WR,object_name,object);
|
||||||
|
writeLimeObject(MB, ME, WR, object_name, record_name);
|
||||||
|
}
|
||||||
////////////////////////////////////////////////////
|
////////////////////////////////////////////////////
|
||||||
// Write a generic lattice field and csum
|
// Write a generic lattice field and csum
|
||||||
// This routine is Collectively called by all nodes
|
// This routine is Collectively called by all nodes
|
||||||
|
Loading…
x
Reference in New Issue
Block a user