Recent Releases of pymatgen
pymatgen - v2025.6.14
- Treat LATTICE_CONSTRAINTS as is for INCARs.
- PR #4425
JDFTXOutfileSlice.trajectoryrevision by @benrich37 Major changes:- feature 1:
JDFTXOutfileSlice.trajectoryis now initialized withframe_propertiesset --JOutStructure.propertiesfilled with relevant data forframe_properties-- More properties added toJOutStructure.site_properties## Todos - Remove class attributes in
JOutStructurenow redundant to data stored inJOutStructure.propertiesandJOutStructure.site_properties
- feature 1:
- 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.inputsto 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_imagealgorithm by @kavanase I noticed that in some of ourdopedtesting 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 ofis_periodic_image, which can be expensive for large structures due to manynp.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 onis_periodic_image(and thusSpacegroupAnalyzer.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_branchesby @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")
- Fix branch directory check in
- 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_mapandplot_all_stability_map. by @kmu Major changes:- Replaced incorrect
ax.xlabel()andax.ylabel()calls with correctax.set_xlabel()andax.set_ylabel(). - Added
ax.legend()toplot_all_stability_mapso that labels passed viaax.plot(..., label=...)are displayed. - Added
test_plot()totest_surface_analysis.py.
- Replaced incorrect
- PR #4424 Add additional name mappings for new LDA v64 potcars by @mkhorton As title.
- PR #4426 Fix uncertainty as int for
EnergyAdjustmentby @DanielYang59- Avoid
==or!=for possible float comparison - Fix uncertainty as int for
EnergyAdjustmentcannot 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
- Avoid
- PR #4421 Cache
Latticeproperty (lengths/angles/volume) for much fasterStructure.as_dictby @DanielYang59 ### Summarylengths/angles/volumeofLatticewould now be cached, related to #4385
-
verbosityinas_dictofPeriodicSite/Latticenow explicitly requires literal 0 or 1 to be consistent with docstring, instead of checkingif verbosity > 0(currently in grace period, only warning issued) https://github.com/materialsproject/pymatgen/blob/34608d0b92166e5fc4a9dd52ed465ae7dccfa525/src/pymatgen/core/lattice.py#L904-L905Cache frequently used
LatticepropertiesCurrently
length/angles/volumeis not cached and is frequently used, for example accessing all lattice parameter related property would lead tolength/anglesbeing repeatedly calculated: https://github.com/materialsproject/pymatgen/blob/34608d0b92166e5fc4a9dd52ed465ae7dccfa525/src/pymatgen/core/lattice.py#L475-L524structure.as_dictnow around 8x faster Before (1000 structure, each has 10-100 atoms): ``` Total time: 3.29617 s File: createdummpjsonstructure.py Function: generateandsavestructures at line 34Line # 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 34Line # 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 modifyas_dictto 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
IcohpCollectioninstance 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
orjsonas 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
JDFTXOutfileSliceDurability Improvement by @benrich37 Major changes:- feature 1: Improved durability of
JDFTXOutfileSlice._from_out_slicemethod (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
JOutStructurein initializing aJOutStructureswith a try/except block - fix 4: Detect if positions were only partially dumped and revert to data from
init_structureinJOutStructure - fix 5: Prevent partially dumped matrices from being used in initializing a
JOutStructure## Todos - feature 1: Ensure parse-ability as long as a
JDFTXOutfileSlice.infilecan be initialized
- feature 1: Improved durability of
- PR #4419 Fix Molecule.getboxedstructure when reorder=False by @gpetretto
- PR #4416
JDFTXInfileComparison Methods by @benrich37 Major changes:- feature 1: Convenience methods for comparing
JDFTXInfileobjects --JDFTXInfile.is_comparable_to--- Returns True if at least one tag is found different --- Optional argumentsexclude_tags,exclude_tag_categories,ensure_include_tagsto ignore certain tags in the comparison ----exclude_tag_categoriesdefaults 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 inJDFTXInfile.is_comparable_toto get filtered differing tags betweenJDFTXInfileobjects --- Convenient as a "verbose" alternative toJDFTXInfile.is_comparable_to--AbstractTag.is_equal_toandAbstractTag._is_equal_to--- Used in tag comparison for finding differing tags ---AbstractTag._is_equal_tois an abstract method that must be implemented for eachAbstractTaginheritor - feature 2: Default
JDFTXInfileobjectpymatgen.io.jdftx.inputs.ref_infile-- Initialized from reading default JDFTx settings frompymatgen.io.jdftx.jdftxinfile_default_inputs.default_inputs: dict-- Used inJDFTXInfile.get_differing_tags_fromfor tags inselfmissing fromotherthat are identical to the default setting - fix 1: Re-ordered contents of
JDFTXInfileto follow the order: magic methods -> class methods / transformation methods -> validation methods -> properties -> private methods - fix 2: Checking for
'selective_dynamics'insite_propertiesfor aStructurepassed inJDFTXInfile.from_structure(used ifselective_dynamicsargument left asNone) ## 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 filledTagContainerneeds 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
- feature 1: Convenience methods for comparing
- PR #4413
JDFTXOutputs.bandstructure: BandStructureby @benrich37 Major changes:- feature 1: Added 'kpts' storable variable to JDFTXOutputs -- Currently only able to obtain from the 'bandProjections' file
- feature 2: Added
bandstructureattribute to JDFTXOutputs -- Standard pymatgenBandStrucureobject -- Request-able as astore_var, but functions slightly differently --- Ensures 'eigenvals' and 'kpts' are instore_varsand then is deleted -- Initialized if JDFTXOutputs has successfully stored at least 'kpts' and 'eigenvals' -- Fillsprojectionsfield if also has stored 'bandProjections' - feature 3: Added
wk_listtoJDFTXOutputs-- List of weights for each k-point -- Currently doesn't have a use, but will be helpful forElecDatainitializing incrawfish## 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 ofkpoint-foldingis most likely an indicator of a band-structure calculation
- PR #4415 speed-up Structure instantiation by @danielzuegner
This PR speeds up the instantiation of
Structureobjects by preventing hash collisions in thelru_cacheofget_el_spand increasing itsmaxsize. The issue is that currentlyElementobjects are hashed to the same value as the integer atomic numbers (e.g.,Element[H]maps to the same hash asint(1)). This forces thelru_hashto perform an expensive__eq__comparison between the two, which reduces the performance of instantiating manyStructureobjects. Also here we increase themaxsizeofget_el_sp'slru_cacheto 1024 for further performance improvements. This reduces time taken to instantiate 100,000Structureobjects from 31 seconds to 8.7s (avoid hash collisions) to 6.1s (also increasemaxsizeto 1024). - PR #4410 JDFTx Inputs - boundary value checking by @benrich37
Major changes:
- feature 1: Revised boundary checking for input tags
-- Added a
validate_value_boundsmethod toAbstractTag, that by default always returnsTrue, ""-- Added an alternateAbstractNumericTagthat inheritsAbstractTagto implementvalidate_value_boundsproperly --- Changed boundary storing to the following fields ----ubandlb----- Can either beNone, or some value to indicate an upper or lower bound ----ub_inclandlb_incl----- If True, applies>=instead of>in comparative checks on upper and lower bounds -- Switched inheritance ofFloatTagandIntTagfromAbstractTagtoAbstractNumericTag-- Implementedvalidate_value_boundsforTagContainerto dispatch checking for contained subtags -- Added a methodvalidate_boundariestoJDFTXInfileto runvalidate_value_boundson all contained tags and values -- Addedvalidate_value_boundariesargument for initialization methods ofJDFTXInfile, which will runvalidate_boundariesafter initializingJDFTXInfilebut before returning when True --- Note that this is explicitly disabled when initializing aJDFTXInfilefrom the input summary in aJDFTXOutfileSlice- 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 aJDFTXInfile, 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
JDFTXInfileobject --- boundary checking is currently only run when initializing from a pre-existing collection of input tags --- writing this intoJDFTXInfile.__setitem__is too extreme as it would require adding an attribute toJDFTXInfileto 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
- feature 1: Revised boundary checking for input tags
-- Added a
- PR #4408
to_jdftxinfilemethod for JDFTXOutfile by @benrich37 Major changes:- feature 1: Method
to_jdftxinfilefor JDFTXOutfile(Slice) -- Uses internalJDFTXInfileandStructureto create a newJDFTXInfileobject that can be ran to restart a calculation - feature 2: Method
strip_structure_tagsforJDFTXInfile-- Strips all structural tags from aJDFTXInfilefor creating equivalentJDFTXInfileobjects with updated associated structures - fix 1: Changing 'nAlphaAdjustMax' shared tag from a
FloatTagto anIntTag - fix 2: Adding an optional
minvalfield for certainFloatTags 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.latticeredundant toJDFTXOutfile.structure.lattice.matrix-- Generalize how optimization logs are stored in outputs module objects --- Fields likegrad_Kare 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.
- feature 1: Method
- 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 minimumif subval in params[key]check is done to avoid adding duplicate values. This seems like something thesetbuilt-in could help with, but since the sub-values are dictionaries, usingsetis a little more difficult Major changes:- fix 1: Addition of two JDFTXInfiles (
jif1 = jif2 + jif3) no longer requires eachjif2andjif3to 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 insrc/pymatgen/io/jdftx/inputs.py-- tested intests/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
- fix 1: Addition of two JDFTXInfiles (
- 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 bySpacegroupAnalyzerwas different toStructure.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
UFloatupdate 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 ofUFloat(0, 0)were already present inComputedEntry.energy_adjustments, avoiding the updated handling of settingstd_devtonp.nanwhen it is 0 (and avoiding theUFloatwarning aboutstd_devbeing 0). - PR #4403 Ensure structure symmetrization in OrderDisorderedStructureTransformation by @esoteric-ephemera
Close #4402 by ensuring that structures are always symmetrized when
symmetrized_structures = TrueinOrderDisorderedStructureTransformation. 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_jdftxinfileno longer assumes 'lattice' tag is provided in 3x3 matrix format -- Testing intests/io/jdftx/test_jdftxinfile.pyforStructure <-> JDFTXStructure <-> JDFTXInfileconversion forJDFTXInfilewith newly implemented special case values for 'lattice' tag TODO: - Implement
JDFTXStructure.from_jdftxinfilefor JDFTXInfile with special case tag 'lattice' value and non-identity value for 'latt-scale' tag
- fix 1:
- PR #4400 Use
np.naninstead of 0 for no uncertainty withufloat, to avoid unnecessary warnings by @kavanase Closes #4386 - PR #4399 JDFTXOutfile
none_on_erroroversight fix by @benrich37- Fixing an error in
pymatgen/io/jdftx/outputs.pythat causes construction of aJDFTXOutfileto fail if noneonerror is turned on and the finalJDFTXOutfileSliceinslicesis None (ie a very common issue when parsing an interrupted job that hasn't restarted yet).
- Fixing an error in
- PR #4397 JDFTx IO Module Overhaul by @benrich37
- Revised typing for updated
mypycriteria - Support for parsing JDFTx AIMD files
- Expanded input tag support
- Revised typing for updated
- PR #4394 Updates to JDFTx inputs
generic_tagshelper module by @benrich37 Major changes:- Phasing out use of redundant
TagContainer.multiline_tagattribute -- (this change may cause problems without the corresponding changes injdftxinfile_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
- Phasing out use of redundant
- PR #4392 Brute force order matcher speedup by @kavanase
This is a small PR to add a
break_on_toloption toBruteForceOrderMatcher, 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 toget_colon_val, but keeping an alias until renaming is updated outside this module -- Returningnp.naninstead ofNonewhen "nan" is the value - updating
correct_geom_opt_typefor working with JDFTx AIMD out files - updating typing on array-construction functions
- correcting ordering and syntax of orbital labels to exactly match JDFTx
- function
- 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.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_siteson 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
perturbmethod 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.jsonby @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
pybtexwithbibtexparserby @DanielYang59 - PR #4362 fix(MVLSlabSet): convert DIPOL vector to pure Python list before writing INCAR by @atulcthakur
- PR #4363 Ensure
actual_kpoints_weightsislist[float]and add test by @kavanase - PR #4345 Fix inconsistent "Van der waals radius" and "Metallic radius" in
core.periodic_table.jsonby @DanielYang59 - PR #4212 Deprecate
PymatgenTest, migrate tests topytestfromunittestby @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
Vasprunparsing by @kavanase - PR #4343 Drop duplicate
iupac_orderingentries incore.periodic_table.jsonby @DanielYang59 - PR #4348 Remove deprecated grain boundary analysis by @DanielYang59
- PR #4357 Fix circular import of
SymmOpby @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
AseAtomsAdaptorby @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_dictwithas_dictby @DanielYang59- Deprecate
to_dictwithas_dict, to close #4351 - Updated
contributing.mdto note preferred naming convention - [x] Regenerate
docsThe recent additional of JDFTx IOs have a relatively short grace period of 6 months, and others have one year
- Deprecate
- PR #4342 Correct Mn "ionic radii" in
core.periodic_table.jsonby @DanielYang59- Correct Mn "ionic radii" in
core.periodic_table.jsonOur csv parser should copy the high spin ionic radii to the base entry:https://github.com/materialsproject/pymatgen/blob/4c7892f5c9dcc51a1389b3ad2ada77632989a13e/devscripts/updatept_data.py#L84-L87
- Correct Mn "ionic radii" in
- 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> Ω mas the unit), and our parser would interpret it to:python from pymatgen.core import Element print(Element.Se.electrical_resistivity) # 1e-08 m ohmThis is the only data as "high" inperiodic_table.jsonAFAIK. 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
- Remove "Electrical resistivity" for Se as "high", to fix #4312
Current the data for Electrical resistivity of Se is "high" (with
- 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
montyimports, enhance test forOutcarparser to cover uncompressed format by @DanielYang59 ### Summary- Test
montyfix for reverse readline, close #4033 and close #4237 - Replace
reverse_readlinewith fasterreverse_readfile - Fix incorrect
montyimports - [x] Enhance unit test for reported Outcar parser (need to test unzipped format)
- Test
- PR #4331 Optimized cube file parsing in fromcube for improved speed by @OliMarc
# Summary
### Major Changes:
This PR enhances the `fromcube
function 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
aviaryto use these functions. - PR #4321 [Breaking]
from_ase_atomsconstructor for(I)Structure/(I)Moleculereturns the corresponding type by @DanielYang59 ### Summary- Fix
from_ase_atomsforMolecule, to close #4320 - [x] Add tests
- Fix
- PR #4296 Make dict representation of
SymmetrizedStructureMSONable by @DanielYang59 ### Summary- Make dict representation of
SymmetrizedStructureMSONable, to fix #3018 - [x] Unit test
- Make dict representation of
- 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 toXdatcar
- Python
Published by shyuep about 1 year ago
pymatgen - v2025.3.10
PR #3680 - Add support for
vaspout.h5, improvements to POTCAR handling by @esoteric-ephemera- Added support for parsing
vaspout.h5and improvements in POTCAR handling. - Major additions include methods for processing
vaspout.h5and ensuring compatibility with existing VASP I/O infrastructure.
- Added support for parsing
PR #4319 - Update
abitimerinio.abinitby @gpetretto- Fixes parsing issues for newer versions of Abinit.
- Updates compatibility with
pandas > 2and includes test files for validation.
PR #4315 - Patch to allow
pyzeointegration by @daniel-sintef- Provides a patch to swap out
zeo++withpyzeo, which is a more actively maintained version.
- Provides a patch to swap out
PR #4281 - Add method to get the Pearson symbol to
SpaceGroupAnalyzerby @CompRhys- Introduced a new method to retrieve the Pearson Symbol in
SpaceGroupAnalyzer.
- Introduced a new method to retrieve the Pearson Symbol in
PR #4295 - Pass
kwargstoIStructure.tomethod in JSON format by @DanielYang59- Provides finer control over
json.dumpsbehavior during format conversion.
- Provides finer control over
PR #4306 -
IStructure.todefaults to JSON whenfilenameis unspecified by @DanielYang59- Adjusts default file output behavior to JSON.
PR #4297 - Bugfix for
Structure/ase.Atomsinterconversion by @wolearyc- Ensures deep copying to avoid shared memory issues between
Atoms.infoandStructure.properties.
- Ensures deep copying to avoid shared memory issues between
PR #4304 -
MagneticStructureEnumerator: Exposemax_orderingsargument by @mkhorton- Makes
max_orderingsconfigurable via keyword argument.
- Makes
PR #4299 - Update inequality in
get_linear_interpolated_valueby @kavanase- Fixes interpolation logic to handle edge cases more robustly.
- Python
Published by shyuep about 1 year ago
pymatgen - v2025.2.18
PR #4288:
Dos.get_cbm_vbmupdates by @kavanase- Improvements for determining VBM/CBM eigenvalues from a DOS object to match expected values for
emmet-coretests.
- Improvements for determining VBM/CBM eigenvalues from a DOS object to match expected values for
PR #4278: [Breaking] Fix valence electron configuration parsing by @DanielYang59
- Addresses valence electron configuration parsing issue in
PotcarSingle.electron_configuration, resolving #4269.
- Addresses valence electron configuration parsing issue in
PR #4275: Fix default
transformation_kwargsinMagneticStructureEnumeratorby @DanielYang59- Corrects default
transformation_kwargsto close #4184, with additional comment and type cleanup.
- Corrects default
PR #4274: Move
occ_tolto init inOrderDisorderedStructureTransformationby @Tinaatucsd- Resolved incompatibility with
StandardTransmuterby movingocc_tolto class initialization.
- Resolved incompatibility with
PR #4276: Fix timeout in
EnumlibAdaptorby @DanielYang59- Adjusts timeout handling to fix #4185 with associated unit test corrections.
PR #4280: Pre-commit autoupdate by @pre-commit-ci[bot]
- Updates multiple pre-commit configurations, including ruff-pre-commit and markdownlint-cli.
PR #4290: Migrate type annotation tweaks from #4100 by @DanielYang59
- Integrates type annotation improvements to aid review, addressing #4286.
PR #4291: Remove deprecated memory units from
coreby @DanielYang59- Eliminates outdated memory units in
corefor clarity.
- Eliminates outdated memory units in
PR #4292: Fix for
plotlyPDPlotter/ChemicalPotentialDiagram.get_plot()by @kavanase- Resolves deprecated
titlefontissue in plotly v6, updating dependency requirements.
- Resolves deprecated
PR #4283:
Compositionsupport formula strings with curly brackets by @janosh- Expands formula parsing to include curly brackets, with added tests for verification.
PR #4279: Fix P1 SymmOp string for
CifParser.get_symopsby @DanielYang59- Corrects SymmOp string to close #4230, supplemented by a unit test.
PR #4265: Clarify return type for
core.Composition.reduced_compositionby @DanielYang59- Refines return types and cleans up types in
core.Composition.
- Refines return types and cleans up types in
PR #4268: Add
Structure.get_symmetry_datasetmethod by @janosh- Introduces convenience method for
moyopysymmetry analysis with a new optional dependency set.
- Introduces convenience method for
PR #4271: Add missing parenthesis to
BoltztrapAnalyzer.get_extreme.is_isotropicby @DanielYang59- Minor syntax fix and cleanup for the method, resolving #4165.
PR #4270: Add
seed: int = 0parameter toStructure.perturb()by @janoshNew 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_equalwith suitable alternatives likeassert_allclosefor floating-point arrays to accommodate numerical imprecision. - Improve the
_projfunction implementation, resulting in approximately a threefold speed increase. - Substitute sequences of float comparisons using
==in list/tuple/dict structures. - Conduct various type and comment enhancements.
- Avoid using
PR #4190 by @benrich37
- Objective: Introduce a structured and organized approach to represent data from JDFTx output files.
- Key Features:
- Hierarchical Class Structure: Implemented a hierarchy of classes to represent JDFTx output file data, without inheriting from one another. Key classes include:
JDFTXOutputs,JDFTXOutfile,JDFTXOutfileSlice- Sub-structures like
JOutStructures,JElSteps, etc. - Modules Introduced:
outputs.py: Provides a robust Pythonic representation of a JDFTx output file.jdftxoutfileslice.py: Represents a “slice” of a JDFTx output file.joutstructures.py: Represents a series of structures within an output file slice.joutstructure.py: Represents a single structure within an output file.jelstep.py: Manages SCF steps and convergence data.jminsettings.py: Abstract class for managing input minimization settings, with subclasses for various settings types.
PR #4189 by @benrich37
- Objective: Develop a Pythonic representation for inputs used in JDFTx calculations.
- Key Features:
inputs.pymodule introducingJDFTXInfileclass.- 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
PR #4255 by @peikai: This PR resolves an inconsistency in the
run_typefor entries in a mixing scheme. The entry type was changed to 'r2SCAN', but theMaterialsProjectDFTMixingScheme()expected 'R2SCAN', causing errors and ignored entries in GGA(+U)/R2SCAN mixing scheme corrections.PR #4160 by @DanielYang59: Enhancements and clarifications were made to the
io.vasp.outputs.Outcardocstring/comment. This includes more specific type annotations for parsers and updating the default value ingetattrtoFalsefor condition checks.PR #4257 by @njzjz: This PR covers the intention to build Linux arm64 wheels, referencing the availability of free hosted runners for public repositories. However, specific features and fixes were not detailed.
PR #4240 by @kavanase: A minor fix in
FermiDosimproves the robustness of theget_dopingmethod, addressing issues with handling rare cases with minimal energy increments between VBM and CBM indices.PR #4254 by @tpurcell90: Adjustments regarding the use of libxc with FHI-aims to automatically add an override warning call, ensuring the process behaves as expected.
PR #4256 by @kavanase: Addresses a behavior issue with
Compositionfor mixed species and element compositions, providing a fix that ensures compositions are interpreted correctly, avoiding incorrect results in representations and calculations.PR #4253 by @esoteric-ephemera: This PR introduces the ability to convert between ASE and pymatgen trajectories, maintaining additional data such as energies, forces, and stresses, thus improving integration between the two programs and addressing related issues.
These updates range from bug fixes and enhancements to new features aimed at improving the functionality and reliability of the codebase.
- 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.VaspDirclass 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
PWInputby @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
PROCARparsing 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
sumoverlen+ifby @janosh in https://github.com/materialsproject/pymatgen/pull/4012 - Explicitly use
int64in 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
/srcin doc links to source code by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4032 - Fix
LNONCOLLINEARmatch inOutcarparser by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4034 - Fix in-place
VaspInput.incarupdates having no effect ifincaris dict (notIncarinstance) by @janosh in https://github.com/materialsproject/pymatgen/pull/4052 - Fix typo in
Cp2kOutput.parse_hirshfeldadd_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_Errorby @janosh in https://github.com/materialsproject/pymatgen/pull/4048
📖 Documentation
- Docstring tweaks for
io.vasp.inputsand 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/markby @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4021 - Fix incorrect attribute name in
Lobster.outputs.Cohpcardocstring by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4039
🧹 House-Keeping
- Use
strict=Truewithzipto 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
skipmark fortest_delta_funcby @njzjz in https://github.com/materialsproject/pymatgen/pull/4014 - Recover commented out code in tests and mark with
pytest.mark.skipinstead by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4027 - Add unit test for
io.vasp.helpby @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4020
🧹 Linting
- Fix failing ruff
PT001on master by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4003 - Fix fixable
ruffrules by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4015 - Fix
S101, replace allassertin code base (except for tests) by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4017 - Fix
ruffPLC0206 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
pymatgendirectly by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/4053
🏷️ Type Hints
- Set
kpointsinfrom_strmethod 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 inpyprojectby @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: orderfull_electron_structureby energy by @rkingsbury in https://github.com/materialsproject/pymatgen/pull/3944- Extend
CubicSupercelltransformation to also be able to look for orthorhombic cells by @JaGeo in https://github.com/materialsproject/pymatgen/pull/3938 - Allow custom
.pmgrc.yamllocation via newPMG_CONFIG_FILEenv 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-apiinstalled. 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_elementsdocstring underProcarclass 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
Incarcheck_paramsforUniontype 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-metricson 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
uvresolution strategies:highestandlowest-directby @janosh in https://github.com/materialsproject/pymatgen/pull/3852 - Fix filter condition for warn msg of unphysical site occupancy in
io.cifby @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3853 ### 🛠 Enhancements - Add new
.pmgrc.yamlsettingPMG_VASP_PSP_SUB_DIRS: dict[str, str]by @janosh in https://github.com/materialsproject/pymatgen/pull/3858 ### 📖 Documentation - Clarify argument
shiftforSlabGenerator.get_slabby @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
Beautifulsoupoptional 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_infofor DDEC6ChargemolAnalysisand 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
iscloseover==for overlap position check inSlabGenerator.get_slabsby @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3825 - [Deprecation] Replace
Elementpropertyis_rare_earth_metalwithis_rare_earthto include Y and Sc by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3817 ### 🛠 Enhancements - Add
is_radioactiveproperty to Element class by @AntObi in https://github.com/materialsproject/pymatgen/pull/3804 - Add a
from_ase_atoms()method toStructureby @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@propertydoc 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
utildirectory 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 typeMillerIndexand fix Lattice hash by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3814 - Guard
TYPE_CHECKINGonly imports by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3827 - Improve type annotations and comments for
io.cifby @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3820 - Improve type annotations for
core.structureby @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3837 - Add type annotations for
io.vasp.outputsby @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
ruff0.4.3 auto-fixes by @janosh in https://github.com/materialsproject/pymatgen/pull/3808- Re-enable some useful
ruffrules by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3813 pandas.read_csv: replace deprecateddelim_whitespace=Truewithsep="\s+"by @ab5424 in https://github.com/materialsproject/pymatgen/pull/3846- Improve unphysical (greater than 1) occupancy handling in
CifParserand add missing site labelif not check_occuby @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_ioniclogic whenEDIFFG=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.pyby @AntObi in https://github.com/materialsproject/pymatgen/pull/3784 - Fix for writing non-unique site labels in
CifWriterby @stefsmeets in https://github.com/materialsproject/pymatgen/pull/3767 - Homogenize return type of
Lattice.get_points_in_sphereto always benp.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
pyrightfixes forext/io/phonon/symmetry/transformations/util/vis/dev_scriptsand improveio.lobsterby @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3757- Separate test files by modules and collect test files
csv/cifinto 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
gulpfrom 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/opticsby @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3740 pyrightfixes by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3777- Convert
kptsinKpointstoSequence[tuple]and set it aspropertyby @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3758
🤷♂️ Other Changes
- add
get_string->get_stralias forPoscarby @timurbazhirov in https://github.com/materialsproject/pymatgen/pull/3763 - Fix
ruffFURB192 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_efermirename by @JaGeo in https://github.com/materialsproject/pymatgen/pull/3750 - Fix
typing_extensionImportErrorin 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.tomlby @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.openffmodule by @orionarcher in https://github.com/materialsproject/pymatgen/pull/3729 ### 🐛 Bug Fixes - Fix blank line bug in
io.res.ResWriterby @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_structuresite_propertieskey 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
staticmethodtoclassmethodby @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 Exceptionand add missingraisekeyword by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3728 - Fix
ChemicalPotentialDiagram2D plot not respectingformal_chempotssetting 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.surfacecomments and docstrings by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3691 - Fix
io.cp2k.input.DataFileby @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3745 ### 🛠 Enhancements - Ensure
MSONAtomsis indeedMSONablewhenAtoms.infois 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
PhononDOSPlotterandPhononBSPlotterby @ab5424 in https://github.com/materialsproject/pymatgen/pull/3700 - Define
ElementTypeenum incore/periodic_table.pyby @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.Axesby @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,wannier90by @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->TestLatticeby @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
Selftype in Method Signatures by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3705 - Remove deprecated
analysis.interface, rename classes to PascalCase and renamewith_*tofrom_*by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3725 - Test
EntrySet.ground_statesand CIF writing inNEBSet.write_inputby @janosh in https://github.com/materialsproject/pymatgen/pull/3732 ### 🚀 Performance - Migrate CI dependency installation from
piptouvby @janosh in https://github.com/materialsproject/pymatgen/pull/3675 - Dynamic
__hash__forBalancedReactionby @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.TestCasesubclassing by @janosh in https://github.com/materialsproject/pymatgen/pull/3718 ### 🔒 Security Fixes - Avoid using
execin code by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3736 - Avoid using
eval, replace manual offset inenumerateand rename single letter variables by @DanielYang59 in https://github.com/materialsproject/pymatgen/pull/3739 ### 🏷️ Type Hints Selfreturn type onfrom_dictmethods by @janosh in https://github.com/materialsproject/pymatgen/pull/3702- Return
selffromStructuremethodsreplace,substitute,remove_species,remove_sitesby @janosh in https://github.com/materialsproject/pymatgen/pull/3706 Selfreturn type onLatticemethods by @janosh in https://github.com/materialsproject/pymatgen/pull/3707 ### 🤷♂️ Other Changesos.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_pmorbfix 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_latticeif 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__andPhononBandStructureSymmLine.__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_densitiesinBaderAnalysisand fixBadertest 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_callerfrom 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
BadInputSetWarninglogic 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
MSONAtomsdefinition 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
VaspInputSettoVaspInputGeneratorby @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.yamlparameters and alphabetize by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3615 - Fix
bader_analysis_from_pathusing 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
selffrom allSiteCollection/Structure/Moleculein-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_infoin 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
CODEOWNERSby @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3616 - Adds support for an
MSONAtomsclass that's anMSONableform of an ASEAtomsobject 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_potcarssearch 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_formulaproperty 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.yamlby @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_spacegroupby @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
zvalto be an integer to avoid improper syntax in.crifile 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
Pathobjects asfilenameinIStructure.to()by @janosh in https://github.com/materialsproject/pymatgen/pull/3553 - Retain
Structure.propertiesinstructure_from_abivars()/structure_to_abivars()round trip by @janosh in https://github.com/materialsproject/pymatgen/pull/3552 - Support
magmomsinget_phonopy_structure()by @tomdemeyere in https://github.com/materialsproject/pymatgen/pull/3555 - Fix
ValueError: Invalid fmtwithStructure.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.ntypespreplaced byStructure.n_elemsby @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
Compositionby @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_scoremethod 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 = FalseinCifWriterfor writingStructure.site_propertiesas_atom_site_{prop}by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3550 - Add
pymatgen.io.pwmatmodule by @lhycms in https://github.com/materialsproject/pymatgen/pull/3512 - Lazy import
pandasinStructure.as_dataframe()to improve startup speed by @janosh in https://github.com/materialsproject/pymatgen/pull/3568 - Return
selfinSiteCollectionspin/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)_stringmethods 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/aimsusenumpy.testing.assert_allcloseandpytest.MonkeyPatchby @janosh in https://github.com/materialsproject/pymatgen/pull/3575 ### 💥 Breaking Changes- Breaking: remove single-use
PolarizationLatticewhich inherited fromStructure(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.pymodule-scopedSymmOpimport 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.yamlfor new VASP PBE_64 POTCARs by @janosh in https://github.com/materialsproject/pymatgen/pull/3470 (Structure|Molecule).alphabetical_formulaby @janosh in https://github.com/materialsproject/pymatgen/pull/3478- Improvements to
PhononDosPlotterandPhononBSPlotterby @janosh in https://github.com/materialsproject/pymatgen/pull/3479 PhononDosPlotter.plot_dos()add support for existingplt.Axesby @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.outputsby @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
CifParseronly warn aboutprimitivedefault value change toFalseif not passed toparse_structuresexplicitly by @janosh in https://github.com/materialsproject/pymatgen/pull/3505PhononBSPlotter.plot_compare()add legend labels by @janosh in https://github.com/materialsproject/pymatgen/pull/3507- Define arithmetic ops
__add____sub____mul____neg____eq__forPhononDoswith tests by @janosh in https://github.com/materialsproject/pymatgen/pull/3511 - Equalize
Phonon(Dos|BS)Plottercolors, allow custom plot settings per-DOS by @janosh in https://github.com/materialsproject/pymatgen/pull/3514 - Add bold flag to
latexifyby @janosh in https://github.com/materialsproject/pymatgen/pull/3516 CompositionraiseValueErrorifformulastring is only numbers and spaces by @janosh in https://github.com/materialsproject/pymatgen/pull/3517- Raise
ValueErrorforfloat('NaN')inCompositionby @janosh in https://github.com/materialsproject/pymatgen/pull/3519 - Add
PhononDos.mae()andPhononBandStructure.has_imaginary_gamma_freq()methods by @janosh in https://github.com/materialsproject/pymatgen/pull/3520 PhononDos.get_smeared_densitiesreturn unchanged forsigma=0by @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
MPResterrequests 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
ruffautomatic 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:
pymatgenpackage missingpotcar-summary-stats.json.bz2by @janosh in https://github.com/materialsproject/pymatgen/pull/3468
🛠 Enhancements
- Add
Composition.chargeandcharge_balancedproperties 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
LobsterMatricescalculated incorrectly by @naik-aakash in https://github.com/materialsproject/pymatgen/pull/3407 - Fix
test_relax_chgnetby @janosh in https://github.com/materialsproject/pymatgen/pull/3417 - Breaking: return sum of
Specieswith matchingElementinComposition.__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_plotsby @janosh in https://github.com/materialsproject/pymatgen/pull/3451 - Fix
Atoms.cluster_from_file()inio.feff.inputsgiving 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
baderis run without theAECCARs 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
LobsterMatricesparser tolobster.io.outputsby @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_statskey toVasprun.potcar_specby @esoteric-ephemera in https://github.com/materialsproject/pymatgen/pull/3434 - Deprecate
CifParser.get_structures()in favor of newparse_structuresin whichprimitivedefaults toFalseby @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_POTCARtocheck_for_potcarby @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
blackforruff formatby @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__.pywhere 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)methodsby @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
- Fix outdated
setup.pyfind_namespace_packagesand addtest_egg_sources_txt_is_completeby @janosh in https://github.com/materialsproject/pymatgen/pull/3374 release.ymladd option to publish to TestPyPI by @janosh in https://github.com/materialsproject/pymatgen/pull/3375- Fix wrong unit=eV in
get_band_(skewness|kurtosis)doc string by @janosh in https://github.com/materialsproject/pymatgen/pull/3383 - Further updating POTCAR validation / identification by @esoteric-ephemera in https://github.com/materialsproject/pymatgen/pull/3392
MatPESStaticSet.yamlsetLMAXMIX: 6by @janosh in https://github.com/materialsproject/pymatgen/pull/3400- Fix type annotations in phonon/ and lammps/ by @ab5424 in https://github.com/materialsproject/pymatgen/pull/3401
- Fix
OBAlign(includeH=False, symmetry=False)can't take keywords by @janosh in https://github.com/materialsproject/pymatgen/pull/3403
🛠 Enhancements
- New class to handle
NcICOBILIST.lobsterfiles by @QuantumChemist in https://github.com/materialsproject/pymatgen/pull/2878 - Add
inplace: bool=Truearg toStructure.apply_strain()by @janosh in https://github.com/materialsproject/pymatgen/pull/3376 - Add
Structure.to_(conventional|primitive|cell)methods by @janosh in https://github.com/materialsproject/pymatgen/pull/3384 - Add
SiteCollection.to_ase_atoms()by @janosh in https://github.com/materialsproject/pymatgen/pull/3389 - Add
mode: Literal["w", "a", "wt", "at"] = "w"keyword toCifWriter.write_file()by @janosh in https://github.com/materialsproject/pymatgen/pull/3399
📖 Documentation
- Add
docs/fetch_pmg_contributors.pyscript by @janosh in https://github.com/materialsproject/pymatgen/pull/3387
🧹 House-Keeping
- Fix ruff
FURBviolations by @janosh in https://github.com/materialsproject/pymatgen/pull/3382 - Remove deprecated module
pymatgen/util/convergence.pyby @janosh in https://github.com/materialsproject/pymatgen/pull/3388 - Remove
pylint: disablecomments by @janosh in https://github.com/materialsproject/pymatgen/pull/3390 - Fix
ruffN806by @janosh in https://github.com/materialsproject/pymatgen/pull/3394
🧪 Tests
- Update
incar_parameters.jsonto allowISIF=8by @matthewkuner in https://github.com/materialsproject/pymatgen/pull/3381 - Add
test_potcar_summary_stats()by @janosh in https://github.com/materialsproject/pymatgen/pull/3395 - Mirror atomate2 fix and improve
MPScanRelaxSet.test_kspacingedge case coverage by @janosh in https://github.com/materialsproject/pymatgen/pull/3396
💥 Breaking Changes
- Breaking: snake_case
FiestaInputkeywords and class attributes by @janosh in https://github.com/materialsproject/pymatgen/pull/3386 - Ion: default hydrates=False in reduced_formula by @rkingsbury in https://github.com/materialsproject/pymatgen/pull/3350
🏷️ Type Hints
- Add type annotations to io/lammps by @ab5424 in https://github.com/materialsproject/pymatgen/pull/3379
- Add type annotations to phonon by @ab5424 in https://github.com/materialsproject/pymatgen/pull/3393
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.gzinsetup.package_databy @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()inmolecule_matcher.pyto use positional args forincludeH,symmetryby @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+AseAtomsAdaptortest errors andTransformedStructure.from_snloverwritinghistvariable by @janosh in https://github.com/materialsproject/pymatgen/pull/3362 - Fix
TypeError: can only join an iterable with AECCAR inVolumetricData.write_fileby @chiang-yuan in https://github.com/materialsproject/pymatgen/pull/3343 ### 🛠 Enhancements - Don't rely on
jsanitizeinAtoms<-->Structureobject 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_scriptutils 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)edPenaltiedAbundanceChemenvStrategyby @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
numpyto 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
MPSOCSetraising ValueError onstructure=Noneby @janosh in https://github.com/materialsproject/pymatgen/pull/3310 - Fix
AttributeErrorinBSPlotter.get_plot()by @janosh in https://github.com/materialsproject/pymatgen/pull/3327 - Use
ax = fig.add_subplot(projection='3d')to createAxes3Dby @janosh in https://github.com/materialsproject/pymatgen/pull/3330 - Fix breaking change to
CoherentInterfaceBuilder.get_interfacesby @janosh in https://github.com/materialsproject/pymatgen/pull/3337 - Add
properties@property/docstring toIStructureby @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_nelectclaimed to but wasn't testing disordered structure by @janosh in https://github.com/materialsproject/pymatgen/pull/3344 ### 🛠 Enhancements - Allow usage of
calculate_ngwith a custom ENCUT and PREC values for VASP input sets by @matthewkuner in https://github.com/materialsproject/pymatgen/pull/3314 - Fix
TestPotcar.test_writepolluting 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_figandget_ax_fig_plt->get_ax_figplus no longer returnpltby @janosh in https://github.com/materialsproject/pymatgen/pull/3329
🧹 House-Keeping
- Fix internal
SymmOp.from_xyz_stringandMagSymmOp.from_xyzt_stringdeprecation warnings by @janosh in https://github.com/materialsproject/pymatgen/pull/3315 - Fix
ruffA001 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.numby @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_lengthsby @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3299 ### 🏥 Package Health - Remove pydantic < 2 from
setup.pyand bump monty inrequirements.txtby @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3303 - Move
py.typedto package root by @Andrew-S-Rosen in https://github.com/materialsproject/pymatgen/pull/3307 - Consistent casing
setup->setUpacross 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
Latticepropertyparams_dictby @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_distanceby @janosh in https://github.com/materialsproject/pymatgen/pull/3242 - Breaking: remove deprecated keyword
propertiesfromSpeciesby @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_electroniccheck ifALGO=CHIinINCARby @janosh in https://github.com/materialsproject/pymatgen/pull/3250 - Breaking: Have plot methods return
plt.Axesobject, notmatplotlibmodule by @janosh in https://github.com/materialsproject/pymatgen/pull/3237 - Fix
ruffD212 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
magfrom OSZICAR by @chiang-yuan in https://github.com/materialsproject/pymatgen/pull/3146 - Use
numpy.testing.assert_allcloseoverassert np.allcloseby @janosh in https://github.com/materialsproject/pymatgen/pull/3253 - Don't let tests pollute the
pymatgenrepo by @janosh in https://github.com/materialsproject/pymatgen/pull/3255 - Update
compatibility.mdby @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 = TruetoCifParser.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_elementsfor 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
TestMPStaticSetusingMPRelaxSetintest_user_incar_kspacingandtest_kspacing_overrideby @janosh in https://github.com/materialsproject/pymatgen/pull/3268 - Fix
nelectronsnot updating when replacing species inMoleculeby @janosh in https://github.com/materialsproject/pymatgen/pull/3269 - Add
propertiesto 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
MatPESStaticSetby @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
AseAtomsAdaptorto handleStructure.properties/Molecule.propertiesby @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-4toMPScanRelaxSetby @janosh in https://github.com/materialsproject/pymatgen/pull/3287 np.(arange->linspace)inio/vasp/optics.pyget_delta,get_setpandepsilon_imagby @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_..._stringmethods 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_nbandsfunction 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 . --fixby @janosh in https://github.com/materialsproject/pymatgen/pull/3176AseAtomsAdaptor: Retaintagsproperty when interconvertingAtomsandStructure/Moleculeby @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_stringshould beclassmethodby @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
pymatvizinteractive plotly version of periodic table heatmap if available by @janosh in https://github.com/materialsproject/pymatgen/pull/3180 - Better Composition
reprby @janosh in https://github.com/materialsproject/pymatgen/pull/3182 - Breaking: Return True for
Element in CompositionifSpecies.symbolmatchesElementby @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_pathkeyword toBaderAnalysisand runbadertests in CI by @janosh in https://github.com/materialsproject/pymatgen/pull/3191 - Unskip and fix
packmoltests 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
Structuretests 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 XYZedge 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-splitdurations 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_lengthsand add tests for it by @janosh in https://github.com/materialsproject/pymatgen/pull/3218 - Prefer
len(structure)overstructure.num_sitesby @janosh in https://github.com/materialsproject/pymatgen/pull/3219 - Add
PhaseDiagrammethodget_reference_energyby @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.elementsproperty by @janosh in https://github.com/materialsproject/pymatgen/pull/3223 - Add keyword
in_place: bool = TruetoSiteCollection.replace_speciesby @janosh in https://github.com/materialsproject/pymatgen/pull/3224 - list offending elements in
BVAnalyzer.get_valenceserror message by @janosh in https://github.com/materialsproject/pymatgen/pull/3225 - Add
Entry.elementsproperty by @janosh in https://github.com/materialsproject/pymatgen/pull/3226 - Move
PymatgenTest.TEST_FILES_DIRattribute 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_callerandchargemol_callerby @chiang-yuan in https://github.com/materialsproject/pymatgen/pull/3192 - Fix
ruffPYI041 and ignore PYI024 by @janosh in https://github.com/materialsproject/pymatgen/pull/3232 - Deprecate
get_string()methods in favor ofget_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.0pin 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
MagOrderingTransformationby enforcing implicit-zero magnetic moments inSpaceGroupAnalyzerby @mattmcdermott in https://github.com/materialsproject/pymatgen/pull/3070 - Bug fix:
CollinearMagneticAnalyzershould not fail whenSpecies.spin = Noneby @mattmcdermott in https://github.com/materialsproject/pymatgen/pull/3157 - Deprecate
from_stringby @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 = TruetoMaterialsProject2020Compatibility,MaterialsProjectDFTMixingSchemeandPotcarCorrectionby @janosh in https://github.com/materialsproject/pymatgen/pull/3143 - Rename
PMG_DISABLE_POTCAR_CHECKStoPMG_POTCAR_CHECKSby @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.convergenceby @janosh in https://github.com/materialsproject/pymatgen/pull/3123 - Add
pymatgen.io.openmmpackage toaddons.rstby @orionarcher in https://github.com/materialsproject/pymatgen/pull/3124 - Migrate from
warnings.catch_warnings(record=True)topytest.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+ fixPERF402violations by @janosh in https://github.com/materialsproject/pymatgen/pull/3129 - Test error messages by @janosh in https://github.com/materialsproject/pymatgen/pull/3131
- Enable
ruffPT011by @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.pyusingdict.pop()by @janosh in https://github.com/materialsproject/pymatgen/pull/3139 - Breaking: Rename
[SomeCode]ParserErrorto[SomeCode]ParseErrorand inherit fromSyntaxErrorby @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
DictSetto 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==0check 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
DictSetby @janosh in https://github.com/materialsproject/pymatgen/pull/3035 - Simplify
dict["key"] if "key" in dict else Nonetodict.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'treturn Noneby @janosh in https://github.com/materialsproject/pymatgen/pull/3052PourbaixDiagramwrong 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(), improveStructure.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=0by @janosh in https://github.com/materialsproject/pymatgen/pull/3066 - PymatgenTest add auto-used
tmp_pathfixture (replacesScratchDir) 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: EnsureMolecule.chargeandMolecule.spin_multiplicityaren't lost upon interconversion by @arosen93 in https://github.com/materialsproject/pymatgen/pull/3056- Single-line
Noneassignment by @janosh in https://github.com/materialsproject/pymatgen/pull/3074 - Breaking: change
Compositionbad key error type fromTypeErrortoKeyErrorby @janosh in https://github.com/materialsproject/pymatgen/pull/3075 - Fix
asetests not running due topymatgen/io/ase.pyshadowingasepackage by @janosh in https://github.com/materialsproject/pymatgen/pull/3077 - Cosmetic fixes to
AseAtomsAdaptordictionary 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 usingapproxby @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
ValueErrorwhen parsingvasprun.xmlwith 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_10by @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_zmatrixfromGaussianInputtoMoleculeby @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.opticsby @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.asemodule by @arosen93 in https://github.com/materialsproject/pymatgen/pull/2991 - Hide all type-hint-only imports behind
if TYPE_CHECKINGby @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+DummySpeciesfrompymatgen.coreby @janosh in https://github.com/materialsproject/pymatgen/pull/2995 Speciesparse oxi state from symbol str by @janosh in https://github.com/materialsproject/pymatgen/pull/2998- Add LightStructureEnvironments.fromstructureenvironments() fallback value if
ce_and_neighborsis 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
MPResterAPI key in settings ifNoneprovided as arg by @ml-evs in https://github.com/materialsproject/pymatgen/pull/3004 - Update
.pytest-split-durationsby @janosh in https://github.com/materialsproject/pymatgen/pull/3005 - Clean up by @janosh in https://github.com/materialsproject/pymatgen/pull/3010
- Fix
ValueErrorwhenstructure.selective_dynamicshas typenp.arrayby @janosh in https://github.com/materialsproject/pymatgen/pull/3012 - Breaking: Overhaul
class PymatgenTestby @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
ruffPD011by @janosh in https://github.com/materialsproject/pymatgen/pull/3020 - Breaking: Default
user_potcar_settingsto{"W": "W_sv"}in all input sets ifuser_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()pbckwarg 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_chempotsoption toChemicalPotentialDiagramto 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->assertby @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_dynamicstoPoscarby @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
Ybpseudo-potential on all VASP input sets fromYb_2toYb_3by @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_2on pre-PBE_54input sets by @janosh in https://github.com/materialsproject/pymatgen/pull/2972 - Enable
flake8-pytest-styleviaruffby @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.2.28
First release (in a while) with pre-built Linux wheels thanks to @njzjz! 🎉
What's Changed
- use
cibuildwheelto 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
cibuildwheelto 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_stabletoFalseinPatchedPhaseDiagram.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-version3.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.20
- Passthrough kwargs support for Structure.fromfile and Structure.fromstr
- Allow the
frac_toleranceto 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
buildto build packages by @njzjz in https://github.com/materialsproject/pymatgen/pull/2735 - Sunset module
pymatgen/util/serialization.pyby @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.inby @janosh in https://github.com/materialsproject/pymatgen/pull/2739 - Resurrect
requirements{,optional}.txtby @janosh in https://github.com/materialsproject/pymatgen/pull/2741 - Enable
dependabotforpipby @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.pyproject_urlsby @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
isortauto 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 toComputedEntryandComputedStructureEntryby @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
fmtandfilenameinStructure.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_relaxorm3gnet_staticoptions.
- 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
AttributeErrorcurrently raised when passing disordered structures to methods likeget_cn()andget_bonded_structure()ofCrystalNNand otherNearNeighborssubclasses.
- 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.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.replacewith 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.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.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_energynow prints oute_0_energy(also called "energy(sigma->0)" in the OUTCAR) rather thanenergy_fr_energy(also called "free energy TOTEN" in the OUTCAR). This is to be consistent withVasprun().final_energyand because it is generally the desired quantity.Outcarnow has two new attributes:.final_energy_wo_entrpandfinal_fr_energy, which correspond toe_wo_entrpande_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 variousstructure.symmetry.analyzerfunctions 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.pyand is implemented as aCompatibilityclass. - 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.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_reactionsmodule, 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.lobsterfile (@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-fleuraddon 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