Grid 0.7.0
WilsonTMFermion.h
Go to the documentation of this file.
1/*************************************************************************************
2
3 Grid physics library, www.github.com/paboyle/Grid
4
5 Source file: ./lib/qcd/action/fermion/WilsonTMFermion.h
6
7 Copyright (C) 2015
8
9Author: paboyle <paboyle@ph.ed.ac.uk>
10
11 This program is free software; you can redistribute it and/or modify
12 it under the terms of the GNU General Public License as published by
13 the Free Software Foundation; either version 2 of the License, or
14 (at your option) any later version.
15
16 This program is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 GNU General Public License for more details.
20
21 You should have received a copy of the GNU General Public License along
22 with this program; if not, write to the Free Software Foundation, Inc.,
23 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
24
25 See the full license in the file "LICENSE" in the top level distribution directory
26*************************************************************************************/
27/* END LEGAL */
28#pragma once
29
32
34
35template<class Impl>
36class WilsonTMFermion : public WilsonFermion<Impl>
37{
38public:
40public:
41
42 virtual void Instantiatable(void) {};
43 // Constructors
44 WilsonTMFermion(GaugeField &_Umu,
45 GridCartesian &Fgrid,
47 RealD _mass,
48 RealD _mu,
49 const ImplParams &p= ImplParams()
50 ) :
51 WilsonFermion<Impl>(_Umu,
52 Fgrid,
53 Hgrid,
54 _mass,p)
55
56 {
57 mu = _mu;
58 }
59
60
61 // allow override for twisted mass and clover
62 virtual void Mooee(const FermionField &in, FermionField &out) ;
63 virtual void MooeeDag(const FermionField &in, FermionField &out) ;
64 virtual void MooeeInv(const FermionField &in, FermionField &out) ;
65 virtual void MooeeInvDag(const FermionField &in, FermionField &out) ;
66 virtual void M(const FermionField &in, FermionField &out) ;
67 virtual void Mdag(const FermionField &in, FermionField &out) ;
68
69private:
70 RealD mu; // TwistedMass parameter
71
72};
73
75
76
#define NAMESPACE_BEGIN(A)
Definition Namespace.h:35
#define NAMESPACE_END(A)
Definition Namespace.h:36
double RealD
Definition Simd.h:61
WilsonFermion(GaugeField &_Umu, GridCartesian &Fgrid, GridRedBlackCartesian &Hgrid, RealD _mass, const ImplParams &p=ImplParams(), const WilsonAnisotropyCoefficients &anis=WilsonAnisotropyCoefficients())
virtual void Mooee(const FermionField &in, FermionField &out)
virtual void MooeeInv(const FermionField &in, FermionField &out)
virtual void M(const FermionField &in, FermionField &out)
virtual void Mdag(const FermionField &in, FermionField &out)
virtual void MooeeDag(const FermionField &in, FermionField &out)
virtual void Instantiatable(void)
virtual void MooeeInvDag(const FermionField &in, FermionField &out)
WilsonTMFermion(GaugeField &_Umu, GridCartesian &Fgrid, GridRedBlackCartesian &Hgrid, RealD _mass, RealD _mu, const ImplParams &p=ImplParams())
INHERIT_IMPL_TYPES(Impl)