ComputePatchPair.h

Go to the documentation of this file.
00001 
00007 /*
00008    Primary class for pairwise force calculations over pairs of patches.
00009    Takes care of boxes, depositing of forces etc.
00010 */
00011 
00012 #ifndef COMPUTEPPAIR_H
00013 #define COMPUTEPPAIR_H
00014 
00015 #include "Compute.h"
00016 #include "PatchTypes.h"
00017 
00018 #include "Box.h"
00019 #include "OwnerBox.h"
00020 
00021 class Patch;
00022 class Node;
00023 class PatchMap;
00024 
00025 class ComputePatchPair : public Compute {
00026 
00027 public:
00028   ComputePatchPair(ComputeID c, PatchID pid[], int t[]);
00029   virtual ~ComputePatchPair();
00030 
00031   virtual void initialize();
00032   virtual void atomUpdate();
00033   virtual void doWork();
00034 
00035 protected :
00036   int numAtoms[2];
00037   CompAtomExt *pExt[2];
00038   CompAtom* p[2];
00039   Results* r[2];
00040 
00041   // DMK - Atom Separation (water vs. non-water)
00042   #if NAMD_SeparateWaters != 0
00043     int numWaterAtoms[2];
00044   #endif
00045 
00046   virtual void doForce(CompAtom* p[2], CompAtomExt* pExt[2], Results* r[2]);
00047   Patch *patch[2];
00048 
00049 // private: // hack for ComputeNonbondedPair::noWork()
00050   PatchID patchID[2];
00051   int trans[2];
00052   Box<Patch,CompAtom> *positionBox[2];
00053   Box<Patch,Results> *forceBox[2];
00054 };
00055 
00056 #endif
00057 

Generated on Mon Nov 20 01:17:11 2017 for NAMD by  doxygen 1.4.7