CHROMA
asqtad_state.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /*! \file
3  * \brief Asqtad state
4  */
5 
6 #ifndef __asqtad_state_h__
7 #define __asqtad_state_h__
8 
9 
10 #include "handle.h"
11 #include "state.h"
13 
14 
15 namespace Chroma
16 {
17  //! Basic "Connect State" for ASQTAD
18  /*!
19  * \ingroup fermstates
20  */
21  class AsqtadConnectStateBase : public FermState<LatticeStaggeredFermion,
22  multi1d<LatticeColorMatrix>,
23  multi1d<LatticeColorMatrix> >
24  {
25  public:
26 
27  virtual const multi1d<LatticeColorMatrix>& getFatLinks() const = 0;
28  virtual const multi1d<LatticeColorMatrix>& getTripleLinks() const = 0;
29 
30  //! Return the gauge BC object for this state
31  virtual const FermBC<LatticeStaggeredFermion,
32  multi1d<LatticeColorMatrix>,
33  multi1d<LatticeColorMatrix> >& getBC() const = 0;
34 
35  //! Return the ferm BC object for this state
36  virtual Handle< FermBC<LatticeStaggeredFermion,
37  multi1d<LatticeColorMatrix>,
38  multi1d<LatticeColorMatrix> > > getFermBC() const = 0;
39 
40  };
41 
42 
43  //! The actual Asqtad thing
44  /*!
45  * \ingroup fermstates
46  */
48  {
49  public:
50  // Typedefs to save typing
51  typedef LatticeStaggeredFermion T;
52  typedef multi1d<LatticeColorMatrix> P;
53  typedef multi1d<LatticeColorMatrix> Q;
54 
55  typedef Real WordBase_t;
56 
57  //! Full Constructor
58  // Make deep copies here
60  const multi1d<LatticeColorMatrix>& u_,
61  const multi1d<LatticeColorMatrix>& u_fat_,
62  const multi1d<LatticeColorMatrix>& u_triple_)
63  : fbc(fbc_), u(u_), u_fat(u_fat_), u_triple(u_triple_) { };
64 
66 
67  //! Return the link fields needed in constructing linear operators
68  const multi1d<LatticeColorMatrix>& getLinks() const { return u; }
69  const multi1d<LatticeColorMatrix>& getFatLinks() const { return u_fat; }
70  const multi1d<LatticeColorMatrix>& getTripleLinks() const { return u_triple; }
71 
72  //! Return the gauge BC object for this state
73  const FermBC<T,P,Q>& getBC() const {return *fbc;}
74 
75  //! Return the ferm BC object for this state
76  Handle< FermBC<T,P,Q> > getFermBC() const {return fbc;}
77 
78  private:
79  AsqtadConnectState() {} // hide default constructur
80  void operator=(const AsqtadConnectState&) {} // hide =
81 
82  private:
84  multi1d<LatticeColorMatrix> u;
85  multi1d<LatticeColorMatrix> u_fat;
86  multi1d<LatticeColorMatrix> u_triple;
87  };
88 
89 
90 } // End Namespace Chroma
91 
92 
93 #endif
Basic "Connect State" for ASQTAD.
Definition: asqtad_state.h:24
virtual const multi1d< LatticeColorMatrix > & getTripleLinks() const =0
virtual Handle< FermBC< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > > getFermBC() const =0
Return the ferm BC object for this state.
virtual const multi1d< LatticeColorMatrix > & getFatLinks() const =0
virtual const FermBC< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > & getBC() const =0
Return the gauge BC object for this state.
The actual Asqtad thing.
Definition: asqtad_state.h:48
const multi1d< LatticeColorMatrix > & getFatLinks() const
Definition: asqtad_state.h:69
multi1d< LatticeColorMatrix > u
Definition: asqtad_state.h:84
LatticeStaggeredFermion T
Definition: asqtad_state.h:51
const multi1d< LatticeColorMatrix > & getLinks() const
Return the link fields needed in constructing linear operators.
Definition: asqtad_state.h:68
AsqtadConnectState(Handle< FermBC< T, P, Q > > fbc_, const multi1d< LatticeColorMatrix > &u_, const multi1d< LatticeColorMatrix > &u_fat_, const multi1d< LatticeColorMatrix > &u_triple_)
Full Constructor.
Definition: asqtad_state.h:59
multi1d< LatticeColorMatrix > u_fat
Definition: asqtad_state.h:85
const multi1d< LatticeColorMatrix > & getTripleLinks() const
Definition: asqtad_state.h:70
Handle< FermBC< T, P, Q > > getFermBC() const
Return the ferm BC object for this state.
Definition: asqtad_state.h:76
void operator=(const AsqtadConnectState &)
Definition: asqtad_state.h:80
Handle< FermBC< T, P, Q > > fbc
Definition: asqtad_state.h:83
multi1d< LatticeColorMatrix > P
Definition: asqtad_state.h:52
const FermBC< T, P, Q > & getBC() const
Return the gauge BC object for this state.
Definition: asqtad_state.h:73
multi1d< LatticeColorMatrix > Q
Definition: asqtad_state.h:53
multi1d< LatticeColorMatrix > u_triple
Definition: asqtad_state.h:86
Base class for all fermion action boundary conditions.
Definition: fermbc.h:20
Support class for fermion actions and linear operators.
Definition: state.h:94
Class for counted reference semantics.
Definition: handle.h:33
Class for counted reference semantics.
Support for Asqtad.
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
Support class for fermion actions and linear operators.