henry2004y / henry2004y/TestParticle.jl

Thoughts about particle pusher

Open
#473 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Julia
Stars
22
Forks
5
Avg merge
21h 17m
Merged PRs (30d)
2

Description

As I am thinking about the further development of this package with a PIC model in mind, making the particle pusher part a standalone module is intriguing.
- For TestParticle.jl and PIC.jl, the particle pusher methods are shared. The difference is that in TestParticle.jl there would be no feedback from particles on the field, whereas in PIC.jl there is an extra field solver that needs particle information. Being it explicit or implicit, a generic particle pusher is always needed.
- Instead of creating a new package, we can simply come up with clean APIs from TestParticle.jl and utilize them directly in the PIC model.
- In the PIC model, by turning off the field update, we essentially fall back to the test particle model. Note that FLEKS is also using a Boris pusher with adaptive time step support. However, the adaptive time step is controlled by the maximum thermal velocity.

Contributor guide

Open the contributing guide

Research direction

The issue names TestParticle.jl and a future PIC.jl model but no files or tests. Start by reviewing the existing particle-pusher methods and their APIs in TestParticle.jl, including Boris and adaptive time-step support. Done would require an agreed generic interface that can be reused by PIC.jl, with the field update optionally disabled for test-particle behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
hpc
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.