Bridge++  Ver. 1.3.x
fprop_4spinor_lex.cpp
Go to the documentation of this file.
1 
14 #include "fprop_4spinor_lex.h"
15 
16 const std::string Fprop_4spinor_lex::class_name = "Fprop_4spinor_lex";
17 
18 //====================================================================
20 {
21  int Niter = 500;
22  double Stop_cond = 1.0e-24;
23 
24  int Nconv;
25  double diff;
26 
27  // CGNE solver
28  Field_F *b2 = new Field_F;
29 
30  m_fopr->set_mode("Ddag");
31  m_fopr->mult(*b2, b);
32 
33  Solver *solver = new Solver_CG(m_fopr);
34  solver->set_parameters(Niter, Stop_cond);
35  m_fopr->set_mode("DdagD");
36 
37  solver->solve(*xq, *b2, Nconv, diff);
38 
39  vout.general(m_vl, " Nconv = %d\n", Nconv);
40  vout.general(m_vl, " diff = %.8e\n", diff);
41 
42  delete solver;
43  delete b2;
44 }
BridgeIO vout
Definition: bridgeIO.cpp:278
Bridge::VerboseLevel m_vl
void general(const char *format,...)
Definition: bridgeIO.cpp:65
Standard Conjugate Gradient solver algorithm.
Definition: solver_CG.h:43
Wilson-type fermion field.
Definition: field_F.h:37
virtual void set_parameters(const Parameters &params)=0
Base class for linear solver class family.
Definition: solver.h:38
virtual void mult(Field &, const Field &)=0
multiplies fermion operator to a given field (2nd argument)
virtual void set_mode(std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
Definition: fopr.h:85
static const std::string class_name
virtual void solve(Field &solution, const Field &source, int &Nconv, double &diff)=0
void calc(Field_F *, const Field_F &)