Bridge++  Ver. 1.1.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
action_F_Overlap_Nf2.h
Go to the documentation of this file.
1 
14 #ifndef ACTION_F_OVERLAP_NF2_INCLUDED
15 #define ACTION_F_OVERLAP_NF2_INCLUDED
16 
17 #include <valarray>
18 #include "action.h"
19 
20 #include "fopr_Overlap.h"
21 #include "force_F_Overlap_Nf2.h"
22 
23 #include "index_lex.h"
24 #include "sortField_AbsLow.h"
25 #include "eigensolver_IRLanczos.h"
26 #include "solver_CG.h"
27 #include "shiftsolver_CG.h"
28 #include "math_Sign_Zolotarev.h"
29 
30 #include "bridgeIO.h"
31 using Bridge::vout;
32 
34 
43 {
44  private:
48 
49  double m_M0, m_kappa;
50  std::valarray<int> m_boundary;
52 
54 
58 
61 
62  // Zolotarev coefficients
63  std::valarray<double> m_cl;
64  std::valarray<double> m_bl;
65  std::valarray<double> m_sigma;
66 
67  // Eigenmode determination
70  int m_Nmm;
71  int m_Nsbt;
72  std::valarray<double> m_TDa;
73  std::valarray<Field> m_vk;
74 
75  public:
76 
78  : Action()
79  {
81  }
82 
84  {
85  delete m_fopr_w;
86  delete m_index;
87  delete m_fopr_ov;
88  delete m_sort;
89  delete m_eigen;
90  // delete m_eigen;
91  }
92 
93  void set_parameters(const Parameters& param);
94  void set_parameters();
95 
96  void set_config(Field *U)
97  {
98  m_U = (Field_G *)U;
99  m_fopr_w->set_config(U);
100  }
101 
102  void set_eigenmodes();
103 
105  {
106  m_status_linkv = 0;
107  }
108 
109  double langevin(RandomNumbers *);
110 
111  double calcH();
112 
113  const Field force();
116 };
117 #endif