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

Laser and others #851

Open
35 of 67 tasks
MaxThevenet opened this issue Jan 13, 2023 · 0 comments
Open
35 of 67 tasks

Laser and others #851

MaxThevenet opened this issue Jan 13, 2023 · 0 comments

Comments

@MaxThevenet
Copy link
Member

MaxThevenet commented Jan 13, 2023

From highest 1 to lowest 3 priority.

General

  • Read input plasma profile from openPMD file (f(r,z) and f(r) + f(z)). 2
  • MG solver for Poisson equation. 2
  • Documentation. 2
  • Two-fold symmetrisation for the fields. 2
  • Give measured ns/push in all simulations. 3
  • Model for beam loading. 3
  • MG with open BC. 3
  • Azimuthal decomposition for diagnostics? 3

New physics

  • Long-term plasma dynamics 1/2: clean BC, main options for fields and particles (periodic + reflective + specular reflection), in-situ diagnostics including plasma spectrum (maybe bilinear filter). 1
  • Long-term plasma dynamics 2/2: collisional ionization. 1
  • Support/test ionization injection. 1
  • Further field ionization models. 2
  • TBMT model, see Spin tracking fbpic/fbpic#672.
  • In-situ diagnostics for TBMT model 1.
  • Read beam from file also includes spin 2.

Laser

  • In-situ diagnostics for laser. 1
  • Make HiPACE++ laser comply with the laser envelope standard at https://github.com/openPMD/openPMD-standard/blob/upcoming-2.0.0/EXT_LaserEnvelope.md (now that it should be near-final). The biggest chunk may be to output the laser field as an array of complex numbers. Maybe the laser should be fully stored as a complex? 1
  • Remove laser during simulation. 1
  • Laser at an angle. 1
  • Laser open BC. 1
  • Laser ionization. 1
  • Separate laser box/boxes. 2

Performance

  • Optimisations on AMD? 2
  • Mixed precision. 2
  • Full AMR (including method to resolve sheath)? 3
  • Transverse parallelization? 3

Bug fix

  • Fix laser (ions). 1
  • Fix FillBoundary/SumBoundary. Should allow for simulations invariant in e.g. x. 1
  • Fix adaptive time step for proton beams. 3

CI

  • Fix CI test for collisions. 2
  • GPU CI tests performance. 2
  • CI SP. 2

Check if still relevant (maybe fixed?)

  • deposit_rho does not work for a single plasma species? 2
  • adaptive time step without beam segfaults? 2
  • check if single precision can cause issues with parsed inputs? 3
  • openPMD IO crashes if the total number of beam particles > max int (~2e9)? 3

To be considered if/when needed

  • FEL? ?
  • Different depos_order for beam and plasma. 2
  • Radiation module? 2
  • Some regions require high longitudinal resolution (positron acceleration with tiny emittance) while the rest of the simulation box works with low resolution. Sort of longitudinal MR could be done with refinement ratio r (=2^n) as follows: (1) outside of the MR patch, just do r sub-cycles with the plasma push, and (2) inside the MR patch do full slice calculations. This way, the plasma push would always use the same time step. Not sure about the handling of the beam, we should probably also refine it, either by having smaller slices in the patch (probably unpractical) or by using fine slices everywhere, just skipping some operations. 3
  • Option to deposit plasma current/density over a particle's trajectory, not just at 1 location. This is because, with high transverse resolutions, plasma electrons typically cross many cells (20) from 1 slice to the next, so the resulting fields are very noisy. 3

Done.

  • In-situ diagnostics for fields. 1
  • Option to interpolate from lev to lev-1 rather than depositing everywhere (because practical MR runs are unacceptably slow, hours per time step).
  • per-slice beam init.
  • Fix laser parallelization. This is one of the worst bug in the code atm.
  • better plasma init with MR.
  • Neutralize background MR.
  • Per-species Rho in the output.
  • Inputs used are printed in output.
  • Change default value for AMReX Arena growth factor.
  • fix max_time.
  • Fix collisions.
  • further MR (if all is not done yet).
  • fix adaptive time step bug.
  • don't use managed memory.
  • per-slice MPI.
  • make LF and explicit default.
  • Add capabilities to laser reader (different resolution, cylindrical grid).
  • external fields with parser.
  • Get rid of dependency of AmrCore?
  • run on AMD/get AMD time?
  • new plasma pusher.
  • start laser from openPMD.
  • Adaptive time step density.
  • fix laser (propagation).
  • Laser FFT solver on AMD.
  • reorder beam particles?
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

No branches or pull requests

1 participant