Bridge++
Ver.2.1.3
tensorProd.cpp
Go to the documentation of this file.
1
14
#include <cassert>
15
16
#include "
lib/Force/Fermion/tensorProd.h
"
17
18
#include "
lib/Field/field_thread-inc.h
"
19
20
21
//====================================================================
22
void
tensorProd_Field_F
(
Field_G
& u,
const
Field_F
& v1,
const
Field_F
& v2)
23
{
24
return
tensorProd_Field_F
(u, 0, v1, v2);
25
}
26
27
28
//====================================================================
29
void
tensorProd_Field_F
(
Field_G
& u,
const
int
ex,
const
Field_F
& v1,
const
Field_F
& v2)
30
{
31
#pragma omp barrier
32
33
const
int
Nvol = u.
nvol
();
34
const
int
Nc =
CommonParameters::Nc
();
35
const
int
Nd =
CommonParameters::Nd
();
36
37
assert(u.
nvol
() == v1.
nvol
());
38
assert(u.
nvol
() == v2.
nvol
());
39
assert(ex < u.
nex
());
40
assert(v1.
nex
() == 1);
41
assert(v2.
nex
() == 1);
42
43
Mat_SU_N
ut(v1.
nc
());
44
double
ut_r, ut_i;
45
46
int
ith, nth, is, ns;
47
set_threadtask(ith, nth, is, ns, Nvol);
48
49
for
(
int
site = is; site < ns; ++site) {
50
for
(
int
c1 = 0; c1 < Nc; ++c1) {
51
for
(
int
c2 = 0; c2 < Nc; ++c2) {
52
ut_r = 0.0;
53
ut_i = 0.0;
54
for
(
int
s = 0; s < Nd; ++s) {
55
ut_r += v1.
cmp_r
(c2, s, site) * v2.
cmp_r
(c1, s, site)
56
+ v1.
cmp_i
(c2, s, site) * v2.
cmp_i
(c1, s, site);
57
ut_i += v1.
cmp_r
(c2, s, site) * v2.
cmp_i
(c1, s, site)
58
- v1.
cmp_i
(c2, s, site) * v2.
cmp_r
(c1, s, site);
59
}
60
ut.
set
(c1, c2, ut_r, ut_i);
61
}
62
}
63
u.
set_mat
(site, ex, ut);
64
}
65
66
#pragma omp barrier
67
}
68
69
70
//============================================================END=====
Field_F::cmp_i
double cmp_i(const int cc, const int s, const int site, const int e=0) const
Definition:
field_F.h:100
Field::nex
int nex() const
Definition:
field.h:128
Field_G::set_mat
void set_mat(const int site, const int mn, const Mat_SU_N &U)
Definition:
field_G.h:160
Field_F::nc
int nc() const
Definition:
field_F.h:89
tensorProd_Field_F
void tensorProd_Field_F(Field_G &u, const Field_F &v1, const Field_F &v2)
Definition:
tensorProd.cpp:35
SU_N::Mat_SU_N::set
void set(int c, const double &re, const double &im)
Definition:
mat_SU_N.h:137
CommonParameters::Nc
static int Nc()
Definition:
commonParameters.h:115
Field_F::cmp_r
double cmp_r(const int cc, const int s, const int site, const int e=0) const
Definition:
field_F.h:94
SU_N::Mat_SU_N
Definition:
mat_SU_N.h:36
Field::nvol
int nvol() const
Definition:
field.h:127
CommonParameters::Nd
static int Nd()
Definition:
commonParameters.h:116
Field_F
Wilson-type fermion field.
Definition:
field_F.h:37
field_thread-inc.h
tensorProd.h
Field_G
SU(N) gauge field.
Definition:
field_G.h:38
src
lib
Force
Fermion
Org
tensorProd.cpp
Generated on Thu Apr 16 2026 22:04:17 for Bridge++ by
1.8.17