Skip to main content

Generalized Molecular Dynamics Analysis Tool

Project description

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

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

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

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

Project details


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.0.tar.gz (528.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.0-py3-none-any.whl (553.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for gemdat-1.7.0.tar.gz
Algorithm Hash digest
SHA256 f378fe03f0a825694b21ebe47270b41cd9431fc87b98caea1dc3f8c5f52dec81
MD5 37ff5615af15b4e7160181c42b9a82c0
BLAKE2b-256 881fe2a822878d196630db088cde080622e48d2b7a2003717bb907dfd86011d8

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for gemdat-1.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e9a572c3ce1d61d3dc3160d25ab322b0ba7860af376878ebe07124b523f37dce
MD5 e1c5ef5bd60f7509ebfb84a774c7353b
BLAKE2b-256 3243488df0e29359acaa7e3271f714650efc66f96bccf530e4a8148e520b367e

See more details on using hashes here.

Provenance

The following attestation bundles were made for gemdat-1.7.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 Pingdom Monitoring Sentry Error logging StatusPage Status page