CHROMA
key_prop_matelem.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Key for propagator colorstd::vector matrix elements
4  */
5 
7 
8 namespace Chroma
9 {
10  //----------------------------------------------------------------------------
11  //! PropElementalOperator reader
12  void read(BinaryReader& bin, KeyPropElementalOperator_t& param)
13  {
14  read(bin, param.t_slice);
15  read(bin, param.t_source);
16  read(bin, param.spin_src);
17  read(bin, param.spin_snk);
18  read(bin, param.mass_label, 32);
19  }
20 
21  //! PropElementalOperator write
22  void write(BinaryWriter& bin, const KeyPropElementalOperator_t& param)
23  {
24  write(bin, param.t_slice);
25  write(bin, param.t_source);
26  write(bin, param.spin_src);
27  write(bin, param.spin_snk);
28  write(bin, param.mass_label);
29  }
30 
31  //! PropElementalOperator reader
32  void read(XMLReader& xml, const std::string& path, KeyPropElementalOperator_t& param)
33  {
34  XMLReader paramtop(xml, path);
35 
36  read(paramtop, "t_slice", param.t_slice);
37  read(paramtop, "t_source", param.t_source);
38  read(paramtop, "spin_src", param.spin_src);
39  read(paramtop, "spin_snk", param.spin_snk);
40  read(paramtop, "mass_label", param.mass_label);
41  }
42 
43  //! PropElementalOperator writer
44  void write(XMLWriter& xml, const std::string& path, const KeyPropElementalOperator_t& param)
45  {
46  push(xml, path);
47 
48  write(xml, "t_slice", param.t_slice);
49  write(xml, "t_source", param.t_source);
50  write(xml, "spin_src", param.spin_src);
51  write(xml, "spin_snk", param.spin_snk);
52  write(xml, "mass_label", param.mass_label);
53 
54  pop(xml);
55  }
56 
57 
58  //----------------------------------------------------------------------------
59  //! PropElementalOperator reader
60  void read(BinaryReader& bin, ValPropElementalOperator_t& param)
61  {
62  int n1;
63  int n2;
64  read(bin, n2); // the size is always written, even if 0
65  read(bin, n1); // the size is always written, even if 0
66  param.mat.resize(n2,n1);
67 
68  for(int i=0; i < param.mat.size1(); ++i)
69  {
70  for(int j=0; j < param.mat.size2(); ++j)
71  {
72  read(bin, param.mat[j][i]);
73  }
74  }
75  }
76 
77  //! PropElementalOperator write
78  void write(BinaryWriter& bin, const ValPropElementalOperator_t& param)
79  {
80  write(bin, param.mat.size2()); // always write the size
81  write(bin, param.mat.size1()); // always write the size
82 
83  for(int i=0; i < param.mat.size1(); ++i)
84  {
85  for(int j=0; j < param.mat.size2(); ++j)
86  {
87  write(bin, param.mat[j][i]);
88  }
89  }
90  }
91 
92 } // namespace Chroma
void read(XMLReader &xml, const std::string &path, AsqtadFermActParams &param)
Read parameters.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams &param)
Writer parameters.
Key for propagator colorstd::vector matrix elements.
unsigned j
Definition: ldumul_w.cc:35
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
push(xml_out,"Condensates")
int i
Definition: pbg5p_w.cc:55
pop(xml_out)
::std::string string
Definition: gtest.h:1979