Apologies for the terrible title.

I'm trying to perform a 10^6 timestep electrostatic particle-in-cell simulation on a rather large mesh, with very limited computational resources (a single GPU). Because of the large number of timesteps and the fact that the mesh is solved completely anew for each timestep, this takes a while.

In Particle-in-cell beam dynamics simulations with a wavelet-based Poisson solver, Terzic et al make a very interesting suggestion:

One such advantage is the ability to use the solution from the previous time step as the initial approximation used in solving the Poisson equation one time step later: this simple idea was found to have a dramatic effect on the number of iterations to convergence...

The third advantage of employing an iterative solver in a PIC simulation comes from the nature of the simulation process itself: the Poisson equation is solved repeatedly, once per simulation time step, with the source term changing only slightly from one solve to the next. This means that every time the Poisson equation is solved, the solution from the previous time step can serve as a reasonable initial approximation to the solution, and the number of iterations necessary to converge to the solution will be significantly reduced.

This seems like a tremendous time saver, especially since the changes from one time to another would probably only affect a few cells surrounding the beam.

Unfortunately, the FFT-based technique has some drawbacks, including difficulty with internal boundaries.

Is there any way of implementing this "smart initial approximation" delta with conventional non-wavelet solvers like multigrid? Is this a common technique that I've just missed?

Sorry if this is too open-ended a question for this forum.


Every iterative solver -- Jacobi, SSOR, CG, etc -- starts with an initial approximation. One often just uses the zero vector, but there is nothing wrong with using the solution of the previous time step. In fact, extrapolating from previous time steps to the current one is an even better idea -- one the authors apparently missed!

For some iterative solvers, using a good initial guess can dramatically reduce the number of iterations necessary to reach a certain tolerance. This seems to be the case in particular for fixed-point iterations (Jacobi, SSOR in the list above), but it has a rather small effect on the number of iterations for Krylov space methods (CG in the list above).

| cite | improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.