00001
00022 #ifndef GPU_FORCES_CUH
00023 #define GPU_FORCES_CUH
00024
00025 #include <cuda.h>
00026 #include "define.h"
00027 #include "gpu_tools.cuh"
00028
00029
00061 __device__ inline void gpuAddLJForce(FLOAT_ARRAY_TYPE *dForce, FLOAT_ARRAY_TYPE *dA, FLOAT_ARRAY_TYPE *dB, float *boxsize);
00062
00075 __device__ inline void gpuAddLJForceCut(FLOAT_ARRAY_TYPE *dForce, FLOAT_ARRAY_TYPE *dA, FLOAT_ARRAY_TYPE *dB, float *boxsize, float *rCutSq);
00093 __device__ void gpuAddHarmonicBondForce(FLOAT_ARRAY_TYPE *dForce, FLOAT_ARRAY_TYPE *dA, FLOAT_ARRAY_TYPE *dB, float *dK, float *boxsize);
00110 __global__ void gpuLJForces(FLOAT_ARRAY_TYPE *dPos, FLOAT_ARRAY_TYPE *dForce, int N, float boxsize);
00111
00112
00125 __global__ void gpuLJForcesSmem(FLOAT_ARRAY_TYPE *dPos, FLOAT_ARRAY_TYPE *dForce, int N, float boxsize);
00126
00127
00128
00141 __global__ void gpuLJForcesSmemSmem(FLOAT_ARRAY_TYPE *dPos, FLOAT_ARRAY_TYPE *dForce, int N, float boxsize);
00142
00143
00144
00156 __global__ void gpuLJForcesCut(FLOAT_ARRAY_TYPE *dPos, FLOAT_ARRAY_TYPE *dForce, int N, float boxsize, float rCutSq);
00157
00158
00170 __global__ void gpuLJForcesCutVar1(FLOAT_ARRAY_TYPE *dPos, FLOAT_ARRAY_TYPE *dForce, int N, float boxsize, float rCutSq);
00171
00172
00186 __global__ void gpuLJForcesCutRSmem(FLOAT_ARRAY_TYPE *dPos, FLOAT_ARRAY_TYPE *dForce, int N, float boxsize, float rCutSq);
00187
00188
00202 __global__ void gpuLJForcesCutSmem(FLOAT_ARRAY_TYPE *dPos, FLOAT_ARRAY_TYPE *dForce, int N, float boxsize, float rCutSq);
00203
00217 __global__ void gpuLJForcesCutSmemSmem(FLOAT_ARRAY_TYPE *dPos, FLOAT_ARRAY_TYPE *dForce, int N, float boxsize, float rCutSq);
00218
00219
00234 __global__ void gpuLJForcesVerletList(FLOAT_ARRAY_TYPE *dPos, FLOAT_ARRAY_TYPE *dForce, int N, int *dVlists, size_t vlists_pitch, int *dVcount, float boxsize, float rCutSq);
00255 __global__ void gpuHarmonicBondForces(FLOAT_ARRAY_TYPE *dPos, FLOAT_ARRAY_TYPE *dForce, int *cnn, size_t pitch, int N, int numNN, float k, float boxsize);
00256
00257
00273 __global__ void gpuHarmonicBondForcesSmem(FLOAT_ARRAY_TYPE *dPos, FLOAT_ARRAY_TYPE *dForce, int *cnn, size_t pitch, int N, int numNN, float k, float boxsize);
00288 __global__ void gpuResetForces(FLOAT_ARRAY_TYPE *dForces, int N);
00293 #endif //GPU_FORCES_CUH