Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

alg_fourier_prop.h

Go to the documentation of this file.
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

Generated on Sat Oct 10 14:11:09 2009 for Columbia Physics System by  doxygen 1.3.9.1