Bridge++  Ver. 1.2.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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  *b2 = (Field_F)m_fopr->mult(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((Field)(*xq),(Field)(*b2),Nconv,diff);
38  solver->solve(*xq, *b2, Nconv, diff);
39 
40  vout.general(m_vl, " Nconv = %d\n", Nconv);
41  vout.general(m_vl, " diff = %.8e\n", diff);
42 
43  delete solver;
44  delete b2;
45 }
BridgeIO vout
Definition: bridgeIO.cpp:207
Bridge::VerboseLevel m_vl
virtual const Field mult(const Field &)=0
multiplies fermion operator to a given field and returns the resultant field.
void general(const char *format,...)
Definition: bridgeIO.cpp:38
Standard Conjugate Gradient solver algorithm.
Definition: solver_CG.h:41
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:37
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:75
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 &)