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.7.3.tar.gz (536.7 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.7.3-py3-none-any.whl (561.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gemdat-1.7.3.tar.gz
  • Upload date:
  • Size: 536.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gemdat-1.7.3.tar.gz
Algorithm Hash digest
SHA256 c43c28579d4f6c53fe07ab6b8ba1e6e7f541f465f21c84509ff27d282e4aab46
MD5 6bd31a09411821f4231533388d8a5c1d
BLAKE2b-256 1be9433ef8a45b2cce8f404ab526e8be6887a5cc607bec78238b609754b37c2e

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemdat-1.7.3.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.7.3-py3-none-any.whl.

File metadata

  • Download URL: gemdat-1.7.3-py3-none-any.whl
  • Upload date:
  • Size: 561.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for gemdat-1.7.3-py3-none-any.whl
Algorithm Hash digest
SHA256 013ea3c1768a1e4565303c55235616e64e16f11501fede3896eade0da4518d54
MD5 9bfb0aecff187d09a8630852cb7a063a
BLAKE2b-256 e29707c86a6ce7016e4ed3c79dc90c18c17bfae9379eb49ba2fa48e36e837ad6

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemdat-1.7.3-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