{"library":"pymatgen-analysis-diffusion","title":"Pymatgen Diffusion Analysis","description":"Pymatgen-analysis-diffusion is an add-on module for the Materials Project's `pymatgen` library, specializing in the analysis of diffusion in solid-state materials. It provides tools for calculating mean squared displacement (MSD), determining diffusion coefficients from ab-initio molecular dynamics (AIMD) simulations, and analyzing diffusion paths. The current version is 2025.11.15, and releases are typically date-based, often aligning with updates to the core `pymatgen` library.","language":"python","status":"active","last_verified":"Fri Apr 17","install":{"commands":["pip install pymatgen-analysis-diffusion"],"cli":null},"imports":["from pymatgen_analysis_diffusion.aimd.msd import MSDAnalyzer","from pymatgen_analysis_diffusion.aimd.diffusion_analyzer import DiffusionAnalyzer"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from pymatgen.core import Structure, Species, Lattice\nfrom pymatgen_analysis_diffusion.aimd.msd import MSDAnalyzer\nimport numpy as np\n\n# 1. Create dummy structures to simulate a trajectory\nlattice = Lattice.cubic(10.0)\nspecies_list = [Species(\"Li\"), Species(\"O\")] * 4 # 8 atoms total\n\n# Generate a list of structures for the trajectory\nstructures = []\nfor i in range(5):\n    # Slightly perturb coordinates for each step\n    coords = np.random.rand(8, 3) + i * 0.05 # Simulate some movement\n    s = Structure(lattice, species_list, coords)\n    structures.append(s)\n\n# Define simulation parameters\ntime_step = 2.0  # Time step between structures in picoseconds (ps)\nstep_skip = 1    # Use every step\n\n# 2. Initialize MSDAnalyzer for a specific species (e.g., Li)\nli_species = [Species(\"Li\")]\n\nmsd_analyzer = MSDAnalyzer(\n    structures=structures,\n    species=li_species,\n    time_step=time_step,\n    step_skip=step_skip\n)\n\n# 3. Calculate diffusivity\ntemperature = 300 # Kelvin\ndiffusivity_data = msd_analyzer.get_diffusivity(temperature=temperature, initial_drift_correct=True)\n\nprint(f\"Calculated diffusivity for Li at {temperature}K:\")\nprint(f\"  Diffusivity: {diffusivity_data['diffusivity']:.2e} cm^2/s\")\nprint(f\"  Error: {diffusivity_data['error']:.2e} cm^2/s\")\n\n# Optional: Get MSD data for plotting\n# time_points, msd_values = msd_analyzer.get_msd_plot()\n# print(f\"First 5 MSD values: {msd_values[:5]}\")","lang":"python","description":"This quickstart demonstrates how to use `MSDAnalyzer` to calculate the diffusivity of a species from a list of `pymatgen.core.Structure` objects representing a trajectory. It creates a mock trajectory, initializes the analyzer, and then computes the diffusion coefficient.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}