Releases: materialsproject/pymatgen
v2025.3.10
-
PR #3680 - Add support for
vaspout.h5
, improvements to POTCAR handling by @esoteric-ephemera- Added support for parsing
vaspout.h5
and improvements in POTCAR handling. - Major additions include methods for processing
vaspout.h5
and ensuring compatibility with existing VASP I/O infrastructure.
- Added support for parsing
-
PR #4319 - Update
abitimer
inio.abinit
by @gpetretto- Fixes parsing issues for newer versions of Abinit.
- Updates compatibility with
pandas > 2
and includes test files for validation.
-
PR #4315 - Patch to allow
pyzeo
integration by @daniel-sintef- Provides a patch to swap out
zeo++
withpyzeo
, which is a more actively maintained version.
- Provides a patch to swap out
-
PR #4281 - Add method to get the Pearson symbol to
SpaceGroupAnalyzer
by @CompRhys- Introduced a new method to retrieve the Pearson Symbol in
SpaceGroupAnalyzer
.
- Introduced a new method to retrieve the Pearson Symbol in
-
PR #4295 - Pass
kwargs
toIStructure.to
method in JSON format by @DanielYang59- Provides finer control over
json.dumps
behavior during format conversion.
- Provides finer control over
-
PR #4306 -
IStructure.to
defaults to JSON whenfilename
is unspecified by @DanielYang59- Adjusts default file output behavior to JSON.
-
PR #4297 - Bugfix for
Structure/ase.Atoms
interconversion by @wolearyc- Ensures deep copying to avoid shared memory issues between
Atoms.info
andStructure.properties
.
- Ensures deep copying to avoid shared memory issues between
-
PR #4304 -
MagneticStructureEnumerator
: Exposemax_orderings
argument by @mkhorton- Makes
max_orderings
configurable via keyword argument.
- Makes
-
PR #4299 - Update inequality in
get_linear_interpolated_value
by @kavanase- Fixes interpolation logic to handle edge cases more robustly.
v2025.2.18
-
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.
- Improvements for determining VBM/CBM eigenvalues from a DOS object to match expected values for
-
PR #4278: [Breaking] Fix valence electron configuration parsing by @DanielYang59
- Addresses valence electron configuration parsing issue in
PotcarSingle.electron_configuration
, resolving #4269.
- Addresses valence electron configuration parsing issue in
-
PR #4275: Fix default
transformation_kwargs
inMagneticStructureEnumerator
by @DanielYang59- Corrects default
transformation_kwargs
to close #4184, with additional comment and type cleanup.
- Corrects default
-
PR #4274: Move
occ_tol
to init inOrderDisorderedStructureTransformation
by @Tinaatucsd- Resolved incompatibility with
StandardTransmuter
by movingocc_tol
to class initialization.
- Resolved incompatibility with
-
PR #4276: Fix timeout in
EnumlibAdaptor
by @DanielYang59- Adjusts timeout handling to fix #4185 with associated unit test corrections.
-
PR #4280: Pre-commit autoupdate by @pre-commit-ci[bot]
- Updates multiple pre-commit configurations, including ruff-pre-commit and markdownlint-cli.
-
PR #4290: Migrate type annotation tweaks from #4100 by @DanielYang59
- Integrates type annotation improvements to aid review, addressing #4286.
-
PR #4291: Remove deprecated memory units from
core
by @DanielYang59- Eliminates outdated memory units in
core
for clarity.
- Eliminates outdated memory units in
-
PR #4292: Fix for
plotly
PDPlotter
/ChemicalPotentialDiagram.get_plot()
by @kavanase- Resolves deprecated
titlefont
issue in plotly v6, updating dependency requirements.
- Resolves deprecated
-
PR #4283:
Composition
support formula strings with curly brackets by @janosh- Expands formula parsing to include curly brackets, with added tests for verification.
-
PR #4279: Fix P1 SymmOp string for
CifParser.get_symops
by @DanielYang59- Corrects SymmOp string to close #4230, supplemented by a unit test.
-
PR #4265: Clarify return type for
core.Composition.reduced_composition
by @DanielYang59- Refines return types and cleans up types in
core.Composition
.
- Refines return types and cleans up types in
-
PR #4268: Add
Structure.get_symmetry_dataset
method by @janosh- Introduces convenience method for
moyopy
symmetry analysis with a new optional dependency set.
- Introduces convenience method for
-
PR #4271: Add missing parenthesis to
BoltztrapAnalyzer.get_extreme.is_isotropic
by @DanielYang59- Minor syntax fix and cleanup for the method, resolving #4165.
-
PR #4270: Add
seed: int = 0
parameter toStructure.perturb()
by @janosh -
New NEBSet and CINEBSet for NEB calculations. These replace the old MITNEBSet. @shyuep
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)