Bridge++  Ver. 1.2.x
 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.h"
19 #include "field_G.h"
20 
22 
32 //- parameters class
34 class Parameters_Field_G_SF : virtual public Parameters
35 {
36  public:
38 };
39 //- end
40 
41 class Field_G_SF : public Field_G
42 {
43  private:
45  int m_Nc;
47  int m_Ndf;
49  int m_Nvol;
51  int m_Nex;
52 
53  int Nx, Ny, Nz, Nt, Svol;
54  int NPEt;
55 
60 
61  public:
62 
63  // Field_G_SF(){}
64  Field_G_SF(const int Nvol = CommonParameters::Nvol(), const int Nex = 1) :
65  m_Nc(CommonParameters::Nc()), m_Nvol(Nvol), m_Nex(Nex),
66  wk(m_Nc), wkpr(m_Nc)
67  {
73  Svol = Nx * Ny * Nz;
74  m_Ndf = 2 * m_Nc * m_Nc;
76  }
77 
78  Field_G_SF(const Field& x) :
79  Field_G(x),
80  m_Nc(CommonParameters::Nc()), m_Ndf(x.nin()), m_Nvol(x.nvol()), m_Nex(x.nex()),
81  wk(m_Nc), wkpr(m_Nc)
82  {
83  assert(m_Ndf == 2 * m_Nc * m_Nc);
89  Svol = Nx * Ny * Nz;
90  }
91 
92  Field_G_SF(double *phi, double *phipr) :
94  {
95  int Lx = CommonParameters::Lx();
96 
97  m_Nex = 1;
104  Svol = Nx * Ny * Nz;
105  m_Ndf = 2 * m_Nc * m_Nc;
106 
107  double c0r, c0i, c1r, c1i, c2r, c2i;
108  c0r = cos(phi[0] / Lx);
109  c0i = sin(phi[0] / Lx);
110  c1r = cos(phi[1] / Lx);
111  c1i = sin(phi[1] / Lx);
112  c2r = cos(phi[2] / Lx);
113  c2i = sin(phi[2] / Lx);
114  wk.zero();
115  wk.set(0, 0, c0r, c0i);
116  wk.set(1, 1, c1r, c1i);
117  wk.set(2, 2, c2r, c2i);
118 
119  c0r = cos(phipr[0] / Lx);
120  c0i = sin(phipr[0] / Lx);
121  c1r = cos(phipr[1] / Lx);
122  c1i = sin(phipr[1] / Lx);
123  c2r = cos(phipr[2] / Lx);
124  c2i = sin(phipr[2] / Lx);
125  wkpr.zero();
126  wkpr.set(0, 0, c0r, c0i);
127  wkpr.set(1, 1, c1r, c1i);
128  wkpr.set(2, 2, c2r, c2i);
129  }
130 
132  void set_parameters(const Parameters_Field_G_SF& params);
133 
135  void set_parameters(const std::valarray<double>& phi,
136  const std::valarray<double>& phipr);
137 
139  void set_parameters(double *phi, double *phipr);
140 
142  void set_boundary_wk(const Mat_SU_N& U);
143 
145  void set_boundary_wkpr(const Mat_SU_N& U);
146 
148  void set_boundary_zero();
149 
152 
154  void mult_ct_boundary(int t, double ct);
155 
156 
158  void set_boundary_wk(Field_G& f);
159 
161  void set_boundary_wkpr(Field_G& f);
162 
164  void set_boundary_zero(Field_G& f);
165 
168 };
169 #endif
void set_boundary_zero()
Set the boundary matrix to 0 for SF bc.
Definition: field_G_SF.cpp:101
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:76
static int NPEt()
Field_G_SF(const Field &x)
Definition: field_G_SF.h:78
Mat_SU_N & zero()
Definition: mat_SU_N.h:383
Container of Field-type object.
Definition: field.h:37
int nvol() const
Definition: field.h:101
SU(N) gauge field class in which a few functions are added for the SF.
Definition: field_G_SF.h:34
Class for parameters.
Definition: parameters.h:40
Field_G_SF(const int Nvol=CommonParameters::Nvol(), const int Nex=1)
Definition: field_G_SF.h:64
int nin() const
Definition: field.h:100
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:151
Field_G_SF(double *phi, double *phipr)
Definition: field_G_SF.h:92
void set_boundary_spatial_link_zero()
Set the boundary spatial link to 0 for SF bc.
Definition: field_G_SF.cpp:125
SU(N) gauge field.
Definition: field_G.h:36
int m_Nex
extra degree of freedom, such as mu, nu.
Definition: field_G_SF.h:51
void reset(const int Nin, const int Nvol, const int Nex, const element_type cmpl=COMPLEX)
Definition: field.h:82
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:50
int nex() const
Definition: field.h:102
Common parameter class: provides parameters as singleton.
Mat_SU_N wk
SF boundary condition at t=0.
Definition: field_G_SF.h:57
int m_Nc
number of color elements
Definition: field_G_SF.h:45
void set_parameters(const Parameters_Field_G_SF &params)
Set the parameter with Parameters_Field_G_SF class.
Definition: field_G_SF.cpp:268
int m_Nvol
number of sites
Definition: field_G_SF.h:49
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:47
Mat_SU_N wkpr
SF boundary condition at t=Nt.
Definition: field_G_SF.h:59