diff --git a/programs/qed-fvol/qed-fvol.cc b/programs/qed-fvol/qed-fvol.cc index bb3204c6..53e01de9 100644 --- a/programs/qed-fvol/qed-fvol.cc +++ b/programs/qed-fvol/qed-fvol.cc @@ -4,6 +4,31 @@ using namespace Grid; using namespace QCD; using namespace QedFVol; +template +class QedGimpl +{ +public: + typedef S Simd; + + template + using iImplGaugeLink = iScalar>>; + template + using iImplGaugeField = iVector>, Nd>; + + typedef iImplGaugeLink SiteGaugeLink; + typedef iImplGaugeField SiteGaugeField; + + typedef Lattice GaugeLinkField; // bit ugly naming; polarised + // gauge field, lorentz... all + // ugly + typedef Lattice GaugeField; +}; + +typedef QedGimpl QedGimplR; +typedef Photon PhotonR; +typedef PhotonR::GaugeField EmField; +typedef PhotonR::GaugeLinkField EmComp; + int main(int argc, char *argv[]) { // parse command line @@ -26,8 +51,19 @@ int main(int argc, char *argv[]) QedFVolLogDebug.Active(GridLogDebug.isActive()); LOG(Message) << "Grid initialized" << std::endl; + // QED stuff + std::vector latt_size = GridDefaultLatt(); + std::vector simd_layout = GridDefaultSimd(4, vComplex::Nsimd()); + std::vector mpi_layout = GridDefaultMpi(); + GridCartesian grid(latt_size,simd_layout,mpi_layout); + GridParallelRNG pRNG(&grid); + PhotonR photon(PhotonR::Gauge::Feynman, + PhotonR::ZmScheme::QedL); + EmField a(&grid); + + pRNG.SeedRandomDevice(); + photon.StochasticField(a, pRNG); - // epilogue LOG(Message) << "Grid is finalizing now" << std::endl; Grid_finalize();