CHROMA
schr_sf_fermbc_w.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! @file
3  * @brief Schroedinger ferm boundary conditions
4  */
5 
6 #ifndef __schr_sf_fermbc_w_h__
7 #define __schr_sf_fermbc_w_h__
8 
10 
11 namespace Chroma
12 {
13 
14  //! Abstract class for SOME Schroedinger ferm BC
15  /*! @ingroup fermbcs
16  *
17  * Schroedinger BC implies periodic in dirs orthog to decay dir, and some
18  * kind of fixed BC in the decay dir.
19  */
20  class SchrSFFermBC : public SchrFermBC
21  {
22  public:
23  //! Virtual destructor
24  virtual ~SchrSFFermBC() {}
25 
26  //! Decay direction
27  virtual int getDir() const = 0;
28 
29  //! Starting slice in decay direction
30  virtual int getDecayMin() const;
31 
32  //! Ending slice in decay direction
33  virtual int getDecayMax() const;
34 
35  protected:
36  //! Construct the mask and boundary fields
37  virtual void initBnd(multi1d<LatticeColorMatrix>& SFBndFld,
38  multi1d<LatticeBoolean>& lSFmask,
39  LatticeBoolean& lSFmaskF,
40  const multi1d<LatticeColorMatrix>& SFBndFldG,
41  const multi1d<LatticeBoolean>& lSFmaskG) const;
42 
43  //! Get the angles on the boundaries
44  virtual const multi1d<Real>& getTheta() const = 0;
45 
46  //! Maximum plaquette size. This is what knows about 1x1 plaq or 1x2 rect.
47  /*! \return 1 for 1x1 plaq or 2 for 1x2 rect in decay_dir */
48  virtual int getMaxExtent() const = 0;
49  };
50 
51 }
52 
53 
54 
55 #endif
Abstract class for all gauge action boundary conditions with Schroedinger BC.
virtual const multi1d< LatticeBoolean > & lSFmask() const =0
Mask which lattice sites have fixed gauge links.
virtual const multi1d< LatticeColorMatrix > & SFBndFld() const =0
Fixed gauge links on only the lSFmask() sites.
virtual const LatticeBoolean & lSFmaskF() const =0
Mask which lattice sites have fixed fermion fields.
Abstract class for SOME Schroedinger ferm BC.
virtual int getDir() const =0
Decay direction.
virtual int getMaxExtent() const =0
Maximum plaquette size. This is what knows about 1x1 plaq or 1x2 rect.
virtual int getDecayMax() const
Ending slice in decay direction.
virtual const multi1d< Real > & getTheta() const =0
Get the angles on the boundaries.
virtual ~SchrSFFermBC()
Virtual destructor.
virtual int getDecayMin() const
Starting slice in decay direction.
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
Fermion action boundary conditions.