Skip to content

Releases: mushroomfire/mdapy

v1.0.3

28 Mar 18:45

Choose a tag to compare

Mdapy 1.0.3 (March 28, 2026)

🛠️ Other Improvements

  • Added explained_variance_ratio for PCA.
  • For these analysis methods (CNA, PTM, and IDS), simulation boxes with a thickness below 15 Å are automatically treated as small boxes.
  • The optimized elastic constant workflow can be validated using pymatgen.
  • Improved the calculator setup behavior for the System.
  • Fixed a bug in the minimize class.
  • Updated parts of the documentation.

v1.0.2

04 Mar 17:09

Choose a tag to compare

Mdapy 1.0.2 (March 4, 2026)

🛠️ Other Improvements

  • Reduced the size of the published source distribution (sdist).

  • Added support for writing bec, stress, and virial fields in the comment line when using write_xyz.

  • Improved LammpsPotential handling of general simulation boxes; it can now correctly compute stress, forces, and energy for such structures.

  • Added newest version of NEPCPU for fixing a bug in qNEP.

v1.0.1

02 Mar 16:44

Choose a tag to compare

Mdapy 1.0.1 (March 2, 2026)

🏆 New Features

  • Added support for converting VASP OUTCAR files to XYZ format for GPUMD.
    This supports single-point calculations, structure minimization,
    and AIMD multi-frame trajectories.

  • Added functionality to identify chemical species based on vdW-radius
    connectivity between atoms.

🛠️ Other Improvements

  • Fixed a bug in the HEA model builder.

  • Optimized the cfg2xyz conversion tool.

  • Added a neighbor-search benchmark to the documentation.

  • Improved the energy minimization workflow.

  • Optimized stress computation in LammpsPotential and added corresponding tests.

  • Added support for saving BEC information in XYZTraj.

  • Added tests for qNEP.

  • Removed warnings in test_void by introducing an explicit implode cast method.

🚀 Build System

  • Binary wheels are now built separately for each Python version,
    instead of using the stable ABI (> Python 3.12). This change ensures
    compatibility with Python 3.13, where the stable ABI is not supported.

v1.0.0

03 Jan 14:46

Choose a tag to compare

Mdapy 1.0.0 (January 3, 2026)

🚀 Summary

This is a milestone update for mdapy, featuring a near-complete rewrite of the core architecture. A primary driver for this transition was the limitations of our previous JIT dependency, Taichi; its development pace constrained our support for newer Python versions.

To ensure long-term sustainability, we have reconstructed mdapy by migrating computationally intensive kernels to C++ using the modern nanobind wrapper. As a result, mdapy now depends solely on NumPy and Polars, making it exceptionally lightweight and compatible with all modern Python environments.

Key changes include:

  • Engine Shift: With the removal of Taichi, mdapy now focuses on high-performance CPU computation.
  • GUI & Tools: Experimental Polyscope support has been removed to focus on core stability. However, a lightweight Jupyter-based GUI remains available as an optional dependency.
  • Modern Build System: We have transitioned from setup.py to pyproject.toml.
  • Reliability: Extensive test suites have been added to ensure the correctness of all algorithms.

This is a brand-new foundation for the project, and we strongly recommend all users to upgrade.

🏆 New features

  • qNEP Integration: Support for evaluating energy, force, virial, charge, and BEC properties.
  • Structural Analysis: Added Static Structure Factors and the Wigner-Seitz method for point defect detection.
  • Mechanical Properties: Support for calculating elastic constants.
  • I/O Enhancements: Added XYZ trajectory loading and introduced the MP file format (Parquet-based), providing high-speed I/O and efficient storage.
  • Minimization: Improved FIRE2 method for energy minimization with cell optimization.
  • GPUMD Ecosystem: A series of new features compatible with the GPUMD economy.

🛠️ Other improvements

  • Compatibility: Full support for Python >= 3.9.
  • Reliability: Significantly expanded test case coverage.
  • Efficiency: Optimized import overhead; import mdapy is now significantly faster.

⚠️ Limitations

  • Documentation: The documentation is currently being updated and is not yet complete. We are actively working on this and welcome any community contributions or feedback.

v0.11.5

27 Nov 09:34

Choose a tag to compare

🏆 Highlights

  • Add feature to calculate local WCP parameter, fix #8
  • Remove NEP model output.

v0.11.4

12 Nov 16:30

Choose a tag to compare

🏆 Highlights

  • Add feature to Minimizer class for optimizing the box.
  • Add many options for calculating SteinhardtBondOrientation, including the Voronoi neighbor, weighted by Voronoi face area and average version, fix #7 .

🐞 Bug fixes

  • Fix a bug for reading xyz format with multi space.

Mdapy 0.11.3

24 Sep 17:03

Choose a tag to compare

🛠️ Other improvements

  • Upgrade the minimum polars to the latest version 1.8.0, so many code changes have been done.
  • Update doc.

Mdapy 0.11.2

23 Sep 09:54

Choose a tag to compare

🏆 Highlights

  • Add a new feature to calculate the distribution of bond length and bond angle.

🐞 Bug fixes

  • Fix a typo bug for LammpsPotential.

🛠️ Other improvements

  • Add test script for lammps interface.

Mdapy 0.11.1

18 Sep 17:21

Choose a tag to compare

🏆 Highlights

  • Refactor the visualization code in Jupyter, make it more beautiful and convinient.
  • Add minimizer engine with FIRE method.
  • Add a new feature to calculate the atomic shear strain.
  • Add OrthogonalBox module to change triclinic box to rectangular box.
  • Add adaptive common neighbor analysis method.
  • Add IdentifyDiamondStructure method.

🚀 Performance improvements

  • Improve the performance for split_dump and split_xyz method.

✨ Enhancements

  • Add an example to compute Vacancy Formation energy.
  • Make CreatePolycrystalline module can accept any files as matrix.
  • Let the max type in LammpsPotential module is determined by given elemental list, enabling more flexible usage.

🐞 Bug fixes

  • Fix a bug for cell_opt class.
  • Fix a bug for neighbor class.
  • Fix a bug for RDF with partial interaction in multi-elemental system.
  • Fix a bug for reading cp2k output file with OT method.
  • Let GUI model compatible with latest polars.

🛠️ Other improvements

  • Update NEP interface to V1.3, compatible with GPUMD 3.9.5.
  • Updated some documentations.

v0.11.0

22 Jun 11:04

Choose a tag to compare

  • Fix a bug for create_polycrystalline module.
  • Fix a bug for reading xyz.