Bridge++  Version 1.4.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
field_G_SF.h
Go to the documentation of this file.
1 
15 #ifndef FIELD_G_SF_INCLUDED
16 #define FIELD_G_SF_INCLUDED
17 
18 #include "Parameters/parameters.h"
19 #include "field_G.h"
20 
22 
33 class Field_G_SF : public Field_G
34 {
35  private:
37  int m_Nc;
39  int m_Ndf;
41  int m_Nvol;
43  int m_Nex;
44 
45  int Nx, Ny, Nz, Nt, Svol;
46  int NPEt;
47 
52 
53  public:
54 
55  // Field_G_SF(){}
56  Field_G_SF(const int Nvol = CommonParameters::Nvol(), const int Nex = 1) :
57  m_Nc(CommonParameters::Nc()), m_Nvol(Nvol), m_Nex(Nex),
58  wk(m_Nc), wkpr(m_Nc)
59  {
65  Svol = Nx * Ny * Nz;
66  m_Ndf = 2 * m_Nc * m_Nc;
68  }
69 
70  Field_G_SF(const Field& x) :
71  Field_G(x),
72  m_Nc(CommonParameters::Nc()), m_Ndf(x.nin()), m_Nvol(x.nvol()), m_Nex(x.nex()),
73  wk(m_Nc), wkpr(m_Nc)
74  {
75  assert(m_Ndf == 2 * m_Nc * m_Nc);
81  Svol = Nx * Ny * Nz;
82  }
83 
84  Field_G_SF(double *phi, double *phipr) :
86  {
87  int Lx = CommonParameters::Lx();
88 
89  m_Nex = 1;
96  Svol = Nx * Ny * Nz;
97  m_Ndf = 2 * m_Nc * m_Nc;
98 
99  double c0r, c0i, c1r, c1i, c2r, c2i;
100  c0r = cos(phi[0] / Lx);
101  c0i = sin(phi[0] / Lx);
102  c1r = cos(phi[1] / Lx);
103  c1i = sin(phi[1] / Lx);
104  c2r = cos(phi[2] / Lx);
105  c2i = sin(phi[2] / Lx);
106  wk.zero();
107  wk.set(0, 0, c0r, c0i);
108  wk.set(1, 1, c1r, c1i);
109  wk.set(2, 2, c2r, c2i);
110 
111  c0r = cos(phipr[0] / Lx);
112  c0i = sin(phipr[0] / Lx);
113  c1r = cos(phipr[1] / Lx);
114  c1i = sin(phipr[1] / Lx);
115  c2r = cos(phipr[2] / Lx);
116  c2i = sin(phipr[2] / Lx);
117  wkpr.zero();
118  wkpr.set(0, 0, c0r, c0i);
119  wkpr.set(1, 1, c1r, c1i);
120  wkpr.set(2, 2, c2r, c2i);
121  }
122 
123  Field_G_SF& operator=(const Field_G_SF& v) { copy(*this, v); return *this; }
124 
126  void set_parameters(const std::vector<double>& phi,
127  const std::vector<double>& phipr);
128 
130  void set_parameters(double *phi, double *phipr);
131 
133  void set_boundary_wk(const Mat_SU_N& U);
134 
136  void set_boundary_wkpr(const Mat_SU_N& U);
137 
139  void set_boundary_zero();
140 
143 
145  void mult_ct_boundary(int t, double ct);
146 
147 
149  void set_boundary_wk(Field_G& f);
150 
152  void set_boundary_wkpr(Field_G& f);
153 
155  void set_boundary_zero(Field_G& f);
156 
159 };
160 #endif
SU(N) gauge field class in which a few functions are added for the SF.
Definition: field_G_SF.h:33
Field_G_SF & operator=(const Field_G_SF &v)
Definition: field_G_SF.h:123
void set_boundary_zero()
Set the boundary matrix to 0 for SF bc.
Definition: field_G_SF.cpp:80
void set_boundary_wkpr(const Mat_SU_N &U)
Set the boundary spatial link at t=Nt-1 for SF bc.
Definition: field_G_SF.cpp:55
static int NPEt()
Field_G_SF(const Field &x)
Definition: field_G_SF.h:70
Mat_SU_N & zero()
Definition: mat_SU_N.h:383
Container of Field-type object.
Definition: field.h:39
friend void copy(Field &y, const Field &x)
copy(y, x): y = x
Definition: field.cpp:381
int nvol() const
Definition: field.h:116
Field_G_SF(const int Nvol=CommonParameters::Nvol(), const int Nex=1)
Definition: field_G_SF.h:56
int nin() const
Definition: field.h:115
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 ...
Definition: field_G_SF.cpp:130
Field_G_SF(double *phi, double *phipr)
Definition: field_G_SF.h:84
void set_boundary_spatial_link_zero()
Set the boundary spatial link to 0 for SF bc.
Definition: field_G_SF.cpp:104
SU(N) gauge field.
Definition: field_G.h:38
int m_Nex
extra degree of freedom, such as mu, nu.
Definition: field_G_SF.h:43
void set_parameters(const std::vector< double > &phi, const std::vector< double > &phipr)
Set the parameter by giving vector objects.
Definition: field_G_SF.cpp:247
void reset(const int Nin, const int Nvol, const int Nex, const element_type cmpl=COMPLEX)
Definition: field.h:84
void set_boundary_wk(const Mat_SU_N &U)
Set the boundary spatial link at t=0 for SF bc.
Definition: field_G_SF.cpp:29
int nex() const
Definition: field.h:117
Common parameter class: provides parameters as singleton.
Mat_SU_N wk
SF boundary condition at t=0.
Definition: field_G_SF.h:49
int m_Nc
number of color elements
Definition: field_G_SF.h:37
int m_Nvol
number of sites
Definition: field_G_SF.h:41
void set(int c, double re, const double &im)
Definition: mat_SU_N.h:133
int m_Ndf
number of components as real values
Definition: field_G_SF.h:39
Mat_SU_N wkpr
SF boundary condition at t=Nt.
Definition: field_G_SF.h:51