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.2.tar.gz (529.5 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.2-py3-none-any.whl (554.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gemdat-1.7.2.tar.gz
  • Upload date:
  • Size: 529.5 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.2.tar.gz
Algorithm Hash digest
SHA256 bca23971b2df599b203d0edc62f57accdc19c8226fd87a4317c422eb7359f094
MD5 6b7a73ac5f9707e82261b59d4df6e39f
BLAKE2b-256 7540ae2269eccb8495c9f2ab421af711790389469554da80d8db33b1b3e08720

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: gemdat-1.7.2-py3-none-any.whl
  • Upload date:
  • Size: 554.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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 80c1ef7abbd4e3e9dc9a7e20326b7728abf44b73171351d418d209dcd94d0c46
MD5 bd2337788e5f7f917ffd577ceb2bd491
BLAKE2b-256 71b6677fbd92aabd85b66372d617d25cb7fc44b6e2cd092e2e64e8b63a235d37

See more details on using hashes here.

Provenance

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