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_Wilson_eo.h
Go to the documentation of this file.
1
15
#ifndef FOPR_WILSON_EO_INCLUDED
16
#define FOPR_WILSON_EO_INCLUDED
17
18
#include "
fopr_Wilson.h
"
19
20
#include "
fopr_eo.h
"
21
#include "
shiftField_eo.h
"
22
23
#include "
gammaMatrixSet.h
"
24
25
#include "
bridgeIO.h
"
26
using
Bridge::vout
;
27
28
//- parameters class
29
class
Parameters_Fopr_Wilson_eo
:
virtual
public
Parameters
30
{
31
public
:
32
Parameters_Fopr_Wilson_eo
();
33
};
34
//- end
35
37
51
class
Fopr_Wilson_eo
:
public
Fopr_eo
52
{
53
private
:
54
int
m_Nvol
,
m_Nvol2
,
m_Ndim
;
55
double
m_kappa
;
56
std::valarray<int>
m_boundary
;
57
Index_eo
m_index
;
58
Field_G
*
m_Ueo
;
59
60
ShiftField_eo
shift
;
61
Field_F
trf
,
trf2
;
62
Vec_SU_N
v1
,
v2
;
63
64
std::valarray<GammaMatrix>
m_GM
;
65
66
std::string
m_mode
;
67
std::string
m_repr
;
68
69
void (
Fopr_Wilson_eo
::*
m_mult
) (
Field
&,
const
Field
&);
70
void (
Fopr_Wilson_eo
::*
m_mult_dag
) (
Field
&,
const
Field
&);
71
void (
Fopr_Wilson_eo
::*
m_D
) (
Field
&,
const
Field
&);
72
void (
Fopr_Wilson_eo
::*
m_gm5
) (
Field
&,
const
Field
&);
73
void (
Fopr_Wilson_eo
::*
m_preProp
) (
Field
&,
Field
&,
const
Field
&);
74
void (
Fopr_Wilson_eo
::*
m_postProp
) (
Field
&,
const
Field
&,
const
Field
&);
75
76
public
:
77
78
Fopr_Wilson_eo
(std::string repr)
79
:
m_Nvol
(
CommonParameters
::Nvol()),
80
m_Nvol2
(
CommonParameters
::Nvol() / 2),
81
m_Ndim
(
CommonParameters
::Ndim()),
82
trf
(
m_Nvol2
, 1),
trf2
(
m_Nvol2
, 1)
83
{
84
init
(repr);
85
}
86
87
~Fopr_Wilson_eo
()
88
{
89
delete
m_Ueo
;
90
}
91
92
void
set_parameters
(
const
Parameters
& params);
93
void
set_parameters
(
const
double
kappa,
const
std::valarray<int> bc);
94
95
void
set_config
(
Field
*U);
96
97
// method for even odd fermion operator
98
void
preProp
(
Field
& Be,
Field
& bo,
const
Field
& b)
99
{
100
(this->*
m_preProp
)(Be, bo, b);
101
}
102
103
void
postProp
(
Field
& x,
const
Field
& xe,
const
Field
& bo)
104
{
105
(this->*
m_postProp
)(x, xe, bo);
106
}
107
108
void
prePropD
(
Field
&,
Field
&,
const
Field
&);
109
void
postPropD
(
Field
&,
const
Field
&,
const
Field
&);
110
void
prePropDag
(
Field
&,
Field
&,
const
Field
&);
111
void
postPropDag
(
Field
&,
const
Field
&,
const
Field
&);
112
113
const
Field
mult
(
const
Field
& f)
114
{
115
Field
v(f.
nin
(), f.
nvol
(), f.
nex
());
116
117
mult
(v, f);
118
return
v;
119
}
120
121
const
Field
mult_dag
(
const
Field
& f)
122
{
123
Field
v(f.
nin
(), f.
nvol
(), f.
nex
());
124
125
mult_dag
(v, f);
126
return
v;
127
}
128
129
void
mult
(
Field
& v,
const
Field
& f)
130
{
131
(this->*
m_mult
)(v, f);
132
}
133
134
void
mult_dag
(
Field
& v,
const
Field
& f)
135
{
136
(this->*
m_mult_dag
)(v, f);
137
}
138
139
void
set_mode
(std::string mode)
140
{
141
m_mode
= mode;
142
143
if
(
m_mode
==
"D"
) {
144
m_mult
= &
Fopr_Wilson_eo::D
;
145
m_mult_dag
= &
Fopr_Wilson_eo::Ddag
;
146
m_preProp
= &
Fopr_Wilson_eo::prePropD
;
147
m_postProp
= &
Fopr_Wilson_eo::postPropD
;
148
}
else
if
(
m_mode
==
"Ddag"
) {
149
m_mult
= &
Fopr_Wilson_eo::Ddag
;
150
m_mult_dag
= &
Fopr_Wilson_eo::D
;
151
m_preProp
= &
Fopr_Wilson_eo::prePropDag
;
152
m_postProp
= &
Fopr_Wilson_eo::postPropDag
;
153
}
else
if
(
m_mode
==
"DdagD"
) {
154
m_mult
= &
Fopr_Wilson_eo::DdagD
;
155
m_mult_dag
= &
Fopr_Wilson_eo::DdagD
;
156
}
else
if
(
m_mode
==
"H"
) {
157
m_mult
= &
Fopr_Wilson_eo::H
;
158
m_mult_dag
= &
Fopr_Wilson_eo::H
;
159
}
else
{
160
vout
.
crucial
(
"Fopr_Wilson_eo: input mode is undefined.\n"
);
161
abort();
162
}
163
}
164
165
std::string
get_mode
()
const
166
{
167
return
m_mode
;
168
}
169
170
void
mult_undef
(
Field
&,
const
Field
&)
171
{
172
vout
.
crucial
(
"Fopr_Wilson_eo: mode undefined.\n"
);
173
abort();
174
}
175
176
const
Field
MeoMoe
(
const
Field
& f)
177
{
178
Field_F
v((
Field_F
)f);
179
180
v -=
Meo
(
Meo
(f, 1), 0);
181
return
(
Field
)v;
182
}
183
184
const
Field
D
(
const
Field
& f)
185
{
186
Field
v(f.
nin
(), f.
nvol
(), f.
nex
());
187
188
D
(v, f);
189
return
v;
190
}
191
192
void
D
(
Field
& v,
const
Field
& f)
193
{
194
v = f;
195
v -= (
Field
)
Meo
(
Meo
(f, 1), 0);
196
}
197
198
const
Field
Ddag
(
const
Field
& f)
199
{
200
Field
v(f.
nin
(), f.
nvol
(), f.
nex
());
201
202
Ddag
(v, f);
203
return
v;
204
}
205
206
void
Ddag
(
Field
& v,
const
Field
& f)
207
{
208
v = f;
209
v -= (
Field
)
Mdageo
(
Mdageo
(f, 1), 0);
210
}
211
212
const
Field
DdagD
(
const
Field
& f)
213
{
214
Field
v(f.
nin
(), f.
nvol
(), f.
nex
());
215
216
DdagD
(v, f);
217
return
v;
218
}
219
220
void
DdagD
(
Field
& v,
const
Field
& f)
221
{
222
v =
Ddag
(
D
(f));
223
}
224
225
const
Field
H
(
const
Field
& f)
226
{
227
Field
v(f.
nin
(), f.
nvol
(), f.
nex
());
228
229
H
(v, f);
230
return
v;
231
}
232
233
void
H
(
Field
& v,
const
Field
& f)
234
{
235
v =
mult_gm5
(
D
(f));
236
}
237
238
// const Field_F D(const Field_F&);
239
// const Field_F H(const Field_F&);
240
241
const
Field_F
Meo
(
const
Field_F
&,
const
int
ieo);
242
const
Field_F
Mdageo
(
const
Field_F
&,
const
int
ieo);
243
244
// ieo=0: even <-- odd
245
// ieo=1: odd <-- even
246
247
const
Field_F
Meo_gm5
(
const
Field_F
&,
const
int
ieo);
248
249
const
Field
mult_gm5
(
const
Field
&);
250
252
const
Field
gm5p
(
const
int
mu,
const
Field
& v);
253
254
int
field_nvol
() {
return
CommonParameters::Nvol
() / 2; }
255
int
field_nin
() {
return
2 *
CommonParameters::Nc
() *
CommonParameters::Nd
(); }
256
int
field_nex
() {
return
1; }
257
258
private
:
259
void
init
(
const
std::string);
260
void
mult_p
(
int
mu,
Field_F
&,
const
Field_F
&,
const
int
ieo);
261
void
mult_m
(
int
mu,
Field_F
&,
const
Field_F
&,
const
int
ieo);
262
263
void
mult_xp
(
Field_F
&,
const
Field_F
&,
const
int
ieo);
264
void
mult_xm
(
Field_F
&,
const
Field_F
&,
const
int
ieo);
265
void
mult_yp
(
Field_F
&,
const
Field_F
&,
const
int
ieo);
266
void
mult_ym
(
Field_F
&,
const
Field_F
&,
const
int
ieo);
267
void
mult_zp
(
Field_F
&,
const
Field_F
&,
const
int
ieo);
268
void
mult_zm
(
Field_F
&,
const
Field_F
&,
const
int
ieo);
269
void
mult_tp
(
Field_F
&,
const
Field_F
&,
const
int
ieo);
270
void
mult_tm
(
Field_F
&,
const
Field_F
&,
const
int
ieo);
271
};
272
#endif
src
Fopr
fopr_Wilson_eo.h
Generated on Tue Jul 23 2013 10:48:48 for Bridge++ by
1.8.3.1