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, 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, LAMMPS, GROMACS, and ASE simulation data
- Find jumps and transitions between sites
- Effortlessly calculate tracer and jump diffusivity
- Easily perform kinisi diffusion analysis
- Characterize and visualize diffusion pathways
- Plot main structural and diffusion properties
To install:
pip install gemdat
Optional Dependencies
GOAC (Global Optimization of Atomistic Configurations by Coulomb)
GOAC is an optional dependency for global optimization of atomistic configurations. It can be installed directly from GitHub:
pip install GOAC --find-links https://github.com/GEMDAT-repos/GOAC/releases/expanded_assets/0.1.1
The source code is available from Github.
Suggestions, improvements, and edits are most welcome.
Usage
The following snippet to analyze the diffusion trajectory from VASP data.
from gemdat import Trajectory
trajectory = Trajectory.from_vasprun('../example/vasprun.xml')
trajectory.plot_displacement_per_element()
diff_trajectory = trajectory.filter('Li')
diff_trajectory.plot_msd_per_element()
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:
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:
from gemdat import TrajectoryMetrics
metrics = TrajectoryMetrics(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 to get started with development.
How to Cite
- A.K. Lavrinenko, T. Famprikis, V. Landgraf, J.R. Heringa, S. Smeets, V. Azizi, S. Ciarella, M. Wagemaker & A. Vasileiadis. GEMDAT: a Python toolkit for site-resolved diffusion analysis in solid-state molecular dynamics. npj Comput Mater (2026). doi: 10.1038/s41524-026-02133-7
Dissemination
- Lorentz workshop 7-11 April (2025): Molecular Dynamics for Materials Science (pdf)
Credits
Some parts of the code in this repository are based on Matlab code to analyse Molecular Dynamics simulations.
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
Release files for GEMDAT 1.8.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gemdat-1.8.1.tar.gz | 566.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gemdat-1.8.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.2 MB
Release files / gemdat-1.8.1.tar.gz
| Download URL | gemdat-1.8.1.tar.gz |
|---|---|
| Size | 566.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
78dd7d55666c2070282afc2855f6e1703dd3c2a16d9d9a1ac4fe6432baeac3af
|
|
BLAKE2b-256 checksum How to use checksums |
81c6b13508583edddb50536128ccb1fd66dc8afd894e094b312f3858f4d38d6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency logRelease files / gemdat-1.8.1-py3-none-any.whl
| Download URL | gemdat-1.8.1-py3-none-any.whl |
|---|---|
| Size | 593.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ef2080e6aa1aeb0d33a37648e5a39f3b167f395870a1678e59dfb62d5fb8e794
|
|
BLAKE2b-256 checksum How to use checksums |
d8c71a4e43311845db08251772ee59acc703ba3bc588a5dc05a9562049cd1158
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency log