mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-04 14:04:32 +00:00 
			
		
		
		
	Namespace, format
This commit is contained in:
		@@ -1,4 +1,4 @@
 | 
			
		||||
    /*************************************************************************************
 | 
			
		||||
/*************************************************************************************
 | 
			
		||||
 | 
			
		||||
    Grid physics library, www.github.com/paboyle/Grid 
 | 
			
		||||
 | 
			
		||||
@@ -24,76 +24,73 @@ Author: Peter Boyle <paboyle@ph.ed.ac.uk>
 | 
			
		||||
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 | 
			
		||||
 | 
			
		||||
    See the full license in the file "LICENSE" in the top level distribution directory
 | 
			
		||||
    *************************************************************************************/
 | 
			
		||||
    /*  END LEGAL */
 | 
			
		||||
*************************************************************************************/
 | 
			
		||||
/*  END LEGAL */
 | 
			
		||||
#ifndef  GRID_QCD_CONTINUED_FRACTION_H
 | 
			
		||||
#define  GRID_QCD_CONTINUED_FRACTION_H
 | 
			
		||||
 | 
			
		||||
#include <Grid/qcd/action/fermion/WilsonFermion5D.h>
 | 
			
		||||
 | 
			
		||||
namespace Grid {
 | 
			
		||||
NAMESPACE_BEGIN(Grid);
 | 
			
		||||
 | 
			
		||||
  namespace QCD {
 | 
			
		||||
template<class Impl>
 | 
			
		||||
class ContinuedFractionFermion5D : public WilsonFermion5D<Impl>
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
  INHERIT_IMPL_TYPES(Impl);
 | 
			
		||||
public:
 | 
			
		||||
 | 
			
		||||
    template<class Impl>
 | 
			
		||||
    class ContinuedFractionFermion5D : public WilsonFermion5D<Impl>
 | 
			
		||||
    {
 | 
			
		||||
    public:
 | 
			
		||||
     INHERIT_IMPL_TYPES(Impl);
 | 
			
		||||
    public:
 | 
			
		||||
  // override multiply
 | 
			
		||||
  virtual RealD  M    (const FermionField &in, FermionField &out);
 | 
			
		||||
  virtual RealD  Mdag (const FermionField &in, FermionField &out);
 | 
			
		||||
 | 
			
		||||
      // override multiply
 | 
			
		||||
      virtual RealD  M    (const FermionField &in, FermionField &out);
 | 
			
		||||
      virtual RealD  Mdag (const FermionField &in, FermionField &out);
 | 
			
		||||
  // half checkerboard operaions
 | 
			
		||||
  virtual void   Meooe       (const FermionField &in, FermionField &out);
 | 
			
		||||
  virtual void   MeooeDag    (const FermionField &in, FermionField &out);
 | 
			
		||||
  virtual void   Mooee       (const FermionField &in, FermionField &out);
 | 
			
		||||
  virtual void   MooeeDag    (const FermionField &in, FermionField &out);
 | 
			
		||||
  virtual void   MooeeInv    (const FermionField &in, FermionField &out);
 | 
			
		||||
  virtual void   MooeeInvDag (const FermionField &in, FermionField &out);
 | 
			
		||||
 | 
			
		||||
      // half checkerboard operaions
 | 
			
		||||
      virtual void   Meooe       (const FermionField &in, FermionField &out);
 | 
			
		||||
      virtual void   MeooeDag    (const FermionField &in, FermionField &out);
 | 
			
		||||
      virtual void   Mooee       (const FermionField &in, FermionField &out);
 | 
			
		||||
      virtual void   MooeeDag    (const FermionField &in, FermionField &out);
 | 
			
		||||
      virtual void   MooeeInv    (const FermionField &in, FermionField &out);
 | 
			
		||||
      virtual void   MooeeInvDag (const FermionField &in, FermionField &out);
 | 
			
		||||
  // force terms; five routines; default to Dhop on diagonal
 | 
			
		||||
  virtual void MDeriv  (GaugeField &mat,const FermionField &U,const FermionField &V,int dag);
 | 
			
		||||
  virtual void MoeDeriv(GaugeField &mat,const FermionField &U,const FermionField &V,int dag);
 | 
			
		||||
  virtual void MeoDeriv(GaugeField &mat,const FermionField &U,const FermionField &V,int dag);
 | 
			
		||||
 | 
			
		||||
      // force terms; five routines; default to Dhop on diagonal
 | 
			
		||||
      virtual void MDeriv  (GaugeField &mat,const FermionField &U,const FermionField &V,int dag);
 | 
			
		||||
      virtual void MoeDeriv(GaugeField &mat,const FermionField &U,const FermionField &V,int dag);
 | 
			
		||||
      virtual void MeoDeriv(GaugeField &mat,const FermionField &U,const FermionField &V,int dag);
 | 
			
		||||
  //      virtual void   Instantiatable(void)=0;
 | 
			
		||||
  virtual void   Instantiatable(void) =0;
 | 
			
		||||
 | 
			
		||||
      //      virtual void   Instantiatable(void)=0;
 | 
			
		||||
      virtual void   Instantiatable(void) =0;
 | 
			
		||||
  // Efficient support for multigrid coarsening
 | 
			
		||||
  virtual void  Mdir (const FermionField &in, FermionField &out,int dir,int disp);
 | 
			
		||||
 | 
			
		||||
      // Efficient support for multigrid coarsening
 | 
			
		||||
      virtual void  Mdir (const FermionField &in, FermionField &out,int dir,int disp);
 | 
			
		||||
  // Constructors
 | 
			
		||||
  ContinuedFractionFermion5D(GaugeField &_Umu,
 | 
			
		||||
			     GridCartesian         &FiveDimGrid,
 | 
			
		||||
			     GridRedBlackCartesian &FiveDimRedBlackGrid,
 | 
			
		||||
			     GridCartesian         &FourDimGrid,
 | 
			
		||||
			     GridRedBlackCartesian &FourDimRedBlackGrid,
 | 
			
		||||
			     RealD _mass,RealD M5,const ImplParams &p= ImplParams());
 | 
			
		||||
 | 
			
		||||
      // Constructors
 | 
			
		||||
      ContinuedFractionFermion5D(GaugeField &_Umu,
 | 
			
		||||
				 GridCartesian         &FiveDimGrid,
 | 
			
		||||
				 GridRedBlackCartesian &FiveDimRedBlackGrid,
 | 
			
		||||
				 GridCartesian         &FourDimGrid,
 | 
			
		||||
				 GridRedBlackCartesian &FourDimRedBlackGrid,
 | 
			
		||||
				 RealD _mass,RealD M5,const ImplParams &p= ImplParams());
 | 
			
		||||
protected:
 | 
			
		||||
 | 
			
		||||
    protected:
 | 
			
		||||
  void SetCoefficientsTanh(Approx::zolotarev_data *zdata,RealD scale);
 | 
			
		||||
  void SetCoefficientsZolotarev(RealD zolo_hi,Approx::zolotarev_data *zdata);;
 | 
			
		||||
 | 
			
		||||
      void SetCoefficientsTanh(Approx::zolotarev_data *zdata,RealD scale);
 | 
			
		||||
      void SetCoefficientsZolotarev(RealD zolo_hi,Approx::zolotarev_data *zdata);;
 | 
			
		||||
  // Cont frac
 | 
			
		||||
  RealD dw_diag;
 | 
			
		||||
  RealD mass;
 | 
			
		||||
  RealD R;
 | 
			
		||||
  RealD ZoloHiInv;
 | 
			
		||||
  std::vector<double> Beta;
 | 
			
		||||
  std::vector<double> cc;;
 | 
			
		||||
  std::vector<double> cc_d;;
 | 
			
		||||
  std::vector<double> sqrt_cc;
 | 
			
		||||
  std::vector<double> See;
 | 
			
		||||
  std::vector<double> Aee;
 | 
			
		||||
 | 
			
		||||
      // Cont frac
 | 
			
		||||
      RealD dw_diag;
 | 
			
		||||
      RealD mass;
 | 
			
		||||
      RealD R;
 | 
			
		||||
      RealD ZoloHiInv;
 | 
			
		||||
      std::vector<double> Beta;
 | 
			
		||||
      std::vector<double> cc;;
 | 
			
		||||
      std::vector<double> cc_d;;
 | 
			
		||||
      std::vector<double> sqrt_cc;
 | 
			
		||||
      std::vector<double> See;
 | 
			
		||||
      std::vector<double> Aee;
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
NAMESPACE_END(Grid);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user