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_Clover_Isochemical.h
Go to the documentation of this file.
1
14
#ifndef FOPR_CLOVER_ISOCHEMICAL_INCLUDED
15
#define FOPR_CLOVER_ISOCHEMICAL_INCLUDED
16
17
#include "
fopr_Wilson_Isochemical.h
"
18
#include "
fopr_CloverTerm.h
"
19
20
#include "
bridgeIO.h
"
21
using
Bridge::vout
;
22
24
33
//- parameters class
34
class
Parameters_Fopr_Clover_Isochemical
:
virtual
public
Parameters
35
{
36
public
:
37
Parameters_Fopr_Clover_Isochemical
();
38
};
39
//- end
40
41
class
Fopr_Clover_Isochemical
:
public
Fopr
42
{
43
private
:
44
double
m_kappa
;
45
double
m_cSW
;
46
double
m_mu
;
47
std::valarray<int>
m_boundary
;
48
std::string
m_repr
;
49
std::string
m_mode
;
50
51
int
m_Nvol
,
m_Ndim
,
m_Nc
,
m_Nd
,
m_NinF
;
52
53
Fopr_Wilson_Isochemical
*
m_fopr_w
;
54
Fopr_CloverTerm
*
m_fopr_csw
;
55
56
const
Field_G
*
m_U
;
57
58
public
:
59
Fopr_Clover_Isochemical
()
60
:
Fopr
()
61
{
62
init
(
"Dirac"
);
63
}
64
65
Fopr_Clover_Isochemical
(std::string repr)
66
:
Fopr
()
67
{
68
init
(repr);
69
}
70
71
~Fopr_Clover_Isochemical
()
72
{
73
tidyup
();
74
}
75
76
void
set_parameters
(
const
Parameters
& params);
77
void
set_parameters
(
double
kappa,
double
cSW,
double
mu, std::valarray<int> bc);
78
79
void
set_config
(
Field
*U);
80
81
void
set_mode
(std::string mode)
82
{
83
m_mode
= mode;
84
}
85
86
std::string
get_mode
()
const
87
{
88
return
m_mode
;
89
}
90
91
const
Field
mult
(
const
Field
& f)
92
{
93
Field
v(f.
nin
(), f.
nvol
(), f.
nex
());
94
95
mult
(v, f);
96
return
v;
97
}
98
99
const
Field
mult_dag
(
const
Field
& f)
100
{
101
Field
v(f.
nin
(), f.
nvol
(), f.
nex
());
102
103
mult_dag
(v, f);
104
return
v;
105
}
106
107
void
mult
(
Field
& v,
const
Field
& f)
108
{
109
if
(
m_mode
==
"D"
) {
110
D
(v, f);
111
}
else
if
(
m_mode
==
"DdagD"
) {
112
DdagD
(v, f);
113
}
else
if
(
m_mode
==
"Ddag"
) {
114
Ddag
(v, f);
115
}
else
if
(
m_mode
==
"H"
) {
116
H
(v, f);
117
}
else
{
118
vout
.
crucial
(
m_vl
,
"Fopr_Clover_Isochemical: undefined mode = %s.\n"
,
m_mode
.c_str());
119
abort();
120
}
121
}
122
123
void
mult_dag
(
Field
& v,
const
Field
& f)
124
{
125
if
(
m_mode
==
"D"
) {
126
Ddag
(v, f);
127
}
else
if
(
m_mode
==
"DdagD"
) {
128
DdagD
(v, f);
129
}
else
if
(
m_mode
==
"Ddag"
) {
130
D
(v, f);
131
}
else
if
(
m_mode
==
"H"
) {
132
Hdag
(v, f);
133
}
else
{
134
vout
.
crucial
(
m_vl
,
"Fopr_Clover_Isochemical: undefined mode = %s.\n"
,
m_mode
.c_str());
135
abort();
136
}
137
}
138
139
void
DdagD
(
Field
&,
const
Field
&);
140
void
D
(
Field
&,
const
Field
&);
141
void
Ddag
(
Field
&,
const
Field
&);
142
void
H
(
Field
&,
const
Field
&);
143
void
Hdag
(
Field
&,
const
Field
&);
144
145
void
mult_gm5
(
Field
& v,
const
Field
& w)
146
{
147
m_fopr_w
->
mult_gm5
(v, w);
148
}
149
150
const
Field
mult_gm5
(
const
Field
& w)
151
{
152
return
m_fopr_w
->
mult_gm5
(w);
153
}
154
155
void
mult_up
(
int
mu,
Field
& v,
const
Field
& w)
156
{
157
m_fopr_w
->
mult_up
(mu, v, w);
158
}
159
160
void
mult_dn
(
int
mu,
Field
& v,
const
Field
& w)
161
{
162
m_fopr_w
->
mult_dn
(mu, v, w);
163
}
164
165
void
mult_isigma
(
Field_F
&,
const
Field_F
&,
166
const
int
mu,
const
int
nu);
167
168
int
field_nvol
() {
return
m_Nvol
; }
169
int
field_nin
() {
return
2 *
m_Nc
*
m_Nd
; }
170
int
field_nex
() {
return
1; }
171
172
private
:
173
void
init
(std::string repr);
174
void
tidyup
();
175
};
176
#endif
src
Fopr
fopr_Clover_Isochemical.h
Generated on Tue Jul 23 2013 10:48:48 for Bridge++ by
1.8.3.1