Releases: mushroomfire/mdapy
v1.0.3
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
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
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.
v1.0.0
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.
v0.11.5
v0.11.4
Mdapy 0.11.3
🛠️ 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
🏆 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
🏆 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
- Fix a bug for create_polycrystalline module.
- Fix a bug for reading xyz.