Graphics Reference
In-Depth Information
Finally we interpolate back from the grid to the particles, and then advect
the particles in the grid velocity field.
To more accurately do the particle-to-grid transfer, and be more robust
in the face of non-uniform particle distributions, it's recommended that
at least for velocity the normalization weight W actually be calculated per
grid point, making the value at each grid point a weighted average of nearby
particle values. For example, the u -component of velocity on the grid ends
up as
u i +1 / 2 ,j,k = p u p k ( x p
x i +1 / 2 ,j,k )
p k ( x p
,
(10.2)
x i +1 / 2 ,j,k )
though of course to actually calculate it we instead loop over the particles
accumulating both u p k ( x p
x i +1 / 2 ,j,k )
on the grid, and then do the divide in a second pass over the grid.
Also note that the particle-to-grid transfer only provides grid values
near particles; it may be imperative to extrapolate those grid values out
to the rest of the grid as discussed before. If errors in advection or a
positive divergence control result in “gaps” between particles opening up
on the grid, it may be necessary to include a reseeding stage where new
particles are added to grid cells with too few particles (say, less than three),
with particle values interpolated from the grid. Similarly particles can be
dynamically deleted from grid cells with an excess of particles (say, more
than twelve).
While plain PIC worked admirably—albeit only with first-order
accuracy—for the compressible flow problems to which it was originally
applied, it also suffered from severe numerical dissipation. The problem
is that fluid quantities are averaged from particles to the grid, introduc-
ing some smoothing, and then the smoothed grid values are interpolated
back to the particles, compounding the smoothing. Even if nothing is
happening—particles aren't moving at all—a significant amount of smooth-
ing takes place at every time step.
To counteract this, Brackbill and Ruppel [Brackbill and Ruppel 86]
developed the fluid implicit particle (FLIP) method, a beautifully simple
variation on PIC. In FLIP, instead of interpolating a quantity back to the
particles, the change in the quantity (as computed on the grid) is inter-
polated and used to increment the particle value, not replace it. Each
increment to a particle's value undergoes one smoothing (from interpo-
lation) but that's all: smoothing is not accumulated, and thus FLIP is
virtually free of numerical dissipation. In pseudocode, the method can be
interpreted as
x i +1 / 2 ,j,k )andtheweight k ( x p
Search WWH ::




Custom Search