1Change log 2========== 3 4v2022.0.15 5---------- 6 7Welcome to new contributors @blokhin, @pzarabadip, @ml-evs, @wuxiaohua1011, @janssenhenning and @penicillin0. A reminder to all new contributors to 8ensure your information is accurate at https://pymatgen.org/team.html so that 9you are acknowledged appropriately by filling out the linked form. 10 11* Breaking change in PhaseDiagram serialization which will affect any users of BasePhaseDiagram which has now been removed (@shyuep, 2b9911d) 12 13* Speed up nearest-neighbor routines & structure graph generation (@ltalirz, #2239) 14* Add two more pre-defined OPTIMADE aliases (@blokhin, #2242) 15* Refactor `interface_reactions` module, adding support for Plotly (@mattmcdermott, #2233) 16 17* Update NOMAD access in MPRester (@wuxiaohua1011, #1958) 18* General improvements to Phase Diagram code (@CompyRhys, #2263, #2264, #2268) 19* Improve appearance of periodic table heatmap (@penicillin0, #2272) 20* Small improvements to battery classes (@jmmshn, #2262) 21* Fix for Composition.chemical_system to match expected behaviour for compositions with oxidation states (@CompRhys, #2249) 22* Fix for bad param in OPTIMADE reponse fields (@ml-evs, #2244) 23* Fix for issue in parsing `bandOverlaps.lobster` file (@pzarabadip, #2237) 24* Fix for Moladaptor (@orioncohen, #2269) 25* Fix for incorrect Potcar hash warnings (@mkhorton, #2273) 26 27* Type hint and correct documentation of Structure.remove_site_properties (@kmu, #2256) 28* Type hint improvements across pymatgen (@janosh, #2241, #2247, #2261) 29* Add `pymatgen-io-fleur` addon to addons page (@janssenhenning, #2232) 30 31 32v2022.0.14 33---------- 34* Update OPTIMADE interface to allow querying multiple providers, this changes the 35 method signature of OptimadeRester and so is considered a backwards incompatible change (@mkhorton, #2238) 36 37v2022.0.13 38---------- 39* New feature to plot chemical potential diagrams (@mattmcdermott, #2218), see ArXiv:2104.05986 for example 40* Numerous updates to LOBSTER support for new version and including handling COBICAR, SitePotentials and MadelungEnergies (@JaGeo, #2228) 41* Updates and fixes for LAMMPS CombinedData (@htz1992213, #2191) 42* Bug fix for Bader caller (@nwinner, #2230) 43* Documentation fix for Composition (@CompRhys, #2231) 44 45v2022.0.12 46---------- 47* @chc273 Major bugfix for cython handling of fractional coordinates wrapping. 48* @mattmcdermott Bug fix for entry_ID phase diagram plotting bug described in this Issue: #2219 49* @FCMeng Fix for PWSCF to distinguish same element with different oxidation state, which might have different pseudopotentials. 50* @gmatteo fix minor bug when reading Structure from a netcdf4 file with hdf5 groups 51 52v2022.0.11 53---------- 54* New features to handle Grüneisen parameters (@JaGeo, @ab5424, @gpetretto, #2190) 55* New option to return SymmetrizedStructure in CifParser (@mkhorton, 0d9a455) 56* Fix for SubstrateAnalyzer (@shyamd, #2198) 57* Fix for BandFillingCorrection (@kavanase, #2193) 58 59v2022.0.10 60---------- 61* Add spin-dependent eigenvalue band properties (@arosen93, #2187) 62* Bug fix for settings loading (@ardunn, #2186) 63 64v2022.0.9 65--------- 66* Significant new functionality for handling interfaces between structures (@shyamd, #2149) 67* Add input/output for CREST (@arepstein, #2020) 68* Add RadialSiteDistortionTransformation (@nwinner, #2108) 69* Add Q-Chem NBO functionality (@samblau, #2174) 70* Change hkl annotation format in diffraction plots (@flaviu-gostin, #2143) 71* Add space group to print output of `SymmetrizedStructure` (@CompRhys, #2139) 72* Better error handling in QCOutput (@rkingsbury, #2147, #2165, #2135) 73* Add progress bar for applying compatibility scheme (@CompRhys, #2136) 74* Allow combining data with multiple molecule IDs in LAMMPS (@htz1992213, #2157) 75* Update EDIFF in DFPT input set to be consistent with atomate (@utf, #2172) 76 77* Change names of high-symmetry paths (@munrojm, #2144) 78* Change default for filter_solids argument of PourbaixDiagram (@rkingsbury, #2177) 79 80* Fix to improve precision in `FermiDos`, NOTE: this can result in significant changes in some instances (@nwinner, #2109) 81* Fix for handling of Exceptions (@kmu, #2150) 82* Fix for PourbaixEntry (@JosephMontoya-TRI, #2148) 83* Fix for loading of settings from file when environment variables also set (@ardunn, #2164) 84* Fix equation for calculation of k-spacing in SCAN sets, NOTE: this now results in a lower k-point density (@ab5424, #2163) 85* Fix for parsing of VASP vasprun.xml when ALGO=CHI (@KazMorita, #2171) 86 87* Documentation update for MP2020 corrections scheme (@rkingsbury, #2141) 88* Documentation update for SCAN sets (@janosh, #2140) 89* Documentation update for using CifWriter (@755452800, #2156) 90 91v2022.0.8 92--------- 93* PR #2130 @rkingsbury ensures that energy corrections applied to each anion 94 have unique names (e.g., N vs. Cl vs. Br). 95* PR #2133 @rkingsbury adds support for custom vdW radii to `QCInput` and 96 `QChemDictSet`. These radii are used in the construction of PCM cavities and 97 when calculating charges. 98* PR #2123 from @gpetretto fixes bug in `get_conventional_standard_structure` 99 method of the `SpacegroupAnalyzer` for triclinic crystals. 100* PR #2134 from @ab5424 supports zopen in parsing lammps logs 101* PR #2132 from @htz1992213 speeds up LammpsData.as_string for 102 non-hybrid data with large coeff sections and adds as_lammpsdata method to 103 CombinedData 104* PR #2129 from @richardtran415 improves analysis of surface symmetry of slabs. 105* PR #2117 from @nwinner contains bug fixes for bader caller. 106 107v2022.0.7 108--------- 109* Improved Gaussian Cube I/O (@nwinner, #2121) 110* Updated van der Waals radii (@rkingsbury, #2122) 111* Update `MaterialsProject2020Compatibility` for multi-anion systems (@rkingsbury, #2128) 112* Fixes and improvements to Q-Chem parsing (@samblau, #2125) 113* Bug fix for isseus with hard-coded path in `MaterialsProject2020Compatibility` (@CompRhys, #2124) 114* Bug fix for DOS serialization (@zooks97, #2119) 115* Bug fix for XDATCAR lattice parsing (@nkeilbart, #2115) 116* Documentation link fix (@adam-kerrigan, #2127) 117 118v2022.0.6 119--------- 120* Feature to calculate Selling vectors and distances between Lattices (@bwjustus, #1888) 121* XPS Spectrum class added (@shyuep, #2110, see `galore <https://github.com/SMTG-UCL/galore>`_) 122* Updated `MaterialsProject2020Compatibility` for formation energy correction (@rkingsbury, #2106) 123* Bug fix for detecting broken bonds in slab generation (@fyalcin, #2015) 124* Bug fix for electrodes (@jmmshn, #2101) 125* Documentation improvement for get_conventional_standard_structure (@tom-wood, #2100) 126 127v2022.0.5 128--------- 129* Bug fix to remove possibility of duplicate edges in `StructureGraph` (@mkhorton, #2095) 130 131v2022.0.4 / v2021.3.9 132--------------------- 133* Element now has `ionization_energies`, `ionization_energy` and 134 `electron_affinity` properties. 135* Extensive documentation has been added on pymatgen compatibility and the 136 new namespace architecture! We have also released a 137 `template repo <https://github.com/materialsproject/pymatgen-addon-template>`_ 138 to help new developers write add-ons for pymatgen! Check out our 139 :doc:`contributing page</contributing>` for details. 140 141v2022.0.3 142--------- 143* Another bug fix release! Now SETTINGS have been moved to pymatgen.core. 144 145v2022.0.2 (Yanked) 146------------------ 147* Bug fix release for missing package data files in v2022.0.1 148 149v2022.0.1 (Yanked) 150------------------ 151* `pymatgen`, `pymatgen.ext`, `pymatgen.io` and `pymatgen.analysis` are now 152 namespace packages. Note that this does not affect normal usage of pymatgen 153 from v2022.0.0. All imports remain the same. However, it does allow developers 154 to write "add-ons" to these subpackages. A full documentation with examples 155 and templates is in the works to guide developers on how to write these 156 packages. 157 158v2022.0.0 (Yanked) 159------------------ 160* This is the new version of pymatgen going forward. Root-level imports have been removed. Please see 161 https://pymatgen.org/compatibility.html on how to update your code for compatibility with v2022. 162 163v2021.3.5 164--------- 165* Backwards incompatible changes in v2021.3.4 have been removed. Instead another semantic version v2022.0.0 has been 166 released. Future critical bug fixes will be backported to v2021.x.x, but the main line of development will occur on 167 v2022.0.0 onwards. 168 169v2021.3.4 (Yanked) 170------------------ 171* **Backwards incompatible**: Pymatgen root imports have been removed from 172 v2021.3.4 in preparation for a change to a more modular, extensible 173 architecture that will allow more developers to contribute. 174 175 If your existing code uses `from pymatgen import <something>`, you will need to make 176 modifications. The easiest way is to use an IDE to run a Search and Replace. 177 First, replace any `from pymatgen import MPRester` with 178 `from pymatgen.ext.matproj import MPRester`. Then, replace 179 `from pymatgen import` with `from pymatgen.core import`. Alternatively, if you 180 are using a Mac command line, you can do:: 181 182 find . -name '*.py' | xargs sed -i "" 's/from pymatgen import MPRester/from pymatgen.ext.matproj import MPRester/g' 183 find . -name '*.py' | xargs sed -i "" 's/from pymatgen import/from pymatgen.core import/g' 184 185 From a Linux command line, you can do:: 186 187 find . -name '*.py' | xargs sed -i 's/from pymatgen import MPRester/from pymatgen.ext.matproj import MPRester/g' 188 find . -name '*.py' | xargs sed -i 's/from pymatgen import/from pymatgen.core import/g' 189 190 This should resolve most import errors and only a few more modifications may 191 need to be done by hand. 192 193 Specifically, the following "convenience imports" have been removed in favor of 194 their canonical import:: 195 196 from pymatgen import Composition # now "from pymatgen.core.composition import Composition" 197 from pymatgen import Lattice # now "from pymatgen.core.lattice import Lattice" 198 from pymatgen import SymmOp # now "from pymatgen.core.operations import SymmOp" 199 from pymatgen import DummySpecie, DummySpecies, Element, Specie, Species # now "from pymatgen.core.periodic_table ..." 200 from pymatgen import PeriodicSite, Site # now "from pymatgen.core.sites ..." 201 from pymatgen import IMolecule, IStructure, Molecule, Structure # now "from pymatgen.core.structure ..." 202 from pymatgen import ArrayWithUnit, FloatWithUnit, Unit # now "from pymatgen.core.units ..." 203 from pymatgen import Orbital, Spin # now "from pymatgen.electronic_structure.core ..." 204 from pymatgen import MPRester # now "from pymatgen.ext.matproj ..." 205 206 207v2021.3.3 208--------- 209* **Backwards incompatible**: pymatgen.SETTINGS have been moved to 210 pymatgen.settings.SETTINGS. In general, this should not lead to many breakages 211 since most of these settings are used within pymatgen itself. 212* **Backwards incompatible**: pymatgen.loadfn and get_structure_from_mp have been 213 removed since no one was using them. 214* critic2_caller has been refactored. (@samblau) 215* Improved hash for Compositon (@CompRhys) 216* Fixes Outcar parsing for VASP 6.2.0. (@MichaelWolloch) 217* Allow None for Gaussian functional, bset, charge and multiplicity (@eimrek) 218 219v2021.2.16 220---------- 221* Add a new interface to OPTIMADE-compliant APIs in pymatgen.ext.optimade (@mkhorton, #2066) 222* Addresses missing text file, all_cg.txt, in package 223* Note that a previous released increased the suggested minimum numpy version and suggested minimum Python version 224* Previous release also dropped support for aconvasp since this the interface has not been maintained 225 226v2021.2.14 227---------- 228* Misc bug fixes. 229 230v2021.2.12 231---------- 232* Misc bug fixes. 233 234v2021.2.8.1 235----------- 236* Patch release to restore `CompositionError` to preserve backwards compatibility. 237 238v2021.2.8 239--------- 240* Addition of new job types to Q-Chem IO (@espottesmith, #2055), 241 note `metal_edge_extender` has been moved into `local_env` for this change 242* Improvements to string utils, new Stringify mixin with 243 to_pretty_string(), to_latex_string(), to_unicode_string(), to_html_string() (@shyuep) 244* Improvements to build system (@shyuep, @ltalirz, see #2046) 245* Entry is now immutable, removing "in_place" option for normalize (@mkhorton, @mattmcdermott, #2060) 246* Bug fix for co-ordination geometry finder (@davidwaroquiers, #2035) 247* Bug fix for GibbsComputedStructureEntry (@mattmcdermott) 248 249v2021.1.28 250---------- 251* Ability to read Lobster wavefunctions (@JaGeo, #2034) 252* Method to estimate number of bands for VASP calculation (@rwoodsrobinson, #2044) 253* Q-Chem cube file plotting and improvements to output parsring (@samblau, #2032) 254* Improvements to PhaseDiagram hashing and equality checking (@CompRhys, #2014) 255* Improvements to pymatgen import speed (@mkhorton, #2031) 256* Bug fix for k-path generation (@munrojm, #2037) 257* Bug fix for parsing of core potentials from VASP (@utf, #2033) 258 259v2020.12.31 260----------- 261* End of 2020 release with minor bug fixes for cli scripts. 262 263v2020.12.18 264----------- 265* New IsayevNN nearest-neighbor algorithm (@utf, #2011) 266* Improvements to electrode objects (@jmmshn, #2016) 267* Improvements to Element and PhaseDiagram (@jmmshn, #2005) 268* Bug fix to increase minimum version of setuptools which was causing incompatible versions of numpy to be installed for some users (@shyuep, see issue #2010) 269* Bug fix to VASP run type detection (@rkingsbury, #2007) 270 271v2020.12.3 272---------- 273* Site insertion algorithm based on charge density (@jmmshn, #1997) 274* Allow calculation of Fermi level from occupancies in VASP calculation (@rkingsbury, #2000) 275* Improvement to legibility of 3D phase diagram plots (@bayesfactor, #1999) 276* Improvement to allow general input for exciting (@vorwerkc, #1975) 277* Improvements to code formatting (@mkhorton, #2008) 278* Bug fix for VASP run type detection (@rkingsbury, #1996) 279 280v2020.11.11 281----------- 282* Bug fix for PhononBandStructureSymmLine. (@gpetretto) 283* Improved robustness in ABINIT input generation. (@gpetretto) 284* Other minor bug fixes. 285 286v2020.10.20 287----------- 2881. Cp2K support (@nwinner) 2892. Better BSPlotter (@fraricci) 2903. Better deprecation warnings. 2914. Bug fix for Py3.9 support. 2925. Bug fix for neutron diffraction get_plot. 293 294v2020.10.9 295---------- 296* Cube parsing and Cube integration to Bader (@nwinner, #1967) 297* Improvements to PhaseDiagram (@CompRhys, #1899) 298* Improvements to VASP sets to calculate NGX/Y/Z, NGX/Y/ZF (@jmmshn, #1959) 299* Changes to MPRelaxSet, default to low spin for Co (@shyuep, #1976) 300* Changes to MPScanSet (@rkingsbury, #1952) 301* Rename of `Specie` to `Species`, `Specie` will be retained for backwards compatibility (@shyuep, #1963) 302* Bug fix for VASP sets (@utf, #1979) 303* Bug fix for PDPlotter (@mattmcdermott, #1973) 304* Bug fix for EnergyAdjustment (@rkingsbury, #1960) 305 306v2020.9.14 307---------- 308 309* New Plotly backend for PhaseDiagram plotting (@mattmcdermott, #1936) 310* New reporting and logging of Materials Project database version in MPRester (@mkhorton, #1945) 311* Improvements and bug fixes with mcsqs integration (@rwoodsrobinson, #1942) 312* Improvements to PackmolRunner (@rkingsbury, #1947) 313* Improvements to ComputerEntry (@rkingsbury, #1948) 314* Improvements for MPScanSet (@rkingsbury, #1940) 315* Bug fix for Surface and Composition (@gpetretto, #1937) 316* Bug fix for EwaldSummation serialization (@lbluque, #1932) 317* Bug fix for SeeK k-path (@Ian496, #1930) 318* Fix for deprecation warning in MPRester (@rkingsbury, #1951) 319 320v2020.8.13 321---------- 322 323* New GibbsComputedStructureEntry (@mattmcdermott, #1921) 324* Changes to MPScanRelaxSet and new MPScanStaticSet (@rkingsbury, #1917) 325* Changes to LobsterSet (@JaGeo, #1928) 326* Bug fix and change for MPRelaxSet (@mkhorton, 9eb3ac2) 327* Bug fix for JMolNN (@utf, #1920) 328* Bug fix for Element valences (@rkurchin, #1926) 329* Bug fix for BabelMolAdaptor (@smheidrich, #1924) 330* Bug fix for Gaussion IO (@eimrek, #1918) 331 332v2020.8.3 333--------- 334* Change neighbor-finding algorithm extension to C instead of C++ for better cross-platform robustness (@chc273) 335* Add I/O for JARVIS Atoms (@knc6) 336 337v2020.7.18 338---------- 339* Add validation and extrapolation for stitching XAS (@yimingcheng) 340* Better error handling and possibly verbose warning to get_structure_by_material_id 341 342v2020.7.16 343---------- 344* Bug fix for boltztrap2 spin support. (@fraricci) 345 346v2020.7.14 347---------- 348* EwaldSummation is now MSONAble (@lbluque). 349* Fix for QChem freq parsing (@samblau) 350* Much improved linting and workflows. 351 352v2020.7.10 353---------- 354* Bug fix: serialization of slabs (@utf) 355* Bug fix: enumlib url (@wsyxbcl) 356* Bug fix: change in tolerance for Lattice comparison (@mbjumar) 357* Bug fix: k-path division by zero (@mfherbst) 358* New: support for openbabel 3.0 (@orioncohen) 359 360v2020.7.3 361--------- 362* Make Slabs properly serializable in as_dict. Fixes #1892. 363* Fixes for Critic2Caller (@yuuukuma) 364* Add cost data for He, H, Ar, Ne, Kr, Tc (@computron) 365* Parse scientific notation in OUTCAR (possibly without spaces in between) 366* Spin support for boltztrap2 (@fraricci) 367* New static method to generate basis functions Lobster (@JaGeo) 368* SLME and spillage analysis (@knc6) 369 370v2020.6.8 371--------- 372* New: Support for parsing WAVECARS with spin-orbit coupling (@mturiansky, #1861) 373* New: Support to convert WAVECAR to wannier90 UNK files (@mturiansky, #1861) 374* New: Site-weighted XAS spectrum (@yimingchen95, #1837) 375* Fixed: Elfcar serialization (@ayushgupta, #1859) 376* Fixed: Units in label for phonon plot (@ab5424, #1857) 377* Fixed: StructureMatcher serialization (@lbluque, #1850) 378* Fixed: Comment string in KPOINTS file (@arosen93, #1842) 379* Fixed: parsing of dielectric function in VASP output (@computron, #1836) 380 381v2020.4.29 382---------- 383* Improved SQS caller. (@rwoodsrobinson) 384* VolumetricData speedup (@mturiansk) 385* Misc bug fixes 386 387v2020.4.2 388--------- 389* New high-symmetry k-path algorithm (@munrojm, @kt-latimer) 390* New TEM diffraction calculator (@welltemperedpaprika, @thefrankwan, @shyamd) 391* New plotly plotting option for Wulff shapes (@richardtran415) 392* Improvements to SQS caller (@rwoodsrobinson) 393* Various bug fixes and improvements (@mfherbst, @chc273, 394 @jacksund, @espottesmith, @hongyi-zhao, @montoyjh, 395 @dongsenfo, @dynikon) including significant BrunnerNN, EconNN fixes (@utf), 396 see individual pull requests for details. 397 398v2020.3.13 399---------- 400* Added angle_tolerance to CifWriter. 401* Change default float precision in CifWriter to 8. Adds float_prec kwarg to 402 allow setting of arbitrary precision. 403* Rudimentary pymatgen.io.vasp.help.VaspDoc class for obtaining help from VASP wiki. 404* Massive documentation cleanup. 405* Reorganization of Entry, ComputedEntry (@ayushsgupta). 406* Bug fix for PourbaixDiagram (@montoyjh). 407* Read WAVECAR from gamma-point only VASP executable. (@bernstei) 408 409v2020.3.2 410--------- 411* New MonteCarloRattleTransformation and phonopy integration (@utf) 412* New structure connectivity features in Chemenv analysis (@davidwaroquiers) 413* Bug fixes (@richardtran415, @chc273, @JaGeo, @dskoda, @rkingsbury, 414 @jmmshn, @espottesmith, @gVallverdu, @yimingchen95, @fraricci) 415 416v2020.1.28 417---------- 418* Plugin architecture for pymatgen. 419* Improvements to pymatgen.analysis.xas.spectrum.XAS class. (@yiming) 420* Fixes for ISYM uniform bug and auto-NEDSO (@fraricci) 421* Improvements to ReactionDiagram. 422* Chemenv improvements (@davidwaroquiers) 423* Misc bug fixes. 424 425v2020.1.10 426---------- 427* New connectivity analysis in Chemenv (@davidwaroquiers) 428* Improvements to DOSPlotter (@uthpalah) 429* Improvements to writing VASP input sets (@rkingsbury) 430* Bug fix for PhaseDiagram (@montoyjh) 431 432v2019.12.22 433----------- 434* Improvements to reaction calculator (@mattmcdermott) 435* VASP input set for SCAN from Materials Project, MPScanSet (@rkingsbury) 436* Bug fixes and documentation improvements (@LindaHung-TRI, @rkingsbury, @kwaters4, @rwoodsrobinson, @JaGeo, @nishiyamat, @smheidrich) 437 438v2019.12.3 439---------- 440* Respect KSPACING in INCAR. 441* Bug fixes. 442 443v2019.11.11 444----------- 445* Extend grosspop class (@Jageo) 446* Add option to VaspInputSet to write output with POTCAR.spec 447* Add sort_structure option to Poscar. 448* Added ability to make gaussian input file without a geometry (@WardLT) 449* Misc big fixes. 450 451v2019.10.16 452----------- 4531. Major refactoring of ABINIT IO to remove workflow-based packages (@gmatteo) 4542. Use caching in MinimumVIRENN class. (Alex Ganose) 4553. Changes to Lobster module and lobsterset (@jageo) 4564. Eigenval object for EIGENVAL output file (@mturiansky) 457 458v2019.10.4 459---------- 4601. Fix compile args. 461 462v2019.10.3 463---------- 464* Faster get_all_neighbors based on @chc273's improvements. get_all_neighbors 465 now returns a Site-like object with nn_distance, image and index attrbutes. 466 Much easier to use. 467* Bug fix for XCrySDen parser (@stevetorr) 468* Added optional mid_struct to direct interpolation (@jmmshn) 469 470v2019.10.2 471---------- 472* IRSpectra class (@henriquemiranda) 473* Much faster get_neighbors written in Cython (@chc273). 474* VolumetricData allows for sum or substraction of data with different 475 structures, with warnings. 476 477v2019.9.16 478---------- 479* Updates to annotation, docstrings, etc. Linting service now provided on Github 480 Actions as well as CircleCI. 481 482v2019.9.12 483---------- 484* Massive updates to type annotations, especially for core classes. 485* pycodestyle, pydocstyle and mypy will henchforth be enforced for all new PRs. 486 487v2019.9.8 488--------- 489* Supplemental release to address missing incar_parameters.json 490 491v2019.9.7 492--------- 493* New fast Pourbaix algorithm (@montoyjh) 494* VASP Incar parameter checking (@richardtran415) 495* New VASP input set for Lobster, read support for GROSSPOP file (@JaGeo) 496* New CombinedData class for LAMMPS (@htz1992213) 497* Improvements to molecule fragmenter (@samblau) 498* Various bug fixes and improvements (@dongsenfo, @shyuep, @ardunn, @nathan-diodan, @rkingsbury, @kmu) 499 500v2019.8.23 501---------- 502* pycodestyle now enforced, except on tests. Developers should install 503 pycodestyle and the pre-commit hook (copy pre-commit to .git/hooks) 504 provided in the repo to check before commits. CI now checks for code style 505 and PRs must pass pycodestyle. 506* chemsys str input now allowed in get_entries_in_chemsys (@rkingsbury) 507* ComputedEntry and subclasses now support a normalize(). 508* Speed improvements in fragmeter using igraph. (@samblau) 509 510v2019.8.14 511---------- 512* Update DOSCAR from lobster (@JaGEO) 513* PerturbStructureTransformation (@rees-c) 514* Misc bug fixes. 515 516v2019.7.30 517---------- 518* Bug fixes (@shyuep, @mfherbst) 519* More type hint annotations (@shyuep) 520* Improvements to BabelMolAdaptor (@smheidrich) 521* Convenience Transformations for AdsorbateSiteFinder (@mkhorton) 522 523v2019.7.21 524---------- 525* Add CubicSupercellTransformation and PerturbedSupercellsTransformation (@rees-c, @utf) 526* Add interface for ShengBTE (@rees-c, @utf) 527* Add interface for Vampire (@ncfrey) 528* Improved Lobster interface (@JaGeo) 529* Bug fixes (@sthartman, @dwinston, @utf) 530* New functionality for calculation of Heisenberg exchange parameters (@ncfrey) 531* Improvements to Miller indices handling and Lattice (@richardtran415) 532 533 534v2019.7.2 535--------- 536* Improvements to grain boundary transformations and Rester (@Tinaatucsd) 537* Improvements to AdsorbateSiteFinder (@oxana-a) 538* Improvements to Waveder support (@JRSuckert) 539* Improvements to run type detection (@darnoceloc) 540* Add XAS data to Rester (@yimingchen95) 541* Fix to ATAT input/output (@dongsenfo) 542* Initial support for Prismatic input (@mkhorton) 543 544v2019.6.20 545---------- 546* New interface class (@sivonxay, @kylebystrom, @shyamd) 547* Updates to SlabGenerator (@richardtran415) 548* Updates to PiezoTensor (@dongsenfo) 549* Add support for parsing on-site density matrix to Outcar (@mkhorton, @mhsiron, @clegaspi) 550* Fixes for magnetic space groups (@simonward86) 551* Fixes for Lobster class (@JaGeo) 552* Fix for FEFF (@stevetorr) 553* Fix for Waveder (@JRSuckert) 554 555v2019.6.5 556--------- 557* Linear scaling get_all_neighbors. Tested to be faster for > 100 atoms (@chc273). 558* Lobsterin class to handle input for Lobster (@JaGeo). 559* Strict options for composition parsing (@mkhorton). 560* Bug fix for CovalentBondNN.get_bonded_structure (@lan496). 561 562v2019.5.28 563---------- 564* New VASP Input Set "from previous" interface (@utf) 565* ELFCAR support (@mkhorton) 566* Improvements to plotting of band structures and densities of states (@ShuaishuaiYuan) 567* Convenience functions added to Composition including chemical system convention (@mkhorton) 568* Various bug fixes (@mkhorton, @utf) 569* Improvements to MEGNET API (@shyuep) 570* Improvements to Structure interpolation (@mturiansky) 571 572v2019.5.8 573--------- 574* Numerous updates and improvements to defect classes (@dbroberg) 575* New API for MEGNET models, see http://megnet.crystals.ai (@shyuep) 576* Update to NMR symmeterization (@dongsenfo) 577* Change CIF indexing (@kmu) 578* Add BoltzTraP mode to NonSCF input sets (@utf) 579 580v2019.5.1 581--------- 582* Small speeds to Structure.get_all_neighbors. 583* Big fixes for gulp_caller. (@kmu) 584* Plot fatbands from Lobster. (@jageo) 585* Speed up get_ir_mesh (@utf) 586* Parsing of plasma frequencies from Outcar. 587* Miscellaneous bug fixes. 588 589v2019.4.11 590---------- 591* Improvements to MimimumDistanceNN (@jmmshn) 592* Improvements to Lobster. (@JaGeo) 593* Implement a metal warning for ISMEAR < 1 and NSW > 0. 594* Misc bug fixes to input sets, including detection of metal systems and 595 checking for standardization. 596 597v2019.3.27 598---------- 599* Bug fixes for OrderDisorderComparator (@utf), custom k-points 600in MPNonSCFSet (@dyllamt), battery app (@jmmshn), MPSOCSet (@mkhorton), 601more 602* Improvements to COHP (@JaGeo) 603* Support to read WAVEDER files (@knc6) 604* Addition of van Arkel-Ketelaar triangle plots (@richardtran415) 605* Addition of optional user agent to MPRester API calls, see documentation 606for more information (@dwinston) 607 608v2019.3.13 609---------- 610* Streamlined Site, PeriodicSite, Molecule and Structure code by abandoning 611 immutability for Site and PeriodicSite. 612* VaspInput class now supports a run_vasp method, which can be used to code 613 runnable python scripts for running simple calculations (custodian still 614 recommended for more complex calculations.). For example, the following is a 615 kpoint convergence script that can be submitted in a queue 616 617.. code-block:: pycon 618 619 from pymatgen import MPRester 620 from pymatgen.io.vasp.sets import MPRelaxSet 621 622 623 VASP_CMD = ["mpirun", "-machinefile", "$PBS_NODEFILE", "-np", "16", "vasp"] 624 625 626 def main(): 627 mpr = MPRester() 628 structure = mpr.get_structures("Li2O")[0] 629 for k_dens in [100, 200, 400, 800]: 630 vis = MPRelaxSet(structure, 631 user_kpoints_settings={"reciprocal_density": k_dens}) 632 vi = vis.get_vasp_input() 633 kpoints = vi["KPOINTS"].kpts[0][0] 634 d = "Li2O_kpoints_%d" % kpoints 635 636 # Directly run vasp. 637 vi.run_vasp(d, vasp_cmd=VASP_CMD) 638 # Use the final structure as the new initial structure to speed up calculations. 639 structure = Vasprun("%s/vasprun.xml" % d).final_structure 640 641 642 if __name__ == "__main__": 643 main() 644 645* Many pymatgen from_file methods now support pathlib.Path as well as strings. 646* Misc bug fixes. 647 648 649v2019.2.28 650---------- 651* Type hints now available for core classes. 652* New pymatgen.util.typing module for useful types. 653* Misc bug fixes. 654 655v2019.2.24 656---------- 657* New EntrySet class for easy manipulation of entries to grab subsets, 658 remove non-ground-states, etc. Makes it easier to grab a large set of entries and work with sub chemical systems. Also MSONable for caching. 659* Performance improvements in core classes and Poscar (@ExpHP). 660* New/changed methods for IcohpCollection and Completecohp 661 662v2019.2.4 663--------- 664* New Trajectory class for MD simulations (@sivonxay) 665* Lattice.get_vector_along_lattice_directions (@blondgeek) 666* Misc bug fixes. 667 668v2019.1.24 669---------- 670* Python 3 only! 671* Improvements to local environment code including VESTA bond emulation (@utf) 672* Update Cohp analysis (@JaGEO) 673* Updates to Boltztrap2 (@fraricci) 674 675v2019.1.13 676---------- 677* Pymatgen is now Py3 ONLY. If you need Py27 support, please use versions 678 < 2019.1.1. 679* PARCHG parsing from WAVECAR (@mturiansky) 680* Improvements to defect generation algorithms (@dbroberg) 681* Simplifications to COHP plotting (@JaGeo) 682 683v2018.12.12 684----------- 685* Support for IUPAC ordering of elements in Composition formulae (@utf) 686* Various bug fixes including returning integer miller indices, catching negative values in Composition and fixes to graph analysis (@utf), fix to Composition serialization (@jmmshen), defect analysis (@HanmeiTang), removing sites in surfaces (@yiming-xu), and fix to support the new PROCAR format in VASP (@dkorotin) 687* `PMG_MAPI_ENDPOINT` environment variable added to support different endpoints for the Materials Project REST interface (@mkhorton) 688 689v2018.11.30 690----------- 691* MPRester.query now supports bulk queries for large scale requests. 692 (@dwinston) 693* MVLRelax52Set which uses VASP 52 pseudopotentials. (@HanmeiTang) 694* EPH calculations in ABINIT (@gmatteo) 695* New ScaleToRelaxedTransformation (@richardtran415) 696* New dimensionality finder, and consolidation of existing algorithms (@utf) 697* New dopant predictor built on structure predictor (@utf) 698* Misc bug fixes (@HanmeiTang, @utf, @tamuhey, @mkhorton, @yiming-xu, @richardtran415) 699 700v2018.11.6 701---------- 702* Ionic radius based CrystalNN (@computron) 703* InterfacialReactivity (@dbroberg) 704* Misc bug fixes 705 706v2018.10.18 707----------- 708 709* New bond fragmenter and bond dissociation analysis modules (@samblau) 710* Improvements to MoleculeGraph (@espottesmith) 711* Fix: bug in triclinic tensor conversion to IEEE standard (@montoyjh) 712* Fix: insertion battery summary dictionary format (@jmmshn) 713* Speed improvements to certain tests (@shyuep, @samblau) 714 715v2018.9.30 716---------- 717 718* Fix: increased cut-off to VoronoiNN to avoid scipy crash (@utf) 719* Fix: Outcar parsing issues with certain values of electrostatic potential (@sivonxay) 720* Fix: bug in EnumlibAdaptor/EnumerateStructureTransformation involving incorrect 721 stoichiometries in some instances (#1286) (@shyuep) 722* Fix: fractional co-ordinate finite precision errors in CifParser, now 723 also includes additional warnings for implicit hydrogens (@mkhorton) 724* New features and improvements to GBGenerator (@ucsdlxg, @shyuep) 725* New analysis options in StructureGraph, speed up tests (@mkhorton) 726* New utility function to pretty print disordered formulae, along with a 727 ordered-to-disordered structure transformation (@mkhorton) 728* Ability to use pymatgen's StructureMatcher against AFLOW's library of 729 crystallographic prototypes (@mkhorton) 730* Make Chgcar serializable to/from dict for database insertion (@jmmshn) 731 732v2018.9.19 733---------- 734* Fix to composition handling in `MolecularOrbitals` (@dyllamt) 735* Fix to allow mixed compressed/uncompressed loading of VASP band structures (@ajjackson) 736* New features and fixes to `chemenv` analysis module (@davidwaroquiers) 737* Fix to include structure predictor data with pip/conda-installed pymatgen (@shyamd) 738* Fixes to `Defect` objects, icluding allowing rotational supercell transformations (@dbroberg) 739* Fix to `BSDOSPlotter` to correctly fill in parts of DOS (@fraricci) 740* Added '@' notation parsing in `Composition` (@tamuhey) 741* BibTex reference extraction updated in `CifParser` to support ICSD CIFs (@shyamd) 742* Various updates to speed up and fix test suite (@shyuep, @fraricci) 743* Improvements to BoltzTraP 2 support (@shyuep, @fraricci) 744 745v2018.9.12 746---------- 747* Use boltztrap2 (@fraricci) 748* Refactoring of tensor code to core (@montoyjh) 749* Support for new Lobster version (@JaGeo) 750* Misc bug fixes 751 752v2018.8.10 753---------- 754* Bug fix for pymatgen.analysis.gb and pymatgen.io.lammps. 755 756v2018.8.7 757--------- 758* Massive refactoring of LAMMPS support. (@adengz) 759* Allow kwargs passthrough for Structure.to. 760* Updates to ABINIT support (@gmatteo) 761* GrainBoundaryTransformation class. (@Tinaatucsd) 762 763v2018.7.15 764---------- 765* Grain boundary generator (Xiangguo Li @ucsdlxg) 766* Massive updates to defect code and new DefectTransformation 767 (@shyamd) 768* Bug fix for OUTCAR parsing with more than one space in 769 electrostatic potential. 770* get_fermi_interextrapolated to support wider range of 771 input doping (@albalu) 772* Update to cython compile to support Py3.7. 773* Update VoronoiNN cutoff dynamically (@computron) 774 775v2018.6.27 776---------- 777* Improved local_env and MoleculeGraph (@WardLT, @espottesmith) 778* Improve BabelMolAdaptor with conformer search and other functions (@Qi-Max) 779* Improved surface analysis (@richardtran415) 780 781v2018.6.11 782---------- 783* Updates to ABINIT support for 8.1.3 784* Updates to Interface analyzer. 785* Fix bug in deserialization of ComputedStructureEntry. 786* Misc bug fixes. 787 788v2018.5.22 789---------- 790* Misc bug fixes. 791 792v2018.5.21 793---------- 794* Bug-fix for missing HHI data file. 795* Misc bug fixes. 796 797v2018.5.14 798---------- 799* Dash docs now avaiable for pymatgen. See pymatgen.org "Offline docs" section 800 for details. 801* Better CrystalNN. (Anubhav Jain) 802* Fixes for elastic module. (Joseph Montoya) 803 804v2018.5.3 805--------- 806* Improvements to qchem (@samblau). 807* Improvements to nwchem to support tddft input and parsing (@shyuep). 808* Improvements to CrystalNN (@computron). 809* Add methods for getting phonon BS, DOS, and DDB output (@dwinston). 810 811v2018.4.20 812---------- 813* Neutron diffraciton calculator (Yuta) 814* Non-existent electronegativity (e.g., He and Ne) are now returned as NaN 815 instead of infinity. 816* CifParser now handles Elements that are in all caps, which is found in some 817 databases. (Gpretto) 818* Improvements to local_env (Anubhav Jain) 819* Improvements to Qchem () 820* Inputs sets for NMR (Shyam) 821* New ChargeDensityAnalyzer class to find interstitial sites from charge density (Hanmei) 822 823v2018.4.6 824--------- 825* Updated debye temperature formulation (Joey Montoya) 826* Add bandgap option for FermiDos for scissoring (Alireza Faghaninia) 827* Improved Pourbaix code (Joey Montoya) 828* Local env code improvements (Nils) 829 830v2018.3.22 831---------- 832* Bug fixes to structure, phase diagram module, enumlib adaptor, local env analysis. 833 834v2018.3.14 835---------- 836* ReactionDiagram for calculating possible reactions between two compositions. 837* Misc bug fixes for EnumlibAdaptor and MagOrderingTransformation 838 839v2018.3.13 840---------- 841* Support for VESTA lattice vector definitions. 842* GaussianOutput read now bond_orders of a NBO calculations (@gVallverdu) 843* Bug fixes to phonons, abinit support. 844 845v2018.3.2 846--------- 847* Various algorithms for nearest neighbor analysis (Hillary Pan) 848* Cleanup of local_env modules (Nils) 849* Enhancements to surface packages (Richard) 850* Misc bud fixes 851 852v2018.2.13 853---------- 854* Improved chemenv parameters and bug fixes (David Waroquiers). 855* Improved Qchem IO (Shyam). 856* Improved interfacial reactions. 857* local_env update (Nils). 858* Improved ABINIT support (@gmatteo). 859* Misc bug fixes. 860 861v2018.1.29 862---------- 863* Improvements to local_env (Nils) 864* Term symbols for Element (Weike Ye). 865* Timeout for enumlib (Horton). 866 867v2018.1.19 868---------- 869* Phonon plotting and analysis improvements (Guido Petretto). 870* Voronoi site finder (Hanmei Tang) 871* Some bug fixes for Gaussian (Marco Esters) 872* Misc improvements. 873 874v2017.12.30 875----------- 876* Added detailed Shannon radii information and method. 877* Magoms for lanthanides (Weike Ye) 878* Chemenv improvements (David Waroquiers) 879* Ewald summation improvements (Logan Ward) 880* Update to ABINIT support (G Matteo) 881 882v2017.12.16 883----------- 884* Add optical absorption coefficient method 885* Improve plot_element_profile 886 887v2017.12.15 888----------- 889* Deprecated methods cleanup for 2018. Note that this may break some legacy 890 code. Please make sure you update your code! 891* Better dielectric parsing for VASP 5.4.4 to include both density-density and 892 velocity-velocity functions. 893* Orbital-resolved COHPs support (Macro Esters) 894* Convenient plot_element_profile method in PDPlotter. 895* Input set for SCAN functional calculations. 896* Misc bug fixes and code improvements. 897 898v2017.12.8 899---------- 900* Pymatgen no longer depends on pyhull. 901* MPRester method to get interface reaction kinks between two reactants. 902* Misc improvements. 903 904v2017.12.6 905---------- 906* Support for HDF5 output for VolumetricData (CHGCAR, LOCPOT, etc.). 907* Support for Crystal Orbital Hamilton Populations (COHPs) (@marcoesters) 908* REST interface for Pourbaix data 909* Support for optical property parsing in Vasprun. 910* Improvements to LammpsData 911* Misc bug fixes. 912 913v2017.11.30 914----------- 915* Fix for severe enumlib_caller bug. This causes enumerations not to be carried 916 out properly due to bad accounting of symmetry of ordered sites. It results 917 in too few orderings. 918* New method to extract clusters of atoms from a Molecule based on bonds. 919 920v2017.11.27 921----------- 922* Improvements to FEFF 923* MPRester now supports surface data. 924* Improvement to DiscretizeOccupanciesTransformation. 925 926v2017.11.9 927---------- 928* Massive rewrite of LAMMPSData to support more functionality (Zhi Deng) 929* Misc bug fixes. 930 931v2017.11.6 932---------- 933* Better exception handling in EnumlibAdaptor and 934 EnumerateStructureTransformation. 935* Allow bypassing of ewald calculation in EnumerateStructureTransformation. 936* get_symmetry_operations API convenience method for PointGroupAnalyzer. 937* New DiscretizeOccupanciesTransformation to help automate ordering of 938 disordered structures. 939* Fix POTCAR check for POSCAR. 940* Minor updates to periodic table data. 941* Misc bug fixes. 942 943v2017.10.16 944----------- 945* Added many more OPs and made normalization procedure more robust (Nils Zimmermann) 946* Molecular orbitals functionality in Element (Maxwell Dylla) 947* Improvements in chemenv (David Waroquiers) 948* Add I/O for ATAT’s mcsqs lattice format (Matthew Horton) 949 950v2017.9.29 951---------- 952* critic2 command line caller for topological analysis (M. Horton) 953* Refactor coord_util -> coord. 954 955v2017.9.23 956---------- 957* Gibbs free energy of a material with respect to Pourbaix stable domains. 958* Phonopy io now supports structure conversions. 959* EnumerateStructureTransformation now implements a useful occupancy rounding. 960* MVLNPTMDSet 961* Improved PDPlotter options. 962* Misc bug fixes. 963 964v2017.9.3 965--------- 966* VDW support (Marco Esters) 967* Bug fix release. 968 969v2017.9.1 970--------- 971* Massive refactoring of PhaseDiagram. Now, PDAnalyzer is completely defunct 972 and all analysis is carried out within PhaseDiagram itself, e.g., 973 pd.get_e_above_hull as opposed to PDAnalyzer(pd).get_e_above_hull. 974* Refactoring of structure prediction. Now in 975 pymatgen.analysis.structure_prediction. 976* New core Spectrum object and associated pymatgen.vis.plotters.SpectrumPlotter. 977* Parsing energies from gen_scfman module in Qchem 5 (Brandon Wood) 978* Improvements to LAMMPSData, vasp IO. 979 980v2017.8.21 981---------- 982* Minor bug fixes. 983 984v2017.8.20 985---------- 986* Input sets for GW and BSE calculations (Zhenbin Wang) and grain boundary 987 calculations (Hui Zheng). Input sets now support overriding of POTCAR 988 settings. 989* Haven ratio calculation (Iek-Heng Chu). 990* LAMMPS io updates (Kiran Matthews). 991* Oxidation state guessing algorithms based on ICSD data (Anubhav Jain). 992* New local_env module for local environment analysis. (Nils Zimmerman). 993* pymatgen.util.plotting.periodic_table_heatmap (Iek-Heng Chu). 994* Improvements to surface code for tasker 3 to 2 reconstructions. 995* pymatgen.analysis.interface_reactions.py for analyzing interfacial reactions 996 (Yihan Xiao). 997 998v2017.8.16 999---------- 1000* PointGroupAnalyzer now allows for symmetrization of molecules. (@mcocdawc) 1001* QuasiharmonicDebyeApprox with anharmonic contribution. (Brandon) 1002* Improvements to LAMMPS io. (Kiran) 1003* Misc bug fixes. 1004 1005v2017.8.14 1006---------- 1007* Fixes and minor improvements to elastic, bader and defect analyses. 1008 1009v2017.8.4 1010--------- 1011* Major refactoring and improvements to lammps io. (Kiran) 1012* Major improvements to BaderAnalysis. (Joey and Zhi) 1013* Major improvements to Magmom support in cifs, SOC calculations, etc. 1014 (Matthew Horton) 1015* Add remove_site_property function. Add magmom for Eu3+ and Eu2+. 1016* BoltztrapAnalyzer/Plotter support for seebeck effective mass and complexity 1017 factor (fraricci) 1018 1019v2017.7.21 1020---------- 1021* Misc bug fixes to elastic (J. Montaya), 1022* Decrease default symprec in SpacegroupAnalyzer to 0.01, which should be 1023 sufficiently flexible for a lot of non-DFT applications. 1024 1025v2017.7.4 1026--------- 1027* Bug fixes for oxide corrections for MP queried entries, and pickling of Potcars. 1028* Default to LPEAD=T for LEPSILON=T. 1029 1030v2017.6.24 1031---------- 1032* New package pymatgen.ext supporting external interfaces. Materials Project 1033 REST interface has been moved to pymatgen.ext.matproj. Backwards compatibility 1034 will be maintained until 2018. 1035* Two new interfaces have been added: i) Support for John Hopkin's Mueller 1036 group's efficient k-point servelet (J Montaya). ii) Support for 1037 Crystallography Open Database structure queries and downloads. (S. P. Ong). 1038 See the examples page for usage in getting structures from online sources. 1039 1040v2017.6.22 1041---------- 1042* Speed up pmg load times. 1043* Selective dynamics parsing for Vasprun (Joseph Montaya) 1044* Allow element radius updates in get_dimensionality (Viet-Anh Ha). 1045* Dielectric function parse for vasp 5.4.4 (Zhenbin Wang). 1046* Parsing for CIF implicit hydrogens (Xiaohui Qu). 1047 1048v2017.6.8 1049--------- 1050* Switch to date-based version for pymatgen. 1051* Electronegativities now available for all elements except for He, Ne and 1052 Ar, which are set to infinity with a warning. 1053* Bond lengths are now set to sum of atomic radii with warning if not available. 1054* Bug fixes to boltztrap, symmetry for trigonal-hex systems, etc. 1055 1056v4.7.7 1057------ 1058* Magnetic symmetry and CIF support. (Horton) 1059* Improved PWSCF Input file generation. 1060* Misc bug fixes. 1061 1062v4.7.6 1063------ 1064* Fix serious bug in PointGroupAnalyzer that resulted in wrong point groups assigned to non-centered molecules. 1065* Useful get_structure_from_mp at the root level for quick retrieval of common structures for analysis. 1066* More efficient kpoint grids. 1067* Misc bug fixes. 1068 1069v4.7.5 1070------ 1071* MultiXYZ support (Xiaohui Xu) 1072* Misc bug fixes and cleanup. 1073 1074v4.7.4 1075------ 1076* New ferroelectric analysis module (Tess). 1077* Magmom support and MagSymmOp (Matthew Horton). 1078* Improved CIF Parsing. 1079 1080v4.7.3 1081------ 1082* Sympy now a dependency. 1083* Massive improvements to elastic package. (Joseph Montoya) 1084* Symmetrized structures now contain Wyckoff symbols. 1085* More robust CIF parsing and MITRelaxSet parameters (Will). 1086 1087v4.7.2 1088------ 1089* Support for Abinit 8.2.2, including support for DFPT calculations. (Matteo) 1090 1091v4.7.1 1092------ 1093* Pathfinder speedup 1094* Minor bug fix for plots. 1095 1096v4.7.0 1097------ 1098* Improvements to BSDOSPlotter. 1099* Enhancements to Phase diagram analysis and reaction calculator. 1100* Enhancements to surface slab and adsorption. (Richard and Joey) 1101* Support NpT ensemble in diffusion analysis. 1102 1103v4.6.2 1104-------- 1105* Improve Spacegroup class support for alternative settings. Add a get_settings class method. 1106* Improvements to FEFF support. 1107* Improvements to EOS class. 1108 1109v4.6.1 1110------ 1111* Phonon bandstructure plotting and analysis. (Guido Petretto) 1112* New capabilities for performing adsorption on slabs. (Joey Montoya) 1113* Remove pathlib dependency. 1114 1115v4.6.0 1116------ 1117* Improve support for alternative settings in SpaceGroup. 1118* Fix respect for user_incar_settings in MPNonSCFSet and MPSOCSet 1119* Support for argcomplete in pmg script. 1120* Speed ups to Ewald summation. 1121* Add functionality to parse frequency dependent dielectric function. 1122* Improvements to Bolztrap support. 1123 1124v4.5.7 1125------ 1126* PMG settings are now prefixed with PMG_ to ensure proper namespacing. 1127* Improve error output in command line bader caller. 1128* Add Py3.6 classifier. 1129* Misc bug fixes. 1130 1131v4.5.6 1132------ 1133* Minor bug fix. 1134* Fixed elastic energy density 1135 1136v4.5.5 1137------ 1138* Fix bad reading of pmgrc. 1139* Gaussian opt section added allowing for torsion constraints 1140* Update spglib. 1141 1142v4.5.4 1143------ 1144* BSDOSPlotter (Anubhav Jain) 1145* Fixes to defect analysis (Bharat) 1146* intrans as an input to BoltztrapAnalyzer. Allows for scissor operation. 1147* Pmg is now continuously tested on win-64/py35 using Appveyor! 1148 1149v4.5.3 1150------ 1151* Added an alternative interstitial finder that works with a grid-based structure-motif search. (Nils Zimmermann) 1152* Optionnal possibility to specify that the saddle_point in the NEB should have a zero slope. (David Waroquiers) 1153* Read intensity and normal modes for Gaussian. (Germain Salvato Vallverdu) 1154* Minor bug fixes. 1155 1156v4.5.2 1157------ 1158* Minor bug fix for POTCAR settings. 1159 1160v4.5.1 1161------ 1162* You can now specify a different default functional choice for pymatgen by 1163 setting PMG_DEFAULT_FUNCTIONAL in .pmgrc.yaml. For use with newer 1164 functional sets, you need to specify PBE_52 or PBE_54 for example. 1165* Swtich to ISYM 3 by default for HSE. 1166* Updates to FEFF> 1167* Misc bug fixes and startup speed improvements. 1168 1169v4.5.0 1170------ 1171* Major speed up of initial load. 1172* Collection of misc changes. 1173 1174 1175v4.4.12 1176------- 1177* Fix for dynamic numpy import. 1178 1179v4.4.11 1180------- 1181* Update to new version of spglib. 1182 1183v4.4.10 1184------- 1185* Minor fixes for proper gzipped structure file support and MVLSlabSet. 1186 1187v4.4.9 1188------ 1189* Dependency cleanup. Now, basic pymatgen requires on much fewer 1190 packages. 1191* Fixed reading of POSCAR files when more than 20 types of atoms. 1192* Misc bug fixes. 1193 1194v4.4.8 1195------ 1196* Cleanup of entry points and dependencies. 1197 1198v4.4.7 1199------ 1200* Update to spglib 1.9.7.1 1201* Proper use of dependency markers for enum34. 1202 1203v4.4.6 1204------ 1205* Update to spglib 1.9.6, which fixes some bugs and is Windows compatible. 1206 1207v4.4.5 1208------ 1209* Bug fix for SubstitutionProb. 1210 1211v4.4.4 1212------ 1213* Bug fix for electronic structure plotter. 1214 1215v4.4.3 1216------ 1217* Bug fix for Diffusion Analyzer. 1218 1219v4.4.2 1220------ 1221* Bug fix for BS serialization. 1222* Cleanup dependencies. 1223 1224v4.4.1 1225------ 1226* Massive updates to FEFF support (Kiran Mathews). 1227* Bug fixes in band structure plotting. 1228 1229v4.4.0 1230------ 1231* Much more Pythonic API for modifying Structure/Molecule species. Now, 1232 strings, slices, and sequences should magically work, in addition to the 1233 previous API of simple int indices. Examples:: 1234 1235 s[0] = "Fe" 1236 s[0] = "Fe", [0.5, 0.5, 0.5] # Replaces site and fractional coordinates. 1237 s[0] = "Fe", [0.5, 0.5, 0.5], {"spin": 2} # Replaces site and fractional coordinates and properties. 1238 s[(0, 2, 3)] = "Fe" # Replaces sites 0, 2 and 3 with Fe. 1239 s[0::2] = "Fe" # Replaces all even index sites with Fe. 1240 s["Mn"] = "Fe" # Replaces all Mn in the structure with Fe. 1241 s["Mn"] = "Fe0.5Co0.5" # Replaces all Mn in the structure with Fe: 0.5, Co: 0.5, i.e.,creates a disordered structure! 1242 1243* Massive update to internal representation of Bandstructure objects for 1244 memory and computational efficiency. 1245* Bug fixes to CIF parsing in some edge cases. (Will Richards). 1246 1247v4.3.2 1248------ 1249* Massive speedup of Bandstructure, especially projected band structures, 1250 parsing. 1251* Massive update to pmg cli script, with new query functions as well as a 1252 more rational command structure. 1253* Updates to ChemEnv. 1254* Misc bug fixes. 1255 1256v4.3.1 1257------ 1258* Upgrade monty and spglib requirements for bug fixes. 1259* Updates to feff support (Kiran). 1260 1261v4.3.0 1262------ 1263* Massive update to elastic module. (Joey Montaya) 1264* Pathfinder algorithm for NEB calculations. (Ziqing Rong) 1265* Wheels for Windows and Mac Py27 and Py35. 1266 1267v4.2.5 1268------ 1269* Bug fix for BSPlotter. 1270 1271v4.2.4 1272------ 1273* Bug fix for kpoint weight calculation for Monkhorst meshes. 1274 1275v4.2.3 1276------ 1277* Minor cleanup. 1278* Simplified installation. enumlib and bader can now be installed using pmg setup --install. 1279 1280v4.2.2 1281------ 1282* Global configuration variables such as VASP\_PSP\_DIR and MAPI\_KEY are now 1283 stored in "~/.pmgrc.yaml". If you are setting these as environmental 1284 variables right now, you can easily transition to the new system using:: 1285 1286 pmg config --add VASP_PSP_DIR $VASP_PSP_DIR MAPI_KEY $MAPI_KEY 1287 1288 This new scheme will provide greater flexibility for user-defined 1289 global behavior in pymatgen, e.g., tolerances, default input sets for 1290 transmuters, etc., in future. 1291* Beta of k-point weight calculator. 1292* Use default MSONable as and from_dict for all transformations. 1293 1294v4.2.1 1295------ 1296* New DopingTransformation that implements an automated doping strategy. 1297* Updated MIC algorithm that is a lot more robust (Will Richards). 1298* Major update to chemenv package (David Waroquiers) 1299 1300v4.2.0 1301------ 1302* Fix important bug in minimum image distance computation for very skewed cells. 1303* Major refactoring of WulffShape code. 1304* Misc bug fixes for elastic tensor and other codes. 1305 1306v4.1.1 1307------ 1308* Major refactoring of WulffShape and lammps support. 1309 1310v4.1.0 1311------ 1312* Wulff shape generator and analysis. 1313* Minor bug fixes. 1314 1315v4.0.2 1316-------- 1317* Fix kpoint reciprocal density. 1318 1319v4.0.1 1320------ 1321* Minor bug fix release. 1322 1323v4.0.0 1324------ 1325* Massive update with many deprecated methods removed. Note that this 1326 may break backwards incompatibility! 1327* Support for ABINIT 8. 1328* Improved sulfide compatibility. 1329 1330v3.7.1 1331------ 1332* Fix deprecation bug. 1333 1334v3.7.0 1335------ 1336* Last version before pymatgen 4.0, where deprecated modules will be removed! 1337* Massive update to LAMMPS (Kiran Matthews). 1338* New input sets with a different interface that replaces old input sets. 1339* Massive update to elastic properties. 1340 1341v3.6.1 1342------ 1343* Massive cleanup to Boltztrap interface (Anubhav Jain) 1344* Refactor of piezoelectric analysis to use tensor base class (Joey) 1345* More robust CIF parsing. 1346 1347v3.6.0 1348------ 1349* Pymatgen now uses spglib directly from Togo's website. Spglib is no longer 1350 bundled as a dependency. 1351* Improved support for velocities in Poscar (Germaine Vallverdu) 1352* Backwards incompatible change in Born charge format in Outcar. 1353* Fixes for Lammps input serialization 1354 1355v3.5.3 1356------ 1357* Misc refactorings and bug fixes, especially for Outcar and Boltztrap classes. 1358 1359v3.5.2 1360------ 1361* Minor update to DerivedInputSet interface. 1362 1363v3.5.1 1364------ 1365* New derived input sets for generating inputs that depende on previuos 1366 calculations. Old input sets deprecated. 1367 1368v3.5.0 1369------ 1370* Chemical environment analysis package (David Waroquiers). 1371* Piezoelectric property analysis (Shayam). 1372* Cythonize certain expensive core functions. 5-10x speedup in large structure matching (Will Richards). 1373* New NMR parsing functionality for Outcar (Xiaohui Qu). 1374* Improved io.lammps (Kiran Mathews). 1375* Update to spglib 1.9.2. 1376* Element properties now return unitized float where possible. 1377* Bug fix for get_primitive_standard affecting rhombohedral cells (important for band structures). 1378* Vasprun.final_energy now returns corrected energy with warning if it is different from final electronic step. 1379 1380v3.4.0 1381------ 1382* 10-100x speed up to Structure copying and Site init, which means many 1383 functionality has seen signifcant speed improvement (e.g., structure 1384 matching). 1385* Convenience method Structure.matches now perform similarity matching 1386 for Structures. 1387* Bugfix for band gap determination. 1388 1389v3.3.6 1390------ 1391* Update to use enum.x instead of multienum.x. 1392* Minor robustness fixes to VaspInputSet serialization. 1393* Add a reciprocal density parameter to vasp sets. 1394* Minor bug fixes to Vasprun parsing. 1395 1396v3.3.5 1397------ 1398* StructureMatcher can now work with ignored species. 1399* Added interpolation failure warnings and smooth tolerance for 1400 scipy.interpolate.splrep in bandstructures (Tess). 1401* Added DiffusionAnalyzer.get_framework_rms_plot. 1402* Complete rewrite of Procar class to use ND array access and zero-based 1403 indexing. 1404* OrderParameters class for analysis of local structural features 1405 (Nils Zimmermann). 1406* Bug fixes for Procar, MPRester and SpaceGroup 64. 1407* Added Github templates for contributing to pymatgen. 1408 1409v3.3.4 1410------ 1411* Procar now supports parsing of phase factors. 1412* Miscellaneous bug fixes. 1413 1414v3.3.3 1415------ 1416* Bug fixes for Poscar. 1417* Fix Kpoints pickling. 1418 1419v3.3.2 1420------ 1421* Bug fixes for pymatgen.io.abinit 1422* Other minor big fixes. 1423 1424v3.3.1 1425------ 1426* Minor bug fix release for pickle and elastic constants. 1427 1428v3.3.0 1429------ 1430* Updated and checked for Python 3.5.* compatibility. 1431* Element, Spin, Orbital and various other Enum-like classes are now actually 1432 implemented using Enum (with enum34 dependency for Python < 3.4). 1433* Speed up Site creation by 20% for ordered sites, with cost in terms of 1434 slightly slower non-ordered Sites. Since ordered Sites is the far more common 1435 case, this gives significant boost for large scale manipulations of 1436 structures. 1437* Alternative, more pythonic syntax for creating supercells via simply 1438 Structure * 3 or Structure * (3, 1, 1). 1439* zeo++ fixes. 1440* More stable incar settings for MITMDVaspInputSet. 1441 1442v3.2.10 1443------- 1444* Fix missing scripts 1445* Improvements to units module. 1446* Speed up EwaldSummation. 1447 1448v3.2.9 1449------ 1450* Major PD stability improvements, especially for very high dim hulls with lots 1451 of entries. 1452* Improvements to Ewald summation to be close to GULP implementation. 1453* Deprecate physical constants module in favor of scipy's version. 1454* Remove many pyhull references to use scipy's ConvexHull implementation. 1455* Bug fix for sulfide correction. 1456 1457v3.2.8 1458------ 1459 1460* Make pyhull optional. 1461* Sulfur correction added to MaterialsProjectCompatibility for more accurate 1462 sulfide formation energies. 1463* ADF io support. (Xin Chen) 1464* Bug fixes for spacegroup subgroup testing. 1465 1466v3.2.7 1467------ 1468* Add warning for limited subgroup testing functionality in Spacegroup. 1469 1470v3.2.6 1471------ 1472* Extensive support for elasticity tensor analysis (Joseph Montoya). 1473* Misc bug fixes and performance improvements. 1474* Add support for QChem4.3 new format of Batch jobs 1475 1476v3.2.5 1477------ 1478* Improved potcar setup via "pmg setup", with MAPI setup. 1479* Support for new POTCARs issued by VASP. 1480* Improvements to ABINIT support. 1481* Improvement to Boltztrap support, e.g., scissor band gap, etc. 1482* Vasprun now issues warning when unconverged run is detected. 1483 1484v3.2.4 1485------ 1486 1487* GaussianOutput can now parse frequencies, normal modes and cartesian forces 1488 (Xin Chen). 1489* Support for Aiida<->pymatgen conversion by the Aiida development team (Andrius 1490 Merkys). 1491* Specialized BSVasprun parser that is ~2-3x faster than Vasprun. 1492* Refactor the boltztrap package (merge a few methods together) and add several 1493 new methods (power factor, seebeck...) 1494* Support of the new PCM format in QChem 4.3 1495* Local environment analysis to pmg script. 1496* Deprecate prettytable in favor of tabulate package. 1497* Improvements to MITNEBVaspInputSet. 1498* Misc bug fixes. 1499 1500v3.2.3 1501------ 1502* Massive update to abinit support. Note that pymatgen.io.abinitio has 1503 been refactored to pymatgen.io.abinit. (Matteo, Setten) 1504* NwOutput now supports parsing of Hessian matrices (contributed by Xin 1505 Chen) 1506* Gaussian support now has the ability to read potential energy surface 1507 and electronic transitions computed with TD-DFT (Germain Salvato 1508 Vallverdu) 1509* Bug fixes for CifWriter with symmetry. 1510* Bug fixes for surface generation and reactions. 1511* Monty requirement increased. 1512 1513v3.2.1 1514------ 1515* Fix wrong U value for Ce and Eu. 1516* Properly handle empty multiline strings in Cif 1517* Add ability to get specific data in MPRester.get_entries. Make all get_entry 1518 methods consistent in kwargs. 1519 1520v3.2.0 1521------ 1522* Force conversion to an actual list in selective dynamics and velocities in 1523 Poscar. 1524* fix small bug in BSPlotter (wrong ylim) 1525* Elastic tensor parsing in Outcar 1526 1527v3.1.9 1528------ 1529* Fix scripts. 1530 1531v3.1.7 1532------ 1533* Bug fixes for MPRester. 1534* Ensure correct monty version requirement in setup.py. 1535 1536v3.1.6 1537------ 1538* Rudimentary PWSCF output reading. 1539* Fix ASE support. 1540* Support for WAVEDERF and reading multiple dielectricfunctions in vasprun.xml. 1541 (Miguel Dias Costa) 1542 1543v3.1.5 1544------ 1545* Move vasp.vasp*put to vasp.*puts. Also, maintain backwards compatibility with 1546 vaspio.vasp_*put 1547 1548v3.1.4 1549------ 1550* Fix missing yaml files that have been moved. 1551 1552v3.1.3 1553------ 1554* Major refactoring of pymatgen.io. Now, the io suffix is dropped from all io 1555 classes. i.e., it is just pymatgen.io.vasp, not pymatgen.io.vaspio. Also, all 1556 input sets have been moved within the relevant package, e.g., 1557 pymatgen.io.vasp.sets. All changes are backwards compatible for now. But 1558 deprecation messages have been included which states that the stubs will be 1559 removed in pymatgen 4.0. Pls migrate code when you see the deprecation 1560 messages. 1561* Make Composition.anonymized_formula truly chemistry independent (No A2B2 1562 for peroxides or A2 for diatomic gasses) 1563* Allowing CIF data_* header to be prefixed with spaces and tabulations. 1564 1565v3.1.2 1566------ 1567* HHI Resource Analysis (by Anubhav Jain). 1568* Bug fixes for surfaces normalizatino. 1569* Bug fix for Vasprun parsing of response function keys. 1570* Dockerfile for generation of an image for pymatgen. 1571* Updated requirements.txt for latest requests, scipy, numpy. 1572 1573v3.1.1 1574------ 1575* Bug fixes for SpacegroupAnalyzer and SlabGenerator. 1576* Much faster normal vec search. 1577 1578v3.1.0 1579------ 1580* Much improved surface generation algorithm that provides for 1581 orthogonality constraints. 1582* Transition state analysis tools! (beta) 1583* Massive improvements in Outcar parsing which provides a powerful grepping 1584 syntax. 1585* PWSCFInput generation (beta). 1586* Reduce default SIGMA to 0.05 for MP input sets. 1587* Update spglib to 1.7.3 as per recommendation of Togo. 1588* Many bug fixes and efficiency improvements. 1589 1590v3.0.13 1591------- 1592 1593* Bug fix for parsing certain types of CIFs. 1594* MPRester now has get_materials_id_references helper method. 1595* Minor fix for Vasprun.final_energy. 1596* Added mp_decode option to MPRester.query to allow option to not decode into 1597 pymatgen objects. 1598* New POTCAR hash scheme to more robustly identify unique POTCARs. 1599* Link to http://bit.ly/materialsapi for information on Materials API 1600 document schema for use with MPRester.query method. 1601 1602v3.0.11 1603------- 1604* Lots of abinitio improvements (Matteo). 1605* Added mp_decode option to MPRester.query to allow option to not decode into pymatgen objects. 1606 1607v3.0.10 1608------ 1609 1610* Fix cartesian coord parsing in Poscar class. 1611* Vasprun now works with non-GGA PBE runs 1612* Misc bug fixes 1613 1614v3.0.9 1615------ 1616* Major bug fixes for CIF parsing (Will Richards). 1617* Support for {Li,Na} syntax in parse_criteria for MPRester. 1618* Additional example notebook for ordering and enumeration. 1619* More robust checking for oxidation states in EnumerateStructureTRansformation. 1620* Improvements to Slab polarity checking. 1621 1622v3.0.8 1623------ 1624* Massive update to abinitio (Matteo). 1625* Improvements to OUTCAR parsing (Ioannis Petousis). 1626 1627v3.0.7 1628------ 1629* Powerful Slab generation algorithms (beta!). 1630* Improvements to DiffusionAnalyzer with constant smoothing option. 1631* Significantly improve look of DOS plots using prettyplotlib. 1632 1633v3.0.6 1634------ 1635* Cost analysis module (Anubhav Jain) 1636* More Py3k fixes. 1637* Extensive abinitio updates (Matteo). 1638 1639v3.0.5 1640------ 1641* Completely revamped symmetry package. The finder.SymmetryFinder and 1642 pointgroup and spacegroup modules are now deprecated. Instead, 1643 all symmetry analysis is in the :module:`pymatgen.symmetry.analyzer`_ 1644 module. There is also a completely rewritten support for symmetry groups in 1645 :module:`pymatgen.symmetry.groups`_. Structure now supports a static 1646 constructor to generate a structure from a spacegroup (see examples). 1647* BatteryAnalyzer class (Anubhav Jain) to provide for some common analysis of 1648 intercalation electrodes. 1649* Minor bug fixes for structure_matcher, lattice, abinitio. 1650* MOAB qadapter for abinit. (Liam Damewood) 1651 1652v3.0.4 1653------ 1654* Fix missing structures json data. 1655 1656v3.0.3 1657------ 1658* Updates to DiffusionAnalyzer for more fine-grained statistics. 1659* Bug fixes and tweaks to linear assignment 1660* Improved PymatgenTest class which provides a suite of test structures. 1661* Speedups to Phase Diagram 1662* Lots of improvements to Gaussian support (Nicolas Dardenne) and Abinit IO 1663 (Matteo). 1664* Lots of Py3k minor updates. 1665* Updated doc for Diffusion anaylzer. Invert sq_disp_ions for more intuitive handling. 1666 1667v3.0.2 1668------ 16691. Consistent use of unicode throughout pymatgen. 16702. Minor bug fixes. 1671 1672v3.0.1 1673------ 16741. Minor bug fixes for cifio. 16752. Py3k updates for abinitio. 1676 1677v3.0.0 1678------ 1679* Pymatgen is now completely Python 2.7 and Python 3.x compatible! 1680* Spglib and pyhull have been updated to support Python 3.x. 1681* Completely rewritten pure python cifio module (courtesy of William Davidson 1682 Richards) removed dependency on PyCIFRW, which has been causing many issues 1683 with installation. 1684* Structure and Molecule now supports a very convenient to() and from_str and 1685 from_file functionality. Instead of trying to load the appropriate parser, 1686 you can output and read from the appropriate formats directly. See example 1687 usage. 1688* ~50% speedup to LinearAssignment code. 1689* Continuous integration and contribution guidelines now include Python 3. 1690* **Backwards incompatible changes** 1691* matgenie.py has now been renamed simply "pmg" for brevity. 1692* All deprecated methods in pymatgen 2.x have been removed. E.g., 1693 pymatgen.core.structure_modifier is no longer available. 1694* Pymatgen classes now uses the as_dict() method protocol implemented in the 1695 Monty package. The to_dict property is now deprecated and will be removed 1696 in pymatgen v3.1. 1697* Update main docs page examples with the new Structure to, from formats. 1698 1699v2.10.6 1700------- 1701* Bug fix for np1.9 incompatibility. Now works. 1702* Use wheel for pymatgen deployments. 1703* matgenie.py is now renamed to pmg for faster CLI usage. 1704* Improvements to KPOINTS automatic generation. 1705* Simpler and faster Structure.get_all_neighbors 1706 1707v2.10.5 1708------- 1709* DiffusionAnalyzer now has non-smoothed option. 1710* Kpoints generation algorithm now guarantees minimum # of points. 1711* Compatibility now has a proper explanation dict. 1712* Vaspruns with NSW == 1 now checked properly for electronic conv. 1713* make_movie now supports kwargs. 1714 1715v2.10.3 1716------- 1717* MPRester.query now supports a simple but powerful string criteria syntax 1718 with support for wild cards. 1719* Improvements to Composition - support for negative compositions, sorting etc. 1720* Speed ups to StructureMatcher. 1721 1722v2.10.2 1723------- 1724* Bug fix for Projected DOS parsing in new Vasprun. 1725* Compatibility now has a *explain* method which provides a detailed outline 1726 of the changes that a Compatibility makes to an Entry. 1727 1728v2.10.1 1729------- 1730* Minor fix for monty requirements in setup.py. 1731 1732v2.10.0 1733------- 1734* Major update: MPRester now uses Materials API v2! Also major refactoring 1735 of MPRester. 1736* Vastly improved Vasprun parser using cElementTree. Twice as fast, 1737 half as much code and easier to maintain. 1738* Vast improvements to Qchem functionality (Xiaohui Qu). 1739* Improved handling of Structure manipulations for extremely large 1740 structures (particularly in terms of memory consumption). 1741* Bug fix for XYZ parsing for scientific notation. 1742* Improve monty.serialization for transparent handling of JSON vs YAML. 1743 Requirements updated to monty>=0.3.3. 1744* Update numpy requirements to 1.8+. Fixes memory leak. 1745* Other minor bug fixes. 1746 1747v2.9.14 1748------- 1749* Implements Structure.sort method. Both Structure.sort and the 1750 get_sorted_structure methods now supports all arguments supported by list 1751 .sort(). 1752* VaspInputSets configs, as well as several other configs now uses yaml. Note 1753 the new dependency on pyyaml. It is highly recommended that you install 1754 pyyaml with the libyaml C bindings. 1755* Fix missing spglib dependency. 1756* Use monty.serialization for transparent handling of JSON vs YAML. 1757 Requirements updated to monty>=0.3.1. 1758 1759v2.9.13 1760------- 1761* Urgent bug fix for missing compatibility yamls. 1762 1763v2.9.12 1764------- 1765* Defect transformations (Bharat). 1766* Support for optical properties (Geoffroy Hautier and David Waroquiers). 1767* Improved support for some VASP output files (XDATCAR and OSZICAR). 1768* Refactored compatibilities now uses YAML for ease of reading. 1769 1770v2.9.11 1771------- 1772* Bug fix for get_xrd_plot. 1773* Speed up XRD calculator by allowing specification of two theta ranges. 1774* Minor improvements to Gulp caller. 1775 1776v2.9.10 1777------- 1778* Bug fix for unequal coefficients sizes in XRD. 1779* Support for Ag radiation in XRD calculator. 1780* Improved Procar class for extraction of information. (Germain Salvato 1781 Vallverdu) 1782* Bug fix for extraction of GGA data from Materials API. 1783 1784v2.9.9 1785------ 1786* XRDCalculator now supports disordered structures. 1787* Minor speed ups and improvements. 1788 1789v2.9.8 1790------ 1791* Initial beta version of XRD pattern calculator. 1792* Pymatgen now uses spglib 1.6.0. 1793* Update to Vasprun to compute static deilectric constants with DFPT in VASP. 1794 (Geoffroy Hautier) 1795 1796v2.9.7 1797------ 1798* Quick bug-fix release that provides a better solution to Structure handling 1799 of properties instead of sanitizing MPRester structures. 1800 1801v2.9.6 1802------ 1803* Patch to allow 1D phase diagrams (essentially finding the lowest energy 1804 phase). 1805* Better error checking for Bandstructure KPOINTs. 1806* Patch to sanitize structures obtained from MPRester. 1807 1808v2.9.5 1809------ 1810* Bug fix for linear assignment, which may sometimes affect Structure 1811 Matcher results. 1812* Minor improvement to the way grand canonical PDs work. 1813 1814v2.9.4 1815------ 1816* Bug fix for Pourbaix Maker (Sai). 1817* Streamline use of scratch directories for various calls. Require monty >= 1818 0.1.2. 1819* High accuracy mode for Zeo++ (Bharat Medasani). 1820 1821v2.9.3 1822------ 1823* Bug fix release for printing TransformedStructures from Substitutor (Will 1824 Richards). 1825* Misc improvements in BVAnalyzer, coord_utils and defects (Will Richards, 1826 David Waroquiers and Bharat Medasani). 1827 1828v2.9.2 1829------ 1830* Bug fix release for DummySpecie, which failed when deserializing from 1831 json and had bad hash function. 1832 1833v2.9.1 1834------ 1835* Structure/Molecule now supports Pythonic list-like API for replacing and 1836 removing sites. See :ref:`quick_start` for examples. 1837 1838v2.9.0 1839------ 1840* Updates to support ABINIT 7.6.1 (by Matteo Giantomassi). 1841* Vastly improved docs. 1842* Refactoring to move commonly used Python utility functions to `Monty 1843 package <https://pypi.python.org/pypi/monty>`_, which is now a dependency 1844 for pymatgen. 1845* Minor fixes and improvements to DiffusionAnalyzer. 1846* Many bug fixes and improvements. 1847 1848v2.8.10 1849------- 1850* Refactoring of qchemio module (by Xiaohui Qu). 1851 1852v2.8.9 1853------ 1854* qchemio module (by Xiaohui Qu). 1855 1856v2.8.8 1857------ 1858* Minor bug fix release for Structure species substitution methods. 1859 1860v2.8.7 1861------ 1862* Massive update to pymatgen.io.abinitio package (by Matteo Giantomassi). 1863* Bug fixes for StructureMatcher's group_structure. 1864* Misc bug fixes and cleanup. 1865 1866v2.8.6 1867------ 1868* Bug fix for VASP io set introduced by the default to sorting of structure 1869 sites when generating VASP input. 1870 1871v2.8.4 1872------ 1873* Completely revamped Compatibility/Correction system which improves 1874 readability (Shyue Ping Ong/Anubhav Jain/Sai Jayaraman). This change is 1875 backwards compatible for the most part. 1876 1877v2.8.3 1878------ 1879* Big fix release for json dumping for unitized floats. 1880 1881v2.8.2 1882------ 1883* Bug fix release to improve CIF parsing for more non-standard CIF files. 1884 In particular, non-ascii characters are removed and _cgraph* fields are 1885 removed prior to parsing for better support in PyCiFRW. 1886 1887v2.8.1 1888------ 1889* Bug fix release. Incorrect units assigned for ionic radii. 1890* Improved nwchemio supports COSMO and ESP calculations (Nav Rajput). 1891 1892v2.8.0 1893------ 1894* **Units**. Pymatgen now has a new system of managing units, 1895 defined in pymatgen.core.units. Typical energy, length, time, 1896 temperature and charge units are supported. Units subclass float, 1897 which makes the usage transparent in all functions. The value that they 1898 being are in terms of conversions between different units and addition and 1899 subtraction of different units of the same type. Some basic quantities 1900 like ionic radii and atomic masses are now returned in unitized forms for 1901 easy conversion. Please see :mod:`pymatgen.core.units` and the 1902 :doc:`examples </examples>` for a demonstration of house to use units in 1903 pymatgen. 1904* **Minor backwards-incompatible change**. Structures are now sorted by 1905 default when generating VASP input files using vaspio_set. Old behavior can 1906 be obtained by setting sort_structure=False in the constructor. This is 1907 typically the desired behavior and prevents the generation of large 1908 POTCARs when atomic species are not grouped together. 1909* Bug fix for Molecule.substitute. Earlier algorithm was not detecting 1910 terminal atoms properly. 1911* Additional conversion tools for ABINIT (by Matteo Giantomassi). 1912 1913v2.7.9 1914------ 1915* Minor bug fix release to fix pyhull dependencies to be more friendly. 1916* Improved structure matcher that allows for more flexible matching. New 1917 matching between ordered and disordered comparator. 1918 1919v2.7.7 1920------- 1921* Beta new Gulp Caller and Zeo++ interface classes (Bharat . Zeo++ is an open 1922 source software for performing high-throughput geometry-based analysis of 1923 porous materials and their voids. Please see 1924 http://www.maciejharanczyk.info/Zeopp/about.html. 1925* Specify version of distribute to 0.6.34 for better compatibility. 1926 1927v2.7.6 1928------ 1929* Support for VTK 6.x in structure visualization. 1930* Updated install instructions for openbabel. 1931* Preliminary pourbaix analysis (Sai Jayaratnam). 1932 1933v2.7.5 1934------ 1935* Vastly improved Nwchem IO (by Shyue Ping Ong). 1936* Much improved ABINIT support (by Matteo Giantomassi). 1937 1938v2.7.4 1939------ 1940* Added basic Nwchem (http://www.nwchem-sw.org/) IO support. (by: Shyue Ping 1941 Ong). 1942* New MoleculeMatcher class for comparing molecules by RMS. Requires 1943 openbabel with python bindings. (by: Xiaohui Qu) 1944* New functional group substitution capability for molecules (by: Lei Cheng 1945 and Shyue Ping Ong). 1946 1947v2.7.2 1948------ 1949* Minor bug fix release to fix some rare errors in very high dimensional 1950 phase diagrams. **Requires new pyhull version (1.3.8).** 1951 1952v2.7.1 1953------ 1954* **Major backwards-incompatible change.** With effect from v2.7.1, 1955 the default Structure and Molecule classes are now *mutable* objects. All 1956 functionality in the :mod:`pymatgen.core.structure_modifier` has been 1957 ported over to the new mutable classes. This change was implemented 1958 because the immutability of Structure and Molecule has resulted in very 1959 awkward code to make changes to them. The main cost of this change is that 1960 Structure and Molecule can no longer be used as dict keys (__hash__ has 1961 been set to None). However, we believe this is a minor cost given that we 1962 have rarely seen the use of Structure or Molecule as dict keys in any case. 1963 For the rare instances where such functionality is needed, 1964 we have provided the IStructure and IMolecule classes (where I indicates 1965 immutability) which will perform exactly the same way as the previous 1966 classes. With this change, the :mod:`pymatgen.core.structure_modifier` 1967 module is now deprecated and will be removed in a future version. 1968* read_structure and write_structure now supports pymatgen's json serialized 1969 structures. 1970* read_mol and write_mol functions now available (analogues of 1971 read_structure and write_structure for molecules) 1972 1973v2.7.0 1974------ 1975* Beta support for ABINIT input and output via pymatgen.io.abinitio 1976 (courtesy of the excellent work of Matteo Giantomassi). 1977* Properties are now checked when comparing two Species for equality. 1978* MaterialsProjectVaspInputSet is now renamed to MPVaspInputSet for easier 1979 typing. The old input sets have been deprecated. 1980* New VaspInputSets for MPStatic, MPNonSCF, MITMD which supports uniform 1981 grid, bandstructure and molecular dynamics calculations. The MD input set 1982 uses MIT parameters for speed. 1983* A beta DiffusionAnalysis class in the apps package. 1984* A revised KPOINT grid algorithm that generates more reasonable meshes. 1985* A guided install script is now provided for Mac and Linux users. 1986 1987v2.6.6 1988------ 1989* Updates to feffio (credit: Alan Dozier) 1990* Added detailed installation instructions for various platforms. 1991* Support for charge and spin multiplicity in Molecule. Expanded methods 1992 available in Molecule. 1993* Added supercell matching capabilities to StructureMatcher. 1994* More robust creation of PhaseDiagrams to take into account potential qhull 1995 precision errors. 1996 1997v2.6.5 1998------ 1999* Added a command_line caller to do Bader charge analysis using Henkelmann 2000 et al.'s algorithm. 2001* Bug fix for POSCAR parsing when title line is an empty string. 2002* Added __rmul__ operator for Composition. 2003* Vastly expanded available aliases. 2004 2005v2.6.4 2006------ 2007* Bug fixes for selective dynamics in Poscar. 2008* Improved Procar parsing to support both simple and detailed PROCARs. 2009 2010v2.6.3 2011------ 2012* Added new MaterialsProject REST interfaces for submit/query/delete_snl 2013 (currently open in beta for collaborators only). 2014* Added support for new MaterialsProject REST method get_stability. 2015* Added aliases for PhaseDiagram, GrandPotentialPhaseDiagram, 2016 PDAnalyzer and PDPlotter in pymatgen.phasediagrams. 2017* Improvements to StructureMatcher: stol (site - tolerance) redefined as 2018 a fraction of the average length per atom. Structures matched in fractional 2019 space are now also matched in cartesian space and a rms displacement 2020 normalized by length per atom can be returned using the rms_dist method. 2021 2022v2.6.2 2023------ 2024 2025* Site and PeriodicSite now uses a Composition mapping type to represent 2026 the species and occupancy, instead of a standard dict. 2027* Bug fix for reading and re-writing out of Potcars. 2028* VaspInputSet now supports MSONable framework. 2029* Strain cell option in StructureEditor. 2030* Miscellaneous bug fixes and speedups. 2031 2032v2.6.1 2033------ 2034* Use requests.Session in MPRester for connection pooling and code simplicity. 2035* Support for "with" context manager in MPRester. 2036* Updated periodic table data to correct errors in Ru, Tc and other elements. 2037* New methods in Lattice to obtain Wigner-Seitz cell and Brillouin Zone. 2038* Miscellaneous bug fixes and speedups. 2039 2040v2.5.5 2041------ 2042 2043* Bug fix release for cifio for rhombohedral structures. 2044* Miscellaneous bug fixes and speedups. 2045 2046v2.5.4 2047------ 2048* Vastly improved Gaussian input file parsing that supports more varieties 2049 of input specifications. 2050* StructureNL now supports molecules as well as structures. 2051* Updated atomic and vdw radius for Elements. 2052* Miscellaneous bug fixes and speedups. 2053 2054v2.5.3 2055------ 2056* Bug fix for StructureNotationalLanguage. 2057* Support for LDA US potential. matgenie.py script option to generate POTCARs. 2058* Beta version of StructureNotationLanguage, a markup format for Structure 2059 data with metadata such as authors and references. (Anubhav Jain) 2060* Vasprun parsing now parses dielectric constant where available. (Geoffroy 2061 Hautier) 2062* New custom ipython shell script for pymatgen. 2063* Miscellaneous bug fixes and speedups. 2064 2065v2.5.1 2066------ 2067* Bug fixes for primitive cell finder. 2068* Remove deprecated use_external_qhull option in PhaseDiagram classes. 2069* Miscellaneous bug fixes and speedups. 2070 2071v2.5.0 2072------ 2073* Added optimization package with linear assignment class. 2074* Improved robustness of StructureMatcher using linear assignment. 2075* Improved primitive cell search (faster and more robust). 2076* Cleanup of deprecated methods, including 2077 pymatgen.alchemy.materials.TransformedMaterial.undo/redo_last_transformation, 2078 pymatgen.core.site.Site.distance_and_image_old, Poscar.struct, 2079 StructureFitter and tests. 2080* Miscellaneous bug fixes and speedups. 2081 2082v2.4.3 2083------ 2084* Bug fix for StructureMatcher. 2085* Miscellaneous speedups. 2086 2087v2.4.0 2088------ 2089* New StructureMatcher that effectively replaces StructureFitter. Orders of 2090 magnitude faster and more robust. StructureFitter is now deprecated. 2091* Vastly improved PrimitiveCellTransformation. 2092* A lot of core methods have been rewritten to take advantage of vectorization 2093 in numpy, resulting in orders of magnitude improvement in speed. 2094* Miscellaneous bug fixes and speedups. 2095 2096v2.3.2 2097------ 2098* More utilities for working with Periodic Boundary Conditions. 2099* Improved MPRester that supports more data and a new method of specifying 2100 the API key for heavy users via a MAPI_KEY environment variable. Please 2101 refer to the :doc:`usage pages </usage>` for more information. 2102* Vastly improved POTCAR setup script in scripts directly that is now 2103 installed as part of a default pymatgen installation. 2104* Miscellaneous bug fixes and speedups. 2105 2106v2.3.1 2107------ 2108* Significant improvements to the high-level interface to the Materials API. 2109 New interface provides more options to make it easier to get structures and 2110 entries, better warnings and error handling. It uses the *requests* 2111 library for a cleaner API. 2112* Bug fix for VolumetricData parsing and methods such as CHGCAR and LOCPOT. 2113 Previously, the parsing was done incorrectly because VASP actually provides 2114 data by running through the x-axis first, followed by y, then z. 2115* Bug fix for reverse_readline so that it works for gzipped and bzipped 2116 strucutures (courtesy of Anubhav Jain). 2117* Fix "lossy" composition to_dict method. Now composition.to_dict properly 2118 returns a correct species string as a key for compositions using species, 2119 instead of just the element symbols. 2120* Miscellaneous bug fixes. 2121 2122v2.3.0 2123------ 2124* Remove usage of scipy and external qhull callers. Now uses pyhull package. 2125 Please note that this change implies that the pyhull package is now a 2126 required dependency. If you install pymatgen through the usual 2127 easy_install or pip install methods, this should be taken care of 2128 automatically for you. Otherwise, please look for the pyhull package on 2129 PyPI to download and install it. 2130* Miscellaneous bug fixes. 2131 2132v2.2.6 2133------ 2134* Brand new *beta* bond valence analyzer based on a Maximum A Posteriori 2135 algo using data-mined ICSD data. 2136* Speed up and improvements to core classes. 2137* Improved structure fitter (credits to Geoffroy Hautier). 2138* Brand new entry_tools module (pymatgen.entries.entry_tools). 2139* Vastly improved Outcar parser based on reverse parsing that speeds up 2140 reading of OUTCAR files by orders of magnitude. 2141* Miscellaneous bug fixes. 2142 2143v2.2.4 2144------ 2145* Fixed bug in hexagonal cell KPOINTS file generation. 2146* New RelaxationAnalyzer to compare structures. 2147* New *beta* bond valence analyzer. 2148* Miscellaneous bug fixes. 2149 2150v2.2.3 2151------ 2152* New filter framework for filtering structures in pymatgen.alchemy. 2153* Updated feff io classes to support FEFF 9.6 and other code improvements. 2154* Miscellaneous bug fixes. 2155 2156v2.2.2 2157------ 2158* Bug fix release for REST interface. 2159* Improvements to unittests. 2160 2161v2.2.1 2162------ 2163* Improvements to feffio. 2164* Master matgenie.py script which replaces many analysis scripts. 2165* More memory efficient parsing of VolumetricData. 2166* Beta version of structure prediction classes. 2167* Changes to MPRester to work with v1 release of the Materials API. 2168* Miscellaneous bug fixes and speed improvements. 2169 2170v2.2.0 2171------ 2172* Beta modules (pymatgen.io.feffio) for io for FEFF, courtesy of Alan Dozier. 2173* New smartio module that intelligently reads structure input files based on 2174 file extension. 2175* Spglib_adaptor module has been renamed to finder for brevity. 2176* Upgraded spglib to version 1.2.2. Improved handling of spglib install on 2177 Mac OS X and Solaris. 2178* Major cleanup of code for PEP8 compliance. 2179* Cssr module now supports reading of input files. 2180* Miscellaneous bug fixes and speed improvements. 2181 2182v2.1.2 2183------ 2184* Brand new CompoundPD class that allows the plotting of phase diagrams that 2185 do not have elements as their terminal points. 2186* Spglib is now completely integrated as part of the setup.py installation. 2187* Major (but completely backwards compatible) refactoring of sites and vaspio. 2188* Added a EnumerateStructureTransformation with optional dependency on the enum 2189 library by Gus Hart. This provides a robust way to enumerate derivative 2190 structures, 2191* Implemented LLL lattice reduction algorithm. Also added option to sanitize 2192 a Structure on copy. 2193* Bug fix for missing Compatibility file in release distribution. 2194* Vastly improved StructureFitter which performs cell reduction where necessary 2195 to speed up fitting. 2196* Miscellaneous bug fixes and speed improvements. 2197 2198v2.0.0 2199------ 2200* Brand new module (pymatgen.matproj.rest) for interfacing with the 2201 MaterialsProject REST interface. 2202* Useful aliases for commonly used Objects, similar in style to numpy. 2203 Supported objects include Element, Composition, Structure, Molecule, Spin 2204 and Orbital. For example, the following will now work:: 2205 2206 import pymatgen as mg 2207 # Elemental Si 2208 fe = mg.Element("Si") 2209 # Composition of Fe2O3 2210 comp = mg.Composition("Fe2O3") 2211 # CsCl structure 2212 structure = mg.Structure(mg.Lattice.cubic(4.2), ["Cs", "Cl"], 2213 [[0, 0, 0], [0.5, 0.5, 0.5]]) 2214 2215* New PDAnalyzer method to generate chemical potential maps. 2216* Enhanced POSCAR class to support parsing of velocities and more formatting 2217 options. 2218* Reorganization of Bandstructure module. Beta support for projected 2219 bandstructure and eigenvalues in vaspio and electronic_structure. 2220* Miscellaneous bug fixes and speed improvements. 2221 2222v1.9.0 2223------ 2224* Completely new json encoder and decoder that support serialization of almost 2225 all pymatgen objects. 2226* Simplification to Borg API utilizing the new json API. 2227* Bandstructure classes now support spin-polarized runs. 2228* Beta classes for battery (insertion and conversion) analysis. 2229 2230v1.8.3 2231------ 2232* spglib_adaptor now supports disordered structures. 2233* Update to support new spglib with angle_tolerance. 2234* Changes to Borg API to support both file and directory style paths. 2235* Speed up for COMPLETE_ORDERING algo for PartialRemoveSpecieTransformation. 2236 2237 2238v1.8.1 2239------ 2240* Revamped transmuter classes for better readability and long term support. 2241* Much improved speed for PartialRemoveSpecieTransformations. 2242* Misc bug fixes. 2243 2244v1.8.0 2245------ 2246* Support for additional properties on Specie (Spin) and Site (magmom, charge). 2247* Molecule class to support molecules without periodicity. 2248* Beta io class for XYZ and GaussianInput. 2249 2250v1.7.2 2251------ 2252* Bug fixes for vaspio_set and compatibility classes. 2253 2254v1.7.0 2255------ 2256* Complete reorganization of modules for electronic structure. 2257* Beta of band structure classes. 2258* Misc improvements to vaspio classes. 2259* Bug fixes. 2260 2261v1.6.0 2262------ 2263* Beta of pymatgen.borg package implemented for high-throughput data assimilation. 2264* Added ComputedEntry classes for handling calculated data. 2265* New method of specifying VASP pseudopotential location using a VASP_PSP_DIR 2266 environment variable. 2267* Bug fix for pymatgen.symmetry 2268* Ewald sum speed up by factor of 2 or more. 2269