Skip to content

Implement a basic 2D MHD code #7

Closed as not planned
Closed as not planned

Description

@namurphy

One possibility for future development in PlasmaPy is adding basic simulation capabilities. At first, the codes can be simple (e.g., 2D resistive MHD on a rectangular grid using finite differences and a straightforward time-advance). Later, the project could include more sophisticated options and numerical methods (finite element, spectral element, finite volume, etc.). Some thoughts on 2D MHD simulation capabilities are:

  • The code should be easy to set up and use so that it can be used for educational purposes
  • The code should be extremely well documented, with unit tests and test cases
  • The output should be in a standard format, probably HDF5
  • Following best practices for scientific computing, the code should work before it is optimized. Possibilities for optimization include:
    • Using numpy arrays and cython/numba
    • Developing it in Fortran or C/C++
  • When figuring out how to develop this, we should keep in mind possibilities for longer-term development
  • Related possibilities for development include
    • A basic 2D particle-in-cell code for kinetic simulations
    • Reduced MHD simulation capabilities

Activity

  1. added
    effort: highRequiring perhaps ∼1–2 weeks. Can this be split up into multiple smaller/focused issues?
    on Nov 25, 2015
  2. self-assigned this
    on May 15, 2017
  3. SolarDrew commented on May 15, 2017

    @SolarDrew
    Contributor

    I have a lot of previous work I can put towards this, which I'm porting onto my fork in bits when I have time, so I've assigned myself to this for now.

  4. namurphy commented on May 15, 2017

    @namurphy
    MemberAuthor

    Thank you! In terms of the interface, I've been thinking a lot a lot about Dedalus which is a flexible spectral code in Python/Cython and seems to be really intuitive. I'm really impressed with their problem file for 3D Rayleigh-Benard convection which is really readable and only 147 lines long including comments and docstrings! Likewise, one of the things I would really like for us is to have the interface be as readable, understandable, and intuitive as possible.

  5. added
    effort: very highRequiring ≳2 weeks. Can this be split up into multiple smaller/focused issues?
    and removed
    effort: highRequiring perhaps ∼1–2 weeks. Can this be split up into multiple smaller/focused issues?
    on Sep 19, 2017
  6. lemmatum commented on Apr 18, 2018

    @lemmatum
    Contributor

    @namurphy note that "kinetic" and "PIC" are actually two different simulation methods (though I think they can sometimes be brought together to bear upon a problem).
    Somewhat useful wikipedia page

  7. lemmatum commented on Apr 18, 2018

    @lemmatum
    Contributor

    Also perhaps we can take some inspiration from and compete with FLASH

  8. github-actions commented on Jul 6, 2024

    @github-actions

    This issue will be closed in 90 days due to five years of inactivity unless the stale label or comment is removed.

  9. added
    StaleDormant issues & PRs which will be automatically closed if the label is not removed.
    on Jul 6, 2024
  10. github-actions commented on Oct 5, 2024

    @github-actions

    This issue was closed because it has had no activity for five years.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

StaleDormant issues & PRs which will be automatically closed if the label is not removed.effort: very highRequiring ≳2 weeks. Can this be split up into multiple smaller/focused issues?plasmapy.formularyRelated to the plasmapy.formulary subpackage

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions