00001 //------------------------------------------------------------------ 00002 // 00003 // alg_fourier_prop.h 00004 // 00005 // Header file for all alg classes relevant to Wilson-type fermion 00006 // three point functions. The type of glue or fermion is given as 00007 // an argument of type Lattice& to the constructor. If the 00008 // fermion type is not F_CLASS_WILSON or F_CLASS_CLOVER or 00009 // F_CLASS_DWF the constructors exit with a general error. 00010 // 00011 //------------------------------------------------------------------ 00012 00013 #ifndef INCLUDED_ALG_FPROP_H 00014 #define INCLUDED_ALG_FPROP_H 00015 00016 #include <config.h> 00017 #include <util/lattice.h> 00018 #include <util/smalloc.h> 00019 #include <util/pmalloc.h> 00020 #include <alg/alg_base.h> 00021 #include <alg/common_arg.h> 00022 #include <alg/fourierprop_arg.h> 00023 #include <alg/wilson_matrix.h> 00024 #include <alg/qpropw.h> 00025 #include <alg/qpropwGFL.h> 00026 #include <stdio.h> 00027 00028 CPS_START_NAMESPACE 00029 00030 class AlgFourierProp : public Alg 00031 { 00032 private: 00033 00034 char* cname; 00035 00037 int f_size; 00038 00039 protected: 00040 00042 int bc[4]; 00043 00049 FourierPropArg* alg_FourierProp_arg; 00050 00054 WilsonMatrix momprop; 00055 00060 QPropW *prop; 00061 00062 public: 00063 00064 AlgFourierProp( Lattice& latt, 00065 CommonArg* c_arg, 00066 FourierPropArg* arg ); 00067 00068 virtual ~AlgFourierProp(); 00069 00070 virtual void run(); 00071 00076 virtual void ft(FILE*,MomentaList&); 00077 00081 void calcmom(const FourMom&); 00082 00084 void print_header( FILE* , const char* title ); 00085 }; 00086 00087 00094 class AlgFourierPropDis:public AlgFourierProp 00095 { 00096 private: 00097 00098 char* cname; 00099 00101 bool discon; 00102 00103 public: 00104 00105 AlgFourierPropDis(Lattice & latt, CommonArg* c_arg, FourierPropArg* arg): 00106 AlgFourierProp(latt, c_arg, arg), 00107 discon(true) 00108 {;} 00109 00110 virtual ~AlgFourierPropDis() 00111 {;} 00112 00113 00114 void set_discon( bool val ) { discon=val; } 00115 00116 void run(); 00117 00118 }; 00119 00120 CPS_END_NAMESPACE 00121 00122 #endif
1.3.9.1