CHROMA
avp_ssef_solver.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Base class for AVP's SSEF-DWF solver interface
4  */
5 
6 #ifndef AVP_SSEF_SOLVER_H
7 #define AVP_SSEF_SOLVER_H
8 
10 
11 extern "C"
12 {
13  struct MIT_ssef_DWF_Gauge;
14  struct MIT_ssef_DWF_Fermion;
15 };
16 
17 using namespace QDP;
18 namespace Chroma
19 {
20  //! AVP's DWF Solver interface
21  /*!
22  * \ingroup qprop
23  *
24  * @{
25  */
26  namespace AVPSolver
27  {
28 
29  class SSEDWFSolverF : public AVPSolverInterface< MIT_ssef_DWF_Gauge, MIT_ssef_DWF_Fermion >
30  {
31 public:
32  protected:
33  MIT_ssef_DWF_Fermion* loadFermionRHS(const void* OuterFermion) const;
34  MIT_ssef_DWF_Fermion* loadFermionGuess(const void *OuterFermion) const;
35  MIT_ssef_DWF_Fermion* allocateFermion(void) const ;
36  void saveFermionSolver(void *OuterFermion,
37  MIT_ssef_DWF_Fermion* CGFermion) const;
38 
39  void saveFermionOperator(void *OuterFermion,
40  MIT_ssef_DWF_Fermion* CGFermion) const;
41 
42  void deleteFermion(MIT_ssef_DWF_Fermion* ptr) const;
43  int cgInternal(MIT_ssef_DWF_Fermion *psi,
44  double *out_eps,
45  int *out_iter,
46  double M,
47  double m_f,
48  const MIT_ssef_DWF_Fermion *x0,
49  const MIT_ssef_DWF_Fermion *eta,
50  double eps,
51  int min_iter,
52  int max_iter) const;
53  public:
54  void loadGauge(const void *u,
55  const void *v);
56 
57  void deleteGauge(void);
58 
59  // Init the system -- Constructor call?
60  int init(const int lattice[5],
61  void *(*allocator)(size_t size),
62  void (*deallocator)(void *));
63 
64  // Finalize - destructor call
65  void fini(void);
66  private:
67  MIT_ssef_DWF_Gauge *g;
68  };
69  }
70 
71  /*! @} */ // end of group qprop
72 }
73 
74 #endif
Base class for AVP's DWF solver interface.
void init(MesonSpecData_t &data, XMLWriter &xml, const std::string &path, const std::string &id_tag, const Params &params)
Do some initialization.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
static multi1d< LatticeColorMatrix > u
LatticeFermion eta
Definition: mespbg5p_w.cc:37
psi
Definition: pade_trln_w.cc:191