{"action":"created","issue":{"url":"https://api.github.com/repos/PlasmaPy/PlasmaPy/issues/7","repository_url":"https://api.github.com/repos/PlasmaPy/PlasmaPy","labels_url":"https://api.github.com/repos/PlasmaPy/PlasmaPy/issues/7/labels{/name}","comments_url":"https://api.github.com/repos/PlasmaPy/PlasmaPy/issues/7/comments","events_url":"https://api.github.com/repos/PlasmaPy/PlasmaPy/issues/7/events","html_url":"https://github.com/PlasmaPy/PlasmaPy/issues/7","id":118938001,"number":7,"title":"Implement a basic 2D MHD code","user":{"login":"namurphy","id":8931994,"avatar_url":"https://avatars3.githubusercontent.com/u/8931994?v=3","gravatar_id":"","url":"https://api.github.com/users/namurphy","html_url":"https://github.com/namurphy","followers_url":"https://api.github.com/users/namurphy/followers","following_url":"https://api.github.com/users/namurphy/following{/other_user}","gists_url":"https://api.github.com/users/namurphy/gists{/gist_id}","starred_url":"https://api.github.com/users/namurphy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/namurphy/subscriptions","organizations_url":"https://api.github.com/users/namurphy/orgs","repos_url":"https://api.github.com/users/namurphy/repos","events_url":"https://api.github.com/users/namurphy/events{/privacy}","received_events_url":"https://api.github.com/users/namurphy/received_events","type":"User","site_admin":false},"labels":[{"id":291731526,"url":"https://api.github.com/repos/PlasmaPy/PlasmaPy/labels/Effort:%20high","name":"Effort: high","color":"fef2c0","default":false},{"id":291165349,"url":"https://api.github.com/repos/PlasmaPy/PlasmaPy/labels/Enhancement","name":"Enhancement","color":"84b6eb","default":false}],"state":"open","locked":false,"assignee":{"login":"SolarDrew","id":1914702,"avatar_url":"https://avatars1.githubusercontent.com/u/1914702?v=3","gravatar_id":"","url":"https://api.github.com/users/SolarDrew","html_url":"https://github.com/SolarDrew","followers_url":"https://api.github.com/users/SolarDrew/followers","following_url":"https://api.github.com/users/SolarDrew/following{/other_user}","gists_url":"https://api.github.com/users/SolarDrew/gists{/gist_id}","starred_url":"https://api.github.com/users/SolarDrew/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SolarDrew/subscriptions","organizations_url":"https://api.github.com/users/SolarDrew/orgs","repos_url":"https://api.github.com/users/SolarDrew/repos","events_url":"https://api.github.com/users/SolarDrew/events{/privacy}","received_events_url":"https://api.github.com/users/SolarDrew/received_events","type":"User","site_admin":false},"assignees":[{"login":"SolarDrew","id":1914702,"avatar_url":"https://avatars1.githubusercontent.com/u/1914702?v=3","gravatar_id":"","url":"https://api.github.com/users/SolarDrew","html_url":"https://github.com/SolarDrew","followers_url":"https://api.github.com/users/SolarDrew/followers","following_url":"https://api.github.com/users/SolarDrew/following{/other_user}","gists_url":"https://api.github.com/users/SolarDrew/gists{/gist_id}","starred_url":"https://api.github.com/users/SolarDrew/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SolarDrew/subscriptions","organizations_url":"https://api.github.com/users/SolarDrew/orgs","repos_url":"https://api.github.com/users/SolarDrew/repos","events_url":"https://api.github.com/users/SolarDrew/events{/privacy}","received_events_url":"https://api.github.com/users/SolarDrew/received_events","type":"User","site_admin":false}],"milestone":null,"comments":1,"created_at":"2015-11-25T22:56:12Z","updated_at":"2017-05-15T21:50:12Z","closed_at":null,"body":"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:\n- The code should be easy to set up and use so that it can be used for educational purposes\n- The code should be extremely well documented, with unit tests and test cases\n- The output should be in a standard format, probably HDF5\n- Following best practices for scientific computing, the code should work before it is optimized. Possibilities for optimization include:\n  - Using numpy arrays and cython/numba\n  - Developing it in Fortran or C/C++\n- When figuring out how to develop this, we should keep in mind possibilities for longer-term development\n- Related possibilities for development include\n  - A basic 2D particle-in-cell code for kinetic simulations\n  - Reduced MHD simulation capabilities\n"},"comment":{"url":"https://api.github.com/repos/PlasmaPy/PlasmaPy/issues/comments/301615167","html_url":"https://github.com/PlasmaPy/PlasmaPy/issues/7#issuecomment-301615167","issue_url":"https://api.github.com/repos/PlasmaPy/PlasmaPy/issues/7","id":301615167,"user":{"login":"namurphy","id":8931994,"avatar_url":"https://avatars3.githubusercontent.com/u/8931994?v=3","gravatar_id":"","url":"https://api.github.com/users/namurphy","html_url":"https://github.com/namurphy","followers_url":"https://api.github.com/users/namurphy/followers","following_url":"https://api.github.com/users/namurphy/following{/other_user}","gists_url":"https://api.github.com/users/namurphy/gists{/gist_id}","starred_url":"https://api.github.com/users/namurphy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/namurphy/subscriptions","organizations_url":"https://api.github.com/users/namurphy/orgs","repos_url":"https://api.github.com/users/namurphy/repos","events_url":"https://api.github.com/users/namurphy/events{/privacy}","received_events_url":"https://api.github.com/users/namurphy/received_events","type":"User","site_admin":false},"created_at":"2017-05-15T21:50:12Z","updated_at":"2017-05-15T21:50:12Z","body":"Thank you!  In terms of the interface, I've been thinking a lot a lot about [Dedalus](http://dedalus-project.org/) 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](https://bitbucket.org/dedalus-project/dedalus/src/90d8b271bb66e24a32ca9b4b7b425d77b8813927/examples/ivp/3d_rayleigh_benard/rayleigh_benard.py?at=default&fileviewer=file-view-default) 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."}}
{"actor":{"display_login":"namurphy"}}