Skip to main content

Documentation Status Tests for GEMDAT Coverage PyPI - Python Version PyPI DOI Zenodo

GEMDAT banner GEMDAT banner

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

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gemdat-1.8.0.tar.gz (538.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gemdat-1.8.0-py3-none-any.whl (564.2 kB view details)

Uploaded Python 3

File details

Details for the file gemdat-1.8.0.tar.gz.

File metadata

  • Download URL: gemdat-1.8.0.tar.gz
  • Upload date:
  • Size: 538.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for gemdat-1.8.0.tar.gz
Algorithm Hash digest
SHA256 fcb078597de051d0f05cfea83a53c1d989d8ca658bc9b00b893f4e299cf928b8
MD5 3532920bbfe908bf844cedf9c3d09078
BLAKE2b-256 a80a675b8ef0c4432617f6c7721e5d0246bf71bdb1336d5bfa03c4ae3c2b86ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemdat-1.8.0.tar.gz:

Publisher: publish.yaml on GEMDAT-repos/GEMDAT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gemdat-1.8.0-py3-none-any.whl.

File metadata

  • Download URL: gemdat-1.8.0-py3-none-any.whl
  • Upload date:
  • Size: 564.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for gemdat-1.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dd1d10eb7140223cd924fa57515928717192bd28f1f6969479c2e20d3f03e2de
MD5 b676f2a35657cb634ea36aeba09763a4
BLAKE2b-256 321bd98e7eed5239574c8f4c26f87eef83cd16cb9587e90af1635cfb17280c27

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemdat-1.8.0-py3-none-any.whl:

Publisher: publish.yaml on GEMDAT-repos/GEMDAT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page