34 for (
int site = 0; site <
Svol; ++site) {
35 for (
int cc = 0; cc <
m_Nc *
m_Nc; ++cc) {
61 for (
int cc = 0; cc <
m_Nc *
m_Nc; ++cc) {
85 for (
int site = 0; site <
Svol; ++site) {
86 for (
int cc = 0; cc < 2 *
m_Nc *
m_Nc; ++cc) {
107 for (
int mn = 0; mn < 3; ++mn) {
108 for (
int site = 0; site <
Svol; ++site) {
109 for (
int cc = 0; cc < 2 *
m_Nc *
m_Nc; ++cc) {
133 int ini =
Nx *
Ny *
Nz * t;
134 int fin =
Nx *
Ny *
Nz * (t + 1);
137 for (
int site = ini; site < fin; ++site) {
138 for (
int cc = 0; cc < 2 *
m_Nc *
m_Nc; ++cc) {
161 assert(f.
nex() == 1);
163 for (
int site = 0; site <
Svol; ++site) {
185 assert(f.
nex() == 1);
209 assert(f.
nex() == 1);
211 for (
int site = 0; site <
Svol; ++site) {
212 for (
int cc = 0; cc <
m_Nc *
m_Nc; ++cc) {
213 f.
set_ri(cc, site, mn, 0.0, 0.0);
233 assert(f.
nex() >= 3);
235 for (
int mn = 0; mn < 3; ++mn) {
236 for (
int site = 0; site <
Svol; ++site) {
237 for (
int cc = 0; cc <
m_Nc *
m_Nc; ++cc) {
238 f.
set_ri(cc, site, mn, 0.0, 0.0);
248 const std::vector<double>& phipr)
253 for (
int i = 0; i < 3; ++i) {
255 aphipr[i] = phipr[i];
266 double c0r, c0i, c1r, c1i, c2r, c2i;
268 c0r = cos(phi[0] / Lx);
269 c0i = sin(phi[0] / Lx);
270 c1r = cos(phi[1] / Lx);
271 c1i = sin(phi[1] / Lx);
272 c2r = cos(phi[2] / Lx);
273 c2i = sin(phi[2] / Lx);
276 wk.
set(0, 0, c0r, c0i);
277 wk.
set(1, 1, c1r, c1i);
278 wk.
set(2, 2, c2r, c2i);
280 c0r = cos(phipr[0] / Lx);
281 c0i = sin(phipr[0] / Lx);
282 c1r = cos(phipr[1] / Lx);
283 c1i = sin(phipr[1] / Lx);
284 c2r = cos(phipr[2] / Lx);
285 c2i = sin(phipr[2] / Lx);
void set_boundary_zero()
Set the boundary matrix to 0 for SF bc.
void set_boundary_wkpr(const Mat_SU_N &U)
Set the boundary spatial link at t=Nt-1 for SF bc.
static int ipe(const int dir)
logical coordinate of current proc.
void mult_ct_boundary(int t, double ct)
Multiply the boundary improvement factor ct or ctr to an SU(N) matrix object which belongs to a site ...
void set_boundary_spatial_link_zero()
Set the boundary spatial link to 0 for SF bc.
void set_parameters(const std::vector< double > &phi, const std::vector< double > &phipr)
Set the parameter by giving vector objects.
void set_boundary_wk(const Mat_SU_N &U)
Set the boundary spatial link at t=0 for SF bc.
Mat_SU_N wk
SF boundary condition at t=0.
std::valarray< double > field
int m_Nc
number of color elements
int m_Nvol
number of sites
void set(int c, double re, const double &im)
void set_mat(const int site, const int mn, const Mat_SU_N &U)
int myindex(const int jin, const int site, const int jex) const
Mat_SU_N wkpr
SF boundary condition at t=Nt.
void set_ri(const int cc, const int site, const int mn, const double re, const double im)