asqtad_mdagm_s.cc

Go to the documentation of this file.
00001 // $Id: asqtad_mdagm_s.cc,v 3.0 2006/04/03 04:58:49 edwards Exp $
00002 /*! \file
00003  *  \brief Unpreconditioned Wilson linear operator
00004  */
00005 // NEW $Id: asqtad_linop.cc 2003/11/13 steve
00006 
00007 #include "chromabase.h"
00008 #include "actions/ferm/linop/asqtad_mdagm_s.h"
00009 
00010 using namespace QDP::Hints;
00011 namespace Chroma 
00012 { 
00013   //! Creation routine
00014   /*! \ingroup fermact
00015    *
00016    * \param _u_fat         fat7 links                        (Read)
00017    * \param _u_triple    triple links                        (Read)
00018    * \param _Mass        fermion mass                              (Read)
00019    */
00020   void AsqtadMdagM::create(Handle<AsqtadConnectStateBase> state,
00021                            const Real& Mass_)
00022   {
00023     Mass = Mass_;
00024 
00025     // We wire them into D so we don't need to keep them
00026     // u_fat = _u_fat;
00027     // u_triple = _u_triple;
00028     D.create(state);
00029   }
00030 
00031 
00032   //! Apply Asqtad staggered fermion linear operator
00033   /*!
00034    * \ingroup linop
00035    *
00036    * The operator acts on the checkerboarded lattice
00037    *
00038    * \param psi           Pseudofermion field                  (Read)
00039    * \param isign   Flag ( PLUS | MINUS )              (Read)
00040    * \param cb      Checkerboard of OUTPUT VECTOR        (Read)
00041    */
00042   void AsqtadMdagM::operator()(LatticeStaggeredFermion& chi, 
00043                                const LatticeStaggeredFermion& psi, 
00044                                enum PlusMinus isign) const
00045   {
00046     START_CODE();
00047 
00048     Real mass_sq = Mass*Mass;
00049     LatticeStaggeredFermion tmp1, tmp2;
00050     moveToFastMemoryHint(tmp1);
00051     moveToFastMemoryHint(tmp2);
00052 
00053     tmp1 = tmp2 = zero;
00054 
00055     //
00056     //  Chi     =  4m**2 Psi     -  D'  D'      Psi
00057     //     E                E        EO  OE   
00058 
00059     D.apply(tmp1, psi, isign, 1);
00060     D.apply(tmp2, tmp1, isign, 0);
00061 
00062     chi[rb[0]] = 4*mass_sq*psi - tmp2;
00063   
00064     END_CODE();
00065   }
00066 
00067 } // End Namespace Chroma
00068 

Generated on Sun Nov 22 04:28:49 2009 for CHROMA by  doxygen 1.4.7