Skip to content

Releases: materialsproject/pymatgen

v2025.2.18

18 Feb 18:31
c76c7a6
Compare
Choose a tag to compare
  1. PR #4288: Dos.get_cbm_vbm updates by @kavanase

    • Improvements for determining VBM/CBM eigenvalues from a DOS object to match expected values for emmet-core tests.
  2. PR #4278: [Breaking] Fix valence electron configuration parsing by @DanielYang59

    • Addresses valence electron configuration parsing issue in PotcarSingle.electron_configuration, resolving #4269.
  3. PR #4275: Fix default transformation_kwargs in MagneticStructureEnumerator by @DanielYang59

    • Corrects default transformation_kwargs to close #4184, with additional comment and type cleanup.
  4. PR #4274: Move occ_tol to init in OrderDisorderedStructureTransformation by @Tinaatucsd

    • Resolved incompatibility with StandardTransmuter by moving occ_tol to class initialization.
  5. PR #4276: Fix timeout in EnumlibAdaptor by @DanielYang59

    • Adjusts timeout handling to fix #4185 with associated unit test corrections.
  6. PR #4280: Pre-commit autoupdate by @pre-commit-ci[bot]

    • Updates multiple pre-commit configurations, including ruff-pre-commit and markdownlint-cli.
  7. PR #4290: Migrate type annotation tweaks from #4100 by @DanielYang59

    • Integrates type annotation improvements to aid review, addressing #4286.
  8. PR #4291: Remove deprecated memory units from core by @DanielYang59

    • Eliminates outdated memory units in core for clarity.
  9. PR #4292: Fix for plotly PDPlotter/ChemicalPotentialDiagram.get_plot() by @kavanase

    • Resolves deprecated titlefont issue in plotly v6, updating dependency requirements.
  10. PR #4283: Composition support formula strings with curly brackets by @janosh

    • Expands formula parsing to include curly brackets, with added tests for verification.
  11. PR #4279: Fix P1 SymmOp string for CifParser.get_symops by @DanielYang59

    • Corrects SymmOp string to close #4230, supplemented by a unit test.
  12. PR #4265: Clarify return type for core.Composition.reduced_composition by @DanielYang59

    • Refines return types and cleans up types in core.Composition.
  13. PR #4268: Add Structure.get_symmetry_dataset method by @janosh

    • Introduces convenience method for moyopy symmetry analysis with a new optional dependency set.
  14. PR #4271: Add missing parenthesis to BoltztrapAnalyzer.get_extreme.is_isotropic by @DanielYang59

    • Minor syntax fix and cleanup for the method, resolving #4165.
  15. PR #4270: Add seed: int = 0 parameter to Structure.perturb() by @janosh

  16. New NEBSet and CINEBSet for NEB calculations. These replace the old MITNEBSet. @shyuep

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)