Bridge++  Ver. 1.1.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fprop_Standard_eo.cpp
Go to the documentation of this file.
1 
14 #include "fprop_Standard_eo.h"
15 
16 //====================================================================
18 {
19  m_index->convertField(*m_Ueo, *U);
20 
21  // m_solver->get_fopr()->set_config(m_Ueo);
23 }
24 
25 
26 //====================================================================
27 void Fprop_Standard_eo::invert_D(Field& xq, const Field& b, int& Nconv, double& diff)
28 {
29  int Nin = b.nin();
30  int Nvol = b.nvol();
31  int Nex = b.nex();
32 
33  Field Be(Nin, Nvol / 2, Nex);
34  Field bo(Nin, Nvol / 2, Nex);
35  Field xe(Nin, Nvol / 2, Nex);
36 
37  int Nconv1;
38 
39  Fopr_eo *fopr = (Fopr_eo *)m_solver->get_fopr();
40 
41  fopr->set_mode("D");
42  fopr->preProp(Be, bo, b);
43  m_solver->solve(xe, Be, Nconv1, diff);
44  fopr->postProp(xq, xe, bo);
45 
46  //- NB. #mult is doubled for even-odd
47  Nconv = 2 * Nconv1;
48 }
49 
50 
51 //====================================================================
52 void Fprop_Standard_eo::invert_DdagD(Field& xq, const Field& b, int& Nconv, double& diff)
53 {
54  int Nin = b.nin();
55  int Nvol = b.nvol();
56  int Nex = b.nex();
57 
58  Field Be(Nin, Nvol / 2, Nex);
59  Field bo(Nin, Nvol / 2, Nex);
60  Field xe(Nin, Nvol / 2, Nex);
61 
62  int Nconv1, Nconv2;
63  double diff1, diff2;
64 
65  Fopr_eo *fopr = (Fopr_eo *)m_solver->get_fopr();
66 
67  fopr->set_mode("Ddag");
68  fopr->preProp(Be, bo, b);
69  m_solver->solve(xe, Be, Nconv1, diff1);
70  fopr->postProp(xq, xe, bo);
71 
72  fopr->set_mode("D");
73  fopr->preProp(Be, bo, xq);
74  m_solver->solve(xe, Be, Nconv2, diff2);
75  fopr->postProp(xq, xe, bo);
76 
77  //- NB. #mult is doubled for even-odd
78  Nconv = 2 * (Nconv1 + Nconv2);
79 
80  //- rough estimate of diff
81  diff = (diff1 + diff2) / 2.0;
82 }
83 
84 
85 //====================================================================
86 //============================================================END=====