szin_io.cc

Go to the documentation of this file.
00001 // $Id: szin_io.cc,v 3.1 2006/06/13 18:18:14 bjoo Exp $
00002 
00003 /*! \file
00004  *  \brief Reader/writers for szin headers
00005  */
00006 
00007 #include "chromabase.h"
00008 #include "chroma_config.h"
00009 #include "io/szin_io.h"
00010 #include <time.h>
00011 
00012 namespace Chroma 
00013 {
00014 
00015   // Initialize header with default values
00016   SzinGauge_t::SzinGauge_t()
00017   {
00018     cfg_version = 7;
00019 
00020     FermTypeP = 0;
00021     Nd = QDP::Nd;
00022     Nc = QDP::Nc;
00023     BetaMC = 0;
00024     BetaMD = 0;
00025 
00026     KappaMC = 0;
00027     KappaMD = 0;
00028     MassMC = 0;
00029     MassMD = 0;
00030     dt = 0;
00031     MesTrj = 0;
00032     TotalCG = 0;
00033     TotalTrj = 0;
00034     spec_acc = 1;
00035 
00036     NOver = 0;
00037     TotalTry = 0;
00038     TotalFail = 0;
00039     Nf = 0;
00040     Npf = 0;
00041     RefMomTrj = 0;
00042     RefFnoiseTrj = 0;
00043     LamPl = 0;
00044     LamMi = 0;
00045     AlpLog = 0;
00046     AlpExp = 0;
00047 
00048     nrow = Layout::lattSize();
00049     RNG::savern(seed);
00050 
00051     banner = CHROMA_PACKAGE_STRING;
00052     banner += ", ";
00053     banner += QDP_PACKAGE_STRING;
00054 
00055     {
00056       time_t now;
00057 
00058       if(time(&now)==-1)
00059       {
00060         QDPIO::cerr<<"SzinGauge_t: cannot get the time.\n";
00061         QDP_abort(1);
00062       }
00063       tm *tp = localtime(&now);
00064 
00065       char date_tmp[64];
00066       strftime(date_tmp, 63, "%d %b %y %X %Z", tp);
00067       date = date_tmp;
00068     }
00069   }
00070 
00071 
00072 
00073   // Source header read
00074   void read(XMLReader& xml, const string& path, SzinGauge_t& header)
00075   {
00076     XMLReader paramtop(xml, path);
00077 
00078     read(paramtop, "cfg_version", header.cfg_version);
00079 
00080     read(paramtop, "date", header.date);
00081     read(paramtop, "banner", header.banner);
00082 
00083     read(paramtop, "FermTypeP", header.FermTypeP);
00084     read(paramtop, "Nd", header.Nd);
00085     read(paramtop, "Nc", header.Nc);
00086     read(paramtop, "BetaMC", header.BetaMC);
00087     read(paramtop, "BetaMD", header.BetaMD);
00088 
00089     read(paramtop, "KappaMC", header.KappaMC);
00090     read(paramtop, "KappaMD", header.KappaMD);
00091     read(paramtop, "MassMC", header.MassMC);
00092     read(paramtop, "MassMD", header.MassMD);
00093     read(paramtop, "dt", header.dt);
00094     read(paramtop, "MesTrj", header.MesTrj);
00095     read(paramtop, "TotalCG", header.TotalCG);
00096     read(paramtop, "TotalTrj", header.TotalTrj);
00097     read(paramtop, "spec_acc", header.spec_acc);
00098 
00099     read(paramtop, "NOver", header.NOver);
00100     read(paramtop, "TotalTry", header.TotalTry);
00101     read(paramtop, "TotalFail", header.TotalFail);
00102     read(paramtop, "Nf", header.Nf);
00103     read(paramtop, "Npf", header.Npf);
00104     read(paramtop, "RefMomTrj", header.RefMomTrj);
00105     read(paramtop, "RefFnoiseTrj", header.RefFnoiseTrj);
00106     read(paramtop, "LamPl", header.LamPl);
00107     read(paramtop, "LamMi", header.LamMi);
00108     read(paramtop, "AlpLog", header.AlpLog);
00109     read(paramtop, "AlpExp", header.AlpExp);
00110 
00111     read(paramtop, "nrow", header.nrow);
00112     read(paramtop, "seed", header.seed);
00113   }
00114 
00115 
00116   //! Source header writer
00117   void write(XMLWriter& xml, const string& path, const SzinGauge_t& header)
00118   {
00119     push(xml, path);
00120 
00121     write(xml, "cfg_version", header.cfg_version);
00122 
00123     write(xml, "date", header.date);
00124     write(xml, "banner", header.banner);
00125 
00126     write(xml, "FermTypeP", header.FermTypeP);
00127     write(xml, "Nd", header.Nd);
00128     write(xml, "Nc", header.Nc);
00129     write(xml, "BetaMC", header.BetaMC);
00130     write(xml, "BetaMD", header.BetaMD);
00131 
00132     write(xml, "KappaMC", header.KappaMC);
00133     write(xml, "KappaMD", header.KappaMD);
00134     write(xml, "MassMC", header.MassMC);
00135     write(xml, "MassMD", header.MassMD);
00136     write(xml, "dt", header.dt);
00137     write(xml, "MesTrj", header.MesTrj);
00138     write(xml, "TotalCG", header.TotalCG);
00139     write(xml, "TotalTrj", header.TotalTrj);
00140     write(xml, "spec_acc", header.spec_acc);
00141 
00142     write(xml, "NOver", header.NOver);
00143     write(xml, "TotalTry", header.TotalTry);
00144     write(xml, "TotalFail", header.TotalFail);
00145     write(xml, "Nf", header.Nf);
00146     write(xml, "Npf", header.Npf);
00147     write(xml, "RefMomTrj", header.RefMomTrj);
00148     write(xml, "RefFnoiseTrj", header.RefFnoiseTrj);
00149     write(xml, "LamPl", header.LamPl);
00150     write(xml, "LamMi", header.LamMi);
00151     write(xml, "AlpLog", header.AlpLog);
00152     write(xml, "AlpExp", header.AlpExp);
00153 
00154     write(xml, "nrow", header.nrow);
00155     write(xml, "seed", header.seed);
00156 
00157     pop(xml);
00158   }
00159 
00160 }  // end namespace Chroma

Generated on Sun Nov 22 04:34:35 2009 for CHROMA by  doxygen 1.4.7