Releases: materialsproject/pymatgen
v2025.1.24
PR #4159 by @DanielYang59
- Objective: Enhance the reliability and efficiency of float comparison in the codebase.
- Improvements:
- Avoid using
==
for float comparisons to fix issue #4158. - Replace
assert_array_equal
with suitable alternatives likeassert_allclose
for floating-point arrays to accommodate numerical imprecision. - Improve the
_proj
function implementation, resulting in approximately a threefold speed increase. - Substitute sequences of float comparisons using
==
in list/tuple/dict structures. - Conduct various type and comment enhancements.
- Avoid using
PR #4190 by @benrich37
- Objective: Introduce a structured and organized approach to represent data from JDFTx output files.
- Key Features:
- Hierarchical Class Structure: Implemented a hierarchy of classes to represent JDFTx output file data, without inheriting from one another. Key classes include:
JDFTXOutputs
,JDFTXOutfile
,JDFTXOutfileSlice
- Sub-structures like
JOutStructures
,JElSteps
, etc.
- Modules Introduced:
outputs.py
: Provides a robust Pythonic representation of a JDFTx output file.jdftxoutfileslice.py
: Represents a “slice” of a JDFTx output file.joutstructures.py
: Represents a series of structures within an output file slice.joutstructure.py
: Represents a single structure within an output file.jelstep.py
: Manages SCF steps and convergence data.jminsettings.py
: Abstract class for managing input minimization settings, with subclasses for various settings types.
- Hierarchical Class Structure: Implemented a hierarchy of classes to represent JDFTx output file data, without inheriting from one another. Key classes include:
PR #4189 by @benrich37
- Objective: Develop a Pythonic representation for inputs used in JDFTx calculations.
- Key Features:
inputs.py
module introducingJDFTXInfile
class.- Helper modules:
generic_tags.py
: Includes "Tag" objects to define structures expected by JDFTx inputs.jdftxinfile_master_format.py
: Facilitates the creation of appropriate "Tag" objects.jdftxinfile_ref_options.py
: Contains lists of valid inputs for various tags, such as XC functionals for the "elec-ex-corr" tag.
v2025.1.23
-
PR #4255 by @peikai: This PR resolves an inconsistency in the
run_type
for entries in a mixing scheme. The entry type was changed to 'r2SCAN', but theMaterialsProjectDFTMixingScheme()
expected 'R2SCAN', causing errors and ignored entries in GGA(+U)/R2SCAN mixing scheme corrections. -
PR #4160 by @DanielYang59: Enhancements and clarifications were made to the
io.vasp.outputs.Outcar
docstring/comment. This includes more specific type annotations for parsers and updating the default value ingetattr
toFalse
for condition checks. -
PR #4257 by @njzjz: This PR covers the intention to build Linux arm64 wheels, referencing the availability of free hosted runners for public repositories. However, specific features and fixes were not detailed.
-
PR #4240 by @kavanase: A minor fix in
FermiDos
improves the robustness of theget_doping
method, addressing issues with handling rare cases with minimal energy increments between VBM and CBM indices. -
PR #4254 by @tpurcell90: Adjustments regarding the use of libxc with FHI-aims to automatically add an override warning call, ensuring the process behaves as expected.
-
PR #4256 by @kavanase: Addresses a behavior issue with
Composition
for mixed species and element compositions, providing a fix that ensures compositions are interpreted correctly, avoiding incorrect results in representations and calculations. -
PR #4253 by @esoteric-ephemera: This PR introduces the ability to convert between ASE and pymatgen trajectories, maintaining additional data such as energies, forces, and stresses, thus improving integration between the two programs and addressing related issues.
These updates range from bug fixes and enhancements to new features aimed at improving the functionality and reliability of the codebase.
v2025.1.9
- Iterating Element no longer contains isotopes (D and T). (@DanielYang59)
- Remove is_rare_earth_metal from ElementBase (@jdewasseigeosium)
- Fix DOS parsing for SOC calculations (@kavanase)
- Added Pure Random Algo to OrderDisorderedStructureTransformation (@jmmshn)
- Fix ion formula check in ion_or_solid_comp_object of analysis.pourbaix_diagram (@DanielYang59)
- AseAtomsAdaptor: Support arbitrary selective dynamics constraints (@yantar92)
- Explicit UTF-8 encoding for zopen and open. (@DanielYang59)
v2024.11.13
- CP2K fixes (@janosh)
- Fix borg.hive.SimpleVaspToComputedEntryDrone.assimilate ValueError when core file missing (@DanielYang59)
- Revert breaking analysis.local_env default_op_params/cn_opt_params rename (@DanielYang59)
- Added new Flag for AutoOxiStateDecorationTransformation (@jmmshn)
- Fixed execution of packmol in relative path. (@davidwaroquiers)
- Improve element mismatch handling with POTCAR for Poscar.from_file/str (@DanielYang59)
- Preprocess Structure Reduction Before Bulk Match (@lan496)
- Add min "thickness" check in CifParser to filter invalid structure which leads to infinite loop (@DanielYang59)
v2024.10.29
- VaspDir has been renamed and moved to pymatgen.io.common.PMGDir for more general support of all IO classes. Note that
this is a backwards incompatible change. It should not affect many users since VaspDir was introduced only in the last
one week. - Fixed execution of packmol in relative path. (@davidwaroquiers)
- VaspDoc.get_incar_tags: Use Mediawiki API (@yantar92)
- Fix comment pass in Kpoints constructors (@DanielYang59)
v2024.10.27
- Bug fix for parsing of dielectric calculations from vasprun.xml.
v2024.10.25
- VaspDir now supports nest directories. Also, supports non-object string returns.
- Bug fix for parsing of BSE vaspruns.xml.
v2024.10.22
- New
pyamtgen.io.vasp.VaspDir
class for easy navigation of VASP directories as pymatgen objects. - Fix gaussian input parser (@sio-salt)
- Fix: preserve site properties over cell transform (@Lattay)
- Make Incar keys case insensitive, fix init Incar from dict val processing for str/float/int (@DanielYang59)
- Fix: Preserve PBC info in AseAtomsAdaptor (@jsukpark)
- Migrate ext.COD from mysql to REST API (@DanielYang59)
- Fix: Parsing bugs in io.pwscf.PWInput (@jsukpark)
- Fix arg passing in inverse property of SymmOp (@DanielYang59)
- Add support for use_structure_charge keyword in FHI-aims input generator (@ansobolev)
- Fix: savefig in pmg.cli.plot (@DanielYang59)
- Fix: Volumetric data and XDATCAR parsing for monatomic structures (@esoteric-ephemera)
- Support to aims format from Structure instance (@ansobolev)
- Fix: Bugfix for Ion CO2(aq) reduced formula (@rkingsbury)
- Replace deprecated ExpCellFilter with FrechetCellFilter (@ab5424)
v2024.10.3
- Enable parsing of "SCF energy" and "Total energy" from QCOutput for Q-chem 6.1.1+. (@Jaebeom-P)
- Fix dict equality check with numpy array (@DanielYang59)
- Fix usage of strict=True for zip in cp2k.outputs (@DanielYang59)
- Fix bug with species defaults (@tpurcell90)
- SLME Bug Fixes (@kavanase)
v2024.9.17.1
- Emergency release No. 2 to fix yet another regression in chempot diagram. (Thanks @yang-ruoxi for fixing.)