CHROMA
schr_coupling_fermbc_w.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Schroedinger BC - use for coupling determinations
4  */
5 
6 #ifndef __schr_coupling_fermbc_w_h__
7 #define __schr_coupling_fermbc_w_h__
8 
12 
13 namespace Chroma
14 {
15 
16  /*! @ingroup fermbcs */
17  namespace SchrCouplingFermBCEnv
18  {
19  extern const std::string name;
20  bool registerAll();
21  }
22 
23 
24  //! Concrete class for Schroedinger BC - use for coupling determination
25  /*! @ingroup fermbcs
26  *
27  * Schroedinger BC for ferm actions
28  */
30  {
31  public:
32  //! Only full constructor
34  const SchrFermBCParams& p) : param(p)
35  {
36  START_CODE();
37 
38  // Initialize boundary fields
39  initBnd(fld, mask, maskF, gaugebc.SFBndFld(), gaugebc.lSFmask());
40 
41  END_CODE();
42  }
43 
44  //! Destructor is automatic
46 
47  //! Decay direction
48  int getDir() const {return param.decay_dir;}
49 
50  protected:
51  //! Mask which lattice sites have fixed ferm sites
52  const LatticeBoolean& lSFmaskF() const {return maskF;}
53 
54  //! Mask which lattice sites have fixed gauge links
55  const multi1d<LatticeBoolean>& lSFmask() const {return mask;}
56 
57  //! Fixed gauge links on only the lSFmask() sites
58  const multi1d<LatticeColorMatrix>& SFBndFld() const {return fld;}
59 
60  //! Maximum plaquette size. This is what knows about 1x1 plaq or 1x2 rect.
61  /*! \return 1 for 1x1 plaq or 2 for 1x2 rect in decay_dir */
62  int getMaxExtent() const {return param.loop_extent;}
63 
64  //! Get the angles on the boundaries
65  const multi1d<Real>& getTheta() const {return param.theta;}
66 
67  private:
68  // Hide default constuctor
70  void operator=(const SchrCouplingFermBC&) {}
71 
72  private:
74  LatticeBoolean maskF;
75  multi1d<LatticeBoolean> mask;
76  multi1d<LatticeColorMatrix> fld;
77  };
78 
79 }
80 
81 #endif
Concrete class for Schroedinger BC - use for coupling determination.
void operator=(const SchrCouplingFermBC &)
SchrCouplingFermBC(const SchrCouplingGaugeBC &gaugebc, const SchrFermBCParams &p)
Only full constructor.
~SchrCouplingFermBC()
Destructor is automatic.
const multi1d< LatticeBoolean > & lSFmask() const
Mask which lattice sites have fixed gauge links.
int getMaxExtent() const
Maximum plaquette size. This is what knows about 1x1 plaq or 1x2 rect.
const multi1d< Real > & getTheta() const
Get the angles on the boundaries.
const LatticeBoolean & lSFmaskF() const
Mask which lattice sites have fixed ferm sites.
int getDir() const
Decay direction.
multi1d< LatticeColorMatrix > fld
const multi1d< LatticeColorMatrix > & SFBndFld() const
Fixed gauge links on only the lSFmask() sites.
multi1d< LatticeBoolean > mask
Concrete class for Schroedinger BC - use for coupling determination.
const multi1d< LatticeColorMatrix > & SFBndFld() const
Fixed gauge links on only the lSFmask() sites.
const multi1d< LatticeBoolean > & lSFmask() const
Mask which lattice sites have fixed gauge links.
Abstract class for SOME Schroedinger ferm BC.
virtual void initBnd(multi1d< LatticeColorMatrix > &SFBndFld, multi1d< LatticeBoolean > &lSFmask, LatticeBoolean &lSFmaskF, const multi1d< LatticeColorMatrix > &SFBndFldG, const multi1d< LatticeBoolean > &lSFmaskG) const
Construct the mask and boundary fields.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
START_CODE()
::std::string string
Definition: gtest.h:1979
Schroedinger BC - use for coupling determinations.
Schroedinger functional ferm boundary conditions.
Schroedinger ferm boundary conditions.