Skip to content

Releases: materialsproject/pymatgen

v2024.1.27

27 Jan 02:06
Compare
Choose a tag to compare

v2024.1.26

26 Jan 12:45
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • Fix label propagation in Symmetry.from_spacegroup by @stefsmeets in #3527
  • Bug fix: SpectrumPlotter.add_spectra by @minhsueh in #3529
  • Fix bug in SQSTransformation by @esoteric-ephemera in #3541
  • Fix failing CI due to broken BoltzTraP2 install by @janosh in #3543
  • Enforce zval to be an integer to avoid improper syntax in .cri file by @wladerer in #3502
  • Fix MaterialsProjectCompatibility run type handling for GGA+U by @rkingsbury in #3540
  • Accept Path objects as filename in IStructure.to() by @janosh in #3553
  • Retain Structure.properties in structure_from_abivars()/structure_to_abivars() round trip by @janosh in #3552
  • Support magmoms in get_phonopy_structure() by @tomdemeyere in #3555
  • Fix ValueError: Invalid fmt with Structure.to(fmt='yml') by @janosh in #3557
  • Improve CIF checking, support for isotopes, and correct handling of new VASP 6.4.2 POSCAR format incl. slashes in header by @esoteric-ephemera in #3542
  • Deprecate Structure.ntypesp replaced by Structure.n_elems by @janosh in #3562
  • Ruff fixes by @janosh in #3564
  • Fix highly-nested parens when formula parsing in Composition by @janosh in #3569
  • Fix floating point imprecision error in ordering property of CollinearMagneticStructureAnalyzer by @kaueltzen in #3574
  • Support parsing of "final_energy" in Q-Chem 6.1.1 by @Andrew-S-Rosen in #3580

🛠 Enhancements

  • Add GitHub Issue Templates by @DanielYang59 in #3528
  • Improve PhononBandStructure.has_imaginary_gamma_freq() by checking for negative freqs at all q-points close to Gamma by @janosh in #3530
  • Add default issue template labels by @DanielYang59 in #3531
  • Add functionality to read ASE *.traj file in Trajectory class method from_file() by @exenGT in #3422
  • Add PhononDos.r2_score method by @janosh in #3535
  • Add codespace container for reproducing issues by @DanielYang59 in #3537
  • Phonon convenience imports by @janosh in #3544
  • Add diffusive thermal conductivity model proposed by Agne et al. by @naik-aakash in #3546
  • Add flag write_site_properties = False in CifWriter for writing Structure.site_properties as _atom_site_{prop} by @Andrew-S-Rosen in #3550
  • Add pymatgen.io.pwmat module by @lhycms in #3512
  • Lazy import pandas in Structure.as_dataframe() to improve startup speed by @janosh in #3568
  • Return self in SiteCollection spin/oxi state add/remove methods by @janosh in #3573
  • Added threshold_ordering parameter to CollinearMagneticStructureAnalyzer in addition to PR #3574 by @kaueltzen in #3577

🧹 House-Keeping

🧪 Tests

  • Improve handling of Vasprun POTCAR search, expanded fake POTCAR library for VASP I/O tests by @esoteric-ephemera in #3491
  • Add test for NEBAnalysis.get_plot() by @janosh in #3570
  • tests/io/aims use numpy.testing.assert_allclose and pytest.MonkeyPatch by @janosh in #3575

💥 Breaking Changes

  • Breaking: remove single-use PolarizationLattice which inherited from Structure (antipattern) by @janosh in #3585

🤷‍♂️ Other Changes

  • Standardise and update VASP input sets by @utf in #3484

New Contributors

Full Changelog: v2023.12.18...v2024.1.26

v2023.12.18

19 Dec 02:11
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • Improve doc strings substitution_probability.py by @JaGeo in #3477
  • Convert all FHI-aims stresses to be 3x3 instead of Voigt notation by @tpurcell90 in #3476
  • Revert pymatgen/symmetry/groups.py module-scoped SymmOp import causing circular import by @janosh in #3486
  • fix reciprocal_density in MPHSEBSSet and tests by @fraricci in #3499
  • fix TypeError when attr force_field not exists by @xjf729 in #3495
  • Fix pdplotter.show with matplotlib backend by @lbluque in #3493
  • Fix legend label order in PhononBSPlotter.plot_compare() by @janosh in #3510

🛠 Enhancements

  • Define PBE64Base.yaml for new VASP PBE_64 POTCARs by @janosh in #3470
  • (Structure|Molecule).alphabetical_formula by @janosh in #3478
  • Improvements to PhononDosPlotter and PhononBSPlotter by @janosh in #3479
  • PhononDosPlotter.plot_dos() add support for existing plt.Axes by @janosh in #3487
  • Allow Structure.interpolate to extrapolate by @kyledmiller in #3467
  • Updates for Vasprun with MD simulations by @gpetretto in #3489
  • Add gradient, Hessian, and orbital coeffs scratch file parsers to pymatgen.io.qchem.outputs by @Andrew-S-Rosen in #3483
  • Add multipole parsing for Q-Chem IO by @espottesmith in #3490
  • CifParser only warn about primitive default value change to False if not passed to parse_structures explicitly by @janosh in #3505
  • PhononBSPlotter.plot_compare() add legend labels by @janosh in #3507
  • Define arithmetic ops __add__ __sub__ __mul__ __neg__ __eq__ for PhononDos with tests by @janosh in #3511
  • Equalize Phonon(Dos|BS)Plotter colors, allow custom plot settings per-DOS by @janosh in #3514
  • Add bold flag to latexify by @janosh in #3516
  • Composition raise ValueError if formula string is only numbers and spaces by @janosh in #3517
  • Raise ValueError for float('NaN') in Composition by @janosh in #3519
  • Add PhononDos.mae() and PhononBandStructure.has_imaginary_gamma_freq() methods by @janosh in #3520
  • PhononDos.get_smeared_densities return unchanged for sigma=0 by @janosh in #3524
  • Add PhononDos.get_last_peak() by @janosh in #3525

📖 Documentation

🚀 Performance

🧪 Tests

🏷️ Type Hints

New Contributors

Full Changelog: v2023.11.12...v2023.12.18

v2023.11.12

13 Nov 03:06
Compare
Choose a tag to compare

🐛 Bug Fixes

  • Hot fix: pymatgen package missing potcar-summary-stats.json.bz2 by @janosh in #3468

🛠 Enhancements

  • Add Composition.charge and charge_balanced properties by @janosh in #3471

v2023.11.10

10 Nov 21:27
Compare
Choose a tag to compare

🐛 Bug Fixes

  • Fix LobsterMatrices calculated incorrectly by @naik-aakash in #3407
  • Fix test_relax_chgnet by @janosh in #3417
  • Breaking: return sum of Species with matching Element in Composition.__getitem__ by @janosh in #3427
  • Update inputs.py by @RedStar-Iron in #3430
  • Fix lattice velocities formatting by @gpetretto in #3433
  • Fix lobsterin dict inheritance and treat \t in lobsterins correctly by @JaGeo in #3439
  • Fix BSPlotterProjected.get_elt_projected_plots by @janosh in #3451
  • Fix Atoms.cluster_from_file() in io.feff.inputs giving wrong number of atoms by @kaifengZheng in #3426
  • Write test-created files to temporary directory, don't pollute test dir by @janosh in #3454
  • Issue stronger warning if bader is run without the AECCARs by @janosh in #3458
  • Fix Vasprun not interpreting float overflow as nan by @tawe141 in #3452
  • Aims bug fixes by @tpurcell90 in #3466

🛠 Enhancements

🧹 House-Keeping

  • Rename Poscar.from_file() check_for_POTCAR to check_for_potcar by @janosh in #3406
  • Remove warning in cohp module by @JaGeo in #3418
  • Drop black for ruff format by @janosh in #3420
  • Refresh OPTIMADE aliases and update docstrings by @ml-evs in #3447
  • Use convenience exports from pymatgen/core/__init__.py where no risk of circular imports by @janosh in #3461
  • Move needlessly function-scoped imports to module scope by @janosh in #3462
  • Module-scoped imports by @janosh in #3464

🤷‍♂️ Other Changes

New Contributors

v2023.10.11

12 Oct 00:32
Compare
Choose a tag to compare

🐛 Bug Fixes

  • Fix outdated setup.py find_namespace_packages and add test_egg_sources_txt_is_complete by @janosh in #3374
  • release.yml add option to publish to TestPyPI by @janosh in #3375
  • Fix wrong unit=eV in get_band_(skewness|kurtosis) doc string by @janosh in #3383
  • Further updating POTCAR validation / identification by @esoteric-ephemera in #3392
  • MatPESStaticSet.yaml set LMAXMIX: 6 by @janosh in #3400
  • Fix type annotations in phonon/ and lammps/ by @ab5424 in #3401
  • Fix OBAlign(includeH=False, symmetry=False) can't take keywords by @janosh in #3403

🛠 Enhancements

  • New class to handle NcICOBILIST.lobster files by @QuantumChemist in #2878
  • Add inplace: bool=True arg to Structure.apply_strain() by @janosh in #3376
  • Add Structure.to_(conventional|primitive|cell) methods by @janosh in #3384
  • Add SiteCollection.to_ase_atoms() by @janosh in #3389
  • Add mode: Literal["w", "a", "wt", "at"] = "w" keyword to CifWriter.write_file() by @janosh in #3399

📖 Documentation

  • Add docs/fetch_pmg_contributors.py script by @janosh in #3387

🧹 House-Keeping

🧪 Tests

  • Update incar_parameters.json to allow ISIF=8 by @matthewkuner in #3381
  • Add test_potcar_summary_stats() by @janosh in #3395
  • Mirror atomate2 fix and improve MPScanRelaxSet.test_kspacing edge case coverage by @janosh in #3396

💥 Breaking Changes

  • Breaking: snake_case FiestaInput keywords and class attributes by @janosh in #3386
  • Ion: default hydrates=False in reduced_formula by @rkingsbury in #3350

🏷️ Type Hints

Full Changelog: v2023.10.4...v2023.10.11

v2023.10.4

04 Oct 13:06
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • Fix missing potcar_summary_stats.json.gz in setup.package_data by @janosh in #3372

Full Changelog: v2023.10.3...v2023.10.4

v2023.10.3

03 Oct 23:16
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • Revert openbabel.OBAlign() in molecule_matcher.py to use positional args for includeH, symmetry by @janosh in #3353
  • Fix MPMD set bug by @MichaelWolloch in #3355
  • Fix TestMPResterNewBasic + AseAtomsAdaptor test errors and TransformedStructure.from_snl overwriting hist variable by @janosh in #3362
  • Fix TypeError: can only join an iterable with AECCAR in VolumetricData.write_file by @chiang-yuan in #3343

🛠 Enhancements

🧹 House-Keeping

🏥 Package Health

New Contributors

Full Changelog: v2023.9.25...v2023.10.3

v2023.9.25

25 Sep 17:14
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • Fix MPSOCSet raising ValueError on structure=None by @janosh in #3310
  • Fix AttributeError in BSPlotter.get_plot() by @janosh in #3327
  • Use ax = fig.add_subplot(projection='3d') to create Axes3D by @janosh in #3330
  • Fix breaking change to CoherentInterfaceBuilder.get_interfaces by @janosh in #3337
  • Add properties @property/docstring to IStructure by @mkhorton in #3338
  • Always return 0 for Composition.oxi_state_guesses() of diatomic molecules by @janosh in #3332
  • Fix: TestMITMPRelaxSet.test_nelect claimed to but wasn't testing disordered structure by @janosh in #3344

🛠 Enhancements

  • Allow usage of calculate_ng with a custom ENCUT and PREC values for VASP input sets by @matthewkuner in #3314
  • Fix TestPotcar.test_write polluting git repo on failure by @janosh in #3347

📖 Documentation

🧹 House-Keeping

  • Fix internal SymmOp.from_xyz_string and MagSymmOp.from_xyzt_string deprecation warnings by @janosh in #3315
  • Fix ruff A001 violations: Variable is shadowing a Python builtin by @janosh in #3331
  • Delete unused or numpy-provided routines from pymatgen.util.num by @janosh in #3333
  • fix ruff FBT003: Boolean positional value in function call by @janosh in #3335
  • Snake case test method names by @janosh in #3339

🤷‍♂️ Other Changes

Full Changelog: v2023.9.10...v2023.9.25

v2023.9.10

10 Sep 09:16
daa83ce
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

🛠 Enhancements

🏥 Package Health

🤷‍♂️ Other Changes

Full Changelog: v2023.9.2...v2023.9.10