Skip to content

Conversation

@szymonlopaciuk
Copy link
Contributor

Description

This PR aims to do some spring cleaning and fixes a few long-standing bugs:

  • Fix the bug related to arrays of arrays not working (missing + symbol)
  • Add methods to retrieve shape and nd of arrays to C API.
  • Add a copy flag to converter function between numpy and context arrays.
  • Move the implementations of the VECTORIZE_OVER macro and the qualifier keywords from Xtrack to Xobjects, where they should've been put in the first place by the first edition of include-headers.
  • Move the implementation of atomicAdd from Xtrack, as I feel it belongs more to Xobjects (low level function dependent on the context).
  • Since previous headers PR introduced pyproject.toml, populate it as much as we can instead of setup.py, update black config.
  • Fix a long standing bug which causes long running scripts (such as tests) fail with OUT_OF_HOST_MEMORY on OpenCL (this is cause by the know bug of the Nvidia OpenCL driver, which leaks memory when cl.Context is destroyed – the solution is to cache contexts, and not recreate them for the same device)

Closes #156.
Closes #138.
Closes #155.

Checklist

Mandatory:

  • I have added tests to cover my changes
  • All the tests are passing, including my new ones
  • I described my changes in this PR description

Optional:

  • The code I wrote follows good style practices (see PEP 8 and PEP 20).
  • I have updated the docs in relation to my changes, if applicable
  • I have tested also GPU contexts

@szymonlopaciuk szymonlopaciuk merged commit 074bb44 into xsuite:main Nov 26, 2025
3 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

1 participant