[![Documentation Status](https://readthedocs.org/projects/gemdat/badge/?version=latest)](https://gemdat.readthedocs.io/en/latest/?badge=latest)
[![Tests for GEMDAT](https://github.com/GEMDAT-repos/GEMDAT/actions/workflows/tests.yaml/badge.svg)](https://github.com/GEMDAT-repos/GEMDAT/actions/workflows/tests.yaml)
![Coverage](https://gist.githubusercontent.com/v1kko/330d6e711de3420b7503d54756dc011c/raw/covbadge.svg)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/gemdat)](https://pypi.org/project/gemdat/)
[![PyPI](https://img.shields.io/pypi/v/gemdat.svg?style=flat)](https://pypi.org/project/gemdat/)
![GEMDAT banner](https://raw.githubusercontent.com/GEMDAT-repos/GEMDAT/main/src/gemdat/data/logo_on_white.png#gh-light-mode-only)
![GEMDAT banner](https://raw.githubusercontent.com/GEMDAT-repos/GEMDAT/main/src/gemdat/data/logo_on_black.png#gh-dark-mode-only)
# GEMDAT
Gemdat is a Python library for the analysis of diffusion in solid-state electrolytes from Molecular Dynamics simulations. Gemdat is built on top of [Pymatgen](https://pymatgen.org/), making it straightforward to integrate it into your Pymatgen-based workflows.
With Gemdat, you can:
- Explore your MD simulation via an easy-to-use Python API
- Load and analyze trajectories from VASP simulation data
- Find jumps and transitions between sites
- Effortlessly calculate tracer and jump diffusivity
- Characterize and visualize diffusion pathways
- Plot radial distribution functions
To install:
```console
pip install gemdat
```
The source code is available from [Github](https://github.com/GEMDAT-repos/GEMDAT).
Suggestions, improvements, and edits are most welcome.
## Usage
The following snippet to analyze the diffusion trajectory from VASP data.
```python
from gemdat import Trajectory
trajectory = Trajectory.from_vasprun('../example/vasprun.xml')
trajectory.plot_displacement_per_element()
diff_trajectory = trajectory.filter('Li')
diff_trajectory.plot_displacement_per_atom()
diff_trajectory.plot_displacement_histogram()
diff_trajectory.plot_frequency_vs_occurence()
diff_trajectory.plot_vibrational_amplitudes()
```
Characterize transitions and jumps between sites:
```python
from gemdat.io import load_known_material
sites = load_known_material('argyrodite', supercell=(2, 1, 1))
transitions = trajectory.transitions_between_sites(
sites=sites,
floating_specie='Li',
)
jumps = transitions.jumps()
jumps.plot_jumps_vs_distance()
jumps.plot_jumps_vs_time()
jumps.plot_collective_jumps()
jumps.plot_jumps_3d()
jumps.jump_diffusivity(dimensions=3)
```
To calculate different metrics, such as tracer diffusivity:
```python
from gemdat import SimulationMetrics
metrics = SimulationMetrics(diff_trajectory)
metrics.tracer_diffusivity(dimensions=3)
metrics.haven_ratio(dimensions=3)
metrics.tracer_conductivity(dimensions=3)
metrics.particle_density()
metrics.vibration_amplitude()
```
## Development
Check out our [Contributing Guidelines](CONTRIBUTING.md#Getting-started-with-development) to get started with development.
## References
The code in this repository is based on [Matlab code to analyse Molecular Dynamics simulations](https://bitbucket.org/niekdeklerk/md-analysis-with-matlab/src/master/).
For background information on how some of the properties are calculated, check out the accompanying paper:
- Niek J.J. de Klerk, Eveline van der Maas and Marnix Wagemaker, ACS Applied Energy Materials, (2018), doi: [10.1021/acsaem.8b00457](https://doi.org/10.1021/acsaem.8b00457)
Raw data
{
"_id": null,
"home_page": null,
"name": "GEMDAT",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "analysis, molecular dynamics, plastic crystals, batteries",
"author": null,
"author_email": "Victor Azizi <v.azizi@esciencecenter.nl>, Stef Smeets <s.smeets@esciencecenter.nl>",
"download_url": "https://files.pythonhosted.org/packages/8e/87/4587d40500e52ab77c91e167c7145240fafef78ad739103ac004701d7802/GEMDAT-1.2.1.tar.gz",
"platform": null,
"description": "[![Documentation Status](https://readthedocs.org/projects/gemdat/badge/?version=latest)](https://gemdat.readthedocs.io/en/latest/?badge=latest)\n[![Tests for GEMDAT](https://github.com/GEMDAT-repos/GEMDAT/actions/workflows/tests.yaml/badge.svg)](https://github.com/GEMDAT-repos/GEMDAT/actions/workflows/tests.yaml)\n![Coverage](https://gist.githubusercontent.com/v1kko/330d6e711de3420b7503d54756dc011c/raw/covbadge.svg)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/gemdat)](https://pypi.org/project/gemdat/)\n[![PyPI](https://img.shields.io/pypi/v/gemdat.svg?style=flat)](https://pypi.org/project/gemdat/)\n\n![GEMDAT banner](https://raw.githubusercontent.com/GEMDAT-repos/GEMDAT/main/src/gemdat/data/logo_on_white.png#gh-light-mode-only)\n![GEMDAT banner](https://raw.githubusercontent.com/GEMDAT-repos/GEMDAT/main/src/gemdat/data/logo_on_black.png#gh-dark-mode-only)\n\n# GEMDAT\n\nGemdat is a Python library for the analysis of diffusion in solid-state electrolytes from Molecular Dynamics simulations. Gemdat is built on top of [Pymatgen](https://pymatgen.org/), making it straightforward to integrate it into your Pymatgen-based workflows.\n\nWith Gemdat, you can:\n\n- Explore your MD simulation via an easy-to-use Python API\n- Load and analyze trajectories from VASP simulation data\n- Find jumps and transitions between sites\n- Effortlessly calculate tracer and jump diffusivity\n- Characterize and visualize diffusion pathways\n- Plot radial distribution functions\n\nTo install:\n\n```console\npip install gemdat\n```\n\nThe source code is available from [Github](https://github.com/GEMDAT-repos/GEMDAT).\n\nSuggestions, improvements, and edits are most welcome.\n\n## Usage\n\nThe following snippet to analyze the diffusion trajectory from VASP data.\n\n```python\nfrom gemdat import Trajectory\n\ntrajectory = Trajectory.from_vasprun('../example/vasprun.xml')\n\ntrajectory.plot_displacement_per_element()\n\ndiff_trajectory = trajectory.filter('Li')\n\ndiff_trajectory.plot_displacement_per_atom()\ndiff_trajectory.plot_displacement_histogram()\ndiff_trajectory.plot_frequency_vs_occurence()\ndiff_trajectory.plot_vibrational_amplitudes()\n```\n\nCharacterize transitions and jumps between sites:\n\n```python\nfrom gemdat.io import load_known_material\n\nsites = load_known_material('argyrodite', supercell=(2, 1, 1))\n\ntransitions = trajectory.transitions_between_sites(\n sites=sites,\n floating_specie='Li',\n)\n\njumps = transitions.jumps()\n\njumps.plot_jumps_vs_distance()\njumps.plot_jumps_vs_time()\njumps.plot_collective_jumps()\njumps.plot_jumps_3d()\n\njumps.jump_diffusivity(dimensions=3)\n```\n\nTo calculate different metrics, such as tracer diffusivity:\n\n```python\nfrom gemdat import SimulationMetrics\n\nmetrics = SimulationMetrics(diff_trajectory)\n\nmetrics.tracer_diffusivity(dimensions=3)\nmetrics.haven_ratio(dimensions=3)\nmetrics.tracer_conductivity(dimensions=3)\nmetrics.particle_density()\nmetrics.vibration_amplitude()\n```\n\n## Development\n\nCheck out our [Contributing Guidelines](CONTRIBUTING.md#Getting-started-with-development) to get started with development.\n\n## References\n\nThe code in this repository is based on [Matlab code to analyse Molecular Dynamics simulations](https://bitbucket.org/niekdeklerk/md-analysis-with-matlab/src/master/).\n\nFor background information on how some of the properties are calculated, check out the accompanying paper:\n\n- Niek J.J. de Klerk, Eveline van der Maas and Marnix Wagemaker, ACS Applied Energy Materials, (2018), doi: [10.1021/acsaem.8b00457](https://doi.org/10.1021/acsaem.8b00457)\n",
"bugtrack_url": null,
"license": "Apache 2.0 License",
"summary": "Generalized Molecular Dynamics Analysis Tool",
"version": "1.2.1",
"project_urls": {
"changelog": "https://github.com/GEMDAT-repos/GEMDAT/releases",
"documentation": "https://gemdat.readthedocs.io",
"homepage": "https://github.com/GEMDAT-repos/GEMDAT",
"issues": "https://github.com/GEMDAT-repos/GEMDAT/issues"
},
"split_keywords": [
"analysis",
" molecular dynamics",
" plastic crystals",
" batteries"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0b9c2965b272b0b2a5e71fbd581c3dce9f0c0c63bc3642f4c86987e1192cf97b",
"md5": "167e3d811b597dec1a9fddc98f70bc11",
"sha256": "d876641b9f011e2e02ff6c794936fd265530f84d1d43fee2efa68a673701fc96"
},
"downloads": -1,
"filename": "GEMDAT-1.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "167e3d811b597dec1a9fddc98f70bc11",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 519142,
"upload_time": "2024-04-08T13:21:05",
"upload_time_iso_8601": "2024-04-08T13:21:05.359352Z",
"url": "https://files.pythonhosted.org/packages/0b/9c/2965b272b0b2a5e71fbd581c3dce9f0c0c63bc3642f4c86987e1192cf97b/GEMDAT-1.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8e874587d40500e52ab77c91e167c7145240fafef78ad739103ac004701d7802",
"md5": "64d6097a93a7a1baeae29aaac95aa466",
"sha256": "b06ce90a9677e5c3072b3423e201c079316a3aaf8a9ffb5bdb77082d618357e0"
},
"downloads": -1,
"filename": "GEMDAT-1.2.1.tar.gz",
"has_sig": false,
"md5_digest": "64d6097a93a7a1baeae29aaac95aa466",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 505943,
"upload_time": "2024-04-08T13:21:07",
"upload_time_iso_8601": "2024-04-08T13:21:07.632087Z",
"url": "https://files.pythonhosted.org/packages/8e/87/4587d40500e52ab77c91e167c7145240fafef78ad739103ac004701d7802/GEMDAT-1.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-08 13:21:07",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "GEMDAT-repos",
"github_project": "GEMDAT",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "matplotlib",
"specs": [
[
">=",
"3.6.0"
]
]
},
{
"name": "MDAnalysis",
"specs": []
},
{
"name": "numpy",
"specs": []
},
{
"name": "pymatgen",
"specs": [
[
">=",
"2024.1.26"
],
[
"!=",
"2024.2.20"
]
]
},
{
"name": "rich",
"specs": []
},
{
"name": "scikit-image",
"specs": []
},
{
"name": "scipy",
"specs": []
}
],
"lcname": "gemdat"
}