Skip to content
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

Improvements to quasistatic model #26

Merged
merged 2 commits into from
Apr 8, 2021
Merged

Conversation

AngelFP
Copy link
Owner

@AngelFP AngelFP commented Apr 8, 2021

This PR contains several improvements to the quasistatic wakefield model. It greatly improves the stability, specially for strongly non-linear wakes where a sharp blowout peak is present. It also allows for plasma columns of finite width, different from that of the simulation box.

Changes

  • Plasma column can have a different radial extent than simulation box.

  • Set edge_order=2 when calculating nabla_a2.

  • Implement new method for computing psi and derivatives at plasma particles. It is now done by interpolating between neighboring values. This ensures that dr_psi=0 in a uniform plasma. The boundary conditions have also been reformulated. They are now more robust and allow for plasma columns of finite width.

  • The minimum value of psi is now limited to -0.9. Also, the amplitude of dxi_psi and b_theta_bar is now limited to 3. This improves the stability near the blowout peak.

  • Plasma particles leaving the simulation box are no longer removed.

  • Plasma particles with too much momentum will be reset to a rest state. This avoids having to remove highly relativistic particles and improves the stability near the blowout peak.

  • Fixed an inconsistency in the derivatives of particles crossing the axis during the Runge-Kutta push. The sign of the derivatives in now inverted.

  • Fixed a bug in update_gamma_and_pz, where a2 was (incorrectly) being divided by 2.

  • Implemented new method for computing b_theta at plasma particles. It is now also based on interpolation and it is more accurate than before.

  • Fixed a bug when returning a_i and b_i. The wrong value was being removed due to not taking the particle sorting into account.

Sample images:

Strong blowout:
image

Finite-width plasma column:
image

AngelFP added 2 commits April 8, 2021 18:36
* Plasma column can have a different radial extent than simulation box.

* Set `edge_order=2` when calculating `nabla_a2`.

* Implement new method for computing psi and derivatines at plasma
particles. It is now done by interpolating between neighboring values.
This ensures that `dr_psi=0` in a uniform plasma. The boundary
conditions have also been reformulated. They are now more robust and
allow for plasma columns of finite width.

* The minimum value of `psi` is now limited to -0.9. Also, the amplitude
of dxi_psi and b_theta_bar is now limited to 3. This improves the stability
near the blowout peak.

* Plasma particles leaving the simulation box are no longer removed.

* Plasma particles with too much momentum will be reset to a rest state.
This avoids having to remove highly relativistic particles and improves the
stability near the blouout peak.

* Fixed an inconsistency in the derivatives of particles crossing the axis
during the Runge-Kutta push.  The sign of the derivatives in now
inverted.

* Fixed a bug in `update_gamma_and_pz`, where a2 was (incorrectly)
being divided by 2.

* Implemented bew method for computing b_theta at plasma particles. It is now also based
on interpolation and it is more accurate than before.

* Fixed a bug when returning a_i and b_i. The wrong value was being removed due to not
taking the particle sorting into account.
@AngelFP AngelFP merged commit 995580f into laser_envelope Apr 8, 2021
@AngelFP AngelFP deleted the qs_solver_improvements branch April 8, 2021 18:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant