Structs design
Note
Here is an interactive graph to illustrate the basic structs in this solver.
Green blocks are structs that users need to interact with, and they follow a similar hierarchical logic. To maximize support for users to easily implement custom algorithms, we have added an Extra structure to each structure. For example, for Particle
, it is UserParticleExtra
.
Note
Although Args
has a user-customizable struct called UserArgsExtra
, like other Args
, it cannot be directly used as input for the kernel function; it can only pass its values (bits) to the kernel function.
When the user instantiates green blocks, the data will be automatically transferred between different computing backends based on the user's selection. For internal information about the types, please refer to the source code.