ComputeNonbondedUtil.h File Reference

#include "NamdTypes.h"
#include "ReductionMgr.h"
#include "Molecule.h"

Go to the source code of this file.

Classes

class  Pairlists
class  ComputeNonbondedWorkArrays
struct  GBISParamStruct
struct  nonbonded
class  ComputeNonbondedUtil

Defines

#define NBWORKARRAYSINIT(ARRAYS)   ComputeNonbondedWorkArrays* const computeNonbondedWorkArrays = ARRAYS;
#define NBWORKARRAY(TYPE, NAME, SIZE)
#define VDW_SWITCH_MODE_ENERGY   0
#define VDW_SWITCH_MODE_MARTINI   1
#define VDW_SWITCH_MODE_FORCE   2

Typedefs

typedef unsigned short plint

Functions

void register_cuda_compute_self (ComputeID c, PatchID pid)
void register_cuda_compute_pair (ComputeID c, PatchID pid[], int t[])
void unregister_cuda_compute (ComputeID c)


Define Documentation

#define NBWORKARRAY ( TYPE,
NAME,
SIZE   ) 

Value:

computeNonbondedWorkArrays->NAME.resize(SIZE); \
  TYPE * const NAME = computeNonbondedWorkArrays->NAME.begin();

Definition at line 97 of file ComputeNonbondedUtil.h.

Referenced by SELF().

#define NBWORKARRAYSINIT ( ARRAYS   )     ComputeNonbondedWorkArrays* const computeNonbondedWorkArrays = ARRAYS;

Definition at line 88 of file ComputeNonbondedUtil.h.

Referenced by SELF().

#define VDW_SWITCH_MODE_ENERGY   0

Definition at line 397 of file ComputeNonbondedUtil.h.

#define VDW_SWITCH_MODE_FORCE   2

Definition at line 399 of file ComputeNonbondedUtil.h.

#define VDW_SWITCH_MODE_MARTINI   1

Definition at line 398 of file ComputeNonbondedUtil.h.


Typedef Documentation

typedef unsigned short plint

Definition at line 33 of file ComputeNonbondedUtil.h.


Function Documentation

void register_cuda_compute_pair ( ComputeID  c,
PatchID  pid[],
int  t[] 
)

Definition at line 390 of file ComputeNonbondedCUDA.C.

References ComputeNonbondedCUDA::compute_record::c, PatchMap::center(), cudaCompute, ComputeNonbondedCUDA::localComputeRecords, NAMD_bug(), ComputeNonbondedCUDA::compute_record::offset, ComputeNonbondedCUDA::patchMap, ComputeNonbondedCUDA::patchRecords, ComputeNonbondedCUDA::compute_record::pid, ComputeNonbondedCUDA::remoteComputeRecords, ComputeNonbondedCUDA::requirePatch(), Vector::x, Vector::y, and Vector::z.

Referenced by ComputeNonbondedPair::initialize().

00390                                                                      {
00391 
00392   if ( ! cudaCompute ) NAMD_bug("register_pair called early");
00393  
00394   cudaCompute->requirePatch(pid[0]);
00395   cudaCompute->requirePatch(pid[1]);
00396 
00397   ComputeNonbondedCUDA::compute_record cr;
00398   cr.c = c; 
00399   cr.pid[0] = pid[0];  cr.pid[1] = pid[1];
00400 
00401   int t1 = t[0];
00402   int t2 = t[1];
00403   Vector offset = cudaCompute->patchMap->center(pid[0])
00404                 - cudaCompute->patchMap->center(pid[1]);
00405   offset.x += (t1%3-1) - (t2%3-1);
00406   offset.y += ((t1/3)%3-1) - ((t2/3)%3-1);
00407   offset.z += (t1/9-1) - (t2/9-1);
00408   cr.offset = offset;
00409 
00410   if ( cudaCompute->patchRecords[pid[0]].isLocal ) {
00411     cudaCompute->localComputeRecords.add(cr);
00412   } else {
00413     cudaCompute->remoteComputeRecords.add(cr);
00414   }
00415 }

void register_cuda_compute_self ( ComputeID  c,
PatchID  pid 
)

Definition at line 373 of file ComputeNonbondedCUDA.C.

References ComputeNonbondedCUDA::compute_record::c, cudaCompute, ComputeNonbondedCUDA::localComputeRecords, NAMD_bug(), ComputeNonbondedCUDA::compute_record::offset, ComputeNonbondedCUDA::patchRecords, ComputeNonbondedCUDA::compute_record::pid, ComputeNonbondedCUDA::remoteComputeRecords, and ComputeNonbondedCUDA::requirePatch().

Referenced by ComputeNonbondedSelf::initialize().

00373                                                           {
00374 
00375   if ( ! cudaCompute ) NAMD_bug("register_self called early");
00376 
00377   cudaCompute->requirePatch(pid);
00378 
00379   ComputeNonbondedCUDA::compute_record cr;
00380   cr.c = c;
00381   cr.pid[0] = pid;  cr.pid[1] = pid;
00382   cr.offset = 0.;
00383   if ( cudaCompute->patchRecords[pid].isLocal ) {
00384     cudaCompute->localComputeRecords.add(cr);
00385   } else {
00386     cudaCompute->remoteComputeRecords.add(cr);
00387   }
00388 }

void unregister_cuda_compute ( ComputeID  c  ) 

Definition at line 417 of file ComputeNonbondedCUDA.C.

References NAMD_bug().

00417                                           {  // static
00418 
00419   NAMD_bug("unregister_compute unimplemented");
00420 
00421 }


Generated on Fri Oct 19 01:17:16 2018 for NAMD by  doxygen 1.4.7