Compare commits

...

3 Commits

Author SHA1 Message Date
alardner 7b72cd39f8 fixed broken branches, updated README 2026-08-19 01:02:43 -07:00
alardner f2c7c0d882 make shared ptrs device ptrs 2026-07-17 16:45:52 -07:00
alardner c0a0d101eb backup 2026-07-16 13:38:08 -07:00
5 changed files with 26 additions and 17 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ You'll need these even if you don't compile with cmake until SYCL gets native LL
All simulation code uses single-precision floating point arithmetic to ensure compatability with (integrated) graphics packages that do not support 64-bit floating point. All simulation code uses single-precision floating point arithmetic to ensure compatability with (integrated) graphics packages that do not support 64-bit floating point.
polypartiCL is licensed with the 3-clause BSD license. polypartiCL is licensed with the 3-clause BSD license. Initial development of GLSL shaders (./shaders/*.fs) was assisted by generative AI (Claude Sonnet).
## Todo ## Todo
- Reduce corner escaping - Reduce corner escaping
+8
View File
@@ -0,0 +1,8 @@
Center Delay
count velocity x y theta_i theta_f color start end decayrate
===================================================
s
20000 70 0.5 0.5 0 360 red 1 0 0
20000 70 0.5 0.5 0 360 green 3.30769 0 0
20000 70 0.5 0.5 0 360 blue 5.61538 0 0
20000 70 0.5 0.5 0 360 white 7.92308 0 0
+4 -1
View File
@@ -2,4 +2,7 @@ Center Delay
count velocity x y theta_i theta_f color start end decayrate count velocity x y theta_i theta_f color start end decayrate
=================================================== ===================================================
s s
100000 79 0.5 0.5 0 360 cyan 1 0 0 10000 40 0.5 0.5 0 360 orange 1 0 0
10000 40 0.5 0.5 0 360 cyan 3.30769 0 0
10000 40 0.5 0.5 0 360 violet 5.61538 0 0
10000 40 0.5 0.5 0 360 green 7.92308 0 0
+7 -9
View File
@@ -1,11 +1,9 @@
Big Hexagon (fixed 1080) Big Diamond (relative)
x y x y
================== ==================
f r
960.0 1.303 0.5 0.0
1426.525 270.652 0.78125 0.5
1426.525 809.348 0.5 1.0
960.0 1078.697 0.21875 0.5
493.475 809.348 0.5 0.0
493.475 270.652
960.0 1.303
+6 -6
View File
@@ -30,9 +30,9 @@ struct Polyparti::ParticleField::ColCode {
//Pointers to malloc on GPU VRAM for calculations. malloc_shared pointers are entry/exit //Pointers to malloc on GPU VRAM for calculations. malloc_shared pointers are entry/exit
//point for data in CPU RAM //point for data in CPU RAM
float *v_ptr = malloc_shared<float>(2 * len_points, q); float *v_ptr = malloc_device<float>(2 * len_points, q);
float *d_ptr = malloc_shared<float>(2 * len_points, q); float *d_ptr = malloc_device<float>(2 * len_points, q);
float *c_ptr = malloc_shared<float>(2 * len_points, q); float *c_ptr = malloc_device<float>(2 * len_points, q);
float *ray_ptr = malloc_device<float>(2 * len_points, q); float *ray_ptr = malloc_device<float>(2 * len_points, q);
float *det_ptr = malloc_device<float>(len_points, q); float *det_ptr = malloc_device<float>(len_points, q);
float *bestA_ptr = malloc_device<float>(2 * len_points, q); float *bestA_ptr = malloc_device<float>(2 * len_points, q);
@@ -170,9 +170,9 @@ struct Polyparti::ParticleField::ColCode {
void moveParticles() { void moveParticles() {
queue& q = q_shared(); queue& q = q_shared();
int len = positions.size(); int len = positions.size();
float *v_ptr = malloc_shared<float>(2 * len, q); float *v_ptr = malloc_device<float>(2 * len, q);
float *p_ptr = malloc_shared<float>(2 * len, q); float *p_ptr = malloc_device<float>(2 * len, q);
float *t_ptr = malloc_shared<float>(1, q); float *t_ptr = malloc_device<float>(1, q);
q.submit([&](handler& h) { q.submit([&](handler& h) {
h.memcpy(p_ptr, &positions[0], len * 2 * sizeof(float)); h.memcpy(p_ptr, &positions[0], len * 2 * sizeof(float));