Grid 0.7.0
ZMobiusFermion.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/MobiusFermion.h
6
7 Copyright (C) 2015
8
9Author: Peter Boyle <pabobyle@ph.ed.ac.uk>
10Author: Peter Boyle <paboyle@ph.ed.ac.uk>
11
12 This program is free software; you can redistribute it and/or modify
13 it under the terms of the GNU General Public License as published by
14 the Free Software Foundation; either version 2 of the License, or
15 (at your option) any later version.
16
17 This program is distributed in the hope that it will be useful,
18 but WITHOUT ANY WARRANTY; without even the implied warranty of
19 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 GNU General Public License for more details.
21
22 You should have received a copy of the GNU General Public License along
23 with this program; if not, write to the Free Software Foundation, Inc.,
24 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
25
26 See the full license in the file "LICENSE" in the top level distribution directory
27*************************************************************************************/
28/* END LEGAL */
29#pragma once
30
32
34
35template<class Impl>
36class ZMobiusFermion : public CayleyFermion5D<Impl>
37{
38public:
40public:
41
42 virtual void Instantiatable(void) {};
43 // Constructors
44 ZMobiusFermion(GaugeField &_Umu,
45 GridCartesian &FiveDimGrid,
46 GridRedBlackCartesian &FiveDimRedBlackGrid,
47 GridCartesian &FourDimGrid,
48 GridRedBlackCartesian &FourDimRedBlackGrid,
49 RealD _mass,RealD _M5,
50 std::vector<ComplexD> &gamma, RealD b,RealD c,const ImplParams &p= ImplParams()) :
51
52 CayleyFermion5D<Impl>(_Umu,
53 FiveDimGrid,
54 FiveDimRedBlackGrid,
55 FourDimGrid,
56 FourDimRedBlackGrid,_mass,_M5,p)
57
58 {
59 // RealD eps = 1.0;
60 std::cout<<GridLogMessage << "ZMobiusFermion (b="<<b<<",c="<<c<<") with Ls= "<<this->Ls<<" gamma passed in"<<std::endl;
61 std::vector<Coeff_t> zgamma(this->Ls);
62 for(int s=0;s<this->Ls;s++){
63 zgamma[s] = gamma[s];
64 }
65
66 // Call base setter
67 this->SetCoefficientsInternal(1.0,zgamma,b,c);
68 }
69
70};
71
73
GridLogger GridLogMessage(1, "Message", GridLogColours, "NORMAL")
#define NAMESPACE_BEGIN(A)
Definition Namespace.h:35
#define NAMESPACE_END(A)
Definition Namespace.h:36
double RealD
Definition Simd.h:61
CayleyFermion5D(GaugeField &_Umu, GridCartesian &FiveDimGrid, GridRedBlackCartesian &FiveDimRedBlackGrid, GridCartesian &FourDimGrid, GridRedBlackCartesian &FourDimRedBlackGrid, RealD _mass, RealD _M5, const ImplParams &p=ImplParams())
virtual void SetCoefficientsInternal(RealD zolo_hi, std::vector< Coeff_t > &gamma, RealD b, RealD c)
virtual void Instantiatable(void)
ZMobiusFermion(GaugeField &_Umu, GridCartesian &FiveDimGrid, GridRedBlackCartesian &FiveDimRedBlackGrid, GridCartesian &FourDimGrid, GridRedBlackCartesian &FourDimRedBlackGrid, RealD _mass, RealD _M5, std::vector< ComplexD > &gamma, RealD b, RealD c, const ImplParams &p=ImplParams())
INHERIT_IMPL_TYPES(Impl)