polypy - Analysis Tools for Solid State Molecular Dynamics and Monte Carlo Trajectories

polypy - Analysis Tools for Solid State Molecular Dynamics and Monte Carlo Trajectories - Published in JOSS (2021)

https://github.com/symmy596/polypy

Science Score: 95.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: iop.org, rsc.org, joss.theoj.org, zenodo.org
  • Committers with academic emails
    2 of 2 committers (100.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

chemistry materials-science molecular-dynamics-simulation monte-carlo-simulation simulation solid-state-chemistry solid-state-physics

Scientific Fields

Mathematics Computer Science - 37% confidence
Last synced: 4 months ago · JSON representation

Repository

polypy - Analysis Tools for Solid State Molecular Dynamics and Monte Carlo Trajectories

Basic Info
  • Host: GitHub
  • Owner: symmy596
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 150 MB
Statistics
  • Stars: 11
  • Watchers: 2
  • Forks: 1
  • Open Issues: 1
  • Releases: 5
Topics
chemistry materials-science molecular-dynamics-simulation monte-carlo-simulation simulation solid-state-chemistry solid-state-physics
Created over 7 years ago · Last pushed almost 5 years ago
Metadata Files
Readme License

README.md

status PyPI version Build Status Build status Documentation Status Coverage Status DOI

This is the documentation for the open-source Python project - polypy, A library designed to facilitate the analysis of DL_POLY and DL_MONTE calculations. polypy is built on existing Python packages that those in the solid state physics/chemistry community should already be familiar with. It is hoped that this tool will bring some benfits to the solid state community and facilitate data analysis and the generation of publication ready plots (powered by Matplotlib.)

The main features include:

  1. Method to analyse the number denisty of a given species in one and two dimensions.
  • Generate a plot of the total number of species in bins perpendicular to a specified direction.
  • Generate a plot of the total number of species in cuboids parallel to a specified direction.
  1. Method calculate the charge density from the number density.
  • Convert number densities of all species in bins perpendicular to a specified direction into the charge density.
  1. Calculate the electric field and electrostatic potential from the charge density.
  • Solves the Poisson Boltzmann equation to convert the charge density into the electric field and the electrostatic potential.
  1. Calculate the diffusion coefficient for a given species from a mean squared displacement.
  • Carries out a mean squared displacement on an MD trajectory.
  • Calculates the diffusion coefficient.
  • Uses the density analysis and the diffusion coefficient to calculate the ionic conductivity.

(a) Mean squared displacement for calcuim fluoride. (b) System volume of calcium fluoride during a molecular dynamics simulation. (c) Cerium and oxygen number density at a grain boundary. (d) Electrostatic potential across a grain boundary of cerium oxide. (e) Center of mass of cerium (blue) and oxygen (orange) in a cerium oxide grain boundary in two dimensions.

The code has been developed to analyse DLPOLY and DLMONTE calculations however other codes can be incorporated if there is user demand. Other formats, such as pdb or xyz can be converted to DL_POLY format with codes such as atomsk and then analysed with polypy. Users are welcome to increase the file coverage by adding a reading function for a different format. This can be accomplished by adding to the read module which has a class for each unique file type that converts it to a polypy.read.trajectory object.

polypy was developed during a PhD project and as such the functionality focuses on the research questions encountered during that project, which we should clarify are wide ranging. Code contributions aimed at expanding the code to new of problems are encouraged.

polypy is free to use.

Usage

A full list of examples can be found in the examples folder of the git repository, these include both the Python scripts and jupyter notebook tutorials which combine the full theory with code examples. It should be noted however that DLPOLY HISTORY files and DLMONTE ARCHIVE files are sizable (1-5GB) and as such only short example trajectories are included in this repository. Notebooks are provided here to illustrate the theory but are not practicle.

Installation

polypy is a Python 3 package and requires a typical scientific Python stack. Use of the tutorials requires Anaconda/Jupyter to be installed.

To build from source:

pip install -r requirements.txt

python setup.py build

python setup.py install

Or alternatively install with pip

pip install polypy

Using conda,

conda skeleton pypi polypy

conda build polypy

conda install --use-local polypy

Tests

Tests can be run by typing:

python setup.py test

in the root directory.

Documentation

To build the documentation from scratch

cd docs
make html

An online version of the documentation can be found here. The documentation contains an extensive explanation of the underlying theory, function documentation and tutorials.

License

polypy is made available under the MIT License.

Detailed requirements

polypy is compatible with Python 3.5+ and relies on a number of open source Python packages, specifically:

  • matplotlib
  • numpy
  • scipy
  • coveralls
  • coverage
  • seaborn
  • pandas
  • jupyter
  • nbsphinx
  • jupyter-sphinx==0.2.4
  • sphinxrtdtheme

Contributing

Contact

If you have questions regarding any aspect of the software then please get in touch with the developer Adam Symington via email - ars44@bath.ac.uk. Alternatively you can create an issue on the Issue Tracker.

Bugs

There may be bugs. If you think you've caught one, please report it on the Issue Tracker. This is also the place to propose new ideas for features or ask questions about the design of polypy. Poor documentation is considered a bug so feel free to request improvements.

Code contributions

We welcome help in improving and extending the package. This is managed through Github pull requests; for external contributions we prefer the "fork and pull" workflow while core developers use branches in the main repository:

  1. First open an Issue to discuss the proposed contribution. This discussion might include how the changes fit polypy's scope and a general technical approach.
  2. Make your own project fork and implement the changes there. Please keep your code style compliant with PEP8.
  3. Open a pull request to merge the changes into the main project. A more detailed discussion can take place there before the changes are accepted.

For further information please contact Adam Symington, ars44@bath.ac.uk

Future

Listed below are a series of useful additions that we would like to make to the codebase. Users are encouraged to fork the repository and work on any of these problems. Indeed, if functionality is not listed below you are more than welcome to add it.

  • RDF
  • Diagonal slices
  • Regional MSDs in a cube

Author

  • Adam R.Symington

Research

Acknowledgements

This package was written during a PhD project that was funded by AWE and EPSRC (EP/R010366/1). The polypy software package was developed to analyse data generated using the Balena HPC facility at the University of Bath and the ARCHER UK National Supercomputing Service (http://www.archer.ac.uk) via our membership of the UK's HEC Ma-terials Chemistry Consortium funded by EPSRC (EP/L000202).The author would like to thank Andrew R. McCluskey, Benjamin Morgan, Marco Molinari, James Grant and Stephen C. Parker for their help and guidance during this PhD project.

Owner

  • Name: Adam Symington
  • Login: symmy596
  • Kind: user
  • Location: Planet Earth
  • Company: Fraym

Data Science Lead at Fraym. A software developer who does data science. Cartographer and data vis enthusiast

JOSS Publication

polypy - Analysis Tools for Solid State Molecular Dynamics and Monte Carlo Trajectories
Published
March 04, 2021
Volume 6, Issue 59, Page 2824
Authors
Adam R. Symington ORCID
Department of Chemistry, University of Bath
Editor
Richard Gowers ORCID
Tags
Chemistry Physics Materials Science Solid State Chemistry Simulation Molecular Dynamics Monte Carlo

GitHub Events

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

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 340
  • Total Committers: 2
  • Avg Commits per committer: 170.0
  • Development Distribution Score (DDS): 0.003
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
symmy596 a****4@b****k 339
Daniel S. Katz d****z@i****g 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 5
  • Total pull requests: 1
  • Average time to close issues: about 1 year
  • Average time to close pull requests: 7 minutes
  • Total issue authors: 3
  • Total pull request authors: 1
  • Average comments per issue: 0.2
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • 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
  • symmy596 (3)
  • Vaibhav51093 (1)
  • AliAliAl (1)
Pull Request Authors
  • danielskatz (1)
Top Labels
Issue Labels
good first issue (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 24 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 10
  • Total maintainers: 1
pypi.org: polypy

Molecular Dynamics analysis

  • Versions: 10
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 24 Last month
Rankings
Dependent packages count: 10.0%
Stargazers count: 16.5%
Average: 18.3%
Forks count: 19.1%
Dependent repos count: 21.7%
Downloads: 24.2%
Maintainers (1)
Last synced: 4 months ago

Dependencies

requirements.txt pypi
  • coverage *
  • coveralls *
  • jupyter *
  • jupyter-sphinx ==0.2.4
  • matplotlib *
  • nbsphinx *
  • numpy *
  • pandas *
  • scipy *
  • seaborn *
  • sphinx_rtd_theme *
setup.py pypi
  • numpy *
  • scipy *