Skip to content

Releases: materialsproject/pymatgen

v2025.1.24

24 Jan 16:43
Compare
Choose a tag to compare

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 like assert_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.

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.

PR #4189 by @benrich37

  • Objective: Develop a Pythonic representation for inputs used in JDFTx calculations.
  • Key Features:
    • inputs.py module introducing JDFTXInfile 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

23 Jan 21:00
d6c0f29
Compare
Choose a tag to compare
  1. 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 the MaterialsProjectDFTMixingScheme() expected 'R2SCAN', causing errors and ignored entries in GGA(+U)/R2SCAN mixing scheme corrections.

  2. 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 in getattr to False for condition checks.

  3. 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.

  4. PR #4240 by @kavanase: A minor fix in FermiDos improves the robustness of the get_doping method, addressing issues with handling rare cases with minimal energy increments between VBM and CBM indices.

  5. 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.

  6. 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.

  7. 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

09 Jan 21:14
0d14d72
Compare
Choose a tag to compare
  • 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

13 Nov 19:09
aab23ff
Compare
Choose a tag to compare
  • 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

29 Oct 17:13
Compare
Choose a tag to compare
  • 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

27 Oct 02:52
Compare
Choose a tag to compare
  • Bug fix for parsing of dielectric calculations from vasprun.xml.

v2024.10.25

25 Oct 21:24
8991e77
Compare
Choose a tag to compare
  • VaspDir now supports nest directories. Also, supports non-object string returns.
  • Bug fix for parsing of BSE vaspruns.xml.

v2024.10.22

22 Oct 03:10
aa37e99
Compare
Choose a tag to compare
  • 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

03 Oct 17:13
Compare
Choose a tag to compare
  • 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

18 Sep 01:11
Compare
Choose a tag to compare
  • Emergency release No. 2 to fix yet another regression in chempot diagram. (Thanks @yang-ruoxi for fixing.)