The circled functions are the multithreaded functions which iterate over particles and find neighbors. What you're not seeing is the construction of the kdtree, which I guess I forgot to add to the profiler. Often it can be the case that the kdtree takes longer to build than the actual neighbor search, but that's because building it is a sequential process that cannot be threaded. But ultimately the kdtree build time + search time will still be orders of magnitude faster than a brute force search.
I'll do some further profiling to see if I can figure out why Prop Transfer is taking so much longer to build the tree than Prop Test.
I'll do some further profiling to see if I can figure out why Prop Transfer is taking so much longer to build the tree than Prop Test.