Recent Releases of pymatgen

pymatgen - v2025.6.14

  • Treat LATTICE_CONSTRAINTS as is for INCARs.
  • PR #4425 JDFTXOutfileSlice.trajectory revision by @benrich37 Major changes:
    • feature 1: JDFTXOutfileSlice.trajectory is now initialized with frame_properties set -- JOutStructure.properties filled with relevant data for frame_properties -- More properties added to JOutStructure.site_properties ## Todos
    • Remove class attributes in JOutStructure now redundant to data stored in JOutStructure.properties and JOutStructure.site_properties
  • PR #4431 Single source of truth for POTCAR directory structure by @esoteric-ephemera Modifies the pymatgen CLI to use the same POTCAR library directory structure as in pymatgen.io.vasp.inputs to close #4430. Possibly breaking from the CLI side (the directory structure will change) Pinging @mkhorton since #4424 was probably motivated by similar concerns?
  • PR #4433 Speed up symmetry functions with faster is_periodic_image algorithm by @kavanase I noticed that in some of our doped testing workflows, SpacegroupAnalyzer.get_primitive_standard_structure() is one of the main bottlenecks (as to be expected). One of the dominant cost factors here is the usage of is_periodic_image, which can be expensive for large structures due to many np.allclose() calls. This PR implements a small change to instead use an equivalent (but faster) pure Python loop, which also breaks early if the tolerance is exceeded. In my test case, this reduced the time spent on is_periodic_image (and thus SpacegroupAnalyzer.get_primitive_standard_structure()) from 35s to 10s.
  • PR #4432 Fingerprint sources by @JaGeo Add correct papers to tanimoto fingerprints
  • PR #4061 Fix branch directory check in io.vasp.outputs.get_band_structure_from_vasp_multiple_branches by @DanielYang59 ### Summary
    • Fix branch directory check in io.vasp.outputs.get_band_structure_from_vasp_multiple_branches, to fix #4060
    • [ ] Improve unit test (waiting for data, I don't have experience with "VASP multi-branch bandstructure calculation")
  • PR #4409 Packmol constraints by @davidwaroquiers Added possibility to set individual constraints in packmol. Added some sanity checks. Added unit tests.
  • PR #4428 Fixes a bug in NanoscaleStability.plot_one_stability_map and plot_all_stability_map. by @kmu Major changes:
    • Replaced incorrect ax.xlabel() and ax.ylabel() calls with correct ax.set_xlabel() and ax.set_ylabel().
    • Added ax.legend() to plot_all_stability_map so that labels passed via ax.plot(..., label=...) are displayed.
    • Added test_plot() to test_surface_analysis.py.
  • PR #4424 Add additional name mappings for new LDA v64 potcars by @mkhorton As title.
  • PR #4426 Fix uncertainty as int for EnergyAdjustment by @DanielYang59
    • Avoid == or != for possible float comparison
    • Fix uncertainty as int for EnergyAdjustment cannot generate repr: python from pymatgen.entries.computed_entries import EnergyAdjustment print(EnergyAdjustment(10, uncertainty=0)) Gives: Traceback (most recent call last): File "/Users/yang/developer/pymatgen/test_json.py", line 25, in <module> print(EnergyAdjustment(10, uncertainty=0)) File "/Users/yang/developer/pymatgen/src/pymatgen/entries/computed_entries.py", line 108, in __repr__ return f"{type(self).__name__}({name=}, {value=:.3}, {uncertainty=:.3}, {description=}, {generated_by=})" ^^^^^^^^^^^^^^^^^ ValueError: Precision not allowed in integer format specifier
  • PR #4421 Cache Lattice property (lengths/angles/volume) for much faster Structure.as_dict by @DanielYang59 ### Summary
    • lengths/angles/volume of Lattice would now be cached, related to #4385

    - verbosity in as_dict of PeriodicSite/Lattice now explicitly requires literal 0 or 1 to be consistent with docstring, instead of checking if verbosity > 0 (currently in grace period, only warning issued) https://github.com/materialsproject/pymatgen/blob/34608d0b92166e5fc4a9dd52ed465ae7dccfa525/src/pymatgen/core/lattice.py#L904-L905

    Cache frequently used Lattice properties

    Currently length/angles/volume is not cached and is frequently used, for example accessing all lattice parameter related property would lead to length/angles being repeatedly calculated: https://github.com/materialsproject/pymatgen/blob/34608d0b92166e5fc4a9dd52ed465ae7dccfa525/src/pymatgen/core/lattice.py#L475-L524 structure.as_dict now around 8x faster Before (1000 structure, each has 10-100 atoms): ``` Total time: 3.29617 s File: createdummpjsonstructure.py Function: generateandsavestructures at line 34

    Line # Hits Time Per Hit % Time Line Contents

    34 @profile 35 def generateandsavestructures(n, outputdir): 36 1 20.0 20.0 0.0 os.makedirs(outputdir, existok=True) 37 38 1001 222.0 0.2 0.0 for i in range(n): 39 1000 291789.0 291.8 8.9 structure = generatedummystructure() 40 1000 583.0 0.6 0.0 filename = f"structure{i:04d}.json.gz" 41 1000 1942.0 1.9 0.1 filepath = os.path.join(outputdir, filename) 42 43 2000 224549.0 112.3 6.8 with gzip.open(filepath, "wb") as f: 44 1000 2761900.0 2761.9 83.8 dct = structure.asdict() 45 1000 15163.0 15.2 0.5 f.write(orjson.dumps(dct)) Now: Total time: 0.949622 s File: createdummpjsonstructure.py Function: generateandsave_structures at line 34

    Line # Hits Time Per Hit % Time Line Contents

    34 @profile 35 def generateandsavestructures(n, outputdir): 36 1 37.0 37.0 0.0 os.makedirs(outputdir, existok=True) 37 38 1001 195.0 0.2 0.0 for i in range(n): 39 1000 286696.0 286.7 30.2 structure = generatedummystructure() 40 1000 511.0 0.5 0.1 filename = f"structure{i:04d}.json.gz" 41 1000 1843.0 1.8 0.2 filepath = os.path.join(outputdir, filename) 42 43 2000 214130.0 107.1 22.5 with gzip.open(filepath, "wb") as f: 44 1000 431677.0 431.7 45.5 dct = structure.as_dict() 45 1000 14533.0 14.5 1.5 f.write(orjson.dumps(dct))

    ```

    Also note lattice (the performance bottleneck) is not used in the dict for site: https://github.com/materialsproject/pymatgen/blob/34608d0b92166e5fc4a9dd52ed465ae7dccfa525/src/pymatgen/core/structure.py#L2856-L2857 So we could modify as_dict to control whether lattice would be generated at all This could reduce the runtime slightly so I guess it's not worth the effort: Total time: 0.867376 s

  • PR #4391 Add custom asdict/fromdict method for proper initialization of attributes of IcohpCollection by @naik-aakash Currently IcohpCollection instance is not serialized correctly, thus I added custom fromdict and asdict methods here.

- Python
Published by shyuep 12 months ago

pymatgen - v2025.5.28

  • PR #4411 Add orjson as required dependency as default JSON handler when custom encoder/decoder is not needed by @DanielYang59
  • PR #4417 adding radd dunder method to Volumetric data + test_outputs by @wladerer
  • PR #4418 JDFTXOutfileSlice Durability Improvement by @benrich37 Major changes:
    • feature 1: Improved durability of JDFTXOutfileSlice._from_out_slice method (less likely to error out on unexpected termination) -- So long as one step of electronic minimization has started on an out file slice, parsing shouldn't error out
    • fix 1: Allow partially dumped eigstats
    • fix 2: Added missing optical band gap dumped by eigstats
    • fix 3: Protect the final JOutStructure in initializing a JOutStructures with a try/except block
    • fix 4: Detect if positions were only partially dumped and revert to data from init_structure in JOutStructure
    • fix 5: Prevent partially dumped matrices from being used in initializing a JOutStructure ## Todos
    • feature 1: Ensure parse-ability as long as a JDFTXOutfileSlice.infile can be initialized
  • PR #4419 Fix Molecule.getboxedstructure when reorder=False by @gpetretto
  • PR #4416 JDFTXInfile Comparison Methods by @benrich37 Major changes:
    • feature 1: Convenience methods for comparing JDFTXInfile objects -- JDFTXInfile.is_comparable_to --- Returns True if at least one tag is found different --- Optional arguments exclude_tags, exclude_tag_categories, ensure_include_tags to ignore certain tags in the comparison ---- exclude_tag_categories defaults to ["export", "restart", "structure"] as "export" and "restart" are very rarely pertinent to comparability, "structure" as subtags of this category are generally the one thing being intentionally changed in comparisons (ie different local minima or a slab with/without an adsorbate) -- JDFTXInfile.get_filtered_differing_tags --- What is used in JDFTXInfile.is_comparable_to to get filtered differing tags between JDFTXInfile objects --- Convenient as a "verbose" alternative to JDFTXInfile.is_comparable_to -- AbstractTag.is_equal_to and AbstractTag._is_equal_to --- Used in tag comparison for finding differing tags --- AbstractTag._is_equal_to is an abstract method that must be implemented for each AbstractTag inheritor
    • feature 2: Default JDFTXInfile object pymatgen.io.jdftx.inputs.ref_infile -- Initialized from reading default JDFTx settings from pymatgen.io.jdftx.jdftxinfile_default_inputs.default_inputs: dict -- Used in JDFTXInfile.get_differing_tags_from for tags in self missing from other that are identical to the default setting
    • fix 1: Re-ordered contents of JDFTXInfile to follow the order: magic methods -> class methods / transformation methods -> validation methods -> properties -> private methods
    • fix 2: Checking for 'selective_dynamics' in site_properties for a Structure passed in JDFTXInfile.from_structure (used if selective_dynamics argument left as None) ## Todos
    • feature 1: Add examples to documentation on how to properly use new comparison methods
    • feature 2: Improve the mapping of TagContainers to their default values -- The current implementation of comparison for tags to default values only works if the tag as written exactly matches the full default value - at the very least the missing subtags of a partially filled TagContainer needs to be filled with the default values before comparing to the full default value -- Some subtags also change depending on the other subtags present for a particular tag (ie convergence threshold depending on algorithm specified for 'fluid-minimize', so an improved mapping for dynamic default values needs to be implemented
  • PR #4413 JDFTXOutputs.bandstructure: BandStructure by @benrich37 Major changes:
    • feature 1: Added 'kpts' storable variable to JDFTXOutputs -- Currently only able to obtain from the 'bandProjections' file
    • feature 2: Added bandstructure attribute to JDFTXOutputs -- Standard pymatgen BandStrucure object -- Request-able as a store_var, but functions slightly differently --- Ensures 'eigenvals' and 'kpts' are in store_vars and then is deleted -- Initialized if JDFTXOutputs has successfully stored at least 'kpts' and 'eigenvals' -- Fills projections field if also has stored 'bandProjections'
    • feature 3: Added wk_list to JDFTXOutputs -- List of weights for each k-point -- Currently doesn't have a use, but will be helpful for ElecData initializing in crawfish ## Todos
    • feature 1: Add reading 'kpts' from the standalone 'kPts' file dumped by JDFTx
    • feature 2: Outline how we might initialize BandStructureSymmLine(s) for calculations with explicitly defined 'kpoint' tags, as using 'kpoint's instead of kpoint-folding is most likely an indicator of a band-structure calculation
  • PR #4415 speed-up Structure instantiation by @danielzuegner This PR speeds up the instantiation of Structure objects by preventing hash collisions in the lru_cache of get_el_sp and increasing its maxsize. The issue is that currently Element objects are hashed to the same value as the integer atomic numbers (e.g., Element[H] maps to the same hash as int(1)). This forces the lru_hash to perform an expensive __eq__ comparison between the two, which reduces the performance of instantiating many Structure objects. Also here we increase the maxsize of get_el_sp's lru_cache to 1024 for further performance improvements. This reduces time taken to instantiate 100,000 Structure objects from 31 seconds to 8.7s (avoid hash collisions) to 6.1s (also increase maxsize to 1024).
  • PR #4410 JDFTx Inputs - boundary value checking by @benrich37 Major changes:
    • feature 1: Revised boundary checking for input tags -- Added a validate_value_bounds method to AbstractTag, that by default always returns True, "" -- Added an alternate AbstractNumericTag that inherits AbstractTag to implement validate_value_bounds properly --- Changed boundary storing to the following fields ---- ub and lb ----- Can either be None, or some value to indicate an upper or lower bound ---- ub_incl and lb_incl ----- If True, applies >= instead of > in comparative checks on upper and lower bounds -- Switched inheritance of FloatTag and IntTag from AbstractTag to AbstractNumericTag -- Implemented validate_value_bounds for TagContainer to dispatch checking for contained subtags -- Added a method validate_boundaries to JDFTXInfile to run validate_value_bounds on all contained tags and values -- Added validate_value_boundaries argument for initialization methods of JDFTXInfile, which will run validate_boundaries after initializing JDFTXInfile but before returning when True --- Note that this is explicitly disabled when initializing a JDFTXInfile from the input summary in a JDFTXOutfileSlice - boundary values may exist internally in JDFTx for non-inclusive bounded tags as the default values, but cannot be passed in the input file. For this reason, errors on boundary checking must be an easily disabled feature for the construction and manipulation of a JDFTXInfile, but out-of-bounds values must never be written when writing a file for passing to JDFTx. ## Todos
    • feature 1 -- Implement some way boundary checking can run when adding tags to a pre-existing JDFTXInfile object --- boundary checking is currently only run when initializing from a pre-existing collection of input tags --- writing this into JDFTXInfile.__setitem__ is too extreme as it would require adding an attribute to JDFTXInfile to allow disabling the check --- the better solution would be to implement a more obvious user-friendly method for reading in additional inputs so that the user doesn't need to learn how to properly write out the dictionary representation of complicated tag containers. -- Fill out reference tags for other unimplemented boundaries
  • PR #4408 to_jdftxinfile method for JDFTXOutfile by @benrich37 Major changes:
    • feature 1: Method to_jdftxinfile for JDFTXOutfile(Slice) -- Uses internal JDFTXInfile and Structure to create a new JDFTXInfile object that can be ran to restart a calculation
    • feature 2: Method strip_structure_tags for JDFTXInfile -- Strips all structural tags from a JDFTXInfile for creating equivalent JDFTXInfile objects with updated associated structures
    • fix 1: Changing 'nAlphaAdjustMax' shared tag from a FloatTag to an IntTag
    • fix 2: Adding an optional minval field for certain FloatTags which prevent writing error-raising values -- Certain tag options in JDFTx can internally be the minimum value, but trying to pass the minimum value will raise an error ## Todos
    • feature 1: Testing for the to_jdftxinfile -- I know the function works from having used it, but I haven't written in an explicit test for it yet.
    • fix 2: Look through JDFTx source code and identify all the numeric tag value boundaries and add them to the FloatTag. This will likely require generalizing how boundaries are tested as a quick glance (see here) shows there are tags that actually do use the >= operator
    • Unrelated: Reduce bloat in outputs module -- Remove references to deprecated fields -- Begin phasing out redundant fields --- i.e. JDFTXOutfile.lattice redundant to JDFTXOutfile.structure.lattice.matrix -- Generalize how optimization logs are stored in outputs module objects --- Fields like grad_K are part of a broad group of values that can be logged for an optimization step, and the fields present in each log varies a lot more than I previously thought when I initially wrote the JDFTx outputs module. Generalizing how these are stored into a dictionary of arbitrary keys should make the outputs module more robust, as well as helping reduce the bloat in the outputs module.
  • PR #4407 JDFTXInfile addition (__add__) method tweak by @benrich37 Changing addition method - now infiles with shared keys will either concatenate their inputs if the key is for a repeatable tag, or change to whatever value is in the second infile if it is not a repeatable tag. A bare minimum if subval in params[key] check is done to avoid adding duplicate values. This seems like something the set built-in could help with, but since the sub-values are dictionaries, using set is a little more difficult Major changes:
    • fix 1: Addition of two JDFTXInfiles (jif1 = jif2 + jif3) no longer requires each jif2 and jif3 to have a unique set of tags -- For a non-repeatable tag 'key', jif1['key'] == jif3['key'] -- For a repeatable-tag 'key', jif1['key'] = jif2['key'] + [val for val in jif3['key'] if not val in jif2['key'] -- implemented in src/pymatgen/io/jdftx/inputs.py -- tested in tests/io/jdftx/test_jdftxinfile.py --- error raising test for conflicting tag values removed ## Todos
    • fix 1: Add more robust checking for if two repeatable tag values represent the same information. -- This is likely fixed by implementing the pre-existing TODO - "Add default value filling like JDFTx does"
    • fix 2: Incorporate something to collapse repeated dump tags of the same frequency into a single value. -- The 'dump' tag currently can get bloated very quickly, as the newly implemented change for concatenating two repeatable tags will not detect that something like {"End": {"State": True}} is technically already in a list that contains something like {"End": {"State": True, "Berry": True}} -- A cleanup function that can convert {'dump': [{"End": {"State": True, "BGW": True}}, {"End": {"State": True, "Berry": True}}] into {'dump': [{"End": {"State": True, "BGW": True, "Berry": True}}] would fix this bloat risk
  • PR #4404 Monoclinic Symmetry Handling Fix by @kavanase This issue is related to https://github.com/materialsproject/pymatgen/issues/1929 (for which a patch solution was added that fixed one case of this occurrence, but not in general). When handling monoclinic symmetry within SpacegroupAnalyzer, the standardisation attempts to reorder the lattice vectors depending on whether the alpha angle is >90 degrees or <90 degrees. If it is exactly 90 degrees, it defaults to the original lattice, however there was an issue with this implementation where it assumed that the beta and gamma angles were also 90 degrees (and so set the lattice matrix as [[a, 0, 0], [0, b, 0], [0, 0, c]]), which may not (and in most cases should not) be the case. This was causing weird behaviour for me where the volume of the primitive structures being returned by SpacegroupAnalyzer was different to Structure.find_primitive() (by a non-integer factor). I've added a test for this case, and also confirmed that the general implementation here works for the failure case noted in https://github.com/materialsproject/pymatgen/issues/1929
  • PR #4406 UFloat update by @kavanase This is a minor addition to https://github.com/materialsproject/pymatgen/pull/4400. I found that there were some cases where an energy adjustment of UFloat(0, 0) were already present in ComputedEntry.energy_adjustments, avoiding the updated handling of setting std_dev to np.nan when it is 0 (and avoiding the UFloat warning about std_dev being 0).
  • PR #4403 Ensure structure symmetrization in OrderDisorderedStructureTransformation by @esoteric-ephemera Close #4402 by ensuring that structures are always symmetrized when symmetrized_structures = True in OrderDisorderedStructureTransformation. Also allow for passing distance/angle precision kwargs to do on-the-fly symmetrization. Add tests
  • PR #4401 JDFTXStructure - partial fix for special case lattice tags by @benrich37 Major changes:
    • fix 1: pymatgen.io.jdftx.inputs.JDFTXStructure -- JDFTXStructure.from_jdftxinfile no longer assumes 'lattice' tag is provided in 3x3 matrix format -- Testing in tests/io/jdftx/test_jdftxinfile.py for Structure <-> JDFTXStructure <-> JDFTXInfile conversion for JDFTXInfile with newly implemented special case values for 'lattice' tag TODO:
    • Implement JDFTXStructure.from_jdftxinfile for JDFTXInfile with special case tag 'lattice' value and non-identity value for 'latt-scale' tag
  • PR #4400 Use np.nan instead of 0 for no uncertainty with ufloat, to avoid unnecessary warnings by @kavanase Closes #4386
  • PR #4399 JDFTXOutfile none_on_error oversight fix by @benrich37
    • Fixing an error in pymatgen/io/jdftx/outputs.py that causes construction of a JDFTXOutfile to fail if noneonerror is turned on and the final JDFTXOutfileSlice in slices is None (ie a very common issue when parsing an interrupted job that hasn't restarted yet).
  • PR #4397 JDFTx IO Module Overhaul by @benrich37
    • Revised typing for updated mypy criteria
    • Support for parsing JDFTx AIMD files
    • Expanded input tag support
  • PR #4394 Updates to JDFTx inputs generic_tags helper module by @benrich37 Major changes:
    • Phasing out use of redundant TagContainer.multiline_tag attribute -- (this change may cause problems without the corresponding changes in jdftxinfile_master_format.py, but all the tests still pass. Just in case, I will be prioritizing finishing merges for the JDFTx inputs module to avoid any untested consequences)
    • Fixing indentation on output of TagContainer.write
    • Removing the warning (and the test for this warning) on special constraints for "ion" tag -- Support for special constraints has been implemented on my fork and a PR for this support will soon be created
  • PR #4392 Brute force order matcher speedup by @kavanase This is a small PR to add a break_on_tol option to BruteForceOrderMatcher, which allows one to massively speed up the molecule matching in cases where one just cares if the molecules match within a given RMSD (rather than screening over all possible permutations, to get the lowest possible RMSD). The speedup factor can be anywhere from 0% to several orders of magnitude, depending on the number of possible permutations and when a matching permutation is found. Also includes a small typo fix that for an error message that reference the original class name (in https://github.com/materialsproject/pymatgen/pull/1938) which was later renamed. I've also added some tests for this.
  • PR #4393 Update JDFTx IO output utils private module by @benrich37 Major changes:
    • function get_colon_var_t1 -- Renaming to get_colon_val, but keeping an alias until renaming is updated outside this module -- Returning np.nan instead of None when "nan" is the value
    • updating correct_geom_opt_type for working with JDFTx AIMD out files
    • updating typing on array-construction functions
    • correcting ordering and syntax of orbital labels to exactly match JDFTx
  • PR #4389 Adding missing reference options to JDFTx inputs submodule by @benrich37 Beginning process of merging over stress-test updates, starting with missing options for JDFTx input files
    • Added missing DFT functional names
    • Added missing subtags for elec-minimize

- Python
Published by shyuep about 1 year ago

pymatgen - v2025.5.2

  • Remove lxml since it is slower for many Vasprun parsing situations.

- Python
Published by shyuep about 1 year ago

pymatgen - v2025.5.1

  • lxml is now used for faster Vasprun parsing.
  • Minor bug fix for MPRester.getentries summarydata for larger queries.
  • New JSON for ptable with better value/unit handling (also slightly faster) (@DanielYang59)
  • Handle missing trailing newline in ICOHPLIST.lobster (@alibh95)
  • Updated MVLSlabSet with MPSurfaceSet parameters from atomate1 (@abhardwaj73)

- Python
Published by shyuep about 1 year ago

pymatgen - v2025.4.24

  • Structure now has a calc_property method that enables one to get a wide range of elasticity, EOS, and phonon properties using matcalc. Requires matcalc to be installed.
  • Bug fix and expansion of pymatgen.ext.matproj.MPRester. Now propertydata is always consistent with the returned entry in getentries. Summary data, which is not always consistent but is more comprehensive, can be obtained via a summary_data kwarg.
  • PR #4378 Avoid merging if a structure has only one site by @kmu This PR fixes an error that occurs when calling merge_sites on a structure with only one site. For example:
  • PR #4372 Reapply update to ptable vdw radii CSV source and JSON with CRC handbook by @DanielYang59
    • Update ptable vdw radii CSV source, to fix #4370
    • [x] Revert #4345 and apply changes to CSV vdw radii data source: > John R. Rumble, ed., CRC Handbook of Chemistry and Physics, 105th Edition (Internet Version 2024), CRC Press/Taylor & Francis, Boca Raton, FL. > If a specific table is cited, use the format: "Physical Constants of Organic Compounds," in CRC Handbook of Chemistry and Physics, 105th Edition (Internet Version 2024), John R. Rumble, ed., CRC Press/Taylor & Francis, Boca Raton, FL.

- Python
Published by shyuep about 1 year ago

pymatgen - v2025.4.20

  • Updated perturb method to be in parity for Structure and Molecule.
  • PR #4226 Fix file existence check in ChargemolAnalysis to verify directory instead. by @lllangWV
  • PR #4324 GibbsComputedStructureEntry update to handle float temperature values by @slee-lab
  • PR #4303 Fix mcl kpoints by @dgaines2 Fixed errors in two of the k-points for the MCL reciprocal lattice (according to Table 16 in Setyawan-Curtarolo 2010) M2 and D1 aren't included in the recommended k-point path, but third-party software that plots k-point paths using pymatgen labelled M2 in the path instead of M1 due to it being the "same" k-point.
  • PR #4344 Update "electron affinities" in periodic_table.json by @DanielYang59
  • PR #4365 Python 3.13 support by @DanielYang59

- Python
Published by shyuep about 1 year ago

pymatgen - v2025.4.19

  • MPRester.getentries and getentriesinchemsys now supports propertydata. incstructure, conventional_only and
  • PR #4367 fix perturb bug that displaced all atoms equally by @skasamatsu
  • PR #4361 Replace pybtex with bibtexparser by @DanielYang59
  • PR #4362 fix(MVLSlabSet): convert DIPOL vector to pure Python list before writing INCAR by @atulcthakur
  • PR #4363 Ensure actual_kpoints_weights is list[float] and add test by @kavanase
  • PR #4345 Fix inconsistent "Van der waals radius" and "Metallic radius" in core.periodic_table.json by @DanielYang59
  • PR #4212 Deprecate PymatgenTest, migrate tests to pytest from unittest by @DanielYang59

- Python
Published by shyuep about 1 year ago

pymatgen - v2025.4.17

  • Bug fix for list based searches in MPRester.

- Python
Published by shyuep about 1 year ago

pymatgen - v2025.4.16

  • Major new feature and breaking change: Legacy MP API is no longer supported. Pymatgen also no longer support mp-api in the backend. Instead, Pymatgen's MPRester now has nearly 100% feature parity with mp-api's document searches. One major difference is that pymatgen's MPRester will follow the documented REST API end points exactly, i.e., users just need to refer to https://api.materialsproject.org/docs for the exact field names.
  • PR #4360 Speed up Vasprun parsing by @kavanase
  • PR #4343 Drop duplicate iupac_ordering entries in core.periodic_table.json by @DanielYang59
  • PR #4348 Remove deprecated grain boundary analysis by @DanielYang59
  • PR #4357 Fix circular import of SymmOp by @DanielYang59

- Python
Published by shyuep about 1 year ago

pymatgen - v2025.4.10

  • Parity with MPRester.materials.summary.search in MPResterBasic.
  • PR #4355 Fix round-trip constraints handling of AseAtomsAdaptor by @yantar92
    • src/pymatgen/io/ase.py (AseAtomsAdaptor.get_structure): When no explicit constraint is given for a site in ASE Atoms object, use "T T T" selective dynamics (no constraint). The old code is plain wrong.
    • tests/io/testase.py (testback_forth): Add new test case. Fixes #4354. Thanks to @yaoyi92 for reporting!
  • PR #4352 Replace to_dict with as_dict by @DanielYang59
    • Deprecate to_dict with as_dict, to close #4351
    • Updated contributing.md to note preferred naming convention
    • [x] Regenerate docs The recent additional of JDFTx IOs have a relatively short grace period of 6 months, and others have one year
  • PR #4342 Correct Mn "ionic radii" in core.periodic_table.json by @DanielYang59
    • Correct Mn "ionic radii" in core.periodic_table.json Our csv parser should copy the high spin ionic radii to the base entry: image https://github.com/materialsproject/pymatgen/blob/4c7892f5c9dcc51a1389b3ad2ada77632989a13e/devscripts/updatept_data.py#L84-L87
  • PR #4341 Remove "Electrical resistivity" for Se as "high" by @DanielYang59 ### Summary
    • Remove "Electrical resistivity" for Se as "high", to fix #4312 Current the data for Electrical resistivity of Se is "high" (with 10<sup>-8</sup> &Omega; m as the unit), and our parser would interpret it to: python from pymatgen.core import Element print(Element.Se.electrical_resistivity) # 1e-08 m ohm This is the only data as "high" in periodic_table.json AFAIK. After this, it would be None with a warning: /Users/yang/developer/pymatgen/debug/test_elements.py:3: UserWarning: No data available for electrical_resistivity for Se print(Element.Se.electrical_resistivity) None
  • PR #4334 Updated Potentials Class in FEFF io to consider radius by @CharlesCardot Changed the Potentials class to consider the same radius that is used in the Atoms class. This is necessary to avoid a situation where the radius is small enough to only have a subset of the unique elements in a structure, but all the elements have potentials defined, which causes FEFF to fail when run. Major changes:
    • fix 1: Previous behavior: When creating a FEFFDictset using the feff.io tools, the potentials class defined a potential for every unique element in a structure, while the atoms class defined an atom coordinate for every atom in a radius around the absorbing atom. If the radius was defined to be small, only a subset of the unique atoms in the structure would be included in the atom class. New behavior: Updated the potentials class to only create potentials for atoms inside the radius specified when creating a FEFFDictset. Without this, a too small radius for a structure with unique elements outside of that radius would cause FEFF to fail, given that there was a Potential defined for an element that did not exist in the Atoms flag. ## Todos None, the work is complete
  • PR #4068 Fix monty imports, enhance test for Outcar parser to cover uncompressed format by @DanielYang59 ### Summary
    • Test monty fix for reverse readline, close #4033 and close #4237
    • Replace reverse_readline with faster reverse_readfile
    • Fix incorrect monty imports
    • [x] Enhance unit test for reported Outcar parser (need to test unzipped format)
  • PR #4331 Optimized cube file parsing in fromcube for improved speed by @OliMarc # Summary ### Major Changes: This PR enhances the `fromcubefunction inio.common.VolumetricDatato significantly improve performance. When processing large.cubefiles, the original implementation took minutes to read and set Pymatgen objects. The optimized version incorporates several key improvements: file reading is now handled withreadlines()instead of multiplereadline()calls, reducing I/O operations. Voxel data parsing has been rewritten to use NumPy vectorized parsing instead of loops, making numerical processing faster. Atom site parsing has been improved by replacing the loop-basedreadline()approach with list comprehensions. Additionally, volumetric data parsing now leveragesnp.fromstring()` instead of converting lists to NumPy arrays.
  • PR #4329 Add protostructure and prototype functions from aviary by @CompRhys Adds functions to get protostructure labels from spglib, moyo and aflow-sym. This avoids users who wish to use this functionality from needing to download aviary to use these functions.
  • PR #4321 [Breaking] from_ase_atoms constructor for (I)Structure/(I)Molecule returns the corresponding type by @DanielYang59 ### Summary
    • Fix from_ase_atoms for Molecule, to close #4320
    • [x] Add tests
  • PR #4296 Make dict representation of SymmetrizedStructure MSONable by @DanielYang59 ### Summary
    • Make dict representation of SymmetrizedStructure MSONable, to fix #3018
    • [x] Unit test
  • PR #4323 Tweak POSCAR / XDATCAR to accommodate malformed files by @esoteric-ephemera Related to this matsci.org issue: sometimes the XDATCAR can be malformed because fortran uses fixed format floats when printing. In those cases, there's no space between coordinates: Direct configuration= 2 -0.63265286-0.11227753 -0.15402785 -0.12414874 -0.01213420 -0.28106824 ... In some cases, this issue is reparable (a negative sign separates coordinates). This PR implements a fix when it is reparable and adds a few Trajectory-like convenience features to Xdatcar

- Python
Published by shyuep about 1 year ago

pymatgen - v2025.3.10

  1. 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.
  2. PR #4319 - Update abitimer in io.abinit by @gpetretto

    • Fixes parsing issues for newer versions of Abinit.
    • Updates compatibility with pandas > 2 and includes test files for validation.
  3. PR #4315 - Patch to allow pyzeo integration by @daniel-sintef

    • Provides a patch to swap out zeo++ with pyzeo, which is a more actively maintained version.
  4. PR #4281 - Add method to get the Pearson symbol to SpaceGroupAnalyzer by @CompRhys

    • Introduced a new method to retrieve the Pearson Symbol in SpaceGroupAnalyzer.
  5. PR #4295 - Pass kwargs to IStructure.to method in JSON format by @DanielYang59

    • Provides finer control over json.dumps behavior during format conversion.
  6. PR #4306 - IStructure.to defaults to JSON when filename is unspecified by @DanielYang59

    • Adjusts default file output behavior to JSON.
  7. PR #4297 - Bugfix for Structure/ase.Atoms interconversion by @wolearyc

    • Ensures deep copying to avoid shared memory issues between Atoms.info and Structure.properties.
  8. PR #4304 - MagneticStructureEnumerator: Expose max_orderings argument by @mkhorton

    • Makes max_orderings configurable via keyword argument.
  9. PR #4299 - Update inequality in get_linear_interpolated_value by @kavanase

    • Fixes interpolation logic to handle edge cases more robustly.

- Python
Published by shyuep about 1 year ago

pymatgen - v2025.2.18

  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

- Python
Published by shyuep over 1 year ago

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

- Python
Published by shyuep over 1 year ago

pymatgen - v2025.1.23

  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.

- Python
Published by shyuep over 1 year ago

pymatgen - v2025.1.9

  • Iterating Element no longer contains isotopes (D and T). (@DanielYang59)
  • Remove israreearth_metal from ElementBase (@jdewasseigeosium)
  • Fix DOS parsing for SOC calculations (@kavanase)
  • Added Pure Random Algo to OrderDisorderedStructureTransformation (@jmmshn)
  • Fix ion formula check in ionorsolidcompobject of analysis.pourbaix_diagram (@DanielYang59)
  • AseAtomsAdaptor: Support arbitrary selective dynamics constraints (@yantar92)
  • Explicit UTF-8 encoding for zopen and open. (@DanielYang59)

- Python
Published by shyuep over 1 year ago

pymatgen - v2024.11.13

  • CP2K fixes (@janosh)
  • Fix borg.hive.SimpleVaspToComputedEntryDrone.assimilate ValueError when core file missing (@DanielYang59)
  • Revert breaking analysis.localenv defaultopparams/cnopt_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)

- Python
Published by shyuep over 1 year ago

pymatgen - 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.getincartags: Use Mediawiki API (@yantar92)
  • Fix comment pass in Kpoints constructors (@DanielYang59)

- Python
Published by shyuep over 1 year ago

pymatgen - v2024.10.27

  • Bug fix for parsing of dielectric calculations from vasprun.xml.

- Python
Published by shyuep over 1 year ago

pymatgen - v2024.10.25

  • VaspDir now supports nest directories. Also, supports non-object string returns.
  • Bug fix for parsing of BSE vaspruns.xml.

- Python
Published by shyuep over 1 year ago

pymatgen - 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 usestructurecharge 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)

- Python
Published by shyuep over 1 year ago

pymatgen - v2024.10.3

  • 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)

- Python
Published by shyuep over 1 year ago

pymatgen - v2024.9.17.1

  • Emergency release No. 2 to fix yet another regression in chempot diagram. (Thanks @yang-ruoxi for fixing.)

- Python
Published by shyuep over 1 year ago

pymatgen - v2024.9.17

  • Emergency release to fix broken phase diagram plotting due to completely unnecessary refactoring. (Thanks @yang-ruoxi for fixing.)

- Python
Published by shyuep over 1 year ago

pymatgen - v2024.9.10

💥 Breaking: NumPy/Cython integer type changed from np.long/np.int_ to int64 on Windows to align with NumPy 2.x, changing the default integer type to int64 on Windows 64-bit systems in favor of the platform-dependent np.int_ type. Recommendation: Please explicitly declare dtype=np.int64 when initializing a NumPy array if it's passed to a Cythonized pymatgen function like find_points_in_spheres. You may also want to test downstream packages with NumPy 1.x on Windows in CI pipelines.

🛠 Enhancements

  • Formatting customization for PWInput by @jsukpark in https://github.com/materialsproject/pymatgen/pull/4001
  • DOS Fingerprints enhancements by @naik-aakash in https://github.com/materialsproject/pymatgen/pull/3946
  • Add HSE-specific vdW parameters for dftd3 and dftd3-bj to MPHSERelaxSet. by @hongyi-zhao in https://github.com/materialsproject/pymatgen/pull/3955
  • Add VASP setting for the dftd4 vdW functional and extend PBE_64 support. by @hongyi-zhao in https://github.com/materialsproject/pymatgen/pull/3967
  • Add SOC & multiple PROCAR parsing functionalities by @kavanase in https://github.com/materialsproject/pymatgen/pull/3890
  • Add modification to aims input to match atomate2 magnetic order script by @tpurcell90 in https://github.com/materialsproject/pymatgen/pull/3878

🐛 Bug Fixes

  • Ion: fix CO2- and I3- parsing errors; enhance tests by @rkingsbury in https://github.com/materialsproject/pymatgen/pull/3991
  • Fix ruff PD901 and prefer sum over len+if by @janosh in https://github.com/materialsproject/pymatgen/pull/4012
  • Explicitly use int64 in Numpy/cython code to avoid OS inconsistency by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3992
  • Update FermiDos.get_doping() to be more robust by @kavanase in https://github.com/materialsproject/pymatgen/pull/3879
  • Fix missing /src in doc links to source code by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4032
  • Fix LNONCOLLINEAR match in Outcar parser by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4034
  • Fix in-place VaspInput.incar updates having no effect if incar is dict (not Incar instance) by @janosh in https://github.com/materialsproject/pymatgen/pull/4052
  • Fix typo in Cp2kOutput.parse_hirshfeld add_site_property("hirshf[i->'']eld") by @janosh in https://github.com/materialsproject/pymatgen/pull/4055
  • Fix apply_operation(fractional=True) by @kavanase in https://github.com/materialsproject/pymatgen/pull/4057

💥 Breaking Changes

  • Pascal-case PMG_VASP_PSP_DIR_Error by @janosh in https://github.com/materialsproject/pymatgen/pull/4048

📖 Documentation

  • Docstring tweaks for io.vasp.inputs and format tweaks for some other parts by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3996
  • Replace HTTP URLs with HTTPS, avoid from pytest import raises/mark by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4021
  • Fix incorrect attribute name in Lobster.outputs.Cohpcar docstring by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4039

🧹 House-Keeping

  • Use strict=True with zip to ensure length equality by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4011

🚀 Performance

  • add LRU cache to structure matcher by @kbuma in https://github.com/materialsproject/pymatgen/pull/4036

🚧 CI

  • Install optional boltztrap, vampire and openbabel in CI by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3985

💡 Refactoring

  • Make AimsSpeciesFile a dataclass by @tpurcell90 in https://github.com/materialsproject/pymatgen/pull/4054

🧪 Tests

  • Remove the skip mark for test_delta_func by @njzjz in https://github.com/materialsproject/pymatgen/pull/4014
  • Recover commented out code in tests and mark with pytest.mark.skip instead by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4027
  • Add unit test for io.vasp.help by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4020

🧹 Linting

  • Fix failing ruff PT001 on master by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4003
  • Fix fixable ruff rules by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4015
  • Fix S101, replace all assert in code base (except for tests) by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4017
  • Fix ruff PLC0206 and PLR6104 by @janosh in https://github.com/materialsproject/pymatgen/pull/4035

🏥 Package Health

  • Drop Python 3.9 support by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4009 (min supported Python is now 3.10 following numpy)
  • Avoid importing namespace package pymatgen directly by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4053

🏷️ Type Hints

  • Set kpoints in from_str method as integer in auto Gamma and Monkhorst modes by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3994
  • Improve type annotations for io.lobster.{lobsterenv/outputs} by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3887

🤷‍♂️ Other Changes

  • VaspInputSet.write_input: Improve error message by @yantar92 in https://github.com/materialsproject/pymatgen/pull/3999

New Contributors

  • @yantar92 made their first contribution in https://github.com/materialsproject/pymatgen/pull/3999
  • @kbuma made their first contribution in https://github.com/materialsproject/pymatgen/pull/4036

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2024.8.9...v2024.9.10

- Python
Published by janosh over 1 year ago

pymatgen - v2024.8.9

  • Revert bad split of sets.py, which broke downstream code.

    🎉 New Features

  • Add multiwfn QTAIM parsing capabilities by @espottesmith in https://github.com/materialsproject/pymatgen/pull/3926

🐛 Bug Fixes

  • Fix chemical system method for different oxidation states by @danielzuegner in https://github.com/materialsproject/pymatgen/pull/3915
  • Fix coordination number bug by @jmmshn in https://github.com/materialsproject/pymatgen/pull/3954
  • Fix Ion formula parsing bug; add more special formulas by @rkingsbury in https://github.com/materialsproject/pymatgen/pull/3942
  • Dedup numpydependency in pyproject by @janosh in https://github.com/materialsproject/pymatgen/pull/3970
  • test_graph: add filename only to pdf list by @drew-parsons in https://github.com/materialsproject/pymatgen/pull/3972
  • Bugfix: io.pwscf.PWInput.from_str() by @jsukpark in https://github.com/materialsproject/pymatgen/pull/3931
  • Fix d2k function by @tpurcell90 in https://github.com/materialsproject/pymatgen/pull/3932
  • Assign frame properties to molecule/structure when indexing trajectory by @CompRhys in https://github.com/materialsproject/pymatgen/pull/3979

🛠 Enhancements

  • Element/Species: order full_electron_structure by energy by @rkingsbury in https://github.com/materialsproject/pymatgen/pull/3944
  • Extend CubicSupercell transformation to also be able to look for orthorhombic cells by @JaGeo in https://github.com/materialsproject/pymatgen/pull/3938
  • Allow custom .pmgrc.yaml location via new PMG_CONFIG_FILE env var by @janosh in https://github.com/materialsproject/pymatgen/pull/3949
  • Fix MPRester tests and access phonon properties from the new API without having mp-api installed. by @AntObi in https://github.com/materialsproject/pymatgen/pull/3950
  • Adding Abinit magmoms from netCDF files to Structure.site_properties by @gbrunin in https://github.com/materialsproject/pymatgen/pull/3936
  • Parallel Joblib Process Entries by @CompRhys in https://github.com/materialsproject/pymatgen/pull/3933
  • Add OPTIMADE adapter by @ml-evs in https://github.com/materialsproject/pymatgen/pull/3876
  • Check Inputs to Trajectory. by @CompRhys in https://github.com/materialsproject/pymatgen/pull/3978

📖 Documentation

  • Replace expired BoltzTraP link by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3929
  • Correct method get_projection_on_elements docstring under Procar class by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3945

🧹 House-Keeping

  • Split VASP input sets into submodules by @janosh in https://github.com/materialsproject/pymatgen/pull/3865

🚧 CI

  • Install some optional dependencies in CI by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3786

💡 Refactoring

  • Fix Incar check_params for Union type by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3958

🏥 Package Health

  • build against NPY2 by @njzjz in https://github.com/materialsproject/pymatgen/pull/3894

🏷️ Type Hints

  • Improve types for electronic_structure.{bandstructure/cohp} by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3873
  • Improve types for electronic_structure.{core/dos} by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3880

🤷‍♂️ Other Changes

  • switch to attr access interface for transformation matrix by @tsmathis in https://github.com/materialsproject/pymatgen/pull/3964
  • Fix import sorting by @janosh in https://github.com/materialsproject/pymatgen/pull/3968
  • Don't run issue-metrics on forks by @ab5424 in https://github.com/materialsproject/pymatgen/pull/3962
  • Enable Ruff rule family "N" and "S" by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3892

New Contributors

  • @danielzuegner made their first contribution in https://github.com/materialsproject/pymatgen/pull/3915
  • @tsmathis made their first contribution in https://github.com/materialsproject/pymatgen/pull/3964
  • @jsukpark made their first contribution in https://github.com/materialsproject/pymatgen/pull/3931

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2024.7.18...v2024.8.8

- Python
Published by shyuep almost 2 years ago

pymatgen - v2024.7.18

layout: default title: Change Log

- Python
Published by shyuep almost 2 years ago

pymatgen - v2024.6.10

layout: default title: Change Log

- Python
Published by shyuep almost 2 years ago

pymatgen - v2024.6.4

What's Changed

🐛 Bug Fixes

  • Run CI with two different uv resolution strategies: highest and lowest-direct by @janosh in https://github.com/materialsproject/pymatgen/pull/3852
  • Fix filter condition for warn msg of unphysical site occupancy in io.cif by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3853 ### 🛠 Enhancements
  • Add new .pmgrc.yaml setting PMG_VASP_PSP_SUB_DIRS: dict[str, str] by @janosh in https://github.com/materialsproject/pymatgen/pull/3858 ### 📖 Documentation
  • Clarify argument shift for SlabGenerator.get_slab by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3748 ### 🚧 CI
  • Add CI run without 'optional' deps installed by @janosh in https://github.com/materialsproject/pymatgen/pull/3857

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2024.5.31...v2024.6.4

- Python
Published by janosh almost 2 years ago

pymatgen - v2024.5.31

What's Changed

🐛 Bug Fixes

  • Make Beautifulsoup optional by @ab5424 in https://github.com/materialsproject/pymatgen/pull/3774
  • Fix overlayed subplots in BSPlotterProjected.get_projected_plots_dots() by @janosh in https://github.com/materialsproject/pymatgen/pull/3798
  • Fix _get_dipole_info for DDEC6 ChargemolAnalysis and add test case by @JonathanSchmidt1 in https://github.com/materialsproject/pymatgen/pull/3801
  • Cp2kOutput.parse_initial_structure() use regex for line matching to allow arbitrary white space between Atom/Kind/Element/... by @janosh in https://github.com/materialsproject/pymatgen/pull/3810
  • Fix the minor document error in POTCAR Setup. by @hongyi-zhao in https://github.com/materialsproject/pymatgen/pull/3834
  • Use isclose over == for overlap position check in SlabGenerator.get_slabs by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3825
  • [Deprecation] Replace Element property is_rare_earth_metal with is_rare_earth to include Y and Sc by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3817 ### 🛠 Enhancements
  • Add is_radioactive property to Element class by @AntObi in https://github.com/materialsproject/pymatgen/pull/3804
  • Add a from_ase_atoms() method to Structure by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3812
  • Adapt to the latest version of PWmat output file by @lhycms in https://github.com/materialsproject/pymatgen/pull/3823
  • Update VASP sets to transition atomate2 to use pymatgen input sets exclusively by @esoteric-ephemera in https://github.com/materialsproject/pymatgen/pull/3835 (slightly breaking, see #3860 for details) ### 📖 Documentation
  • Imperative get_... method and @property doc strings by @janosh in https://github.com/materialsproject/pymatgen/pull/3802
  • Doc string standardization by @janosh in https://github.com/materialsproject/pymatgen/pull/3805 ### 🧹 House-Keeping
  • Add types for core.(molecular_orbitals|operations|sites|spectrum|tensor|xcfunc) by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3829
  • Move test structures out of util directory by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3831 ### 🧪 Tests
  • Improve type annotations for core.(trajectory/units) by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3832 ### 🏷️ Type Hints
  • More type annotations by @janosh in https://github.com/materialsproject/pymatgen/pull/3800
  • Add types for core.periodic_table/bonds/composition/ion/lattice/libxcfunc, new type MillerIndex and fix Lattice hash by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3814
  • Guard TYPE_CHECKING only imports by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3827
  • Improve type annotations and comments for io.cif by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3820
  • Improve type annotations for core.structure by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3837
  • Add type annotations for io.vasp.outputs by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3776 ### 🤷‍♂️ Other Changes
  • mixing scheme: change default for verbose by @tschaume in https://github.com/materialsproject/pymatgen/pull/3806
  • ruff 0.4.3 auto-fixes by @janosh in https://github.com/materialsproject/pymatgen/pull/3808
  • Re-enable some useful ruff rules by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3813
  • pandas.read_csv: replace deprecated delim_whitespace=True with sep="\s+" by @ab5424 in https://github.com/materialsproject/pymatgen/pull/3846
  • Improve unphysical (greater than 1) occupancy handling in CifParser and add missing site label if not check_occu by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3819

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2024.5.1...v2024.5.31

- Python
Published by janosh about 2 years ago

pymatgen - v2024.5.1

What's Changed

🐛 Bug Fixes

  • Fix OPTIMADE rester URL contruction and improve testing by @ml-evs in https://github.com/materialsproject/pymatgen/pull/3756
  • Add fix for SFAC writer by @stefsmeets in https://github.com/materialsproject/pymatgen/pull/3779
  • Fix LobsterSet by @naik-aakash in https://github.com/materialsproject/pymatgen/pull/3771
  • Update vasprun.converged_ionic logic when EDIFFG=0, REDO of PR #3765 by @matthewkuner in https://github.com/materialsproject/pymatgen/pull/3783
  • Fix for incorrect file path in tests/io/test_zeopp.py by @AntObi in https://github.com/materialsproject/pymatgen/pull/3784
  • Fix for writing non-unique site labels in CifWriter by @stefsmeets in https://github.com/materialsproject/pymatgen/pull/3767
  • Homogenize return type of Lattice.get_points_in_sphere to always be np.array(s) by @janosh in https://github.com/materialsproject/pymatgen/pull/3797

📖 Documentation

  • Add note to documentation for usage of CrystalNN by @JaGeo in https://github.com/materialsproject/pymatgen/pull/3764
  • Update to average Grüneisen documentation by @JaGeo in https://github.com/materialsproject/pymatgen/pull/3773
  • Format doc strings by @janosh in https://github.com/materialsproject/pymatgen/pull/3790
  • Imperative doc strings by @janosh in https://github.com/materialsproject/pymatgen/pull/3792

🧹 House-Keeping

  • pyright fixes for ext/io/phonon/symmetry/transformations/util/vis/dev_scripts and improve io.lobster by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3757
  • Separate test files by modules and collect test files csv/cif into folders by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3746

🚧 CI

  • Officially support Python 3.12 and test in CI by @janosh in https://github.com/materialsproject/pymatgen/pull/3685

🏥 Package Health

  • Remove gulp from package data, code base and CI tests by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3789

🏷️ Type Hints

  • Add type annotations for io.vasp.inputs/optics by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3740
  • pyright fixes by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3777
  • Convert kpts in Kpoints to Sequence[tuple] and set it as property by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3758

🤷‍♂️ Other Changes

  • add get_string->get_str alias for Poscar by @timurbazhirov in https://github.com/materialsproject/pymatgen/pull/3763
  • Fix ruff FURB192 by @janosh in https://github.com/materialsproject/pymatgen/pull/3785

New Contributors

  • @timurbazhirov made their first contribution in https://github.com/materialsproject/pymatgen/pull/3763
  • @AntObi made their first contribution in https://github.com/materialsproject/pymatgen/pull/3784

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2024.4.13...2024.5.1

- Python
Published by janosh about 2 years ago

pymatgen - v2024.4.13

Hot fix release for v2024.4.12 to be yanked on PyPI due to https://github.com/materialsproject/pymatgen/issues/3751.

🐛 Bug Fixes

  • Revert mistaken Cohp.has_antibnd_states_below_efermi rename by @JaGeo in https://github.com/materialsproject/pymatgen/pull/3750
  • Fix typing_extension ImportError in downstream packages by @janosh in https://github.com/materialsproject/pymatgen/pull/3752
  • Update some of the OPTIMADE aliases by @ml-evs in https://github.com/materialsproject/pymatgen/pull/3754

🧹 House-Keeping

  • Remove duplicate ruff rule in pyproject.toml by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3755

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2024.4.12...v2024.4.13

- Python
Published by janosh about 2 years ago

pymatgen - v2024.4.12

What's Changed

🎉 New Features

  • Add pymatgen.io.openff module by @orionarcher in https://github.com/materialsproject/pymatgen/pull/3729 ### 🐛 Bug Fixes
  • Fix blank line bug in io.res.ResWriter by @stefsmeets in https://github.com/materialsproject/pymatgen/pull/3671
  • Reset label for sites changed by Structure.replace_species() by @stefsmeets in https://github.com/materialsproject/pymatgen/pull/3672
  • Fix phonopy.get_pmg_structure site_properties key for magmoms by @JonathanSchmidt1 in https://github.com/materialsproject/pymatgen/pull/3679
  • Improve Bandoverlaps parser by @naik-aakash in https://github.com/materialsproject/pymatgen/pull/3689
  • Convert some staticmethod to classmethod by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3710
  • Correct units of Element.atomic_orbitals by @esoteric-ephemera in https://github.com/materialsproject/pymatgen/pull/3714
  • Add a fix for if a parameter is None in AimsControlIn by @tpurcell90 in https://github.com/materialsproject/pymatgen/pull/3727
  • Replace general raise Exception and add missing raise keyword by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3728
  • Fix ChemicalPotentialDiagram 2D plot not respecting formal_chempots setting by @uliaschauer in https://github.com/materialsproject/pymatgen/pull/3734
  • Update ENCUT type to float in incar_parameters.json by @yuuukuma in https://github.com/materialsproject/pymatgen/pull/3741
  • Clean up core.surface comments and docstrings by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3691
  • Fix io.cp2k.input.DataFile by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3745 ### 🛠 Enhancements
  • Ensure MSONAtoms is indeed MSONable when Atoms.info is loaded with goodies by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3670
  • Generalize fatband plots from Lobster by @JaGeo in https://github.com/materialsproject/pymatgen/pull/3688
  • Plotting of Multicenter COBIs by @JaGeo in https://github.com/materialsproject/pymatgen/pull/2926
  • Support appending vectors to positions in XSF format by @mturiansky in https://github.com/materialsproject/pymatgen/pull/3704
  • Define needs_u_correction(comp: CompositionLike) -> set[str] utility function by @janosh in https://github.com/materialsproject/pymatgen/pull/3703
  • Add more flexibility to PhononDOSPlotter and PhononBSPlotter by @ab5424 in https://github.com/materialsproject/pymatgen/pull/3700
  • Define ElementType enum in core/periodic_table.py by @janosh in https://github.com/materialsproject/pymatgen/pull/3726 ### 📖 Documentation
  • Reformat docstrings to Google style and add type annotations by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3694
  • Breaking: all plot methods return plt.Axes by @janosh in https://github.com/materialsproject/pymatgen/pull/3749 ### 🧹 House-Keeping
  • Clean up test files: VASP outputs by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3653
  • Clean up test files: VASP inputs by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3674
  • Clean up test files: dedicated VASP directories, xyz, mcif, cssr, exciting, wannier90 by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3681
  • Remove exception printing when importing phonopy by @lan496 in https://github.com/materialsproject/pymatgen/pull/3696
  • Standardize test names: e.g. LatticeTestCase -> TestLattice by @janosh in https://github.com/materialsproject/pymatgen/pull/3693
  • Clean up tests by @janosh in https://github.com/materialsproject/pymatgen/pull/3713
  • Fix import order for if TYPE_CHECKING: block by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3711
  • Use Self type in Method Signatures by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3705
  • Remove deprecated analysis.interface, rename classes to PascalCase and rename with_* to from_* by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3725
  • Test EntrySet.ground_states and CIF writing in NEBSet.write_input by @janosh in https://github.com/materialsproject/pymatgen/pull/3732 ### 🚀 Performance
  • Migrate CI dependency installation from pip to uv by @janosh in https://github.com/materialsproject/pymatgen/pull/3675
  • Dynamic __hash__ for BalancedReaction by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3676 ### 🚧 CI
  • Prevent GitHub Actions from running docs-related CI on forks by @lan496 in https://github.com/materialsproject/pymatgen/pull/3697 ### 🧪 Tests
  • Clean up tests 2 by @janosh in https://github.com/materialsproject/pymatgen/pull/3716
  • Remove unnecessary unittest.TestCase subclassing by @janosh in https://github.com/materialsproject/pymatgen/pull/3718 ### 🔒 Security Fixes
  • Avoid using exec in code by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3736
  • Avoid using eval, replace manual offset in enumerate and rename single letter variables by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3739 ### 🏷️ Type Hints
  • Self return type on from_dict methods by @janosh in https://github.com/materialsproject/pymatgen/pull/3702
  • Return self from Structure methods replace, substitute, remove_species, remove_sites by @janosh in https://github.com/materialsproject/pymatgen/pull/3706
  • Self return type on Lattice methods by @janosh in https://github.com/materialsproject/pymatgen/pull/3707 ### 🤷‍♂️ Other Changes
  • os.path.(exists->isfile) by @janosh in https://github.com/materialsproject/pymatgen/pull/3690

New Contributors

  • @JonathanSchmidt1 made their first contribution in https://github.com/materialsproject/pymatgen/pull/3679
  • @uliaschauer made their first contribution in https://github.com/materialsproject/pymatgen/pull/3734

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2024.3.1...v2024.4.12

- Python
Published by janosh about 2 years ago

pymatgen -

What's Changed

🐛 Bug Fixes

  • Fix BSPlotterProjected.get_projected_plots_dots_patom_pmorb fix set & list intersect by @janosh in https://github.com/materialsproject/pymatgen/pull/3651
  • Remove rounding during FEFF writing by @matthewcarbone in https://github.com/materialsproject/pymatgen/pull/3345
  • Fix get_niggli_reduced_lattice if entering A1 case by @packer-jp in https://github.com/materialsproject/pymatgen/pull/3657
  • Remove BadPoscarWarning when POSCAR elements set by POTCAR by @esoteric-ephemera in https://github.com/materialsproject/pymatgen/pull/3662
  • Fix RuntimeError triggered in CI of downstream packages by @janosh in https://github.com/materialsproject/pymatgen/pull/3664 ### 🛠 Enhancements
  • Kpoint.__eq__ and PhononBandStructureSymmLine.__eq__ methods + tests by @janosh in https://github.com/materialsproject/pymatgen/pull/3650
  • LOBSTER IO improvements by @naik-aakash in https://github.com/materialsproject/pymatgen/pull/3649 ### 📖 Documentation
  • Lobsterout update doc-string to match renamed class variable by @naik-aakash in https://github.com/materialsproject/pymatgen/pull/3655
  • Fix installation.md formatting by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3661 ### 🧹 House-Keeping
  • Use np.eye(3) instead of [[1, 0, 0], [0, 1, 0], [0, 0, 1]] for identies by @janosh in https://github.com/materialsproject/pymatgen/pull/3659 ### 🧪 Tests
  • Deprecate _parse_atomic_densities in BaderAnalysis and fix Bader test setup by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3656 ### 🏷️ Type Hints
  • Improve INCAR tag check by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3621 ### 🤷‍♂️ Other Changes
  • Avoid bader_caller from altering compressed file in place by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3660

New Contributors

  • @matthewcarbone made their first contribution in https://github.com/materialsproject/pymatgen/pull/3345
  • @packer-jp made their first contribution in https://github.com/materialsproject/pymatgen/pull/3657

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2024.2.23...v2024.3.1

- Python
Published by janosh over 2 years ago

pymatgen - v2024.2.23

What's Changed

🐛 Bug Fixes

  • Modify BadInputSetWarning logic for relaxations of a likely metal by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3634
  • Fix Lobsterenv Bug by @naik-aakash in https://github.com/materialsproject/pymatgen/pull/3637
  • [BugFix] Subclass Construction Locpot<:VolumetricData by @jmmshn in https://github.com/materialsproject/pymatgen/pull/3639
  • Guard MSONAtoms definition behind ASE package availability by @ml-evs in https://github.com/materialsproject/pymatgen/pull/3645
  • Remove properties from abivars dict as this breaks the interface with… by @gmatteo in https://github.com/materialsproject/pymatgen/pull/3642 ### 🛠 Enhancements
  • Add interface to icet SQS tools through SQSTransformation by @esoteric-ephemera in https://github.com/materialsproject/pymatgen/pull/3593
  • Modified CifParser.check() as one possible solution for issue #3626 by @kaueltzen in https://github.com/materialsproject/pymatgen/pull/3628
  • Add capability for Vasprun to read KPOINTS_OPT data by @bfield1 in https://github.com/materialsproject/pymatgen/pull/3509 ### 🧪 Tests
  • Compress test vasprun.xml files by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3648 ### 🤷‍♂️ Other Changes
  • Alias VaspInputSet to VaspInputGenerator by @janosh in https://github.com/materialsproject/pymatgen/pull/3566

New Contributors

  • @bfield1 made their first contribution in https://github.com/materialsproject/pymatgen/pull/3509

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2024.2.20...v2024.2.23

- Python
Published by janosh over 2 years ago

pymatgen - v2024.2.20

What's Changed

🐛 Bug Fixes

  • Revert back TransformedStructure.__getattr__ by @mjwen in https://github.com/materialsproject/pymatgen/pull/3617
  • Fixed Incar object to allow for ML_MODE vasp tag by @davidwaroquiers in https://github.com/materialsproject/pymatgen/pull/3625
  • Add missing MPSCANRelaxSet.yaml parameters and alphabetize by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3615
  • Fix bader_analysis_from_path using warning as file path and reinstate test by @janosh in https://github.com/materialsproject/pymatgen/pull/3632

🛠 Enhancements

  • Breaking: fix SubstrateAnalyzer film + substrate vectors not using original crystal coordinates by @jinlhr542 in https://github.com/materialsproject/pymatgen/pull/3572
  • Handle invalid selective dynamics info in POSCAR by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3539
  • Return self from all SiteCollection/Structure/Molecule in-place modification methods by @janosh in https://github.com/materialsproject/pymatgen/pull/3623
  • Make the POTCAR setup instructions clearer by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3630

🧹 House-Keeping

  • Refactors + types + fix doc string returns to use Google format by @janosh in https://github.com/materialsproject/pymatgen/pull/3620

🚀 Performance

  • Speeding up get_nn_info in local_env.py by @ftherrien in https://github.com/materialsproject/pymatgen/pull/3635

💥 Breaking Changes

  • Lobsterenv improvements by @naik-aakash in https://github.com/materialsproject/pymatgen/pull/3624

🤷‍♂️ Other Changes

  • Fix URL joining in OptimadeRester by @rdamaral in https://github.com/materialsproject/pymatgen/pull/3613
  • Create a CODEOWNERS by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3616
  • Adds support for an MSONAtoms class that's an MSONable form of an ASE Atoms object by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3619
  • Lobster io improvements by @naik-aakash in https://github.com/materialsproject/pymatgen/pull/3627

New Contributors

  • @jinlhr542 made their first contribution in https://github.com/materialsproject/pymatgen/pull/3572
  • @rdamaral made their first contribution in https://github.com/materialsproject/pymatgen/pull/3613
  • @ftherrien made their first contribution in https://github.com/materialsproject/pymatgen/pull/3635

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2024.2.8...v2024.2.20

- Python
Published by mkhorton over 2 years ago

pymatgen - v2024.2.8

What's Changed

🐛 Bug Fixes

  • Fix Vasprun.get_potcars search method; tweak fake POTCARs by @esoteric-ephemera in https://github.com/materialsproject/pymatgen/pull/3587 ### 🛠 Enhancements
  • Aims input sets by @tpurcell90 in https://github.com/materialsproject/pymatgen/pull/3482
  • Add SiteCollection.reduced_formula property by @janosh in https://github.com/materialsproject/pymatgen/pull/3610
  • Add Entry.(formula|reduced_formula) by @janosh in https://github.com/materialsproject/pymatgen/pull/3611
  • VASP IO copy() methods by @janosh in https://github.com/materialsproject/pymatgen/pull/3602 ### 📖 Documentation
  • Adding FHI-aims inputs developers by @tpurcell90 in https://github.com/materialsproject/pymatgen/pull/3592 ### 🧹 House-Keeping
  • chore: fix a typo by @VsevolodX in https://github.com/materialsproject/pymatgen/pull/3609 ### 🧪 Tests
  • Add tests for the New Vasp input sets by @Zhuoying in https://github.com/materialsproject/pymatgen/pull/3576 ### 🏥 Package Health
  • Switch macOS wheel building to new M1 runners by @janosh in https://github.com/materialsproject/pymatgen/pull/3596 ### 🤷‍♂️ Other Changes
  • Fix text formatting in bug_report.yaml by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3589
  • Minor update to avoid deprecation warning by @kavanase in https://github.com/materialsproject/pymatgen/pull/3601

New Contributors

  • @VsevolodX made their first contribution in https://github.com/materialsproject/pymatgen/pull/3609

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2024.1.27...v2024.2.8

- Python
Published by janosh over 2 years ago

pymatgen - v2024.1.27

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2024.1.26...v2024.1.27

- Python
Published by shyuep over 2 years ago

pymatgen - v2024.1.26

What's Changed

🐛 Bug Fixes

  • Fix label propagation in Symmetry.from_spacegroup by @stefsmeets in https://github.com/materialsproject/pymatgen/pull/3527
  • Bug fix: SpectrumPlotter.add_spectra by @minhsueh in https://github.com/materialsproject/pymatgen/pull/3529
  • Fix bug in SQSTransformation by @esoteric-ephemera in https://github.com/materialsproject/pymatgen/pull/3541
  • Fix failing CI due to broken BoltzTraP2 install by @janosh in https://github.com/materialsproject/pymatgen/pull/3543
  • Enforce zval to be an integer to avoid improper syntax in .cri file by @wladerer in https://github.com/materialsproject/pymatgen/pull/3502
  • Fix MaterialsProjectCompatibility run type handling for GGA+U by @rkingsbury in https://github.com/materialsproject/pymatgen/pull/3540
  • Accept Path objects as filename in IStructure.to() by @janosh in https://github.com/materialsproject/pymatgen/pull/3553
  • Retain Structure.properties in structure_from_abivars()/structure_to_abivars() round trip by @janosh in https://github.com/materialsproject/pymatgen/pull/3552
  • Support magmoms in get_phonopy_structure() by @tomdemeyere in https://github.com/materialsproject/pymatgen/pull/3555
  • Fix ValueError: Invalid fmt with Structure.to(fmt='yml') by @janosh in https://github.com/materialsproject/pymatgen/pull/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 https://github.com/materialsproject/pymatgen/pull/3542
  • Deprecate Structure.ntypesp replaced by Structure.n_elems by @janosh in https://github.com/materialsproject/pymatgen/pull/3562
  • Ruff fixes by @janosh in https://github.com/materialsproject/pymatgen/pull/3564
  • Fix highly-nested parens when formula parsing in Composition by @janosh in https://github.com/materialsproject/pymatgen/pull/3569
  • Fix floating point imprecision error in ordering property of CollinearMagneticStructureAnalyzer by @kaueltzen in https://github.com/materialsproject/pymatgen/pull/3574
  • Support parsing of "final_energy" in Q-Chem 6.1.1 by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3580 ### 🛠 Enhancements
  • Add GitHub Issue Templates by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3528
  • Improve PhononBandStructure.has_imaginary_gamma_freq() by checking for negative freqs at all q-points close to Gamma by @janosh in https://github.com/materialsproject/pymatgen/pull/3530
  • Add default issue template labels by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3531
  • Add functionality to read ASE *.traj file in Trajectory class method from_file() by @exenGT in https://github.com/materialsproject/pymatgen/pull/3422
  • Add PhononDos.r2_score method by @janosh in https://github.com/materialsproject/pymatgen/pull/3535
  • Add codespace container for reproducing issues by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3537
  • Phonon convenience imports by @janosh in https://github.com/materialsproject/pymatgen/pull/3544
  • Add diffusive thermal conductivity model proposed by Agne et al. by @naik-aakash in https://github.com/materialsproject/pymatgen/pull/3546
  • Add flag write_site_properties = False in CifWriter for writing Structure.site_properties as _atom_site_{prop} by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3550
  • Add pymatgen.io.pwmat module by @lhycms in https://github.com/materialsproject/pymatgen/pull/3512
  • Lazy import pandas in Structure.as_dataframe() to improve startup speed by @janosh in https://github.com/materialsproject/pymatgen/pull/3568
  • Return self in SiteCollection spin/oxi state add/remove methods by @janosh in https://github.com/materialsproject/pymatgen/pull/3573
  • Added threshold_ordering parameter to CollinearMagneticStructureAnalyzer in addition to PR #3574 by @kaueltzen in https://github.com/materialsproject/pymatgen/pull/3577 ### 🧹 House-Keeping
  • Pass file IO modes as kwarg by @janosh in https://github.com/materialsproject/pymatgen/pull/3560
  • Remove deprecated (to|from|as|get)_string methods by @janosh in https://github.com/materialsproject/pymatgen/pull/3561 ### 🧪 Tests
  • Improve handling of Vasprun POTCAR search, expanded fake POTCAR library for VASP I/O tests by @esoteric-ephemera in https://github.com/materialsproject/pymatgen/pull/3491
  • Add test for NEBAnalysis.get_plot() by @janosh in https://github.com/materialsproject/pymatgen/pull/3570
  • tests/io/aims use numpy.testing.assert_allclose and pytest.MonkeyPatch by @janosh in https://github.com/materialsproject/pymatgen/pull/3575 ### 💥 Breaking Changes
  • Breaking: remove single-use PolarizationLattice which inherited from Structure (antipattern) by @janosh in https://github.com/materialsproject/pymatgen/pull/3585 ### 🤷‍♂️ Other Changes
  • Standardise and update VASP input sets by @utf in https://github.com/materialsproject/pymatgen/pull/3484

New Contributors

  • @DanielYang59 made their first contribution in https://github.com/materialsproject/pymatgen/pull/3528
  • @minhsueh made their first contribution in https://github.com/materialsproject/pymatgen/pull/3529
  • @exenGT made their first contribution in https://github.com/materialsproject/pymatgen/pull/3422
  • @wladerer made their first contribution in https://github.com/materialsproject/pymatgen/pull/3502
  • @tomdemeyere made their first contribution in https://github.com/materialsproject/pymatgen/pull/3555
  • @lhycms made their first contribution in https://github.com/materialsproject/pymatgen/pull/3512

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2023.12.18...v2024.1.26

- Python
Published by janosh over 2 years ago

pymatgen - v2023.12.18

What's Changed

🐛 Bug Fixes

  • Improve doc strings substitution_probability.py by @JaGeo in https://github.com/materialsproject/pymatgen/pull/3477
  • Convert all FHI-aims stresses to be 3x3 instead of Voigt notation by @tpurcell90 in https://github.com/materialsproject/pymatgen/pull/3476
  • Revert pymatgen/symmetry/groups.py module-scoped SymmOp import causing circular import by @janosh in https://github.com/materialsproject/pymatgen/pull/3486
  • fix reciprocal_density in MPHSEBSSet and tests by @fraricci in https://github.com/materialsproject/pymatgen/pull/3499
  • fix TypeError when attr force_field not exists by @xjf729 in https://github.com/materialsproject/pymatgen/pull/3495
  • Fix pdplotter.show with matplotlib backend by @lbluque in https://github.com/materialsproject/pymatgen/pull/3493
  • Fix legend label order in PhononBSPlotter.plot_compare() by @janosh in https://github.com/materialsproject/pymatgen/pull/3510 ### 🛠 Enhancements
  • Define PBE64Base.yaml for new VASP PBE_64 POTCARs by @janosh in https://github.com/materialsproject/pymatgen/pull/3470
  • (Structure|Molecule).alphabetical_formula by @janosh in https://github.com/materialsproject/pymatgen/pull/3478
  • Improvements to PhononDosPlotter and PhononBSPlotter by @janosh in https://github.com/materialsproject/pymatgen/pull/3479
  • PhononDosPlotter.plot_dos() add support for existing plt.Axes by @janosh in https://github.com/materialsproject/pymatgen/pull/3487
  • Allow Structure.interpolate to extrapolate by @kyledmiller in https://github.com/materialsproject/pymatgen/pull/3467
  • Updates for Vasprun with MD simulations by @gpetretto in https://github.com/materialsproject/pymatgen/pull/3489
  • Add gradient, Hessian, and orbital coeffs scratch file parsers to pymatgen.io.qchem.outputs by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3483
  • Add multipole parsing for Q-Chem IO by @espottesmith in https://github.com/materialsproject/pymatgen/pull/3490
  • CifParser only warn about primitive default value change to False if not passed to parse_structures explicitly by @janosh in https://github.com/materialsproject/pymatgen/pull/3505
  • PhononBSPlotter.plot_compare() add legend labels by @janosh in https://github.com/materialsproject/pymatgen/pull/3507
  • Define arithmetic ops __add__ __sub__ __mul__ __neg__ __eq__ for PhononDos with tests by @janosh in https://github.com/materialsproject/pymatgen/pull/3511
  • Equalize Phonon(Dos|BS)Plotter colors, allow custom plot settings per-DOS by @janosh in https://github.com/materialsproject/pymatgen/pull/3514
  • Add bold flag to latexify by @janosh in https://github.com/materialsproject/pymatgen/pull/3516
  • Composition raise ValueError if formula string is only numbers and spaces by @janosh in https://github.com/materialsproject/pymatgen/pull/3517
  • Raise ValueError for float('NaN') in Composition by @janosh in https://github.com/materialsproject/pymatgen/pull/3519
  • Add PhononDos.mae() and PhononBandStructure.has_imaginary_gamma_freq() methods by @janosh in https://github.com/materialsproject/pymatgen/pull/3520
  • PhononDos.get_smeared_densities return unchanged for sigma=0 by @janosh in https://github.com/materialsproject/pymatgen/pull/3524
  • Add PhononDos.get_last_peak() by @janosh in https://github.com/materialsproject/pymatgen/pull/3525 ### 📖 Documentation
  • QCInput: add docstrings for svp and pcm_nonels by @rkingsbury in https://github.com/materialsproject/pymatgen/pull/3522 ### 🚀 Performance
  • Avoid redirects in MPRester requests by @tschaume in https://github.com/materialsproject/pymatgen/pull/3496 ### 🧪 Tests
  • Fix weak __str__ tests across pymatgen by @janosh in https://github.com/materialsproject/pymatgen/pull/3472
  • Test improvements by @janosh in https://github.com/materialsproject/pymatgen/pull/3497 ### 🏷️ Type Hints
  • ruff automatic type annotations by @janosh in https://github.com/materialsproject/pymatgen/pull/3498

New Contributors

  • @kyledmiller made their first contribution in https://github.com/materialsproject/pymatgen/pull/3467

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2023.11.12...v2023.12.18

- Python
Published by janosh over 2 years ago

pymatgen - v2023.11.12

🐛 Bug Fixes

  • Hot fix: pymatgen package missing potcar-summary-stats.json.bz2 by @janosh in https://github.com/materialsproject/pymatgen/pull/3468

🛠 Enhancements

  • Add Composition.charge and charge_balanced properties by @janosh in https://github.com/materialsproject/pymatgen/pull/3471

- Python
Published by janosh over 2 years ago

pymatgen - v2023.11.10

🐛 Bug Fixes

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

🛠 Enhancements

  • Add LobsterMatrices parser to lobster.io.outputs by @naik-aakash in https://github.com/materialsproject/pymatgen/pull/3361
  • Propagate site labels in SymmetrizedStructure() by @stefsmeets in https://github.com/materialsproject/pymatgen/pull/3423
  • Add lattice velocities to Poscar by @gpetretto in https://github.com/materialsproject/pymatgen/pull/3428
  • Add summary_stats key to Vasprun.potcar_spec by @esoteric-ephemera in https://github.com/materialsproject/pymatgen/pull/3434
  • Deprecate CifParser.get_structures() in favor of new parse_structures in which primitive defaults to False by @janosh in https://github.com/materialsproject/pymatgen/pull/3419
  • FHI-aims IO Parsers by @tpurcell90 in https://github.com/materialsproject/pymatgen/pull/3435

🧹 House-Keeping

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

🤷‍♂️ Other Changes

  • Create jekyll-gh-pages.yml by @shyuep in https://github.com/materialsproject/pymatgen/pull/3410
  • Make from_(str|file) (static->class)methods by @janosh in https://github.com/materialsproject/pymatgen/pull/3429

New Contributors

  • @RedStar-Iron made their first contribution in https://github.com/materialsproject/pymatgen/pull/3430
  • @tawe141 made their first contribution in https://github.com/materialsproject/pymatgen/pull/3452
  • @tpurcell90 made their first contribution in https://github.com/materialsproject/pymatgen/pull/3435

- Python
Published by janosh over 2 years ago

pymatgen - v2023.10.11

🐛 Bug Fixes

🛠 Enhancements

📖 Documentation

🧹 House-Keeping

🧪 Tests

💥 Breaking Changes

🏷️ Type Hints

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2023.10.4...v2023.10.11

- Python
Published by janosh over 2 years ago

pymatgen - v2023.10.4

What's Changed

🐛 Bug Fixes

  • Fix missing potcar_summary_stats.json.gz in setup.package_data by @janosh in https://github.com/materialsproject/pymatgen/pull/3372

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2023.10.3...v2023.10.4

- Python
Published by shyuep over 2 years ago

pymatgen - v2023.10.3

What's Changed

🐛 Bug Fixes

  • Revert openbabel.OBAlign() in molecule_matcher.py to use positional args for includeH, symmetry by @janosh in https://github.com/materialsproject/pymatgen/pull/3353
  • Fix MPMD set bug by @MichaelWolloch in https://github.com/materialsproject/pymatgen/pull/3355
  • Fix TestMPResterNewBasic + AseAtomsAdaptor test errors and TransformedStructure.from_snl overwriting hist variable by @janosh in https://github.com/materialsproject/pymatgen/pull/3362
  • Fix TypeError: can only join an iterable with AECCAR in VolumetricData.write_file by @chiang-yuan in https://github.com/materialsproject/pymatgen/pull/3343 ### 🛠 Enhancements
  • Don't rely on jsanitize in Atoms <--> Structure object interconversion by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3359
  • Breaking: New method of POTCAR validation by @esoteric-ephemera in https://github.com/materialsproject/pymatgen/pull/3351
  • Add alias .to_file() for .to() method of structures and molecules by @QuantumChemist in https://github.com/materialsproject/pymatgen/pull/3356
  • Update POTCAR summary stats to include 6.4 POTCARs and add dev_script utils for future updates by @esoteric-ephemera in https://github.com/materialsproject/pymatgen/pull/3370 ### 🧹 House-Keeping
  • Chargemol minor refactor by @janosh in https://github.com/materialsproject/pymatgen/pull/3357
  • Breaking typo fix: Targe(tt->t)edPenaltiedAbundanceChemenvStrategy by @janosh in https://github.com/materialsproject/pymatgen/pull/3360
  • Fix undiscovered tests by @janosh in https://github.com/materialsproject/pymatgen/pull/3369 ### 🏥 Package Health
  • Bump min numpy to v1.25.0 by @janosh in https://github.com/materialsproject/pymatgen/pull/3352

New Contributors

  • @esoteric-ephemera made their first contribution in https://github.com/materialsproject/pymatgen/pull/3351
  • @QuantumChemist made their first contribution in https://github.com/materialsproject/pymatgen/pull/3356

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2023.9.25...v2023.10.3

- Python
Published by janosh over 2 years ago

pymatgen - v2023.9.25

What's Changed

🐛 Bug Fixes

  • Fix MPSOCSet raising ValueError on structure=None by @janosh in https://github.com/materialsproject/pymatgen/pull/3310
  • Fix AttributeError in BSPlotter.get_plot() by @janosh in https://github.com/materialsproject/pymatgen/pull/3327
  • Use ax = fig.add_subplot(projection='3d') to create Axes3D by @janosh in https://github.com/materialsproject/pymatgen/pull/3330
  • Fix breaking change to CoherentInterfaceBuilder.get_interfaces by @janosh in https://github.com/materialsproject/pymatgen/pull/3337
  • Add properties @property/docstring to IStructure by @mkhorton in https://github.com/materialsproject/pymatgen/pull/3338
  • Always return 0 for Composition.oxi_state_guesses() of diatomic molecules by @janosh in https://github.com/materialsproject/pymatgen/pull/3332
  • Fix: TestMITMPRelaxSet.test_nelect claimed to but wasn't testing disordered structure by @janosh in https://github.com/materialsproject/pymatgen/pull/3344 ### 🛠 Enhancements
  • Allow usage of calculate_ng with a custom ENCUT and PREC values for VASP input sets by @matthewkuner in https://github.com/materialsproject/pymatgen/pull/3314
  • Fix TestPotcar.test_write polluting git repo on failure by @janosh in https://github.com/materialsproject/pymatgen/pull/3347

📖 Documentation

  • Update @arosen93 to @Andrew-S-Rosen by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3311
  • Google-style doc strings for class attributes by @janosh in https://github.com/materialsproject/pymatgen/pull/3320
  • More Google-style class attribute doc strings by @janosh in https://github.com/materialsproject/pymatgen/pull/3323
  • Readme notice regarding updated pymatgen publication by @janosh in https://github.com/materialsproject/pymatgen/pull/3325
  • Breaking: rename get_ax3d_fig_plt->get_ax3d_fig and get_ax_fig_plt->get_ax_fig plus no longer return plt by @janosh in https://github.com/materialsproject/pymatgen/pull/3329

🧹 House-Keeping

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

🤷‍♂️ Other Changes

  • Fix atomic mass for Og by @mkhorton in https://github.com/materialsproject/pymatgen/pull/3317

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2023.9.10...v2023.9.25

- Python
Published by shyuep over 2 years ago

pymatgen - v2023.9.10

What's Changed

🐛 Bug Fixes

  • Fix code comment in ASE adapter by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3298
  • Fix IndexError when parsing Hessian from Gaussian frequency job by @janosh in https://github.com/materialsproject/pymatgen/pull/3308 ### 🛠 Enhancements
  • Add an input arg check for Kpoints.automatic_density_by_lengths by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3299 ### 🏥 Package Health
  • Remove pydantic < 2 from setup.py and bump monty in requirements.txt by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3303
  • Move py.typed to package root by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3307
  • Consistent casing setup->setUp across test classes by @janosh in https://github.com/materialsproject/pymatgen/pull/3305 ### 🤷‍♂️ Other Changes
  • v2023.9.10 by @janosh in https://github.com/materialsproject/pymatgen/pull/3309

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2023.9.2...v2023.9.10

- Python
Published by janosh over 2 years ago

pymatgen - v2023.9.2

What's Changed

  • Add Lattice property params_dict by @janosh in https://github.com/materialsproject/pymatgen/pull/3239
  • Generate SupercellTransformation from minimum boundary distance by @JiQi535 in https://github.com/materialsproject/pymatgen/pull/3238
  • More concise test_from_boundary_distance by @janosh in https://github.com/materialsproject/pymatgen/pull/3242
  • Breaking: remove deprecated keyword properties from Species by @janosh in https://github.com/materialsproject/pymatgen/pull/3243
  • Typo in Docs for PeriodicsSite by @jmmshn in https://github.com/materialsproject/pymatgen/pull/3249
  • Fix Vasprun.converged_electronic check if ALGO=CHI in INCAR by @janosh in https://github.com/materialsproject/pymatgen/pull/3250
  • Breaking: Have plot methods return plt.Axes object, not matplotlib module by @janosh in https://github.com/materialsproject/pymatgen/pull/3237
  • Fix ruff D212 by @janosh in https://github.com/materialsproject/pymatgen/pull/3251
  • Fix some Kpoints generated using wrong mesh types by @matthewkuner in https://github.com/materialsproject/pymatgen/pull/3245
  • read mag from OSZICAR by @chiang-yuan in https://github.com/materialsproject/pymatgen/pull/3146
  • Use numpy.testing.assert_allclose over assert np.allclose by @janosh in https://github.com/materialsproject/pymatgen/pull/3253
  • Don't let tests pollute the pymatgen repo by @janosh in https://github.com/materialsproject/pymatgen/pull/3255
  • Update compatibility.md by @mbercx in https://github.com/materialsproject/pymatgen/pull/3260
  • Google-style doc string return types by @janosh in https://github.com/materialsproject/pymatgen/pull/3258
  • Quasi-RRHO Thermochemistry Analysis Module by @arepstein in https://github.com/materialsproject/pymatgen/pull/2028
  • Add keyword check_occu: bool = True to CifParser.get_structures() by @jonathanjdenney in https://github.com/materialsproject/pymatgen/pull/2836
  • Fix bug in feff inputs.py by @kaifengZheng in https://github.com/materialsproject/pymatgen/pull/3256
  • Cancel concurrent CI runs to save budget by @janosh in https://github.com/materialsproject/pymatgen/pull/3263
  • Fix Procar.get_projection_on_elements for structures with multiple same-element ionic sites by @Na-Kawa in https://github.com/materialsproject/pymatgen/pull/3261
  • Fix TestMPScanStaticSet.test_as_from_dict() by @janosh in https://github.com/materialsproject/pymatgen/pull/3266
  • Bump activesupport from 7.0.6 to 7.0.7.2 in /docs by @dependabot in https://github.com/materialsproject/pymatgen/pull/3267
  • Fix TestMPStaticSet using MPRelaxSet in test_user_incar_kspacing and test_kspacing_override by @janosh in https://github.com/materialsproject/pymatgen/pull/3268
  • Fix nelectrons not updating when replacing species in Molecule by @janosh in https://github.com/materialsproject/pymatgen/pull/3269
  • Add properties to Structure and Molecule by @gpetretto in https://github.com/materialsproject/pymatgen/pull/3264
  • Fix CifParser.get_structures(check_occu=False) by @janosh in https://github.com/materialsproject/pymatgen/pull/3272
  • Add PotcarSingle.__repr__ by @janosh in https://github.com/materialsproject/pymatgen/pull/3273
  • __str__ to __repr__ by @janosh in https://github.com/materialsproject/pymatgen/pull/3274
  • Ion: handle dissolved gas formulas by @rkingsbury in https://github.com/materialsproject/pymatgen/pull/3275
  • Add VASP input set MatPESStaticSet by @SophiaRuan in https://github.com/materialsproject/pymatgen/pull/3254
  • Fix test_valid_magmom_struct() error message regex by @janosh in https://github.com/materialsproject/pymatgen/pull/3276
  • fix tests of MatPESStaticSet by @SophiaRuan in https://github.com/materialsproject/pymatgen/pull/3281
  • Breaking: bump minimum Python version to 3.9 by @janosh in https://github.com/materialsproject/pymatgen/pull/3283
  • Breaking: Update AseAtomsAdaptor to handle Structure.properties/Molecule.properties by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3270
  • Slightly relax the constraint satisfy condition of getprimitivestructure() by @fyalcin in https://github.com/materialsproject/pymatgen/pull/3285
  • [WIP] add custodian modified incar settings to incar and modify tests by @SophiaRuan in https://github.com/materialsproject/pymatgen/pull/3284
  • Add keyword bandgap_tol: float = 1e-4 to MPScanRelaxSet by @janosh in https://github.com/materialsproject/pymatgen/pull/3287
  • np.(arange->linspace) in io/vasp/optics.py get_delta, get_setp and epsilon_imag by @LucasGVerga in https://github.com/materialsproject/pymatgen/pull/3286
  • MatPESStaticSet restore GGA tag removal if xc_functional.upper() == "R2SCAN" by @janosh in https://github.com/materialsproject/pymatgen/pull/3288
  • Bump pypa/cibuildwheel from 2.14.1 to 2.15.0 by @dependabot in https://github.com/materialsproject/pymatgen/pull/3294
  • Bump cython from 3.0.0 to 3.0.2 by @dependabot in https://github.com/materialsproject/pymatgen/pull/3292
  • Bump scipy from 1.11.1 to 1.11.2 by @dependabot in https://github.com/materialsproject/pymatgen/pull/3291
  • Bump plotly from 5.11.0 to 5.16.1 by @dependabot in https://github.com/materialsproject/pymatgen/pull/3289
  • Bump joblib from 1.3.1 to 1.3.2 by @dependabot in https://github.com/materialsproject/pymatgen/pull/3290
  • Bump mp-api from 0.33.3 to 0.35.1 by @dependabot in https://github.com/materialsproject/pymatgen/pull/3293
  • xyz.iter() -> iter(xyz) by @janosh in https://github.com/materialsproject/pymatgen/pull/3228
  • Deprecate overlooked from/as_..._string methods by @janosh in https://github.com/materialsproject/pymatgen/pull/3295

New Contributors

  • @mbercx made their first contribution in https://github.com/materialsproject/pymatgen/pull/3260
  • @jonathanjdenney made their first contribution in https://github.com/materialsproject/pymatgen/pull/2836
  • @kaifengZheng made their first contribution in https://github.com/materialsproject/pymatgen/pull/3256
  • @Na-Kawa made their first contribution in https://github.com/materialsproject/pymatgen/pull/3261
  • @SophiaRuan made their first contribution in https://github.com/materialsproject/pymatgen/pull/3254
  • @LucasGVerga made their first contribution in https://github.com/materialsproject/pymatgen/pull/3286

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2023.8.10...v2023.9.2

- Python
Published by shyuep over 2 years ago

pymatgen - v2023.8.10

What's Changed

  • fix estimate_nbands function by @matthewkuner in https://github.com/materialsproject/pymatgen/pull/3149
  • Add CifParser.get_structures(on_error='warn') by @janosh in https://github.com/materialsproject/pymatgen/pull/3175
  • ruff . --fix by @janosh in https://github.com/materialsproject/pymatgen/pull/3176
  • AseAtomsAdaptor: Retain tags property when interconverting Atoms and Structure/Molecule by @arosen93 in https://github.com/materialsproject/pymatgen/pull/3151
  • Fix a bug in pwscf.py. The proc_val function modifies string values. by @pablogalaviz in https://github.com/materialsproject/pymatgen/pull/3172
  • Delete commented out print statements by @janosh in https://github.com/materialsproject/pymatgen/pull/3178
  • lots of from_string should be classmethod by @njzjz in https://github.com/materialsproject/pymatgen/pull/3177
  • Extend lobsterenv for coop/cobi by @naik-aakash in https://github.com/materialsproject/pymatgen/pull/3050
  • BUG: fix setting zero magmoms by @lbluque in https://github.com/materialsproject/pymatgen/pull/3179
  • Prefer pymatviz interactive plotly version of periodic table heatmap if available by @janosh in https://github.com/materialsproject/pymatgen/pull/3180
  • Better Composition repr by @janosh in https://github.com/materialsproject/pymatgen/pull/3182
  • Breaking: Return True for Element in Composition if Species.symbol matches Element by @janosh in https://github.com/materialsproject/pymatgen/pull/3184
  • Revert LMAXMIX "fix" added in #3041 by @janosh in https://github.com/materialsproject/pymatgen/pull/3189
  • Add bader_exe_path keyword to BaderAnalysis and run bader tests in CI by @janosh in https://github.com/materialsproject/pymatgen/pull/3191
  • Unskip and fix packmol tests by @janosh in https://github.com/materialsproject/pymatgen/pull/3195
  • Propagate labels through various Structure operations by @stefsmeets in https://github.com/materialsproject/pymatgen/pull/3183
  • Delete variable self assignments by @janosh in https://github.com/materialsproject/pymatgen/pull/3196
  • Improve Structure tests by @janosh in https://github.com/materialsproject/pymatgen/pull/3197
  • Bump pypa/cibuildwheel from 2.12.3 to 2.14.1 by @dependabot in https://github.com/materialsproject/pymatgen/pull/3202
  • Bump numpy from 1.24.3 to 1.25.2 by @dependabot in https://github.com/materialsproject/pymatgen/pull/3201
  • Bump matplotlib from 3.5.2 to 3.7.2 by @dependabot in https://github.com/materialsproject/pymatgen/pull/3200
  • Bump scipy from 1.9.0 to 1.11.1 by @dependabot in https://github.com/materialsproject/pymatgen/pull/3199
  • Test class XYZ edge cases by @janosh in https://github.com/materialsproject/pymatgen/pull/3206
  • Fix EnergyAdjustment.__repr__ by @janosh in https://github.com/materialsproject/pymatgen/pull/3207
  • Markdownlint by @janosh in https://github.com/materialsproject/pymatgen/pull/3209
  • Fix codecov by @janosh in https://github.com/materialsproject/pymatgen/pull/3210
  • Update pytest-split durations by @janosh in https://github.com/materialsproject/pymatgen/pull/3211
  • Fix GitHub language statistics after test files migration by @janosh in https://github.com/materialsproject/pymatgen/pull/3214
  • Fix automatic_density_by_lengths and add tests for it by @janosh in https://github.com/materialsproject/pymatgen/pull/3218
  • Prefer len(structure) over structure.num_sites by @janosh in https://github.com/materialsproject/pymatgen/pull/3219
  • Add PhaseDiagram method get_reference_energy by @janosh in https://github.com/materialsproject/pymatgen/pull/3222
  • Fix isomorphic for molecular graphs by @rohithsrinivaas in https://github.com/materialsproject/pymatgen/pull/3221
  • Add Structure.elements property by @janosh in https://github.com/materialsproject/pymatgen/pull/3223
  • Add keyword in_place: bool = True to SiteCollection.replace_species by @janosh in https://github.com/materialsproject/pymatgen/pull/3224
  • list offending elements in BVAnalyzer.get_valences error message by @janosh in https://github.com/materialsproject/pymatgen/pull/3225
  • Add Entry.elements property by @janosh in https://github.com/materialsproject/pymatgen/pull/3226
  • Move PymatgenTest.TEST_FILES_DIR attribute into module scope by @janosh in https://github.com/materialsproject/pymatgen/pull/3227
  • f-string path construction everywhere, no need for os.path.join(...) by @janosh in https://github.com/materialsproject/pymatgen/pull/3229
  • speed up bader_caller and chargemol_caller by @chiang-yuan in https://github.com/materialsproject/pymatgen/pull/3192
  • Fix ruff PYI041 and ignore PYI024 by @janosh in https://github.com/materialsproject/pymatgen/pull/3232
  • Deprecate get_string() methods in favor of get_str() by @janosh in https://github.com/materialsproject/pymatgen/pull/3231
  • Structure/Molecule.to() now always return same string written to file by @janosh in https://github.com/materialsproject/pymatgen/pull/3236

New Contributors

  • @matthewkuner made their first contribution in https://github.com/materialsproject/pymatgen/pull/3149
  • @pablogalaviz made their first contribution in https://github.com/materialsproject/pymatgen/pull/3172
  • @rohithsrinivaas made their first contribution in https://github.com/materialsproject/pymatgen/pull/3221

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2023.7.20...v2023.8.10

- Python
Published by janosh almost 3 years ago

pymatgen - v2023.7.20

What's Changed

  • Unreadable string concat ops to f-string by @janosh in https://github.com/materialsproject/pymatgen/pull/3162
  • Revert mp-api<0.34.0 pin by @janosh in https://github.com/materialsproject/pymatgen/pull/3165
  • Fix CI error "pdentries_test.csv" not found by @janosh in https://github.com/materialsproject/pymatgen/pull/3168
  • Fix issues with labels by @stefsmeets in https://github.com/materialsproject/pymatgen/pull/3169
  • v2023.7.20 by @janosh in https://github.com/materialsproject/pymatgen/pull/3171

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2023.7.17...v2023.7.20

- Python
Published by janosh almost 3 years ago

pymatgen - v2023.7.17

What's Changed

  • Fix MagOrderingTransformation by enforcing implicit-zero magnetic moments in SpaceGroupAnalyzer by @mattmcdermott in https://github.com/materialsproject/pymatgen/pull/3070
  • Bug fix: CollinearMagneticAnalyzer should not fail when Species.spin = None by @mattmcdermott in https://github.com/materialsproject/pymatgen/pull/3157
  • Deprecate from_string by @janosh in https://github.com/materialsproject/pymatgen/pull/3158

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2023.7.14...v2023.7.17

- Python
Published by shyuep almost 3 years ago

pymatgen - v2023.7.14

What's Changed

  • Don't waste pytest.approx() function calls on integers by @janosh in https://github.com/materialsproject/pymatgen/pull/3150
  • Add check_potcar: bool = True to MaterialsProject2020Compatibility, MaterialsProjectDFTMixingScheme and PotcarCorrection by @janosh in https://github.com/materialsproject/pymatgen/pull/3143
  • Rename PMG_DISABLE_POTCAR_CHECKS to PMG_POTCAR_CHECKS by @janosh in https://github.com/materialsproject/pymatgen/pull/3153
  • Fix "Incompatible POTCAR" error on ComputedEntries with oxidation states by @janosh in https://github.com/materialsproject/pymatgen/pull/3155
  • Read site labels from cif file (2) by @stefsmeets in https://github.com/materialsproject/pymatgen/pull/3137

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2023.7.11...v2023.7.14

- Python
Published by shyuep almost 3 years ago

pymatgen - v2023.7.11

What's Changed

  • Add citations for Lobster modules and tiny addition to DOSCAR processing by @JaGeo in https://github.com/materialsproject/pymatgen/pull/3114
  • SpaceGroup.__repr__ by @janosh in https://github.com/materialsproject/pymatgen/pull/3122
  • Deprecate pymatgen.util.convergence by @janosh in https://github.com/materialsproject/pymatgen/pull/3123
  • Add pymatgen.io.openmm package to addons.rst by @orionarcher in https://github.com/materialsproject/pymatgen/pull/3124
  • Migrate from warnings.catch_warnings(record=True) to pytest.warns() by @janosh in https://github.com/materialsproject/pymatgen/pull/3125
  • Fix for missing lattice matches in ZSLGenerator by @fyalcin in https://github.com/materialsproject/pymatgen/pull/3127
  • Bump ruff + fix PERF402 violations by @janosh in https://github.com/materialsproject/pymatgen/pull/3129
  • Test error messages by @janosh in https://github.com/materialsproject/pymatgen/pull/3131
  • Enable ruff PT011 by @janosh in https://github.com/materialsproject/pymatgen/pull/3133
  • Read site labels from cif file by @stefsmeets in https://github.com/materialsproject/pymatgen/pull/3136
  • Refactor analysis/graphs.py using dict.pop() by @janosh in https://github.com/materialsproject/pymatgen/pull/3139
  • Breaking: Rename [SomeCode]ParserError to [SomeCode]ParseError and inherit from SyntaxError by @janosh in https://github.com/materialsproject/pymatgen/pull/3140
  • explicit test POTCAR by @jmmshn in https://github.com/materialsproject/pymatgen/pull/3141

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2023.6.28...v2023.7.11

- Python
Published by shyuep almost 3 years ago

pymatgen - v2023.6.28

  • Use lrucache to speed up getel_sp by 400x (@v1kko).
  • Related to lrucache of getel_sp, Species.properties is now deprecated in favor of setting Species(spin=5). The rationale is that spin is the only supported property for Species anyway. Species and DummySpecies is now mostly immutable, i.e., setting specie.spin = 5 have no effect. This is as intended since the first version of pymatgen.

- Python
Published by shyuep almost 3 years ago

pymatgen - v2023.06.23

We're pleased to ship the latest and greatest Pymatgen v2023.06.23 today! 🎉 👨‍💻 🌮

Besides squashing many bugs, we give you a brand new Molecule.relax() [code] courtesy of @arosen93 in https://github.com/materialsproject/pymatgen/pull/3044 to match the existing but now matGL-M3GNet-powered Structure.relax() [code].

What's more, we have some shiny new (Structure|Molecule).calculate() [code] methods for single-point ASE calculations if you just want a quick energy estimate for example:

```py from pymatgen.core import Lattice, Structure

structure = Structure( lattice=Lattice.cubic(2.8), species=("Fe", "Fe"), coords=((0, 0, 0), (0.5, 0.5, 0.5)), ) print(f"M3GNet energy={structure.calculate().calc.results['energy'][0]:.4} eV")

M3GNet energy=-16.84 eV ```

What's Changed

  • Update DictSet to allow direct initialization by @kavanase in https://github.com/materialsproject/pymatgen/pull/3031
  • DOC: remove "structure" from init by @lbluque in https://github.com/materialsproject/pymatgen/pull/3030
  • MPAqueousCompatiblity: compute hydrate correction using reduced rather than full composition by @rkingsbury in https://github.com/materialsproject/pymatgen/pull/2886
  • Don't do a hard bandgap==0 check in the r2SCAN workflow by @arosen93 in https://github.com/materialsproject/pymatgen/pull/3036
  • Improvements to PDPlotter: unary plots, 2D ternaries, better defaults, and highlight entries by @mattmcdermott in https://github.com/materialsproject/pymatgen/pull/3032
  • Rename VaspInputSet.(potcarfunctional->userpotcar_functional) and start testing DictSet by @janosh in https://github.com/materialsproject/pymatgen/pull/3035
  • Simplify dict["key"] if "key" in dict else None to dict.get("key") by @janosh in https://github.com/materialsproject/pymatgen/pull/3038
  • Fix LMAXMIX default in VASP INCAR now set based on element blocks in structure by @janosh in https://github.com/materialsproject/pymatgen/pull/3041
  • Better error message to clarify Structure.species only supported for ordered by @janosh in https://github.com/materialsproject/pymatgen/pull/3046
  • IcohpValue.__str__ don't return None by @janosh in https://github.com/materialsproject/pymatgen/pull/3052
  • PourbaixDiagram wrong composition bug fix by @montoyjh in https://github.com/materialsproject/pymatgen/pull/3053
  • Migrate GHA release job to PyPI trusted publishing by @janosh in https://github.com/materialsproject/pymatgen/pull/3055
  • Add (Structure|Molecule).calculate() + Molecule.relax(), improve Structure.relax() by @arosen93 in https://github.com/materialsproject/pymatgen/pull/3044
  • Don't require ASE as dependency by @arosen93 in https://github.com/materialsproject/pymatgen/pull/3062
  • Update doc in periodic_table.py by @755452800 in https://github.com/materialsproject/pymatgen/pull/3063
  • Skip Molecule.relax() tests by @arosen93 in https://github.com/materialsproject/pymatgen/pull/3060
  • Use self-documenting f-strings instead of hard-coding var names by @janosh in https://github.com/materialsproject/pymatgen/pull/3064
  • Fix ValueError: Unexpected atomic number Z=0 by @janosh in https://github.com/materialsproject/pymatgen/pull/3066
  • PymatgenTest add auto-used tmp_path fixture (replaces ScratchDir) by @janosh in https://github.com/materialsproject/pymatgen/pull/3067
  • Remove assertEqual vestiges in tests by @janosh in https://github.com/materialsproject/pymatgen/pull/3069
  • More pytest.approx() refactoring by @janosh in https://github.com/materialsproject/pymatgen/pull/3072
  • Update testkpathlm.py, remove redundant test and simplify tests by @JaGeo in https://github.com/materialsproject/pymatgen/pull/3073
  • AseAtomsAdaptor: Ensure Molecule.charge and Molecule.spin_multiplicity aren't lost upon interconversion by @arosen93 in https://github.com/materialsproject/pymatgen/pull/3056
  • Single-line None assignment by @janosh in https://github.com/materialsproject/pymatgen/pull/3074
  • Breaking: change Composition bad key error type from TypeError to KeyError by @janosh in https://github.com/materialsproject/pymatgen/pull/3075
  • Fix ase tests not running due to pymatgen/io/ase.py shadowing ase package by @janosh in https://github.com/materialsproject/pymatgen/pull/3077
  • Cosmetic fixes to AseAtomsAdaptor dictionary key ordering by @arosen93 in https://github.com/materialsproject/pymatgen/pull/3076
  • Improvements to the documentation of the Lobsterenv module by @JaGeo in https://github.com/materialsproject/pymatgen/pull/3079
  • More precise error message tests and more informative errors in some cases by @janosh in https://github.com/materialsproject/pymatgen/pull/3081
  • Add test_apply_scissor_(insulator|spin_polarized) by @janosh in https://github.com/materialsproject/pymatgen/pull/3082
  • Immutable class defaults by @janosh in https://github.com/materialsproject/pymatgen/pull/3085
  • Fix hill_formula Composition property by @amkrajewski in https://github.com/materialsproject/pymatgen/pull/3086
  • Fix doc string punctuation by @janosh in https://github.com/materialsproject/pymatgen/pull/3088
  • Fix DosPlotterTest.test_get_plot_limits() assert floats equal not using approx by @janosh in https://github.com/materialsproject/pymatgen/pull/3089
  • Check for expected error msg in pytest.raises() by @janosh in https://github.com/materialsproject/pymatgen/pull/3091
  • Fix ValueError when parsing vasprun.xml with only some atom force constants by @janosh in https://github.com/materialsproject/pymatgen/pull/3092
  • Fix test_babel_pc_with_ro_depth_0_vs_depth_10 by @janosh in https://github.com/materialsproject/pymatgen/pull/3093
  • Set hashlib.md5(usedforsecurity=False) when computing POTCAR hashes by @janosh in https://github.com/materialsproject/pymatgen/pull/3094
  • Move get_zmatrix from GaussianInput to Molecule by @JaGeo in https://github.com/materialsproject/pymatgen/pull/3095

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2023.05.31...v2023.06.23

- Python
Published by janosh almost 3 years ago

pymatgen - v2023.05.31

Attention ⚠️

user_potcar_settings now defaults to {"W": "W_sv"} in all VASP input sets if user_potcar_functional == "PBE_54" (since the 5.4 POTCARs dropped W_pv) (see https://github.com/materialsproject/pymatgen/pull/3022 for details)

What's Changed

  • Drop deprecated SubstrateAnalyzer + ZSLGenerator reexports by @janosh in https://github.com/materialsproject/pymatgen/pull/2981
  • Fix average error by @JaGeo in https://github.com/materialsproject/pymatgen/pull/2986
  • Doc strings by @janosh in https://github.com/materialsproject/pymatgen/pull/2987
  • Suspected Typo Fix in pymatgen.io.vasp.optics by @kavanase in https://github.com/materialsproject/pymatgen/pull/2989
  • Enable ruff doc rules in CI by @janosh in https://github.com/materialsproject/pymatgen/pull/2990
  • Add type hints for pymatgen.io.ase module by @arosen93 in https://github.com/materialsproject/pymatgen/pull/2991
  • Hide all type-hint-only imports behind if TYPE_CHECKING by @janosh in https://github.com/materialsproject/pymatgen/pull/2992
  • Orbital-resolved icohplist by @JaGeo in https://github.com/materialsproject/pymatgen/pull/2993
  • Re-export SiteCollection + DummySpecies from pymatgen.core by @janosh in https://github.com/materialsproject/pymatgen/pull/2995
  • Species parse oxi state from symbol str by @janosh in https://github.com/materialsproject/pymatgen/pull/2998
  • Add LightStructureEnvironments.fromstructureenvironments() fallback value if ce_and_neighbors is None by @janosh in https://github.com/materialsproject/pymatgen/pull/3002
  • Support writing structures to compressed JSON (.json.gz .json.bz2 .json.xz .json.lzma) by @janosh in https://github.com/materialsproject/pymatgen/pull/3003
  • Lookup MPRester API key in settings if None provided as arg by @ml-evs in https://github.com/materialsproject/pymatgen/pull/3004
  • Update .pytest-split-durations by @janosh in https://github.com/materialsproject/pymatgen/pull/3005
  • Clean up by @janosh in https://github.com/materialsproject/pymatgen/pull/3010
  • Fix ValueError when structure.selective_dynamics has type np.array by @janosh in https://github.com/materialsproject/pymatgen/pull/3012
  • Breaking: Overhaul class PymatgenTest by @janosh in https://github.com/materialsproject/pymatgen/pull/3014
  • Optimize cython findpointsin _spheres by @lbluque in https://github.com/materialsproject/pymatgen/pull/3015
  • MaterialsProjectCompatibility issue deprecation warning by @janosh in https://github.com/materialsproject/pymatgen/pull/3017
  • Tweak variable names by @janosh in https://github.com/materialsproject/pymatgen/pull/3019
  • Unignore ruff PD011 by @janosh in https://github.com/materialsproject/pymatgen/pull/3020
  • Breaking: Default user_potcar_settings to {"W": "W_sv"} in all input sets if user_potcar_functional == "PBE_54" by @janosh in https://github.com/materialsproject/pymatgen/pull/3022

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2023.5.10...v2023.05.31

- Python
Published by janosh about 3 years ago

pymatgen - v2023.5.10

  • Fix mem leak in pbcshortestvector cython code. (@stichri)
  • Set all cython code to language level 3.

- Python
Published by shyuep about 3 years ago

pymatgen - v2023.5.8

❗ The Yb_2 deprecation release ❗

This release changes the Ytterbium (Yb) pseudo-potential (PSP) from Yb_2 to Yb_3 for all PBE_54 VASP input sets.

Background: The A-lab revealed that as a result of using Yb_2 the energy on Yb compounds is off by a lot, resulting in supposedly stable things being unsynthesizable. While an unfortunate mistake, it's also great to see how experiment can help surface simulation errors.

On pre-PBE_54 input sets, we now issue a warning that Yb_2 will give bad results for most systems since Yb is most often in oxidation state Yb3+.

Reason: The better fix Yb_3 only became available in the PBE_54 PSP set. Requiring it on pre-PBE_54 input sets would mean you can't run Yb compounds.

For more details see #2968 and #2969.

What's Changed

  • Fix TypeError: a bytes-like object is required, not 'list' when passing triplet of bools to find_points_in_spheres() pbc kwarg by @janosh in https://github.com/materialsproject/pymatgen/pull/2907
  • Fix ValueError: not enough values to unpack in PDPlotter if no unstable entries in PD by @janosh in https://github.com/materialsproject/pymatgen/pull/2908
  • Fix VolumetricData.to_cube() not preserving structure dimensions by @janosh in https://github.com/materialsproject/pymatgen/pull/2909
  • Update team.rst by @jmmshn in https://github.com/materialsproject/pymatgen/pull/2912
  • Faff by @janosh in https://github.com/materialsproject/pymatgen/pull/2915
  • Add formal_chempots option to ChemicalPotentialDiagram to plot the formal chemical potentials rather than the DFT energies by @kavanase in https://github.com/materialsproject/pymatgen/pull/2916
  • Modified dosplotter by @kaueltzen in https://github.com/materialsproject/pymatgen/pull/2844
  • auto version by @jmmshn in https://github.com/materialsproject/pymatgen/pull/2925
  • bug fix for potcar parsing by @jmmshn in https://github.com/materialsproject/pymatgen/pull/2910
  • Fix breaking changes from pandas v2 by @janosh in https://github.com/materialsproject/pymatgen/pull/2935
  • add kwarg to MoleculeGraph method and fix PackmolSet bug by @orionarcher in https://github.com/materialsproject/pymatgen/pull/2927
  • fix on reading multiple route in Gaussian input file by @Ameyanagi in https://github.com/materialsproject/pymatgen/pull/2939
  • Fix CI errors by @janosh in https://github.com/materialsproject/pymatgen/pull/2940
  • Add ResParser support for reading files with spin values by @ScottNotFound in https://github.com/materialsproject/pymatgen/pull/2941
  • Ignore bad unicode characters in Structure.from_file() by @janosh in https://github.com/materialsproject/pymatgen/pull/2948
  • Minor modification for symmetrically distinct Miller index generation by @fyalcin in https://github.com/materialsproject/pymatgen/pull/2949
  • Fixed Wulff shape for new versions of matplotlib by @CifLord in https://github.com/materialsproject/pymatgen/pull/2950
  • Test figure returned by WulffShape.get_plot() contains single Axes3D by @janosh in https://github.com/materialsproject/pymatgen/pull/2953
  • Fix Cp2kOutput.spin_polarized() likely not doing what author intended by @janosh in https://github.com/materialsproject/pymatgen/pull/2954
  • For MPcules: Molecule Trajectory and graph hashes by @espottesmith in https://github.com/materialsproject/pymatgen/pull/2945
  • self.assertArrayEqual->assert by @janosh in https://github.com/materialsproject/pymatgen/pull/2955
  • fix GaussianOutput bug with multiple route lines by @xjf729 in https://github.com/materialsproject/pymatgen/pull/2937
  • Fix ValueError when passing selective_dynamics to Poscar by @chiang-yuan in https://github.com/materialsproject/pymatgen/pull/2951
  • Bump beautifulsoup4 from 4.11.1 to 4.12.2 by @dependabot in https://github.com/materialsproject/pymatgen/pull/2962
  • Bump pypa/cibuildwheel from 2.11.4 to 2.12.3 by @dependabot in https://github.com/materialsproject/pymatgen/pull/2959
  • Bump uncertainties from 3.1.6 to 3.1.7 by @dependabot in https://github.com/materialsproject/pymatgen/pull/2960
  • Bump numpy from 1.23.2 to 1.24.3 by @dependabot in https://github.com/materialsproject/pymatgen/pull/2963
  • Bump tabulate from 0.8.10 to 0.9.0 by @dependabot in https://github.com/materialsproject/pymatgen/pull/2961
  • Bump pandas from 1.4.4 to 2.0.1 by @dependabot in https://github.com/materialsproject/pymatgen/pull/2964
  • Link /addons from new subsection on /contributing page by @janosh in https://github.com/materialsproject/pymatgen/pull/2967
  • Breaking: change Yb pseudo-potential on all VASP input sets from Yb_2 to Yb_3 by @janosh in https://github.com/materialsproject/pymatgen/pull/2969
  • fix recursion error by adding copy and deepcopy dunder methods by @orionarcher in https://github.com/materialsproject/pymatgen/pull/2973
  • Revert to Yb_2 on pre-PBE_54 input sets by @janosh in https://github.com/materialsproject/pymatgen/pull/2972
  • Enable flake8-pytest-style via ruff by @janosh in https://github.com/materialsproject/pymatgen/pull/2975
  • Enable all ruff pylint rules (excl. PLR) by @janosh in https://github.com/materialsproject/pymatgen/pull/2977
  • only return unique point group operations by @mueslo in https://github.com/materialsproject/pymatgen/pull/2942

New Contributors

  • @kaueltzen made their first contribution in https://github.com/materialsproject/pymatgen/pull/2844
  • @chiang-yuan made their first contribution in https://github.com/materialsproject/pymatgen/pull/2951
  • @mueslo made their first contribution in https://github.com/materialsproject/pymatgen/pull/2942

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2023.3.23...v2023.5.8

- Python
Published by janosh about 3 years ago

pymatgen - v2023.3.23

  • Misc bug fixes.
  • Enable Structure relaxations with TrajectoryObserver (@janosh)

- Python
Published by shyuep about 3 years ago

pymatgen - v2023.3.10

- Python
Published by shyuep about 3 years ago

pymatgen - v2023.2.28

First release (in a while) with pre-built Linux wheels thanks to @njzjz! 🎉

What's Changed

  • use cibuildwheel to build linux wheels by @njzjz in https://github.com/materialsproject/pymatgen/pull/2800
  • Merge setup.cfg into pyproject.toml by @janosh in https://github.com/materialsproject/pymatgen/pull/2858
  • del class AtomicFile, maketemp(), askyesno() by @janosh in https://github.com/materialsproject/pymatgen/pull/2860
  • fix reduced formula in Ion by @yang-ruoxi in https://github.com/materialsproject/pymatgen/pull/2864
  • Prepare release 2023.2.28 by @janosh in https://github.com/materialsproject/pymatgen/pull/2867

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2023.2.22...v2023.2.28

What's Changed

  • use cibuildwheel to build linux wheels by @njzjz in https://github.com/materialsproject/pymatgen/pull/2800
  • Merge setup.cfg into pyproject.toml by @janosh in https://github.com/materialsproject/pymatgen/pull/2858
  • del class AtomicFile, maketemp(), askyesno() by @janosh in https://github.com/materialsproject/pymatgen/pull/2860
  • fix reduced formula in Ion by @yang-ruoxi in https://github.com/materialsproject/pymatgen/pull/2864
  • Prepare release 2023.2.28 by @janosh in https://github.com/materialsproject/pymatgen/pull/2867

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2023.2.22...v2023.2.28

- Python
Published by janosh over 3 years ago

pymatgen - v2023.2.22

What's Changed

  • Fix pre-commit.ci isort error by @janosh in https://github.com/materialsproject/pymatgen/pull/2825
  • Changes to Q-Chem IO to allow CDFT and coupling calculations by @espottesmith in https://github.com/materialsproject/pymatgen/pull/2674
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/materialsproject/pymatgen/pull/2834
  • Add inplace flag to select whether to adjust entries in place by @peikai in https://github.com/materialsproject/pymatgen/pull/2841
  • Default check_stable to False in PatchedPhaseDiagram.get_decomp_and_e_above_hull() for speed by @janosh in https://github.com/materialsproject/pymatgen/pull/2842
  • Document difference between Composition.getelamtdict() and Composition.asdict() by @janosh in https://github.com/materialsproject/pymatgen/pull/2846
  • Manually update OPTIMADE database aliases and add option to refresh on init by @ml-evs in https://github.com/materialsproject/pymatgen/pull/2848
  • Add Ruff linter by @janosh in https://github.com/materialsproject/pymatgen/pull/2847
  • Fix auto-fixable pydocstyle errors through ruff by @janosh in https://github.com/materialsproject/pymatgen/pull/2850
  • Fix OPTIMADE client generated filters and URLs by @ml-evs in https://github.com/materialsproject/pymatgen/pull/2853
  • Run pyupgrade and flake8-simplify through ruff by @janosh in https://github.com/materialsproject/pymatgen/pull/2851
  • Fix typo in OPTIMADE client: remove quotes in response fields by @ml-evs in https://github.com/materialsproject/pymatgen/pull/2856
  • Ruff c4+ruf rules by @janosh in https://github.com/materialsproject/pymatgen/pull/2854
  • Add python-version 3.11 to GH action matrix strategy by @janosh in https://github.com/materialsproject/pymatgen/pull/2714
  • 2023.2.22 release by @janosh in https://github.com/materialsproject/pymatgen/pull/2857

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2023.1.30...v2023.2.22

- Python
Published by janosh over 3 years ago

pymatgen - v2023.1.30

- Python
Published by shyuep over 3 years ago

pymatgen - v2023.1.20

  • Passthrough kwargs support for Structure.fromfile and Structure.fromstr
  • Allow the frac_tolerance to be specified for rounding coordinates in CifParser.
  • PR #2803 from @amkrajewski add_weightbasedfunctions

- Python
Published by shyuep over 3 years ago

pymatgen - v2023.1.9

What's Changed

  • Fix failing piezo tests by @janosh in https://github.com/materialsproject/pymatgen/pull/2729
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/materialsproject/pymatgen/pull/2722
  • Document rare structure dependence of MaterialsProjectCompatibility corrections by @janosh in https://github.com/materialsproject/pymatgen/pull/2731
  • Markdown readme by @janosh in https://github.com/materialsproject/pymatgen/pull/2733
  • Fix extremum_icohpvalue() for ICOBILIST.lobster files by @naik-aakash in https://github.com/materialsproject/pymatgen/pull/2734
  • use build to build packages by @njzjz in https://github.com/materialsproject/pymatgen/pull/2735
  • Sunset module pymatgen/util/serialization.py by @janosh in https://github.com/materialsproject/pymatgen/pull/2736
  • Fix lobsterout.get_doc() typo by @naik-aakash in https://github.com/materialsproject/pymatgen/pull/2737
  • {ADMIN,CONTRIBUTING,LICENSE}.{rst->md} by @janosh in https://github.com/materialsproject/pymatgen/pull/2738
  • rm MANIFEST.in by @janosh in https://github.com/materialsproject/pymatgen/pull/2739
  • Resurrect requirements{,optional}.txt by @janosh in https://github.com/materialsproject/pymatgen/pull/2741
  • Enable dependabot for pip by @janosh in https://github.com/materialsproject/pymatgen/pull/2742
  • Fix loose endpoints in NEBPathfinder.string_relax() by @janosh in https://github.com/materialsproject/pymatgen/pull/2740
  • QChem: add CMIRS solvent model support by @rkingsbury in https://github.com/materialsproject/pymatgen/pull/2215
  • Added missing keyword from LOBSTER 4.1 to lobsterin generation class by @naik-aakash in https://github.com/materialsproject/pymatgen/pull/2764
  • Fix CI by @janosh in https://github.com/materialsproject/pymatgen/pull/2767
  • Cython linting by @janosh in https://github.com/materialsproject/pymatgen/pull/2769
  • Add setup.py project_urls by @janosh in https://github.com/materialsproject/pymatgen/pull/2771
  • Move VolumetricData to io/common and merge cube support by @nwinner in https://github.com/materialsproject/pymatgen/pull/2667
  • Fix typo in Poscar get_string by @dgaines2 in https://github.com/materialsproject/pymatgen/pull/2774
  • Update to the hashing systems for PotcarSingle that fixes some small bugs and allows for verification with the sha256 hash written in new POTCARs by @MichaelWolloch in https://github.com/materialsproject/pymatgen/pull/2762
  • Fix lobster out doc by @naik-aakash in https://github.com/materialsproject/pymatgen/pull/2775
  • BUG FIX for merged pull request #2762 by @MichaelWolloch in https://github.com/materialsproject/pymatgen/pull/2776
  • Colorbar label for PDPlotter by @ab5424 in https://github.com/materialsproject/pymatgen/pull/2773
  • Added methods to compute and compare DOS fingerprints by @naik-aakash in https://github.com/materialsproject/pymatgen/pull/2772
  • Fix coord_list_mapping_pbc() by @janosh in https://github.com/materialsproject/pymatgen/pull/2782
  • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/materialsproject/pymatgen/pull/2789
  • Cp2k 2.0 by @nwinner in https://github.com/materialsproject/pymatgen/pull/2672
  • One attempt to fix ChemEnv error in tests by @JaGeo in https://github.com/materialsproject/pymatgen/pull/2792
  • Prefer generator over list comprehension where equivalent by @janosh in https://github.com/materialsproject/pymatgen/pull/2793
  • Added a missing multi element POTCAR file by @MichaelWolloch in https://github.com/materialsproject/pymatgen/pull/2796
  • isort auto insert __future__ annotations import by @janosh in https://github.com/materialsproject/pymatgen/pull/2797
  • Release v2023.1.9 by @janosh in https://github.com/materialsproject/pymatgen/pull/2798

New Contributors

  • @njzjz made their first contribution in https://github.com/materialsproject/pymatgen/pull/2735

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2022.11.7...v2023.1.9

- Python
Published by janosh over 3 years ago

pymatgen - v2022.11.7

What's Changed

  • Fix release workflow by @janosh in https://github.com/materialsproject/pymatgen/pull/2717
  • Parsing the Fock matrix and eigenvalues from the QChem output file by @sudarshanv01 in https://github.com/materialsproject/pymatgen/pull/2562
  • Add copy() methods to ComputedEntry and ComputedStructureEntry by @janosh in https://github.com/materialsproject/pymatgen/pull/2719
  • Fix tensor mapping by @utf in https://github.com/materialsproject/pymatgen/pull/2720
  • Raise ValueError in SpacegroupAnalyzer.getsymmetrizedstructure() if spglib returns no symmetries by @janosh in https://github.com/materialsproject/pymatgen/pull/2724
  • Release v2022.11.7 by @janosh in https://github.com/materialsproject/pymatgen/pull/2726
  • VaspInputSet couldn't write cif structures by @JiQi535 in https://github.com/materialsproject/pymatgen/pull/2721
  • Fix release CI workflow by @janosh in https://github.com/materialsproject/pymatgen/pull/2728
  • Do not introduce zero magmoms in SpacegroupAnalyzer by @lbluque in https://github.com/materialsproject/pymatgen/pull/2727

New Contributors

  • @sudarshanv01 made their first contribution in https://github.com/materialsproject/pymatgen/pull/2562
  • @JiQi535 made their first contribution in https://github.com/materialsproject/pymatgen/pull/2721

Full Changelog: https://github.com/materialsproject/pymatgen/compare/v2022.11.1...v2022.11.7

- Python
Published by janosh over 3 years ago

pymatgen - v2022.11.1

  • Order of kwargs fmt and filename in Structure.to() swapped for ease of use (note: this can break codes that do not use these options as kwargs).
  • @yuzie007 Parse "Atomic configuration" in POTCAR (52 and 54). Useful for estimating a reasonable NBANDS value.
  • EnumerateStructureTransformation now supports m3gnet_relax or m3gnet_static options.

- Python
Published by shyuep over 3 years ago

pymatgen - v2022.10.22

  • Allow env settings to override .pmgrc.yaml (@janosh)
  • Add EntryLike type (@janosh)
  • Update spglib to 2.0+.

- Python
Published by shyuep over 3 years ago

pymatgen - v2022.9.21

  • @chunweizhu fix the bugs when runing TEMCalculator
  • @munrojm Support for new MPRester.

- Python
Published by shyuep over 3 years ago

pymatgen - v2022.9.8

  • @janosh Add AirssProvider.as_dict
  • @gpetretto Outcar parsing optimization.
  • @ScottNotFound Adds res file io to handle results from airss searches
  • @janosh Fixes the AttributeError currently raised when passing disordered structures to methods like get_cn() and get_bonded_structure() of CrystalNN and other NearNeighbors subclasses.

- Python
Published by shyuep over 3 years ago

pymatgen - v2022.8.23

  • Structure Graphs from Lobster Data (@JaGeo)

- Python
Published by shyuep almost 4 years ago

pymatgen - v2022.7.25

- Python
Published by shyuep almost 4 years ago

pymatgen - v2022.7.24.1

  • Initial implementation of an MPRester2 with new API support. Basic functionality for now.

Note that a further announcement will be made about the future of MPRester. Until then, users of MPRester are advised to consult the Materials Project documentation: https://docs.materialsproject.org/downloading-data/differences-between-new-and-legacy-api

- Python
Published by shyuep almost 4 years ago

pymatgen - v2022.7.24

  • Initial implementation of an MPRester2 with new API support. Basic functionality for now.

Note that a further announcement will be made about the future of MPRester. Until then, users of MPRester are advised to consult the Materials Project documentation: https://docs.materialsproject.org/downloading-data/differences-between-new-and-legacy-api

- Python
Published by shyuep almost 4 years ago

pymatgen - v2022.7.19

This will be the final release with the pymatgen.analysis.defects module included in the standard pymatgen package. This release will include the older defects code by default, but can also be replaced with the newer defects code through installation of pymatgen-analysis-defects.

Subsequent versions of pymatgen will require the additional installation of pymatgen-analysis-defects for all defect-related functionality via pip install pymatgen-analysis-defects.

Relevant imports will still be from the pymatgen.analysis.defects namespace but the code will now be maintained and developed in this separate repository.

There will be significant changes to the defects code to support new functionality. Existing PyCDT users should use this version of pymatgen or older. Any questions about this change should be directed to Jimmy-Xuan Shen, @jmmshn.

For more information about other pymatgen "add-on" packages, please see this page in our documentation.

  • Preparation for the removal of the defects module, PR #2582 by @jmmshn

- Python
Published by mkhorton almost 4 years ago

pymatgen - v2022.7.8

Welcome to new contributors @naveensrinivasan, @xivh, @dgaines2, @yang-ruoxi, @cajfisher and @mjwen!

What's Changed

  • New: Partial periodic boundary conditions, PR #2429 by @gpetretto
  • New: Element.from_name(), PR #2567 by @rkingsbury
  • New: Materials Project input set for absorption calculations, PR #2320 by @yang-ruoxi
  • Enhancement: compressed LAMMPS and XYZ files in pymatgen.io.lammps, PR #2538 by @ab5424
  • Enhancement: remove vertical lines from VoltageProfilePlotter.getplotlyfigure(), PR #2552 by @acrutt
  • Enhancement: chemical potential plot background color changed, PR #2559 @jmmshn
  • Enhancement: ability to change voronoidistancecutoff in ChemEnv, PR #2568 by @JaGeo
  • Enhancement: Ion.oxistateguesses will use correct charge by default, PR #2566 by @rkingsbury
  • Enhancement: Remove not converged warning for VASP AIMD runs, PR #2571 by @mjwen
  • Fix: generation of continuous line-mode band structures, PR #2533 by @munrojm
  • Fix: duplicate site properties for magnetic moments hwen using AseAtomsAdaptor, PR #2545 by @arosen93
  • Fix: bug in Grüneisen parameter calculation, PR #2543 by by @ab5424
  • Fix: allow a comment on final line of KPOINTS file, PR #2549 by @xivh
  • Fix: for Composition.replace with complex mappings, PR #2555 by @jacksund
  • Fix: Implement equality method and fix iter for InputSet, PR #2575 by @rkingsbury
  • Fix: use negative charge convention for electron in "updatechargefrom_potcar", PR #2577 by @jmmshn
  • Fix: ensure charge is applied to initial and final structures parsed from vasprun.xml, PR #2579 by @jmmshn
  • Chore: Set permissions for GitHub actions, PR #2547 by @naveensrinivasan
  • Chore: Included GitHub actions in the Dependabot config, PR #2548 by by @naveensrinivasan
  • Documentation: fix typos in pymatgen.symmetry.analyzer docstrings, PR #2561 by @dgaines2
  • Documentation: clarification about usage of InputFile, PR #2570 by by @orionarcher
  • Documentation: Improve messages and warnings, PR #2572 and PR #2573 by @cajfisher
  • Documentation: fix typo, PR #2580 by @janosh

Notice

Functionality from pymatgen.analysis.defects will be incorporated into a separate add-on package in the future, see pymatgen-analysis-defects and deprecation notice in the code for more information.

- Python
Published by mkhorton almost 4 years ago

pymatgen - v2022.5.26

  • Q-Chem updates to NBO and new geometry optimizer, PR #2521 by @samblau
  • Bug fix for VolumetricData, PR #2525 by @jmmshn
  • Bug fix for MPRester, PR #2531 by @janosh

- Python
Published by mkhorton about 4 years ago

pymatgen - v2022.5.19

  • Added option for addtional criteria to be passed to MPRester.getentriesin_chemsys (@shyuep).

- Python
Published by shyuep about 4 years ago

pymatgen - v2022.5.18.1

  • Initial support for parsing ML MD runs from vasprun.xml (@shyuep).

- Python
Published by shyuep about 4 years ago

pymatgen - v2022.5.18

  • Bug fix for sulfide_type. Sometimes symmetry analysis fails because of tolerance issues. A fallback to analyze all sites.

- Python
Published by shyuep about 4 years ago

pymatgen - v2022.5.17

  • PR #2518 from @JaGeo. Fixed wrong line in ICOHPLIST.lobster being read to assess whether orbitalwise interactions are included in these files.
  • PR #2520 from @arosen93. Adds a new property to the PointGroupAnalyzer: the rotational symmetry number.
  • PR #2522 from @jmmshn. Fixes PD JSON serialization.
  • PR #2514 from @qianchenqc. Replaced the IALGO tag with ALGO as recommended in the vasp documentation https://www.vasp.at/wiki/index.php/IALGO.
  • PR #2404 from @nheinsdorf. Added a method that gets all the neighbors up a maximum distance for a Structure, and groups these 'bonds' according to their symmetry.
  • PR #2509 from @jacksund Fix NMR Set.

- Python
Published by shyuep about 4 years ago

pymatgen - v2022.4.26

  • Fix dipole units in recent vasp versions (at least 6.3, maybe even before) (@@fraricci)
  • Removed complex numbers from the definition of WSWQ (@jmmshn)
  • MP database version logging is now no longer logged in the .pmgrc.yaml but rather in the .mprester.log.yaml. This avoids the MPRester constantly rewriting a config file and causing users' pymatgen to completely fail.

- Python
Published by shyuep about 4 years ago

pymatgen - v2022.4.19

- Python
Published by shyuep about 4 years ago

pymatgen - v2022.3.29

  • Major update to CP2K module, PR #2475 from @nwinner
  • Bug fix to remove problematic import, PR #2477 from @mkhorton

- Python
Published by mkhorton about 4 years ago

pymatgen - v2022.3.24

  • Emergency bugfix release to fix circular import (@janosh)

- Python
Published by shyuep about 4 years ago

pymatgen - v2022.3.22

  • Support kwargs for ASE adaptor. (@arosen93)
  • Fix for cation error in Lobster analysis. (@JaGeo)
  • Major revampt of Abstract interface for Input classes in IO. (@rkingsbury)

- Python
Published by shyuep about 4 years ago

pymatgen - v2022.3.7

  • Add VASP WSWQ file parsing, PR #2439 from @jmmshn
  • Improve chemical potential diagram plotting, PR #2447 from @mattmcdermott
  • Update to Lobster calculation settings, PR #2434 from @JaGeo master
  • Allow non-integer G-vector cut-off values when parsing WAVECAR, PR #2410 from @arosen93
  • Fix for Structure.from_file when file is in YAML format from @janosh fix-structure-from-yml
  • Update of linter configuration, PR #2440 from @janosh
  • Update to ChemEnv citation, PR #2448 from @JaGeo
  • Type annotation fix, PR #2432 from @janosh
  • Documentation fix for Structure.apply_operation, PR #2433 from @janosh
  • Add caching to compatibility classes as speed optimization, PR #2450 from @munrojm

This release was previously intended for v2022.2.25.

Important note: an update to a library that pymatgen depends upon has led to the ~/.pmgrc.yml configuration file being corrupted for many users. If you are affected, you may need to re-generate this file. This issue should now be fixed and not re-occur.

- Python
Published by mkhorton about 4 years ago

pymatgen - v2022.2.25

[Update: This release did not make it to PyPI due to an error in the release process, see the new v2022.3.7 release instead.]

  • Add VASP WSWQ file parsing, PR #2439 from @jmmshn
  • Improve chemical potential diagram plotting, PR #2447 from @mattmcdermott
  • Update to Lobster calculation settings, PR #2434 from @JaGeo master
  • Allow non-integer G-vector cut-off values when parsing WAVECAR, PR #2410 from @arosen93
  • Fix for Structure.from_file when file is in YAML format from @janosh
  • Update of linter configuration, PR #2440 from @janosh
  • Update to ChemEnv citation, PR #2448 from @JaGeo
  • Type annotation fix, PR #2432 from @janosh
  • Documentation fix for Structure.apply_operation, PR #2433 from @janosh

- Python
Published by mkhorton over 4 years ago

pymatgen - v2022.2.10

  • Require Cython during setup. (@jonringer)

- Python
Published by shyuep over 4 years ago

pymatgen - v2022.2.7

- Python
Published by shyuep over 4 years ago

pymatgen - v2022.2.1

  • Chargemol caller for partial atomic charge analysis (@arosen93)
  • ASEAtomAdaptor: (1) Updates to magmom support, (2) Oxidation states support, (3) Charges are now passed (@arosen93)
  • Cleanup of deprecated methods. (@janosh)
  • Bigfix for gzipped DOSCAR (@JaGeo)
  • Updates for QChem Support (@samblau)
  • QuantumEspresso k-grid fix input fix. (@vorwerkc)
  • Entry.__repr__() now ouputs name where available. (@janosh)
  • Fixes to Vasprun.finalenergy to report `e0_energy` (the desired energy quantity) for VASP 6+. (@arosen93)
  • Outcar().final_energy now prints out e_0_energy (also called "energy(sigma->0)" in the OUTCAR) rather than energy_fr_energy (also called "free energy TOTEN" in the OUTCAR). This is to be consistent with Vasprun().final_energy and because it is generally the desired quantity. Outcar now has two new attributes: .final_energy_wo_entrp and final_fr_energy, which correspond to e_wo_entrp and e_fr_energy, respectively. (@arosen93)
  • Improved parsing of coupled cluster calculations in QChem (@espottesmith).

- Python
Published by shyuep over 4 years ago

pymatgen - v2022.1.24

  • Misc bug fixes, e.g., handling of yaml files and type check for MAGMOM flag.

- Python
Published by shyuep over 4 years ago

pymatgen - v2022.1.20

  • Unicode fixes (@janosh)
  • YAML deprecation fixes. (@janosh)
  • ASE adaptor support for charge, spin multiiciplity and site properties of molecules. (@arosen93).
  • New keyword option (keep_site_properties) in various structure.symmetry.analyzer functions to keep the site properties on the sites after a transformation. (@arosen93)
  • Bug fixes for Lobster module (@JaGeo).
  • SCAN / GGA(+U) mixing scheme (@rkingsbury). Mixing scheme code lives in the new file mixing_scheme.py and is implemented as a Compatibility class.
  • Fix for parsing of QuantumExpresso files due to new format (@vorwerkc)

- Python
Published by shyuep over 4 years ago

pymatgen - v2022.01.09

  • Formal support for Python 3.10.
  • Misc refactoring and bug fixes. No new functionality.

- Python
Published by shyuep over 4 years ago

pymatgen - v2022.01.08

- Python
Published by shyuep over 4 years ago

pymatgen - v2022.0.17

Welcome to new contributor @e-kwsm!

Improvements * More robust smart fermi method by @utf in https://github.com/materialsproject/pymatgen/pull/2303 * Add warning if improper ALGO is used for hybrid calculations by @arosen93 in https://github.com/materialsproject/pymatgen/pull/2298 * Wrap supercell to unit cell when performing change of setting by @jmmshn in https://github.com/materialsproject/pymatgen/pull/2300 * Clearer handling of the MAGMOM flag in pymatgen.io.vasp.sets by @arosen93 in https://github.com/materialsproject/pymatgen/pull/2301 * Add warning if LASPH != True for meta-GGA/hybrid/vdW/+U by @arosen93 in https://github.com/materialsproject/pymatgen/pull/2297 * Add ability to request additional OPTIMADE fields by @ml-evs in https://github.com/materialsproject/pymatgen/pull/2315 * Add missing elements to MPScanRelaxSet PBE .54 potentials by @arosen93 in https://github.com/materialsproject/pymatgen/pull/2316

Fixes * Fix write Trajectory XDATACAR with variable lattice by @gpetretto in https://github.com/materialsproject/pymatgen/pull/2310 * Fix small cutoff neighbor by @chc273 in https://github.com/materialsproject/pymatgen/pull/2277 * Add Composition.replace() by @janosh in https://github.com/materialsproject/pymatgen/pull/2284 * Ion bugfixes and enhancements by @rkingsbury in https://github.com/materialsproject/pymatgen/pull/2287 * Fix oddly split strings and a few typos by @janosh in https://github.com/materialsproject/pymatgen/pull/2285 * InsertionElectrode bug fix and documentation update by @acrutt in https://github.com/materialsproject/pymatgen/pull/2257 * Remove accidentally tracked files and unset executable flag by @e-kwsm in https://github.com/materialsproject/pymatgen/pull/2296

Documentation * Update DOI URLs by @e-kwsm in https://github.com/materialsproject/pymatgen/pull/2295 * Fix missing Outcar attributes and update elementaldosdos string by @arosen93 in https://github.com/materialsproject/pymatgen/pull/2293 * Update CutOffDictNN by @ltalirz in https://github.com/materialsproject/pymatgen/pull/2278 * Update replace_species by @janosh in https://github.com/materialsproject/pymatgen/pull/2291

- Python
Published by mkhorton over 4 years ago

pymatgen - v2022.0.16

  • Fix to allow PhaseDiagram to be JSON serializable with computed data cached (@mkhorton, #2276)
  • Temporarily revert #2239 pending investigation into slow-down in some nearest neighbor finding routines. This does not affect the behavior of any of these classes.

- Python
Published by mkhorton over 4 years ago

pymatgen - v2022.0.15

Welcome to new contributors @blokhin, @pzarabadip, @ml-evs, @wuxiaohua1011, @janssenhenning and @penicillin0.

A reminder to all new contributors to ensure your information is accurate at https://pymatgen.org/team.html so that you are acknowledged appropriately by filling out the linked form.

  • Breaking change in PhaseDiagram serialization which will affect any users of BasePhaseDiagram which has now been removed (@shyuep, 2b9911d)

  • Speed up nearest-neighbor routines & structure graph generation (@ltalirz, #2239)

  • Add two more pre-defined OPTIMADE aliases (@blokhin, #2242)

  • Refactor interface_reactions module, adding support for Plotly (@mattmcdermott, #2233)

  • Update NOMAD access in MPRester (@wuxiaohua1011, #1958)

  • General improvements to Phase Diagram code (@CompyRhys, #2263, #2264, #2268)

  • Improve appearance of periodic table heatmap (@penicillin0, #2272)

  • Small improvements to battery classes (@jmmshn, #2262)

  • Fix for Composition.chemical_system to match expected behaviour for compositions with oxidation states (@CompRhys, #2249)

  • Fix for bad param in OPTIMADE reponse fields (@ml-evs, #2244)

  • Fix for issue in parsing bandOverlaps.lobster file (@pzarabadip, #2237)

  • Fix for Moladaptor (@orioncohen, #2269)

  • Fix for incorrect Potcar hash warnings (@mkhorton, #2273)

  • Type hint and correct documentation of Structure.removesiteproperties (@kmu, #2256)

  • Type hint improvements across pymatgen (@janosh, #2241, #2247, #2261)

  • Add pymatgen-io-fleur addon to addons page (@janssenhenning, #2232)

- Python
Published by mkhorton over 4 years ago

pymatgen - v2022.0.14

  • Update OPTIMADE interface to allow querying multiple providers (@mkhorton, #2238)

- Python
Published by mkhorton over 4 years ago

pymatgen - v2022.0.13

  • New feature to plot chemical potential diagrams (@mattmcdermott, #2218), see ArXiv:2104.05986 for example
  • Numerous updates to LOBSTER support for new version and including handling COBICAR, SitePotentials and MadelungEnergies (@JaGeo, #2228)
  • Updates and fixes for LAMMPS CombinedData (@htz1992213, #2191)
  • Bug fix for Bader caller (@nwinner, #2230)
  • Documentation fix for Composition (@CompRhys, #2231)

- Python
Published by mkhorton over 4 years ago

pymatgen - v2022.0.12

  • @chc273 Major bugfix for cython handling of fractional coordinates wrapping.
  • @mattmcdermott Bug fix for entry_ID phase diagram plotting bug described in this Issue: #2219
  • @FCMeng Fix for PWSCF to distinguish same element with different oxidation state, which might have different pseudopotentials.
  • @gmatteo fix minor bug when reading Structure from a netcdf4 file with hdf5 groups

- Python
Published by shyuep almost 5 years ago