Replies: 1 comment 4 replies
-
Thanks for the question. The first application of ArborX in 4C was for embedded fiber problems (if you want to have a look at some examples you can check out https://arxiv.org/abs/1912.04153), where we deal with thin, long beam elements (almost one-dimensional, but curved) embedded inside standard 3D volume elements (e.g., hex8, hex27). In these cases, the interaction evaluation involves a fine search that performs segmentation and local projections onto curved interfaces, which is relatively slow. So our main performance gain comes from minimizing the number of candidate pairs that enter this expensive fine search phase. That’s why we chose KDOPs—simply because they offer tighter-fitting bounds than AABBs. The actual performance difference between KDOP and AABB searches within ArborX is of secondary importance in this context. We’ve since started integrating ArborX into other parts of the code where we need a global distributed search. Since the same type of elements as previously described are searched, we’ve simply stuck with KDOPs there as well. In our experience, the crucial objects in our applications are the beam elements, since a “bad” bounding box on a beam can hurt performance or accuracy much more than a bad one on a volume element - which in my opinion makes sense given their 1D curve like nature. Because of that, we’re definitely open to trying alternative bounding volumes that can better capture their shape. I’m not too familiar with OBBs myself, but from what I understand, they could be a good fit and worth trying. Our long-term goal is to migrate as many as possible of our search algorithms (and there are quite a few, see #200) to use ArborX (most of those cases don't deal with beams).
What exactly do you mean by “struggle”? Are some interaction pairs being missed, or are you seeing too many false positives, or is it something else entirely? As far as I know, we haven’t experienced any issues with KDOPs in our use cases so far. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I see that so far 4C been playing around with KDOPs. I wanted to learn more about it, and your experience with it. What are the problems you are solving that KDOPs are better for than AABBs? Are the performance measurements indicating that?
I'm also wondering if ArborX implemented OBBs, would that be more beneficial? I found that KDOPs struggle when dealing with surface meshes at angles, which theoretically OBBs would solve. I wonder if there are use cases in 4C that could benefit from that.
Beta Was this translation helpful? Give feedback.
All reactions