Compare commits

...

4 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
alardner 70dbf1a649 fix gitignore 2026-07-14 01:37:24 -07:00
10 changed files with 26 additions and 18 deletions
-1
View File
@@ -42,4 +42,3 @@ build
debug debug
.cache .cache
tmp tmp
screenshot*
+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
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 233 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 758 KiB

+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));