Bridge++  Ver. 1.2.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
force.cpp
Go to the documentation of this file.
1 #include "force.h"
2 
3 // old interface for compatibility.
4 
6 {
7  int Nvol = CommonParameters::Nvol();
8  int Ndim = CommonParameters::Ndim();
9 
10  Field_G force(Nvol, Ndim);
11 
12  force_core(force, eta);
13 
14  return force;
15 }
16 
17 
19 {
20  int Nvol = CommonParameters::Nvol();
21  int Ndim = CommonParameters::Ndim();
22 
23  Field_G force(Nvol, Ndim);
24 
25  force_udiv(force, eta);
26 
27  return force;
28 }
29 
30 
31 Field Force::force_core1(const Field& zeta, const Field& eta)
32 {
33  int Nvol = CommonParameters::Nvol();
34  int Ndim = CommonParameters::Ndim();
35 
36  Field_G force(Nvol, Ndim);
37 
38  force_core1(force, zeta, eta);
39 
40  return force;
41 }
42 
43 
44 Field Force::force_udiv1(const Field& zeta, const Field& eta)
45 {
46  int Nvol = CommonParameters::Nvol();
47  int Ndim = CommonParameters::Ndim();
48 
49  Field_G force(Nvol, Ndim);
50 
51  force_udiv1(force, zeta, eta);
52  return force;
53 }
54 
55 
56 // default templates for core and core1
57 //====================================================================
58 void Force::force_core(Field& force_, const Field& eta)
59 {
60  int Nvol = CommonParameters::Nvol();
61  int Ndim = CommonParameters::Ndim();
62 
63  Field_G force(Nvol, Ndim);
64 
65  force_udiv(force, eta);
66 
67  mult_generator(force);
68 
69  force_ = force;
70 }
71 
72 
73 //====================================================================
74 void Force::force_core1(Field& force_, const Field& zeta, const Field& eta)
75 {
76  int Nvol = CommonParameters::Nvol();
77  int Ndim = CommonParameters::Ndim();
78 
79  Field_G force(Nvol, Ndim);
80 
81  force_udiv1(force, zeta, eta);
82 
83  mult_generator(force);
84 
85  force_ = force;
86 }
87 
88 
89 // utility function
90 //====================================================================
92 {
93 // int Nvol = CommonParameters::Nvol();
94 // int Ndim = CommonParameters::Ndim();
95  int Nvol = force.nvol();
96  int Ndim = force.nex();
97 
98  for (int mu = 0; mu < Ndim; ++mu) {
99  for (int isite = 0, nsite = Nvol; isite < nsite; ++isite) {
100  Mat_SU_N u = m_U->mat(isite, mu);
101 
102  u *= force.mat(isite, mu);
103  u.at();
104  u *= -2.0;
105 
106  force.set_mat(isite, mu, u);
107  }
108  }
109 }
110 
111 
112 //====================================================================
Container of Field-type object.
Definition: field.h:37
int nvol() const
Definition: field.h:101
Field_G * m_U
Definition: force.h:74
Mat_SU_N & at()
antihermitian traceless
Definition: mat_SU_N.h:329
virtual void force_core1(Field &, const Field &, const Field &)
Definition: force.cpp:74
SU(N) gauge field.
Definition: field_G.h:36
int nex() const
Definition: field.h:102
virtual void force_core(Field &, const Field &)
Definition: force.cpp:58
virtual void force_udiv(Field &, const Field &)
Definition: force.h:59
virtual void force_udiv1(Field &, const Field &, const Field &)
Definition: force.h:60
void set_mat(const int site, const int mn, const Mat_SU_N &U)
Definition: field_G.h:156
Mat_SU_N mat(const int site, const int mn=0) const
Definition: field_G.h:110
void mult_generator(Field_G &)
Definition: force.cpp:91