Bridge++
Ver. 1.1.x
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
fopr_CloverTerm_eo.h
Go to the documentation of this file.
1
14
#ifndef FOPR_CLOVERTERM_EO_INCLUDED
15
#define FOPR_CLOVERTERM_EO_INCLUDED
16
17
#include <vector>
18
19
#include "
fopr_Wilson_eo.h
"
20
#include "
staples_eo.h
"
21
22
#include "
gammaMatrixSet.h
"
23
24
#include "
mat_SU_N.h
"
25
#include "
vec_SU_N.h
"
26
27
#include "
bridgeIO.h
"
28
using
Bridge::vout
;
29
31
46
//- parameters class
47
class
Parameters_Fopr_CloverTerm_eo
:
virtual
public
Parameters
48
{
49
public
:
50
Parameters_Fopr_CloverTerm_eo
();
51
};
52
//- end
53
54
class
Fopr_CloverTerm_eo
:
public
Fopr
55
{
56
// This class return D_ee = 1-f_ee or D_oo = 1-f_oo
57
private
:
58
int
m_Nvol
,
m_Nvol2
,
m_Ndim
,
m_Nc
,
m_Nd
,
m_NinF
,
m_Ndm2
;
59
double
m_kappa
,
m_cSW
;
60
std::valarray<int>
m_boundary
;
61
std::string
m_repr
;
62
std::string
m_mode
;
63
65
std::valarray<GammaMatrix>
m_GM
,
m_SG
;
66
67
void (
Fopr_CloverTerm_eo
::*
m_mult
) (
Field
&,
const
Field
&);
68
69
Index_eo
idx
;
70
71
const
Field_G
*
m_Ueo
;
72
ShiftField_eo
m_shift_eo
;
73
75
Field_G
m_T
;
76
77
Vec_SU_N
v1
,
v2
;
78
79
public
:
80
Fopr_CloverTerm_eo
(std::string repr)
81
:
m_Nvol
(
CommonParameters
::Nvol()),
82
m_Nvol2
(
m_Nvol
/ 2),
83
m_Ndim
(
CommonParameters
::Ndim()),
84
m_Nc
(
CommonParameters
::Nc()),
85
m_Nd
(
CommonParameters
::Nd()),
86
m_Ndm2
(
m_Nd
*
m_Nd
/ 2),
87
m_T
(
m_Nvol
,
m_Ndm2
)
88
{
89
init
(repr);
90
}
91
92
~Fopr_CloverTerm_eo
() {}
93
94
void
set_parameters
(
const
Parameters
& params);
95
void
set_parameters
(
const
double
kappa,
const
double
cSW,
96
const
std::valarray<int> bc);
97
void
set_config
(
Field
*Ueo);
98
99
void
set_mode
(std::string mode)
100
{
101
m_mode
= mode;
102
}
103
104
std::string
get_mode
()
const
105
{
106
return
m_mode
;
107
}
108
110
const
Field
mult
(
const
Field
& f)
111
{
112
Field
v(f.
nin
(), f.
nvol
(), f.
nex
());
113
114
mult
(v, f);
115
return
v;
116
}
117
118
const
Field
mult_dag
(
const
Field
& f)
119
{
120
Field
v(f.
nin
(), f.
nvol
(), f.
nex
());
121
122
mult_dag
(v, f);
123
return
v;
124
}
125
126
void
mult
(
Field
& v,
const
Field
& f)
127
{
128
if
(
m_mode
==
"even"
) {
129
D
(v, f, 0);
130
}
else
if
(
m_mode
==
"odd"
) {
131
D
(v, f, 1);
132
}
else
{
133
vout
.
crucial
(
"Fopr_CloverTerm_eo: undefined mode = %s\n"
,
m_mode
.c_str());
134
abort();
135
}
136
}
137
138
void
mult_dag
(
Field
& v,
const
Field
& f)
139
{
140
mult
(v, f);
141
}
142
143
void
mult_isigma
(
Field_F
&,
const
Field_F
&,
144
const
int
mu,
const
int
nu);
145
146
const
Field
D
(
const
Field
& f,
const
int
ieo)
147
{
148
Field
v(f.
nin
(), f.
nvol
(), f.
nex
());
149
150
D
(v, f, ieo);
151
return
v;
152
}
153
154
void
D
(
Field
& v,
const
Field
& f,
const
int
ieo);
155
156
std::vector<double>
csmatrix
(
const
int
&);
157
158
int
field_nvol
() {
return
m_Nvol2
; }
159
int
field_nin
() {
return
2 *
m_Nc
*
m_Nd
; }
160
int
field_nex
() {
return
1; }
161
162
private
:
163
void
init
(std::string repr);
164
165
void
set_csw
();
166
void
mult_csw
(
Field_F
&,
const
Field_F
&,
const
int
ieo);
167
void
set_fieldstrength
(
Field_G
&,
const
int
,
const
int
);
168
169
int
sg_index
(
int
mu,
int
nu) {
return
mu *
m_Ndim
+ nu; }
170
};
171
#endif
src
Fopr
fopr_CloverTerm_eo.h
Generated on Tue Jul 23 2013 10:48:48 for Bridge++ by
1.8.3.1