Position Based Dynamics

Hi guys:

I’m implementing the Paper which is the variant of muller’s paper . I’m a bit confused about the neighboring particle searching, it seems very similar to SPH algorithm. If I don’t need a grid, how can I search for the neighbor particles? What I mean is using grid index to find the current particle and compute the radius to find the neighbor cell particles. Am I correct guys?


“If I don’t need a grid, how can I search for the neighbor particles?”

if you do not need/ use a grid, how would you define and measure ‘neighbour’ then?

by means of some form of distance or position measurement?

and would a circular - or simply uniform - radius always apply?

What does the original paper say about this?

The original paper does not say anything about the neighbor searching (I mean the 'Position Based Dynamics" by Muller. And in the “Position Based Fluids” they used the same scheme as SPH method did.

Yeah you remind me that this is the regular way to minimize the complexity for neighbor searching from N^2 to NlogN. You only need to search the particles in the neighbor “cells” right? If we do not use the grid, the search processing will take all the particles to search for every single particle.

The Particles example code in the NVidia SDK has a full implementation of a grid based neighbor search. Read the associated .PDF by Simon Green for implementation details.

HOOMD is an open source simulation tool which has a tuned CUDA particle neighbor-finding routine.

There is at least one example application using particle neighbor finding in GPU Gems 3, free online.

Hey body, thank you so much. Lots of information you provided, thanks!