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

[WIP] Implement new gridless model #157

Open
wants to merge 142 commits into
base: dev
Choose a base branch
from
Open

Conversation

AngelFP
Copy link
Owner

@AngelFP AngelFP commented May 3, 2024

This PR implements a new gridless wakefield model that generalizes and extends the capabilities of the original model. The new features include:

  • Modeling of the plasma ion motion. Before, the ions were modeled analytically as a static background (there were no actual macroparticles for them in the simulation). Ion motion is essential for accurate simulations of high-intensity beams, such as those needed to collider applications.
  • Arbitrary radial density profiles. Users can now provide any function for the radial density profile. It is therefore no longer limited to uniform or parabolic shapes. Thus, the density parameter now accepts functions with two input parameters (f(z, r)), instead of just one (f(z)).
  • Support for any atomic/molecular species. Before, the plasma was just a generic "electron plasma with a motionless ion background". The new model allows the user to specify the mass and charge of the species.
  • Adaptive Grids (AGs). These are the equivalent of mesh refinement in the gridless model (which is a bit confusing I know, why are there grids in a gridless model??). These grids are used to interpolate the fields from the plasma into the particle beams. They are not needed by the wakefield model itself. The AGs dynamically adapt their size to the radial and longitudinal extent of the particle beams, therefore avoiding gathering the field in unnecessary locations. This massively improves performance for ultra-narrow beams (think, super-low emittance and high energy).
  • ...

AngelFP and others added 30 commits April 30, 2024 20:41
Potentially, this fixes a buf when `free_electrons_per_ion > `1` due to an inconsistency
between `q_species_i` and `q`.
Enable particle tracking of species added to wake-T
Enables passing a function for `auto_dt_bunch` in `PlasmaStage`
Increase a bit the tolerance to let the test pass.
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.

3 participants