-
Notifications
You must be signed in to change notification settings - Fork 55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
suppress runaway particle instability #71
Comments
Alec, check the new relativistic and non-relativistic movers in the SVN. |
I looked at mover_PC() in the svn code. In detail: mover_PC is located inparticles/Particles3D.cpp /* mover with a Predictor-Corrector scheme / Alec On Sat, Jun 07, 2014 at 06:07:27AM -0700, SyA wrote:
|
Hi, Have this problem been solved in master branch? Any suggestion? |
This problem could be addressed in the following three ways:
mover_PC_AoS()
method this could be accomplished by modifying the definition ofget_safe_cell_and_weights()
, replacing code that maps cell values into the guarded grid such as with code that maps position values (the ones used to compute the cell indices and node weights) into the guarded subdomain:Why fast-moving particles is unstable in the current mover.
When a particle moving more than about one mesh cell per cycle crosses from one MPI subdomain to another, it is moved using bilinearly extrapolated field values to avoid the need for particle communication between iterations of the implicit particle mover. This is unstable. The velocity of a sufficiently fast particle is almost certain to blow up, resulting in it becoming a runaway particle.
The presence of even a small number of runaway particles will tend to cause the entire simulation to blow up. To understand why, consider how a fast particle contributes to the computed moments. Rather than being spread over the path of motion of the particle, the computed contribution of the current density of a fast particle is concentrated at the sequence of its positions at consecutive time steps (a "stroboscope" effect). The presence of fast-moving particles thus creates bumps in the computed moments, destroying their smoothness. Lack of smoothness in the computed moments leads to lack of smoothness in the computed fields, leading to greater wildness in the extrapolated field values used to push fast particles crossing MPI subdomain boundaries, leading to further blow-up of the velocities of fast particles.
The algorithm resolves well the physics of particles moving less than one mesh cell per time step, but resolves the physics of a particle moving more than one mesh cell per time step very poorly, for the same type of reason that integrating a particle shape function by summing equally-spaced samples is is accurate if the sample points resolve the width of the shape function and is unpredictable and inaccurate otherwise. Summing equally spaced samples is a spectrally accurate integration rule, which for a bandwidth-limited periodic function becomes spectacularly accurate as the sampling interval finely resolves the highest frequency and becomes spectacularly inaccurate as the sampling interval coarsely underresolves the highest frequency.
The result is that the existence of even a few run-away particles will eventually cause the entire simulation to blow up.
The text was updated successfully, but these errors were encountered: