Release Notes¶
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.
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.
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
LammpsPotentialand added corresponding tests.Added support for saving BEC information in
XYZTraj.Added tests for qNEP.
Removed warnings in
test_voidby introducing an explicitimplodecast 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.
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.pytopyproject.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 mdapyis 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.