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 4 DOI reference(s) in README
  • Academic publication links
    Links to: nature.com
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.5%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: caneparesearch
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage: https://kmcpy.readthedocs.io
  • Size: 43.6 MB
Statistics
  • Stars: 25
  • Watchers: 2
  • Forks: 6
  • Open Issues: 5
  • Releases: 7
Created over 3 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

Logo

GitHub release Documentation Status CI Status PyPI Downloads Requires Python 3.11+ Paper

kMCpy is an open-source Python package for studying ion diffusion using the kinetic Monte Carlo (kMC) technique. It offers a comprehensive Python-based approach to compute kinetic properties, suitable for research, development, and prediction of new functional materials.

Key features include a local cluster expansion model toolkit, a rejection-free kinetic Monte Carlo (rf-kMC) solver, and tools to extract ion transport properties like diffusivities and conductivities. The local cluster expansion model toolkit facilitates model fitting from ab initio or empirical barrier calculations. Post-training, the local cluster expansion model can compute migration barriers in crystalline materials within the transition state theory.

Advantages of using kMCpy:

  1. Written entirely in Python with a modular design, promoting developer-centricity and easy feature addition.
  2. Cross-platform compatibility, supporting Windows, macOS, and Linux.
  3. Performance-optimized kMC routines using Numba, resulting in significant speed improvements.

This code was recently employed to investigate the transport properties of Na-ion in NaSiCON solid electrolyte. In this study, rf-kMC was used to model Na-ion conductivity in NaSiCON, leading to the discovery that maximum conductivity is achieved at Na = 3.4.

Installation

Method 1: Install using pip

You can quickly install the latest version of kMCpy through PyPI to your environment.

shell pip install kmcpy

Method 2: Install from source using pip

You can install from the source code using pip. Assuming you have cloned the repository, navigate to the root directory of the kMCpy repository and run: shell pip install . For development, you can clone the repository and install it in editable mode using

shell pip install -e ".[dev]" This allows you to modify the source code and see changes immediately without reinstalling.

kMCpy also has a basic graphical user interface (GUI). It is based onwxpython. You might need to install GTK for wxpython. You can install other additional dependencies for the GUI by running: shell pip install -e ".[gui]"

Method 3: Install from source using UV

It is highly recommended to install kMCpy from source using UV and use it with virtual environment. shell uv sync For development, you can install it in editable mode using: shell uv sync --extra dev uv pip install -e . # this makes the installation using the editable mode For GUI, you can install the additional dependencies by running: shell uv sync --extra gui

⚠️ Warning for Windows users:
You need to install Microsoft C++ build tools to compile pymatgen.

Build documentation

You can access the documentation at https://kmcpy.readthedocs.io/. However, if you want to build the documentation locally, you can do so by following these steps: shell uv sync --extra doc python scripts/build_doc.py

Run kMCpy

API usage

You can run kMC through API. You can find more details in the examples directory. You can see the examples in the examples directory for how to use kMCpy in your own scripts. The examples cover various aspects of kMCpy, including how to build a model and use it for simulations.

Command line usage

A wrapper is provided if you want to run kMCpy through command line only. There is a wrapper script run_kmc that allows you to run kMCpy from the command line. You can use it to run a kMCpy simulation with a JSON/YAML input file. The input file should contain the necessary parameters for the simulation. It should be noted that you need to have all the input files that needed to run kMC. shell run_kmc input.json

To print out all arguments, you can run: shell run_kmc --help

GUI usage

You can start the GUI from command line. The basic usage is as follows: shell start_kmcpy_gui Then a window will pop up, allowing you to select the input file and run the simulation.

Citation

If you use kMCpy in your research, please cite it as follows:

bibtex @article{deng2022fundamental, title={Fundamental investigations on the sodium-ion transport properties of mixed polyanion solid-state battery electrolytes}, author={Deng, Zeyu and Mishra, Tara P and Mahayoni, Eunike and Ma, Qianli and Tieu, Aaron Jue Kang and Guillon, Olivier and Chotard, Jean-No{\"e}l and Seznec, Vincent and Cheetham, Anthony K and Masquelier, Christian and Gautam, Gopalakrishnan Sai and Canepa, Pieremanuele}, journal={Nature Communications}, volume={13}, number={1}, pages={1--14}, year={2022}, publisher={Nature Publishing Group} } @article{deng2023kmcpy, title = {kMCpy: A python package to simulate transport properties in solids with kinetic Monte Carlo}, journal = {Computational Materials Science}, volume = {229}, pages = {112394}, year = {2023}, issn = {0927-0256}, doi = {https://doi.org/10.1016/j.commatsci.2023.112394}, author = {Zeyu Deng and Tara P. Mishra and Weihang Xie and Daanyal Ahmed Saeed and Gopalakrishnan Sai Gautam and Pieremanuele Canepa}, }

Owner

  • Name: Caneparesearch
  • Login: caneparesearch
  • Kind: organization
  • Location: Singapore

Citation (CITATION.cff)

cff-version: 1.2.0
message: If you use this work, please cite the following publications.
title: kMCpy
version: v0.2.3 # replace with whatever version you use
date-released: '2023-10-05'
authors:
- family-names: Deng
  given-names: Zeyu
- family-names: Mishra
  given-names: Tara P.
- family-names: Xie
  given-names: Weihang
- family-names: Saeed
  given-names: Daanyal Ahmed
- family-names: Gautam
  given-names: Gopalakrishnan Sai
- family-names: Canepa
  given-names: Pieremanuele

references:
- type: article
  title: 'kMCpy: A python package to simulate transport properties in solids with
    kinetic Monte Carlo'
  authors:
  - family-names: Deng
    given-names: Zeyu
  - family-names: Mishra
    given-names: Tara P.
  - family-names: Xie
    given-names: Weihang
  - family-names: Saeed
    given-names: Daanyal Ahmed
  - family-names: Gautam
    given-names: Gopalakrishnan Sai
  - family-names: Canepa
    given-names: Pieremanuele
  journal: Computational Materials Science
  volume: '229'
  pages: '112394'
  year: '2023'
  doi: 10.1016/j.commatsci.2023.112394

- type: article
  title: Fundamental investigations on the sodium-ion transport properties of 
    mixed polyanion solid-state battery electrolytes
  authors:
  - family-names: Deng
    given-names: Zeyu
  - family-names: Mishra
    given-names: Tara P.
  - family-names: Mahayoni
    given-names: Eunike
  - family-names: Ma
    given-names: Qianli
  - family-names: Tieu
    given-names: Aaron Jue Kang
  - family-names: Guillon
    given-names: Olivier
  - family-names: Chotard
    given-names: Jean-Noël
  - family-names: Seznec
    given-names: Vincent
  - family-names: Cheetham
    given-names: Anthony K.
  - family-names: Masquelier
    given-names: Christian
  journal: Nature Communications
  volume: '13'
  issue: '1'
  pages: '4470'
  year: '2022'
  publisher: Nature Publishing Group
  doi: 10.1038/s41467-022-32190-7

GitHub Events

Total
  • Create event: 27
  • Release event: 8
  • Issues event: 8
  • Watch event: 14
  • Delete event: 21
  • Issue comment event: 4
  • Push event: 114
  • Pull request review comment event: 11
  • Pull request review event: 24
  • Pull request event: 32
  • Fork event: 1
Last Year
  • Create event: 27
  • Release event: 8
  • Issues event: 8
  • Watch event: 14
  • Delete event: 21
  • Issue comment event: 4
  • Push event: 114
  • Pull request review comment event: 11
  • Pull request review event: 24
  • Pull request event: 32
  • Fork event: 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 8
  • Total pull requests: 20
  • Average time to close issues: about 1 month
  • Average time to close pull requests: about 2 hours
  • Total issue authors: 3
  • Total pull request authors: 2
  • Average comments per issue: 0.38
  • Average comments per pull request: 0.0
  • Merged pull requests: 14
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 6
  • Pull requests: 20
  • Average time to close issues: about 1 month
  • Average time to close pull requests: about 2 hours
  • Issue authors: 2
  • Pull request authors: 2
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.0
  • Merged pull requests: 14
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • dengzeyu (5)
  • CalvinZQCui (2)
  • TomatoTurtlez (1)
Pull Request Authors
  • dengzeyu (16)
  • SKS94 (3)
  • dependabot[bot] (1)
Top Labels
Issue Labels
enhancement (3) documentation (1)
Pull Request Labels
dependencies (1) python (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 71 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 12
  • Total maintainers: 1
pypi.org: kmcpy

Kinetic Monte Carlo Simulation using Python (kMCpy)

  • Homepage: https://github.com/caneparesearch/kmcpy
  • Documentation: https://kmcpy.readthedocs.io/
  • License: MIT License Copyright (c) 2021 Caneparesearch and DENG Group Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  • Latest release: 0.2.3
    published 6 months ago
  • Versions: 12
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 71 Last month
Rankings
Dependent packages count: 9.0%
Stargazers count: 14.5%
Forks count: 14.8%
Average: 22.2%
Dependent repos count: 50.5%
Maintainers (1)
Last synced: 6 months ago

Dependencies

docs/doc_requirements.txt pypi
  • Jinja2 <3.1
  • ase *
  • docutils *
  • glob2 *
  • h5py *
  • imageio *
  • ipywidgets *
  • joblib *
  • matplotlib *
  • myst_parser *
  • nbsphinx *
  • numba *
  • numpy *
  • pandas *
  • psutil *
  • pymatgen *
  • pytest *
  • scikit-learn *
  • scipy *
  • sphinx ==3.1.2
  • sphinx-autodoc-typehints *
  • sphinx_rtd_theme *
  • tables *
  • tqdm *
requirement.txt pypi
  • glob2 *
  • joblib >1.0.1
  • numba >0.53.1
  • numpy ==1.22.1
  • pandas >1.2.4
  • pymatgen ==2021.3.4
  • pytest *
  • scikit-learn >0.24.1
  • scipy >1.6.2
  • tables >3.6.1
requirement_gui.txt pypi
  • glob2 *
  • gooey *
  • joblib >1.0.1
  • numba >0.53.1
  • numpy <1.22.2
  • pandas >1.2.4
  • pymatgen ==2021.3.4
  • pytest *
  • scikit-learn >0.24.1
  • scipy >1.6.2
  • tables >3.6.1
setup.py pypi
  • joblib *
  • numba *
  • numpy *
  • pandas *
  • pymatgen *
  • scipy *
  • sklearn *
.github/workflows/test_ubuntu.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite