[parsec-users] fluidanimate questions

Christian Bienia cbienia at CS.Princeton.EDU
Fri Jul 25 12:31:48 EDT 2008


Hi Mark,

 

The grid algorithm is the only algorithm provided. There are two arrays to
index the particles because fluidanimate sorts all particles into a spatial
array, so one is the "normal" data structure to store all particles, the
other one is a spatial indexing structure that has to be rebuild every time
the particles move. Using a spatial indexing structure accelerates
processing because the kernels used by fluidanimate have only a small radius
- you can skip most of the computation if you know in advance that the
particles are too far to interact.

 

- Chris

 

 

 

From: parsec-users-bounces at lists.cs.princeton.edu
[mailto:parsec-users-bounces at lists.cs.princeton.edu] On Behalf Of Hampton,
Mark
Sent: Friday, July 25, 2008 11:24 AM
To: parsec-users at lists.cs.princeton.edu
Subject: [parsec-users] fluidanimate questions

 

Hi,

 

I had a couple of questions about the fluidanimate benchmark.  First, the
README in the source code directory states that two different
parallelization algorithms are provided-a shared grid algorithm and a ghost
layer algorithm.  However, I only see the shared grid algorithm in
parallel.cpp, which relies on the border[] array to indicate boundary cells.
Is there still the intention of providing a ghost layer algorithm?

 

My second question had to do with the method used to advance from one frame
to the next (in both the serial and parallel versions of the code).  Once
the densities, forces, and collisions have been computed, the
AdvanceParticles() function is called so that the particle positions can be
updated.  The updates take place in the cells[] array.  However, at the
beginning of the next frame, when RebuildGrid() is called, the contents of
the cells[] array are overwritten using the contents of the cells2[]
array-and the latter structure is initialized in InitSim() and never updated
again.  So if I'm reading the code correctly, all of the particle positions
will end up being reset to the same values at the beginning of every frame,
rather than actually being updated as the particles move within/between
cells.  Is this a bug, or am I missing something?  Thanks.

 

Mark

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cs.princeton.edu/pipermail/parsec-users/attachments/20080725/b26b8eea/attachment.htm>


More information about the parsec-users mailing list