| layout | default |
|---|---|
| title | Change Log |
| nav_order | 2 |
- CI hygiene: drop
dglinstall pin from all GitHub Actions workflows (matgl now resolves its own backend); fixrelease.ymlpermissions/secrets: inheritso the reusabletest.ymlcall satisfies the subset rule and PyPI trusted publishing works.
RelaxCalcconvergence checks.RelaxCalc.calcsurfacesis_convergedandmax_forcein its result dict.PropCalc._prerelaxraisesRuntimeErrorwhen the pre-relaxation fails to converge, instead of silently feeding an unrelaxed structure into downstream property calcs.RelaxCalcnow copies the structure before perturbing, eliminating a caller-mutation hazard.
- PR #218 Extract
PropCalc._prerelaxhelper; fold relax boilerplate by @shyuep- Centralises the
if self.relax_structure: relaxer = RelaxCalc(...); result |= relaxer.calc(structure); structure = result['final_structure']pattern duplicated across_phonon3,_eos,_qha,_md,_stability, and_elasticity.
- Centralises the
- PR #210 / #85 Fix
youngs_modulusand add_unitsmetadata across allPropCalcs by @shyuep- Self-consistent
youngs_moduluscomputation; everyPropCalcresult now carries a_unitsdict, with assertions in the test suite.
- Self-consistent
Phonon3Calcadapted to the new phono3py conductivity API.- Foundation potential model naming unified. UMA model names updated to match FAIRChem upstream; CHGNet alias typo fixed; small registry cleanups.
- Updated the Hugging Face organization to
materialyze(lower case).
ElasticityCalccan now return moduli in GPa.- Added a new
units_GPakeyword argument (defaultFalse). When set toTrue, the returnedelastic_tensor,bulk_modulus_vrh,shear_modulus_vrh, andresiduals_sumare converted from pymatgen's native eV/A^3 units to GPa.
- Added a new
- Bug fix in
EOSCalc.- Fixed a variable shadowing issue where the loop-local relaxation result was overwriting the outer merged
resultdict, causing the merged relaxation/structure fields returned byEOSCalc.calcto come from a strained calculation rather than the originally relaxed input structure.
- Fixed a variable shadowing issue where the loop-local relaxation result was overwriting the outer merged
- PR #199 Add
GBCalcClass for Grain Boundary Calculation (originally PR #111)- Author: @rul048
- Description: Adds
GBCalcfor generating grain boundary structures and computing grain boundary energies, complementing the existingSurfaceCalcandInterfaceCalcclasses.
- PR #203 Multiple pressure support in
QHACalc- Author: @Andrew-S-Rosen
- Description: Adds support for evaluating multiple pressures in the quasi-harmonic approximation workflow.
- PR #174, #176, #163 Phonon and QHA refactor
- Author: @Andrew-S-Rosen
- Description: Significant refactor of
PhononCalcandQHACalcfor clearer logic, more consistent relaxation settings, better error handling, and improved typing. - Description: Adds detection and improved handling of imaginary phonon modes.
- Description: Fixes
PhononCalchandling ofAtomsinputs and supercell generation, and exposes amin_lengthkwarg for supercell sizing. - Description: Allows users to toggle
symprecinPhonopycalls and setsprimitive_matrix="auto"by default.
- PR #158 Consistent relaxation settings in
QHACalc- Author: @Andrew-S-Rosen
- Description: Relaxes atomic positions in the QHA workflow and ensures consistent settings between relaxations.
- PR #179 Allow fixing symmetry or specific atoms during relaxation
- Author: @rul048
- Description: Adds support in
RelaxCalcfor fixing symmetry or specifying particular atoms to be held fixed during relaxation.
- PR #161 / #206 Better handling when relaxations hit max steps
- Author: @Andrew-S-Rosen
- Description: Logs (instead of warning) when a relaxation reaches its maximum step count, making the behavior easier to track in long-running workflows.
- PR #189 Remove upper triangular cell call in NVT ensemble
- Author: @Andrew-S-Rosen
- Description: Avoids unnecessary cell transformation in
MDCalcNVT runs.
- PR #136 Default NEB method to
improvedtangent- Author: @rul048
- Description: Changes the default NEB method to
improvedtangentfor more reliable minimum energy paths.
- Replaced the custom
TrajectoryObserverwith ASE's native trajectory observer.
- PR #117 Add
InterfaceCalcClass for Interface Structure and Energy Calculation- Author: @so2koo
- Description: Introduces
InterfaceCalcfor calculating interface structures and energies, similar toSurfaceCalc. Utilizespymatgen CoherentInterfaceBuilderto generate interface structures from two different bulk structures. EmploysRelaxCalcfor structure relaxation and determines the lowest interface energy. - Todos: Further work may be needed if this is a work in progress.
- PR #118 Add
AdsorptionCalcClass for Adsorption Energy Calculation- Author: @mkphuthi
- Description: Adds
AdsorptionCalcfor calculating adsorption energy of single molecules on surfaces. Capabilities include generating slabs withSlabGenerator, placing adsorbates withAdsorbateSitefinder, and directly supplying an adslab. Features include calculation of adsorption energies, support for customizable relaxation viaRelaxCalcand ASE optimizers, extensive documentation, and type hints. - Todos: Some unrelated tests need to be fixed.
- More data-efficient MEP class for storing NEB results.
- PR #102 fix: add
required-environmentsto enable Linux install by @MorrowChem - PR #97: Make it possible to set COM momentum and/or rotation to zero in
MDCalcby @Andrew-S-Rosen- Feature: Allows setting the center-of-mass momentum and angular momenta to zero in
MDCalcto prevent drift.
- Feature: Allows setting the center-of-mass momentum and angular momenta to zero in
- PR #96: Allow for
MDCalcto be run withrelax_cell=Trueduring the initial relaxation by @Andrew-S-Rosen- Feature: Enables unit cell relaxation before an MD run.
- PR #89: Add support for
MTKNPTby @Andrew-S-Rosen- Feature: Added support for
MTKNPT, the recommended method for NPT simulations in ASE.
- Feature: Added support for
- PR #90: Add a warning if using
NPTby @Andrew-S-Rosen- Warning: Raises
UserWarningwhenNPTclass is used due to stability concerns.
- Warning: Raises
- PR #88: Add IsotropicMTKNPT to
_md.pyby @Andrew-S-Rosen- Feature: Introduced
IsotropicMTKNPTsupport, expanding supportedensembleoptions.
- Feature: Introduced
- Progress bars when running benchmarks.
- Bug fix for surface calculations (@computron).
- Update OCPCalculator with the newer FairChemCalculator (@atulcthakur)
- Bug fix for bad trajectory snapshotting in MDCalc.
- Beta LAMMPSMDCalc.
- All PropCalcs now support ASE Atoms as inputs, as well as pymatgen Structures.
- Added MDCalc class for molecular dynamics simulations. (@rul048)
- Minor updates to EquilibriumBenchmark to make it easier to reproduce matpes.ai/benchmarks results. (@rul048)
- SurfaceCalc class for computing surface energies. (@atulcthakur)
- NEBCalc now returns MEP information. (@drakeyu)
- All PropCalcs and Benchmarks now support using a string as a calculator input, which is automatically interpreted as a universal calculator where possible. This greatly simplifies the use of PropCalc.
- PESCalculator.load_universal now is lru_cached so that the same model does not get loaded multiple times.
- Added Phonon3Calc for calculation of phonon-phonon interactions and thermal conductivity using Phono3py. (@rul48)
- All PropCalc implementations are now private and should be imported from the base package.
- Added support for Mattersim, Fairchem-Core, PET-MAD, and DeepMD (@atulcthakur)
- Added ChainedCalc helper class to performed chaining of PropCalcs more easily.
- Added matcalc.load_fp alias for easier loading of universal MLIPs.
- Major new feature: Most PropCalc now supports chaining. This allows someone to obtain multiple properties at once.
- SofteningBenchmark added. (@bowen-bd)
- Major expansion in the number of supported calculators, including Orb and GRACE models. (@atulcthakur)
- Emergency bug fix for bad default perturb_distance parameter in Relaxation.
- Provide model aliases "PBE" and "R2SCAN" which defaults to the TensorNet MatPES models.
- New CLI tools to quickly use prop calculators to compute properties from structure files.
- Added support for ORB and GRACE universal calculators (@atulcthakur)
- Option to perturb structure before relaxation (@rul048)
- Improved handling of stress units (@rul048)
- Option to relax strained structures in ElasticityCalc (@lbluque)
- Checkpointing and better handling of benchmarking.
- Most PropCalc can now be imported from the root level, e.g.,
from matcalc import ElasticityCalcinstead of the more verbosefrom matcalc.elasticity import ElasticityCalc.
- Initial release of benchmarking tools with Elasticity and Phonon benchmark data.
- Minor updates to returned dicts.
- First release with all major components.