NAMD
Public Member Functions | List of all members
CudaNonbondedTables Class Reference

#include <CudaNonbondedTables.h>

Public Member Functions

 CudaNonbondedTables (const int deviceID)
 
 ~CudaNonbondedTables ()
 
float2 * getVdwCoefTable ()
 
int getVdwCoefTableWidth ()
 
int getForceAndEnergyTableSize ()
 
cudaTextureObject_t getVdwCoefTableTex ()
 
cudaTextureObject_t getForceTableTex ()
 
cudaTextureObject_t getEnergyTableTex ()
 
float4 * getForceTable ()
 
float4 * getEnergyTable ()
 
void updateTables ()
 
float2 * getExclusionVdwCoefTable ()
 
cudaTextureObject_t getExclusionVdwCoefTableTex ()
 
float4 * getExclusionTable ()
 
float * get_r2_table ()
 
cudaTextureObject_t getExclusionTableTex ()
 
cudaTextureObject_t get_r2_table_tex ()
 
cudaTextureObject_t getModifiedExclusionForceTableTex ()
 
cudaTextureObject_t getModifiedExclusionEnergyTableTex ()
 
float4 * getModifiedExclusionForceTable ()
 
float4 * getModifiedExclusionEnergyTable ()
 

Detailed Description

Definition at line 16 of file CudaNonbondedTables.h.

Constructor & Destructor Documentation

◆ CudaNonbondedTables()

CudaNonbondedTables::CudaNonbondedTables ( const int  deviceID)

Definition at line 10 of file CudaNonbondedTables.C.

References cudaCheck, and FORCE_ENERGY_TABLE_SIZE.

10  : deviceID(deviceID) {
11 
12  vdwCoefTable = NULL;
13  vdwCoefTableWidth = 0;
14 #if !defined(USE_TABLE_ARRAYS)
15  forceTableTex = 0;
16  energyTableTex = 0;
17 #endif
18  forceTable = NULL;
19  energyTable = NULL;
20 
21  exclusionTable = NULL;
22  r2_table = NULL;
23 
24 #if !defined(USE_TABLE_ARRAYS)
25  modifiedExclusionForceTableTex = 0;
26  modifiedExclusionEnergyTableTex = 0;
27 #endif
28  modifiedExclusionForceTable = NULL;
29  modifiedExclusionEnergyTable = NULL;
30 
31  cudaCheck(cudaSetDevice(deviceID));
32  buildForceAndEnergyTables(FORCE_ENERGY_TABLE_SIZE);
33  buildVdwCoefTable();
34 }
#define FORCE_ENERGY_TABLE_SIZE
Definition: CudaUtils.h:40
#define cudaCheck(stmt)
Definition: CudaUtils.h:233

◆ ~CudaNonbondedTables()

CudaNonbondedTables::~CudaNonbondedTables ( )

Definition at line 36 of file CudaNonbondedTables.C.

References cudaCheck.

36  {
37  cudaCheck(cudaSetDevice(deviceID));
38  if (vdwCoefTable != NULL) deallocate_device<float2>(&vdwCoefTable);
39  if (exclusionTable != NULL) deallocate_device<float4>(&exclusionTable);
40  if (r2_table != NULL) deallocate_device<float>(&r2_table);
41 
42 #if !defined(USE_TABLE_ARRAYS)
43  cudaCheck(cudaFreeArray(forceArray));
44  cudaCheck(cudaFreeArray(energyArray));
45  cudaCheck(cudaFreeArray(modifiedExclusionForceArray));
46  cudaCheck(cudaFreeArray(modifiedExclusionEnergyArray));
47 
48  cudaCheck(cudaDestroyTextureObject(forceTableTex));
49  cudaCheck(cudaDestroyTextureObject(energyTableTex));
50  cudaCheck(cudaDestroyTextureObject(modifiedExclusionForceTableTex));
51  cudaCheck(cudaDestroyTextureObject(modifiedExclusionEnergyTableTex));
52 #endif
53 
54  if (forceTable != NULL) deallocate_device<float4>(&forceTable);
55  if (energyTable != NULL) deallocate_device<float4>(&energyTable);
56  if (modifiedExclusionForceTable != NULL) deallocate_device<float4>(&modifiedExclusionForceTable);
57  if (modifiedExclusionEnergyTable != NULL) deallocate_device<float4>(&modifiedExclusionEnergyTable);
58 }
#define cudaCheck(stmt)
Definition: CudaUtils.h:233

Member Function Documentation

◆ get_r2_table()

float* CudaNonbondedTables::get_r2_table ( )
inline

Definition at line 99 of file CudaNonbondedTables.h.

99 {return r2_table;}

◆ get_r2_table_tex()

cudaTextureObject_t CudaNonbondedTables::get_r2_table_tex ( )
inline

Definition at line 102 of file CudaNonbondedTables.h.

102 {return r2_table_tex;}

◆ getEnergyTable()

float4* CudaNonbondedTables::getEnergyTable ( )
inline

Definition at line 88 of file CudaNonbondedTables.h.

88 {return energyTable;}

◆ getEnergyTableTex()

cudaTextureObject_t CudaNonbondedTables::getEnergyTableTex ( )
inline

Definition at line 85 of file CudaNonbondedTables.h.

85 {return energyTableTex;}

◆ getExclusionTable()

float4* CudaNonbondedTables::getExclusionTable ( )
inline

Definition at line 98 of file CudaNonbondedTables.h.

98 {return exclusionTable;}

◆ getExclusionTableTex()

cudaTextureObject_t CudaNonbondedTables::getExclusionTableTex ( )
inline

Definition at line 101 of file CudaNonbondedTables.h.

101 {return exclusionTableTex;}

◆ getExclusionVdwCoefTable()

float2* CudaNonbondedTables::getExclusionVdwCoefTable ( )
inline

Definition at line 92 of file CudaNonbondedTables.h.

92 {return exclusionVdwCoefTable;}

◆ getExclusionVdwCoefTableTex()

cudaTextureObject_t CudaNonbondedTables::getExclusionVdwCoefTableTex ( )
inline

Definition at line 94 of file CudaNonbondedTables.h.

94 {return exclusionVdwCoefTableTex;}

◆ getForceAndEnergyTableSize()

int CudaNonbondedTables::getForceAndEnergyTableSize ( )
inline

Definition at line 81 of file CudaNonbondedTables.h.

81 {return forceAndEnergyTableSize;}

◆ getForceTable()

float4* CudaNonbondedTables::getForceTable ( )
inline

Definition at line 87 of file CudaNonbondedTables.h.

87 {return forceTable;}

◆ getForceTableTex()

cudaTextureObject_t CudaNonbondedTables::getForceTableTex ( )
inline

Definition at line 84 of file CudaNonbondedTables.h.

84 {return forceTableTex;}

◆ getModifiedExclusionEnergyTable()

float4* CudaNonbondedTables::getModifiedExclusionEnergyTable ( )
inline

Definition at line 110 of file CudaNonbondedTables.h.

110 {return modifiedExclusionEnergyTable;}

◆ getModifiedExclusionEnergyTableTex()

cudaTextureObject_t CudaNonbondedTables::getModifiedExclusionEnergyTableTex ( )
inline

Definition at line 107 of file CudaNonbondedTables.h.

107 {return modifiedExclusionEnergyTableTex;}

◆ getModifiedExclusionForceTable()

float4* CudaNonbondedTables::getModifiedExclusionForceTable ( )
inline

Definition at line 109 of file CudaNonbondedTables.h.

109 {return modifiedExclusionForceTable;}

◆ getModifiedExclusionForceTableTex()

cudaTextureObject_t CudaNonbondedTables::getModifiedExclusionForceTableTex ( )
inline

Definition at line 106 of file CudaNonbondedTables.h.

106 {return modifiedExclusionForceTableTex;}

◆ getVdwCoefTable()

float2* CudaNonbondedTables::getVdwCoefTable ( )
inline

Definition at line 79 of file CudaNonbondedTables.h.

79 {return vdwCoefTable;}

◆ getVdwCoefTableTex()

cudaTextureObject_t CudaNonbondedTables::getVdwCoefTableTex ( )
inline

Definition at line 83 of file CudaNonbondedTables.h.

83 {return vdwCoefTableTex;}

◆ getVdwCoefTableWidth()

int CudaNonbondedTables::getVdwCoefTableWidth ( )
inline

Definition at line 80 of file CudaNonbondedTables.h.

80 {return vdwCoefTableWidth;}

◆ updateTables()

void CudaNonbondedTables::updateTables ( )

Definition at line 151 of file CudaNonbondedTables.C.

151  {
152  buildVdwCoefTable(true);
153 }

The documentation for this class was generated from the following files: