CHROMA
comp_approx.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! @file
3  * @brief Components of rational approximation
4  */
5 
6 #ifndef __comp_approx_h__
7 #define __comp_approx_h__
8 
9 #include "chromabase.h"
10 #include "io/xml_group_reader.h"
11 
12 namespace Chroma
13 {
14 
15  //----------------------------------------------------------------------------
16  //! Params for each major group - action/heatbath & force
17  /*! @ingroup monomial */
18  struct TermApprox_t
19  {
20  GroupXML_t ratApprox; /*!< Rational approximation info for f(M^dag*M) */
21  GroupXML_t invParam; /*!< Inverter Parameters */
22  };
23 
24  /*! @ingroup monomial */
25  void read(XMLReader& xml, const std::string& path, TermApprox_t& param);
26 
27  /*! @ingroup monomial */
28  void write(XMLWriter& xml, const std::string& path, const TermApprox_t& params);
29 
30 
31  //----------------------------------------------------------------------------
32  //! Params for numerator and denominator fermion actions
33  /*! @ingroup monomial */
34  struct CompApprox_t
35  {
36  GroupXML_t fermact; /*!< Fermion action */
37  TermApprox_t action; /*!< Action/heatbath params */
38  TermApprox_t force; /*!< Force params */
39  };
40 
41  /*! @ingroup monomial */
42  void read(XMLReader& xml, const std::string& path, CompApprox_t& param);
43 
44  /*! @ingroup monomial */
45  void write(XMLWriter& xml, const std::string& path, const CompApprox_t& params);
46 
47 
48  //----------------------------------------------------------------------------
49  //! Params for numerator and denominator fermion actions
50  /*! @ingroup monomial */
51  struct CompAction_t
52  {
53  GroupXML_t fermact; /*!< Fermion action */
54  };
55 
56  /*! @ingroup monomial */
57  void read(XMLReader& xml, const std::string& path, CompAction_t& param);
58 
59  /*! @ingroup monomial */
60  void write(XMLWriter& xml, const std::string& path, const CompAction_t& params);
61 
62 
63  //----------------------------------------------------------------------------
64  //! Params for numerator and denominator fermion actions
65  /*! @ingroup monomial */
67  {
68  GroupXML_t fermact; /*!< Fermion action */
69  GroupXML_t invParam; /*!< Inverter Parameters */
70  };
71 
72  /*! @ingroup monomial */
73  void read(XMLReader& xml, const std::string& path, CompActionInv_t& param);
74 
75  /*! @ingroup monomial */
76  void write(XMLWriter& xml, const std::string& path, const CompActionInv_t& params);
77 
78 } //end namespace chroma
79 
80 #endif
Primary include file for CHROMA library code.
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.
Params params
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
::std::string string
Definition: gtest.h:1979
Params for numerator and denominator fermion actions.
Definition: comp_approx.h:67
Params for numerator and denominator fermion actions.
Definition: comp_approx.h:52
GroupXML_t fermact
Definition: comp_approx.h:53
Params for numerator and denominator fermion actions.
Definition: comp_approx.h:35
GroupXML_t fermact
Definition: comp_approx.h:36
TermApprox_t action
Definition: comp_approx.h:37
TermApprox_t force
Definition: comp_approx.h:38
Hold group xml and type id.
Params for each major group - action/heatbath & force.
Definition: comp_approx.h:19
GroupXML_t invParam
Definition: comp_approx.h:21
GroupXML_t ratApprox
Definition: comp_approx.h:20
Read an XML group as a std::string.