-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathparticleSystem.cuh
67 lines (55 loc) · 2.35 KB
/
particleSystem.cuh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*
* Copyright 1993-2014 NVIDIA Corporation. All rights reserved.
*
* Please refer to the NVIDIA end user license agreement (EULA) associated
* with this source code for terms and conditions that govern your use of
* this software. Any use, reproduction, disclosure, or distribution of
* this software and related documentation outside the terms of the EULA
* is strictly prohibited.
*
*/
extern "C"
{
void cudaInit(int argc, char **argv);
void allocateArray(void **devPtr, int size);
void freeArray(void *devPtr);
void threadSync();
void copyArrayFromDevice(void *host, const void *device, int size);
void copyArrayToDevice(void *device, const void *host, int offset, int size);
void setParameters(SimParams *hostParams);
void integrateSystem(float *pos,
float *vel,
float *force,
float deltaTime,
uint numParticles);
void calcHash(uint *gridParticleHash,
uint *gridParticleIndex,
float *pos,
int numParticles);
void reorderDataAndFindCellStart(uint *cellStart,
uint *cellEnd,
float *sortedPos,
float *sortedVel,
float *sortedForce,
uint *gridParticleHash,
uint *gridParticleIndex,
float *oldPos,
float *oldVel,
float *oldForce,
uint numParticles,
uint numCells);
void collide(float *newForce,
float *sortedPos,
float *sortedVel,
float *sortedForce,
uint *gridParticleIndex,
uint *cellStart,
uint *cellEnd,
uint numParticles,
uint numCells);
void vintegrateSystem(float *vel,
float *force,
float deltaTime,
uint numParticles);
void sortParticles(uint *dGridParticleHash, uint *dGridParticleIndex, uint numParticles);
}