ppdyn

Plasma Particle Dynamics (PPDyn), a python code to simulate plasma particles using Molecular Dynamics Algorithm. Numba JIT compiler for Python has been implemented for faster performance. Detailed documentation can be found at https://ppdyn.readthedocs.io/.

https://github.com/sayanadhikari/ppdyn

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.7%) to scientific vocabulary

Keywords

molecular-dynamics molecular-dynamics-algorithm numba numba-jit-compiler parallel-computing plasma plasma-particle-dynamics python
Last synced: 4 months ago · JSON representation ·

Repository

Plasma Particle Dynamics (PPDyn), a python code to simulate plasma particles using Molecular Dynamics Algorithm. Numba JIT compiler for Python has been implemented for faster performance. Detailed documentation can be found at https://ppdyn.readthedocs.io/.

Basic Info
  • Host: GitHub
  • Owner: sayanadhikari
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 10.7 MB
Statistics
  • Stars: 1
  • Watchers: 2
  • Forks: 1
  • Open Issues: 7
  • Releases: 2
Topics
molecular-dynamics molecular-dynamics-algorithm numba numba-jit-compiler parallel-computing plasma plasma-particle-dynamics python
Created almost 5 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

PPDyn Example

PPDyn (Plasma Particle Dynamics)

CI build DOI Documentation Status PyPI Version Binder

A python code to simulate plasma particles using Molecular Dynamics Algorithm. Numba JIT compiler for Python has been implemented for faster performance.

A detailed documentation can be found at https://ppdyn.readthedocs.io/.

Example:

PPDyn Example <!--PPDyn Example--> <!--PPDyn Example-->

Problem

Contributors

Installation

Prerequisites

  1. GNU Make
  2. python3 or higher
  3. git

Procedure

Using Anaconda/Miniconda (Preferred)

First make a clone of the master branch using the following command shell git clone https://github.com/sayanadhikari/PPDyn.git Then enter inside the PPDyn directory shell cd PPDyn Now create a conda environment using the given environment.yml file shell conda env create -f environment.yml Activate the conda environment shell conda activate ppdyn Usage

Upon successful compilation, run the code using following command shell python ppdyn.py -i input.ini

Using PyPI

bash pip install PPDyn Usage

Download the input template to your working directory shell wget https://raw.githubusercontent.com/sayanadhikari/PPDyn/main/input.ini Now, either create a python script in your working directory or use your python console ```python from PPDyn import ppdyn from PPDyn.ppdplot import animate import time

start = time.time() ppdyn(input) end = time.time() print("Elapsed (after compilation) = %s"%(end - start)+" seconds") animate() ```

Using GNU Make

First make a clone of the master branch using the following command shell git clone https://github.com/sayanadhikari/PPDyn.git Then enter inside the PPDyn directory shell cd PPDyn Now complile and built the PPDyn code shell make all Usage

Upon successful compilation, run the code using following command shell ppdyn -i input.ini

Parameter Setup

Edit the input.ini and run the code again. The basic structure of input.ini is provided below, ```ini ; ; @file input.ini ; @brief PPDyn inputfile. ; ;scope = default

[simbox] Lx = 15.0 ; System length in X Ly = 15.0 ; System length in Y Lz = 20.0 ; System length in Z

[particles] N = 1000 ; Number of particles Vxmax = 1.0 ; Maximum velocity in X Vymax = 1.0 ; Maximum velocity in Y Vzmax = 1.0 ; Maximum velocity in Z Temp = 0.1 ; dist = True ; Use distribution: True mean = 1 ; if dist = True stdDev = 0.2 ; if dist = True

[screening] k = 0.0

[gravity] g_0= 0.0063; Reduced Earth's gravity

[cutoff radius] rc = 1e-5

[boundary] btype = mixed ; Type of boundary Options: periodic, reflecting, mixed

[time] tmax = 10.0 ; Final time dt = 0.010 ; time step size

[diagnostics] dumpPeriod = 5 ; Data dump period dumpData = True vtkData = True realTime = False

[directory] dataDir = data #put runname here

[options] parallelMode = True ;True ;set to false to disable parallel ```

Visualization

For visualization, user either can use the python scripts available inside scripts directory or can write their own. After successful run the data will be available under data directory. Two different data formats are available at present. The complete dataset will available under the name particle.hdf5. For vtk visualization users can use .vtu files inside data/vtkdata. Paraview can be used to animate particle dynamics very easily. A sample video can be found here.

Contributing

We welcome contributions to this project.

  1. Fork it.
  2. Create your feature branch (git checkout -b my-new-feature).
  3. Commit your changes (git commit -am 'Add some feature').
  4. Push to the branch (git push origin my-new-feature).
  5. Create new Pull Request.

License

Released under the MIT license.

Owner

  • Name: Sayan Adhikari
  • Login: sayanadhikari
  • Kind: user
  • Location: Oslo, Norway
  • Company: University of Oslo

Computational Plasma Physicist

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Adhikari"
  given-names: "Sayan"
  orcid: "https://orcid.org/0000-0002-9316-3292"
- family-names: "Mukherjee"
  given-names: "Rupak"
  orcid: "https://orcid.org/0000-0003-3955-7116"
- family-names: "Mishra"
  given-names: "Rinku"
  orcid: "https://orcid.org/0000-0002-2426-9894"
- family-names: "Paul"
  given-names: "Rupali"
  orcid: "https://orcid.org/0000-0002-4492-5553"
title: "PPDyn"
version: 1.0.0
doi: 10.5281/zenodo.1234
date-released: 2021-09-01
url: "https://github.com/sayanadhikari/PPDyn"

GitHub Events

Total
  • Watch event: 1
  • Push event: 1
  • Create event: 1
Last Year
  • Watch event: 1
  • Push event: 1
  • Create event: 1

Committers

Last synced: almost 2 years ago

All Time
  • Total Commits: 161
  • Total Committers: 4
  • Avg Commits per committer: 40.25
  • Development Distribution Score (DDS): 0.13
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Sayan Adhikari s****7@g****m 140
Rupak Mukherjee r****1@g****m 11
rupali-paul r****2@g****m 9
Rinku Mishra a****3@g****m 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 20
  • Total pull requests: 11
  • Average time to close issues: 26 days
  • Average time to close pull requests: 2 minutes
  • Total issue authors: 2
  • Total pull request authors: 2
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 11
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • sayanadhikari (16)
  • RupakMukherjee (4)
Pull Request Authors
  • sayanadhikari (10)
  • rinku-mishra (1)
Top Labels
Issue Labels
enhancement (15) good first issue (7) documentation (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 35 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 20
  • Total maintainers: 2
pypi.org: ppdyn

A python package to simulate plasma particles using Molecular Dynamics Algorithm.

  • Versions: 20
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 35 Last month
Rankings
Dependent packages count: 10.1%
Dependent repos count: 21.6%
Forks count: 22.6%
Average: 27.3%
Stargazers count: 31.9%
Downloads: 50.0%
Maintainers (2)
Last synced: 5 months ago

Dependencies

requirements.txt pypi
  • argparse *
  • h5py *
  • ini-parser *
  • matplotlib *
  • numba *
  • numpy *
  • pyevtk *
  • scipy *
setup.py pypi
  • dash *
  • h5py *
  • ini-parser *
  • matplotlib *
  • numba *
  • numpy *
  • pandas *
  • plotly *
  • scipy *
.github/workflows/main.yml actions
  • actions/checkout v2 composite
.github/workflows/make.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
docs/requirements.txt pypi
pyproject.toml pypi
environment.yml pypi
  • argparse *
  • h5py *
  • ini-parser *
  • matplotlib *
  • numba *
  • pyevtk *
  • scipy *
  • seaborn *
  • tasktimer *