00001 #include<config.h> 00002 CPS_START_NAMESPACE 00003 //------------------------------------------------------------------ 00004 // 00005 // alg_mom.h 00006 // 00007 // Header file for the AlgMom class. 00008 // 00009 // AlgMom it calculates the phase factor for each 00010 // lattice site given a number of momenta and the source parameters 00011 // 00012 //------------------------------------------------------------------ 00013 00014 00015 #ifndef INCLUDED_ALG_MOM_H 00016 #define INCLUDED_ALG_MOM_H 00017 00018 CPS_END_NAMESPACE 00019 #include <math.h> // for cos and sin 00020 #include <alg/mom_arg.h> 00021 #include <alg/alg_base.h> 00022 #include <alg/common_arg.h> 00023 CPS_START_NAMESPACE 00024 00025 00026 class AlgMom 00027 { 00028 private: 00029 char *cname; 00030 MomArg *alg_mom_arg; // argument structure for momentum states 00031 00032 Float PI; 00033 int dir,i,j,k; // propagation direction and 3 orthogonal 00034 int no_of_mom; // number of momenta to be calculated 00035 int deg; // calculate degenerate momenta separately/together 00036 00037 int nx[4]; // local lattice extent 00038 int glb_L[4]; // global lattice extent 00039 int glb_sour_center[4]; // global source location 00040 Complex *mom_fact; 00041 00042 public: 00043 AlgMom(CommonArg *c_arg, MomArg *arg); 00044 virtual ~AlgMom(); 00045 void run(void); 00046 00047 // returns the complex phase factor for momentum "imom" at site "s" 00048 Complex fact(int imom, int *s); 00049 }; 00050 00051 00052 00053 #endif 00054 00055 00056 00057 00058 00059 CPS_END_NAMESPACE
1.3.9.1