Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

some ideas #65

Open
mattsignorelli opened this issue Feb 20, 2024 · 0 comments
Open

some ideas #65

mattsignorelli opened this issue Feb 20, 2024 · 0 comments

Comments

@mattsignorelli
Copy link
Contributor

mattsignorelli commented Feb 20, 2024

This is a running list of ideas I have we could discuss in the future:

  • Maybe this exists already, but a generic interface for element attributes - for example, if someone wants to add attribute to the dict, one step should be to define a function att_update_rule that tells the bookkeeper when to recalculate that quantity and also how to calculate that quantity. Then all other attributes should satisfy this interface
  • multiparticle spin tracking should only track the quaternion for each particle instead of Sx Sy Sz
  • low-level track functions should be in-place (e.g track_quadrupole!(z0,z, ...)), allow aliasing with minimum temporaries produced inside the function (the track package API could be very similar to that of the MAD GTPSA C library), and fully compileable
  • tracking functions need to be compatible with CuArray type or easily translatable to separate kernels for GPU porting with CUDA. Particle coordinates stored in 1D CuArray
  • use PrecompileTools for tracking and acceleratorlattice to kill the JIT time for users, precompile all the tracking routines with Float64, and duals and TPSs
  • how to convert the lattice to a new structure for maximum speed in tracking (can it fit on a single register in GPU?)
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

No branches or pull requests

1 participant