Bridge++  Ver. 1.1.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fprop_Staggered_eo.cpp
Go to the documentation of this file.
1 
14 #include "fprop_Staggered_eo.h"
15 
16 //====================================================================
18 {
19  m_params_solver = params_solver;
20 }
21 
22 
23 //====================================================================
25 {
26  // #### parameter setup ####
27  int Nvol = CommonParameters::Nvol();
28 
29  const string str_solver_type = m_params_solver.get_string("solver_type");
30 
31  // #### object setup ####
32  Solver *solver = Solver::New(str_solver_type, m_fopr_eo);
33 
35 
36  int Nconv;
37  double diff;
38 
39  Field_F_1spinor be(Nvol / 2, 1);
40  Field_F_1spinor bo(Nvol / 2, 1);
41  Field_F_1spinor xqe(Nvol / 2, 1);
42  Field_F_1spinor xqo(Nvol / 2, 1);
43 
44  m_index_eo.convertField(be, b, 0);
45  m_index_eo.convertField(bo, b, 1);
46 
47  vout.general(m_vl, "be norm = %18.8e\n", be.norm2());
48  vout.general(m_vl, "bo norm = %18.8e\n", bo.norm2());
49 
50  be -= (Field_F_1spinor)m_fopr_eo->Meo(bo, 0);
51 
52  vout.general(m_vl, "be norm = %18.8e\n", be.norm2());
53 
54  m_fopr_eo->set_mode("Dee");
55  solver->solve(xqe, be, Nconv, diff);
56 
57  xqo = bo;
58  xqo -= (Field_F_1spinor)m_fopr_eo->Meo(xqe, 1);
59  m_index_eo.reverseField(xq, xqe, 0);
60  m_index_eo.reverseField(xq, xqo, 1);
61  // m_fopr_eo->fprop_normalize(xq);
62 
63  vout.general(m_vl, " Nconv = %d\n", Nconv);
64  vout.general(m_vl, " diff = %.8e\n", diff);
65 
66 
67  // #### tidy up ####
68  delete solver;
69 }
70 
71 
72 //====================================================================
73 //============================================================END=====