Releases: materialsproject/pymatgen
Releases · materialsproject/pymatgen
v2024.1.27
Full Changelog: v2024.1.26...v2024.1.27
v2024.1.26
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 asfilename
inIStructure.to()
by @janosh in #3553 - Retain
Structure.properties
instructure_from_abivars()
/structure_to_abivars()
round trip by @janosh in #3552 - Support
magmoms
inget_phonopy_structure()
by @tomdemeyere in #3555 - Fix
ValueError: Invalid fmt
withStructure.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 byStructure.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
inCifWriter
for writingStructure.site_properties
as_atom_site_{prop}
by @Andrew-S-Rosen in #3550 - Add
pymatgen.io.pwmat
module by @lhycms in #3512 - Lazy import
pandas
inStructure.as_dataframe()
to improve startup speed by @janosh in #3568 - Return
self
inSiteCollection
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
- Pass file IO modes as kwarg by @janosh in #3560
- Remove deprecated
(to|from|as|get)_string
methods by @janosh in #3561
🧪 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
usenumpy.testing.assert_allclose
andpytest.MonkeyPatch
by @janosh in #3575
💥 Breaking Changes
- Breaking: remove single-use
PolarizationLattice
which inherited fromStructure
(antipattern) by @janosh in #3585
🤷♂️ Other Changes
New Contributors
- @DanielYang59 made their first contribution in #3528
- @minhsueh made their first contribution in #3529
- @exenGT made their first contribution in #3422
- @wladerer made their first contribution in #3502
- @tomdemeyere made their first contribution in #3555
- @lhycms made their first contribution in #3512
Full Changelog: v2023.12.18...v2024.1.26
v2023.12.18
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-scopedSymmOp
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
andPhononBSPlotter
by @janosh in #3479 PhononDosPlotter.plot_dos()
add support for existingplt.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 aboutprimitive
default value change toFalse
if not passed toparse_structures
explicitly by @janosh in #3505PhononBSPlotter.plot_compare()
add legend labels by @janosh in #3507- Define arithmetic ops
__add__
__sub__
__mul__
__neg__
__eq__
forPhononDos
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
raiseValueError
ifformula
string is only numbers and spaces by @janosh in #3517- Raise
ValueError
forfloat('NaN')
inComposition
by @janosh in #3519 - Add
PhononDos.mae()
andPhononBandStructure.has_imaginary_gamma_freq()
methods by @janosh in #3520 PhononDos.get_smeared_densities
return unchanged forsigma=0
by @janosh in #3524- Add
PhononDos.get_last_peak()
by @janosh in #3525
📖 Documentation
- QCInput: add docstrings for svp and pcm_nonels by @rkingsbury in #3522
🚀 Performance
🧪 Tests
🏷️ Type Hints
New Contributors
- @kyledmiller made their first contribution in #3467
Full Changelog: v2023.11.12...v2023.12.18
v2023.11.12
v2023.11.10
🐛 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 matchingElement
inComposition.__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()
inio.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 theAECCAR
s by @janosh in #3458 - Fix Vasprun not interpreting float overflow as nan by @tawe141 in #3452
- Aims bug fixes by @tpurcell90 in #3466
🛠 Enhancements
- Add
LobsterMatrices
parser tolobster.io.outputs
by @naik-aakash in #3361 - Propagate site labels in
SymmetrizedStructure()
by @stefsmeets in #3423 - Add lattice velocities to Poscar by @gpetretto in #3428
- Add
summary_stats
key toVasprun.potcar_spec
by @esoteric-ephemera in #3434 - Deprecate
CifParser.get_structures()
in favor of newparse_structures
in whichprimitive
defaults toFalse
by @janosh in #3419 - FHI-aims IO Parsers by @tpurcell90 in #3435
🧹 House-Keeping
- Rename
Poscar.from_file()
check_for_POTCAR
tocheck_for_potcar
by @janosh in #3406 - Remove warning in cohp module by @JaGeo in #3418
- Drop
black
forruff 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
- Create jekyll-gh-pages.yml by @shyuep in #3410
- Make
from_(str|file)
(static->class)methods
by @janosh in #3429
New Contributors
- @RedStar-Iron made their first contribution in #3430
- @tawe141 made their first contribution in #3452
- @tpurcell90 made their first contribution in #3435
v2023.10.11
🐛 Bug Fixes
- Fix outdated
setup.py
find_namespace_packages
and addtest_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
setLMAXMIX: 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 toStructure.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 toCifWriter.write_file()
by @janosh in #3399
📖 Documentation
🧹 House-Keeping
- Fix ruff
FURB
violations by @janosh in #3382 - Remove deprecated module
pymatgen/util/convergence.py
by @janosh in #3388 - Remove
pylint: disable
comments by @janosh in #3390 - Fix
ruff
N806
by @janosh in #3394
🧪 Tests
- Update
incar_parameters.json
to allowISIF=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
- Add type annotations to io/lammps by @ab5424 in #3379
- Add type annotations to phonon by @ab5424 in #3393
Full Changelog: v2023.10.4...v2023.10.11
v2023.10.4
v2023.10.3
What's Changed
🐛 Bug Fixes
- Revert
openbabel.OBAlign()
inmolecule_matcher.py
to use positional args forincludeH
,symmetry
by @janosh in #3353 - Fix MPMD set bug by @MichaelWolloch in #3355
- Fix
TestMPResterNewBasic
+AseAtomsAdaptor
test errors andTransformedStructure.from_snl
overwritinghist
variable by @janosh in #3362 - Fix
TypeError
: can only join an iterable with AECCAR inVolumetricData.write_file
by @chiang-yuan in #3343
🛠 Enhancements
- Don't rely on
jsanitize
inAtoms
<-->Structure
object interconversion by @Andrew-S-Rosen in #3359 - Breaking: New method of POTCAR validation by @esoteric-ephemera in #3351
- Add alias
.to_file()
for.to()
method of structures and molecules by @QuantumChemist in #3356 - Update POTCAR summary stats to include 6.4 POTCARs and add
dev_script
utils for future updates by @esoteric-ephemera in #3370
🧹 House-Keeping
- Chargemol minor refactor by @janosh in #3357
- Breaking typo fix:
Targe(tt->t)edPenaltiedAbundanceChemenvStrategy
by @janosh in #3360 - Fix undiscovered tests by @janosh in #3369
🏥 Package Health
New Contributors
- @esoteric-ephemera made their first contribution in #3351
- @QuantumChemist made their first contribution in #3356
Full Changelog: v2023.9.25...v2023.10.3
v2023.9.25
What's Changed
🐛 Bug Fixes
- Fix
MPSOCSet
raising ValueError onstructure=None
by @janosh in #3310 - Fix
AttributeError
inBSPlotter.get_plot()
by @janosh in #3327 - Use
ax = fig.add_subplot(projection='3d')
to createAxes3D
by @janosh in #3330 - Fix breaking change to
CoherentInterfaceBuilder.get_interfaces
by @janosh in #3337 - Add
properties
@property/docstring toIStructure
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
- Update @arosen93 to @Andrew-S-Rosen by @Andrew-S-Rosen in #3311
- Google-style doc strings for class attributes by @janosh in #3320
- More Google-style class attribute doc strings by @janosh in #3323
- Readme notice regarding updated pymatgen publication by @janosh in #3325
- Breaking: rename
get_ax3d_fig_plt->get_ax3d_fig
andget_ax_fig_plt->get_ax_fig
plus no longer returnplt
by @janosh in #3329
🧹 House-Keeping
- Fix internal
SymmOp.from_xyz_string
andMagSymmOp.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
What's Changed
🐛 Bug Fixes
- Fix code comment in ASE adapter by @Andrew-S-Rosen in #3298
- Fix IndexError when parsing Hessian from Gaussian frequency job by @janosh in #3308
🛠 Enhancements
- Add an input arg check for
Kpoints.automatic_density_by_lengths
by @Andrew-S-Rosen in #3299
🏥 Package Health
- Remove pydantic < 2 from
setup.py
and bump monty inrequirements.txt
by @Andrew-S-Rosen in #3303 - Move
py.typed
to package root by @Andrew-S-Rosen in #3307 - Consistent casing
setup->setUp
across test classes by @janosh in #3305
🤷♂️ Other Changes
Full Changelog: v2023.9.2...v2023.9.10