-
Notifications
You must be signed in to change notification settings - Fork 50
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
New user question: checking use case #583
Comments
Hi @a-jp - this seems like a better job for ArborX because you want k-nearest neighbors. Cabana uses ArborX for spatial intersection searches (i.e. all points within some distance) based on your n-neighbors requirement it will likely not have the right search ability for you. ArborX should have a parallel k-nearest search. |
Ok thanks. The parallel gather/scatter on a i-j pair is I believe the issue for my use cases when using ArborX? |
From the ArborX perspective, you can obtain the field variables (and their MPI rank) for the neighbors of a given point and then do some computation on that with arborx/ArborX#737. The scatter part you would need to implement yourself. |
ok, thank you, I guess we're using the wrong project really to discuss ArborX, but thanks. From my point of view, I'd have no idea how to implement the scatter part. Are there any places to start to help with that? |
So right now in Cabana I think we have everything you need except the kNN part. We don't have a direct MPI neighbor search, but we instead assume you have already done a gather first, then include potentially ghosted particles in the local neighbor search. So you can do gather/scatter on particles and the neighbor search, just in separate kernels. So the relevant examples would probably be AoSoA (for your particle fields question), neighbor list (again currently fixed radius, but could be extended to kNN), and halo If we did add kNN it sounds like the first route would probably be another wrapper around ArborX |
Feel free to reopen to ask a follow-up or related question or open a new issue as needed |
Hi,
I've come across Cabana and it looks like I could use a subset of it for my use case. I've asked a very similar question on the ArborX project, and I would like to explore Cabana in a similar vane. Could I describe my use-case and would you be able to confirm that it's an appropriate library? I'd ideally like to do the following:
In advance there is no notion of a mesh/grid for my use case. I'm happy to bound the problem to a domain if needed (xmin/xmax etc), but fundamentally my question relates to a meshless problem. I understand I may need an underlying grid but from my point of view that’s only to serve particle based operations.
Currently, I do the above in serial only with the point-locators and associated data-structures in VTK. I'd like to do the above with MPI, with data held per point, and the associated parallel read and write to the data held at each point along with the parallel N-neighbour search, where the search is conducted for the neighbours of an existing point.
Sorry for the long post. Many thanks for the help,
ajp
The text was updated successfully, but these errors were encountered: