CHROMA
gaugebc.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! @file
3  * @brief Gauge boundary conditions
4  */
5 
6 #ifndef __gaugebc_h__
7 #define __gaugebc_h__
8 
9 #include "chromabase.h"
10 #include "boundcond.h"
11 
12 
13 namespace Chroma
14 {
15  //! Base class for all gauge action boundary conditions
16  /*! @ingroup gaugebc
17  *
18  * NOTE: this class is specifically using LatticeColorMatrix, but
19  * probably should generalized to a template. The point is that coordinates
20  * and momenta within HMC are general. The FermAct classes have a param
21  * type (T,P) = (type of fermion, type of conjugate momenta) the latter
22  * part used in the deriv stuff. Here, the "zero" could be on any conjugate
23  * momenta. The modify, however, is usually on the coordinates which
24  * is often the LatticeColorMatrx. The FermBC has a template param
25  * for the fermion type that is used in the "modifyF", but is fixed
26  * for a LatticeColorMatrix in the "modifyU".
27  */
28  template<typename P, typename Q>
29  class GaugeBC : public BoundCond<P,Q>
30  {
31  public:
32  //! Virtual destructor to help with cleanup;
33  virtual ~GaugeBC() {}
34 
35  //! Apply the BC onto the U fields in place
36  virtual void modify(Q& u) const = 0;
37 
38  //! Zero some gauge-like field in place on the masked links
39  virtual void zero(P& ds_u) const = 0;
40 
41  //! Says if there are fixed links within the lattice
42  virtual bool nontrivialP() const = 0;
43  };
44 
45 
46 }
47 
48 #endif
Base class for all boundary conditions.
Primary include file for CHROMA library code.
Base class for all boundary conditions.
Definition: boundcond.h:19
Base class for all gauge action boundary conditions.
Definition: gaugebc.h:30
virtual ~GaugeBC()
Virtual destructor to help with cleanup;.
Definition: gaugebc.h:33
virtual void zero(P &ds_u) const =0
Zero some gauge-like field in place on the masked links.
virtual bool nontrivialP() const =0
Says if there are fixed links within the lattice.
virtual void modify(Q &u) const =0
Apply the BC onto the U fields in place.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
static multi1d< LatticeColorMatrix > u
LinOpSysSolverMGProtoClover::Q Q
multi1d< LatticeColorMatrix > P
Definition: t_clover.cc:13