Add a gyrokinetic dispersion relation solver to plasmapy.dispersion.numerical
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 711
- Forks
- 375
- Avg merge
- 3h 2m
- Merged PRs (30d)
- 8
Description
I am submitting two files as a proposed addition to PlasmaPy:
gyrokinetic_dispersion_.py
A normalized gyrokinetic dispersion relation solver that computes complex frequencies (including damping) as a function of k_perp*ρi, βi, and τ = Ti / Te. The solver uses scipy.optimize.root, and includes a continuation routine to compute spectra over a k_perp grid.
gyrokinetic_dispersion_tests.py
A pytest suite that tests: the complex residual, convergence of the single-point solver, correct behavior of the continuation solver, and validation of unphysical inputs.
The goal is to incorporate this as a new module in plasmapy.dispersion.numerical (naming and exact location can be adjusted to fit PlasmaPy conventions).
Best regards,
Vincent
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the attached gyrokinetic_dispersion_.py and gyrokinetic_dispersion_tests.py, then compare the proposed module and naming with existing PlasmaPy dispersion.numerical conventions. Run the pytest suite to understand the residual, solver convergence, continuation behavior, and invalid-input checks. Done means the solver and its tests are integrated in the appropriate module location.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100