Skip to content

Flow control - #23

Merged
cianciosa merged 51 commits into
mainfrom
flow_control
Sep 23, 2026
Merged

cianciosa merged 51 commits into
mainfrom
flow_control

Conversation

@cianciosa

Copy link
Copy Markdown
Collaborator

Complete Particle in Cell code with collision operator.

cianciosa added 30 commits July 13, 2026 22:19
…n. First is add a modulo operation. This requires disabling derivatives. The second enhancement is to add logic and conditional nodes. These have not been added to the c or fortran bindings yet.
1. Add an index node constant. This node allows access to the current kernel index.
2. Correct if node code generation and use ? : to allow the register to be const.
3. Refactor workflows and gpu contexts to add a memzero work item and fold the loop interation into the kernel itself.
4. Refactor backend buffers to inherit from std::vector directly. This eliminates a low of code.
5. Refactor copy and passed backend buffer code to use macro functions.
6. Add function to generate and organize graphs for PIC codes.
7. Add unit test for PIC field solver. This checkes the particle counts aganist a standard historgram.
8. Disable PIC driver to avoid compilation error since the API is in flux.
…he steps for initalization, particle push, field solve, and particle reinjection (uniform x dist only).
…ility to define allback functions in the workflows. Add fileio functions for the pic code.
… correct number of iterations. Remove unneeded character from index string reps. Add kernel profiling capability.
…tly. Avoid underlow by keeping max_base teh same floating type as the template T
… the number of threads used for cuda kernels. Long term we should use something more robust.
cianciosa added 21 commits July 31, 2026 13:55
…faster than the previous kernel however it is 100x slower when run with orther kernels. So far this only affects the metal kernel. A standalone test case doesn't show this problem so It's not clear where it's comming from. Commit this work in progress to see of the Cuda kernel has the same problem.
…ed wrong. This fixes the performance regression experianced when using atomic types since there was a 1024000 population all getting assigned to the same bin. Fix issues with NaNs and Infs by checking for them in the particle reinjection kernel.
…cannot update it by reference. Instead make the function apply_u return an updated value.
…ons for coordinate conversion creates an exact graph.
…d min and erf nodes. Refactor precompile methods to allow a unquie function to bedefined before the kernels. Add debug checks for duplicate nodes in kernel arguments.
…st. This should keep the bits intack and avoid type conversions in the collision operator. Update unit tests as a result.
@cianciosa
cianciosa merged commit a92bd5a into main Sep 23, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant