├── BaLiBO3_example.py ├── LICENSE ├── README.md ├── data ├── entries_files │ ├── Al-Ba-O-Si │ ├── B-Ba-Li-O │ ├── B-Ba-Na-O │ ├── K-Mg-O-P │ └── Li-O-P-Sc ├── phase_diagrams │ ├── BaAl2(SiO4)2-SiO2_BaAl2O4.html │ ├── BaLiBO3-LiBO2_BaO.html │ └── Li3Sc2(PO4)3-Sc2O3_LiPO3.html ├── plot_layout │ └── plotly_pd_layouts.json └── results_files │ ├── BaAl2(SiO4)2_result.csv │ ├── BaLiBO3_result.csv │ ├── KMgPO4_result.csv │ └── Li3Sc2(PO4)3_result.csv ├── requirements.txt └── synthesis_planning ├── interfacial_pdplotter.py ├── materials_entries.py ├── reactions.py ├── settings.py └── synthesis_pathways.py /BaLiBO3_example.py: -------------------------------------------------------------------------------- 1 | ''' 2 | Created on Feb 1, 2023 3 | 4 | @author: jiadongc 5 | ''' 6 | from synthesis_planning.synthesis_pathways import SynthesisPathways 7 | from synthesis_planning.interfacial_pdplotter import InterReactions, Inter_PDPlotter 8 | 9 | from pymatgen.analysis.reaction_calculator import ComputedReaction 10 | from pymatgen.analysis.phase_diagram import CompoundPhaseDiagram 11 | 12 | target = "BaLiBO3" 13 | 14 | # get the optimal synthesis recipe for a target material 15 | sp = SynthesisPathways(target, 16 | exclude_reactants = ["O2"], 17 | selected_reactions_to_csv = True) 18 | 19 | # display the selected reactions 20 | for reaction in sp.selected_reactions: 21 | reaction.display() 22 | 23 | # Visualize interfacial reaction compound phase diagram for the optimal reaction 24 | reaction = sp.selected_reactions[0] 25 | interfacial_reactions = InterReactions(reaction) 26 | Inter_PDPlotter( 27 | interfacial_reactions, 28 | emphasize_entries = [reaction.target] 29 | ).show() 30 | 31 | 32 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright 2023 Jiadong Chen, Wenhao Sun, University of Michigan 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Synthesis planning algorithm 2 | 3 | ## Overview 4 | 5 | Synthesis is a vital component of computational materials discovery. While high-throughput computation accelerates the identification of new ‘stable’ materials with functional properties, the actual realization of these materials is limited by their synthesis. This synthesis planning algorithm offer a physics motivated way to determine optimal synthesis recipes. 6 | 7 | Our algorithm introduces a conceptual description of the convex hull to navigate optimal reaction pathways. The overarching principle is to identify precursors that save substantial reaction energy for the process from competing phases to target products, while avoiding low-energy geometrical subjects in the convex hull that may represent impurities or decomposition byproducts. 8 | 9 | Based on our algorithms, over 2000 recipes are high-throughput generated for potential high-component battery cathodes and electrolytes, such as Li/Na/K-based 4-component phosphates, borates, and redox-active/non-active transition metal oxides. We validate our theoretical framework with an automated robotic laboratory. 10 | 11 | ## Prerequisites 12 | 13 | ### Pymatgen 14 | 15 | This algorithm has a dependency on `pymatgen` package of the Materials Project database using Python 3. You can install `pymatgen` by either 16 | 17 | 1. install the required packages in requirements.txt 18 | 19 | ```bash 20 | pip install -r requirements.txt 21 | ``` 22 | 23 | 2. Go [here](https://pymatgen.org/installation.html) and follow the instructions to install your `pymatgen`. 24 | 25 | ### Pymatgen API Key 26 | 27 | To use this algorithm, you need to generate an API key. This algorithm is using the legacy Materials Project API by default, but you can switch to new Materials Project API if needed. 28 | 29 | - Go [here](https://legacy.materialsproject.org/open) to get a legacy Materials Project API 30 | - Go [here](https://next-gen.materialsproject.org/api) to get a new Materials Project API 31 | 32 | After you get a API Key, copy it and go to `synthesis_planning.settings` python file, paste its string to `MPI_KEY` global variable: 33 | 34 | ```python 35 | MPI_KEY = 'Your Materials Project API key' 36 | ``` 37 | 38 | ## Tutorials and examples 39 | 40 | Please run `BaLiBO3_example.py` to see how to use this algorithm. You use `synthesis_pathways` module to predict selected optimal reactions. Then use `interfacial_pdplotter` module to visualize and analyze reaction compound phase diagram. 41 | 42 | ## Citation 43 | 44 | This synthesis planning algorithm is created by Jiadong Chen, Wenhao Sun in University of Michigan. If you use this synthesis planning algorithm, we kindly ask you to cite the following publication: 45 | 46 | **Chen, J., Cross, S. R., Miara, L. J., Cho, J. J., Wang, Y., & Sun, W. (2024). Navigating phase diagram complexity to guide robotic inorganic materials synthesis. *Nature Synthesis*, 1-9.** -------------------------------------------------------------------------------- /data/entries_files/Al-Ba-O-Si: -------------------------------------------------------------------------------- 1 | [{"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -18.10716868, "composition": {"Ba": 1.0, "Al": 4.0}, "entry_id": "mp-1903", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Al"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Al"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -47.4974292, "composition": {"Si": 2.0, "O": 4.0}, "entry_id": "mp-546794", "correction": -2.748, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 4.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Si", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Si", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Si": 4.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -204.96470868, "composition": {"Ba": 21.0, "Al": 40.0}, "entry_id": "mp-567701", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Al"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Al"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -12.253411, "composition": {"Ba": 1.0, "Al": 1.0, "Si": 1.0}, "entry_id": "mp-13149", "correction": 0.071, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": 0.071, "n_atoms": 1.0, "uncertainty_per_atom": 0.0165, "name": "MP2020 anion correction (Si)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Al", "Si"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Al", "PBE Si"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -3.74557583, "composition": {"Al": 1.0}, "entry_id": "mp-134", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Al"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Al"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -244.87963109, "composition": {"Al": 8.0, "Si": 4.0, "O": 20.0}, "entry_id": "mp-4753", "correction": -13.740000000000002, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 20.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Al", "Si", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Al", "PBE Si", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Al": 3.0, "Si": 4.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -17.39547494, "composition": {"Ba": 1.0, "O": 2.0}, "entry_id": "mp-1105", "correction": -0.93, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.465, "n_atoms": 2.0, "uncertainty_per_atom": 0.0172, "name": "MP2020 anion correction (peroxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE O"], "oxide_type": "peroxide"}, "data": {"oxide_type": "peroxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -1291.96128113, "composition": {"Ba": 7.0, "Al": 64.0, "O": 103.0}, "entry_id": "mp-667379", "correction": -70.76100000000001, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 103.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Al", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Al", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -121.25919398, "composition": {"Ba": 12.0, "Si": 16.0}, "entry_id": "mp-1619", "correction": 1.136, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": 0.071, "n_atoms": 16.0, "uncertainty_per_atom": 0.0165, "name": "MP2020 anion correction (Si)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Si"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Si"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -74.81357943, "composition": {"Al": 4.0, "O": 6.0}, "entry_id": "mp-1143", "correction": -4.122, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 6.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Al", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Al", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Al": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -397.016693, "composition": {"Ba": 4.0, "Al": 8.0, "Si": 8.0, "O": 32.0}, "entry_id": "mp-6091", "correction": -21.984, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 32.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Al", "Si", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Al", "PBE Si", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "Al": 3.0, "Si": 4.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -39.58364375, "composition": {"O": 8.0}, "entry_id": "mp-12957", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE O"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -243.8401816, "composition": {"Ba": 4.0, "Si": 8.0, "O": 20.0}, "entry_id": "mp-3031", "correction": -13.740000000000002, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 20.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Si", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Si", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "Si": 4.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -10.84678131, "composition": {"Si": 2.0}, "entry_id": "mp-149", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Si"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Si"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -222.88294177, "composition": {"Ba": 6.0, "Si": 6.0, "O": 18.0}, "entry_id": "mp-776084", "correction": -12.366000000000001, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 18.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Si", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Si", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "Si": 4.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -691.35447856, "composition": {"Ba": 32.0, "Al": 16.0, "O": 56.0}, "entry_id": "mp-560978", "correction": -38.472, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 56.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Al", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Al", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "Al": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -40.81810075, "composition": {"Ba": 8.0, "Si": 4.0}, "entry_id": "mp-9905", "correction": 0.284, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": 0.071, "n_atoms": 4.0, "uncertainty_per_atom": 0.0165, "name": "MP2020 anion correction (Si)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Si"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Si"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {"Ba": 2.0, "Si": -4.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -86.99880008, "composition": {"Ba": 4.0, "Al": 8.0, "Si": 8.0}, "entry_id": "mp-5506", "correction": 0.568, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": 0.071, "n_atoms": 8.0, "uncertainty_per_atom": 0.0165, "name": "MP2020 anion correction (Si)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Al", "Si"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Al", "PBE Si"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {"Ba": 2.0, "Al": 3.0, "Si": -4.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -110.80226572, "composition": {"Ba": 8.0, "Si": 16.0}, "entry_id": "mp-1477", "correction": 1.136, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": 0.071, "n_atoms": 16.0, "uncertainty_per_atom": 0.0165, "name": "MP2020 anion correction (Si)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Si"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Si"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -404.72808448, "composition": {"Ba": 8.0, "Al": 16.0, "O": 32.0}, "entry_id": "mp-4202", "correction": -21.984, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 32.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Al", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Al", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "Al": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -26.59294566, "composition": {"Ba": 3.0, "Al": 2.0, "Si": 2.0}, "entry_id": "mp-9578", "correction": 0.142, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": 0.071, "n_atoms": 2.0, "uncertainty_per_atom": 0.0165, "name": "MP2020 anion correction (Si)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Al", "Si"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Al", "PBE Si"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -54.81133933, "composition": {"Ba": 7.0, "Al": 10.0}, "entry_id": "mp-570400", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Al"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Al"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -56.79822404, "composition": {"Ba": 8.0, "Al": 10.0}, "entry_id": "mp-2631", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Al"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Al"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -11.82719219, "composition": {"Ba": 1.0, "O": 1.0}, "entry_id": "mp-1342", "correction": -0.687, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 1.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -16.37470211, "composition": {"Ba": 2.0, "Si": 2.0}, "entry_id": "mp-1067235", "correction": 0.142, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": 0.071, "n_atoms": 2.0, "uncertainty_per_atom": 0.0165, "name": "MP2020 anion correction (Si)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Si"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Si"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -1.91897083, "composition": {"Ba": 1.0}, "entry_id": "mp-122", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -392.45875163, "composition": {"Ba": 8.0, "Si": 12.0, "O": 32.0}, "entry_id": "mp-29222", "correction": -21.984, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 32.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Si", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Si", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "Si": 4.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -88.39266958, "composition": {"Ba": 12.0, "Si": 4.0, "O": 4.0}, "entry_id": "mp-755363", "correction": -2.4640000000000004, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 4.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}, {"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": 0.071, "n_atoms": 4.0, "uncertainty_per_atom": 0.0165, "name": "MP2020 anion correction (Si)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Si", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Si", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "Si": -4.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -199.36379961, "composition": {"Ba": 8.0, "Si": 4.0, "O": 16.0}, "entry_id": "mp-17612", "correction": -10.992, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 16.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Si", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Si", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "Si": 4.0, "O": -2.0}}}] -------------------------------------------------------------------------------- /data/entries_files/B-Ba-Li-O: -------------------------------------------------------------------------------- 1 | [{"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -43.97466066, "composition": {"Li": 1.0, "O": 8.0}, "entry_id": "mp-1235059", "correction": -1.288, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.161, "n_atoms": 8.0, "uncertainty_per_atom": 0.0075, "name": "MP2020 anion correction (superoxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE O"], "oxide_type": "superoxide"}, "data": {"oxide_type": "superoxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -17.86599732, "composition": {"Li": 2.0, "B": 2.0}, "entry_id": "mp-1001835", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "B"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE B"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -91.58061387, "composition": {"Li": 4.0, "B": 12.0}, "entry_id": "mp-1222413", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "B"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE B"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -323.99999398, "composition": {"Ba": 6.0, "B": 12.0, "O": 24.0}, "entry_id": "mp-540659", "correction": -16.488, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 24.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -120.39584432, "composition": {"B": 6.0, "O": 9.0}, "entry_id": "mp-306", "correction": -6.183000000000001, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 9.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -1.91897083, "composition": {"Ba": 1.0}, "entry_id": "mp-122", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -158.6822595, "composition": {"Ba": 6.0, "B": 4.0, "O": 12.0}, "entry_id": "mp-755417", "correction": -8.244, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 12.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -272.67143492, "composition": {"Ba": 4.0, "Li": 2.0, "B": 10.0, "O": 20.0}, "entry_id": "mp-6075", "correction": -13.740000000000002, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 20.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Li_sv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Li_sv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "Li": 1.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -510.38352753, "composition": {"Li": 24.0, "B": 16.0, "O": 36.0}, "entry_id": "mp-1020024", "correction": -24.732000000000003, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 36.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Li": 1.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -331.18021649, "composition": {"Li": 6.0, "B": 14.0, "O": 24.0}, "entry_id": "mp-16828", "correction": -16.488, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 24.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -39.58364375, "composition": {"O": 8.0}, "entry_id": "mp-12957", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE O"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -14.26360048, "composition": {"Li": 2.0, "O": 1.0}, "entry_id": "mp-1960", "correction": -0.687, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 1.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Li": 1.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -80.1526877, "composition": {"B": 12.0}, "entry_id": "mp-160", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["B"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE B"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -267.10223563, "composition": {"Ba": 8.0, "B": 8.0, "O": 20.0}, "entry_id": "mp-771158", "correction": -13.740000000000002, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 20.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -17.39547494, "composition": {"Ba": 1.0, "O": 2.0}, "entry_id": "mp-1105", "correction": -0.93, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.465, "n_atoms": 2.0, "uncertainty_per_atom": 0.0172, "name": "MP2020 anion correction (peroxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE O"], "oxide_type": "peroxide"}, "data": {"oxide_type": "peroxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -387.3088147, "composition": {"Li": 8.0, "B": 16.0, "O": 28.0}, "entry_id": "mp-4779", "correction": -19.236, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 28.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Li": 1.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -172.30842851, "composition": {"Li": 12.0, "B": 4.0, "O": 12.0}, "entry_id": "mp-27275", "correction": -8.244, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 12.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Li": 1.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -112.24872632, "composition": {"Li": 4.0, "B": 4.0, "O": 8.0}, "entry_id": "mp-3635", "correction": -5.496, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 8.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Li": 1.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -164.17327245, "composition": {"Ba": 4.0, "Li": 4.0, "B": 4.0, "O": 12.0}, "entry_id": "mp-6499", "correction": -8.244, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 12.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Li_sv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Li_sv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "Li": 1.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -408.91414649, "composition": {"Ba": 2.0, "Li": 2.0, "B": 18.0, "O": 30.0}, "entry_id": "mp-558890", "correction": -20.610000000000003, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 30.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Li_sv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Li_sv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -5.72676856, "composition": {"Li": 3.0}, "entry_id": "mp-1018134", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -757.88829789, "composition": {"Ba": 8.0, "B": 32.0, "O": 56.0}, "entry_id": "mp-27692", "correction": -38.472, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 56.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -11.82719219, "composition": {"Ba": 1.0, "O": 1.0}, "entry_id": "mp-1342", "correction": -0.687, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 1.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -702.08658267, "composition": {"Ba": 4.0, "B": 32.0, "O": 52.0}, "entry_id": "mp-27794", "correction": -35.724000000000004, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 52.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -38.76889738, "composition": {"Li": 4.0, "O": 4.0}, "entry_id": "mp-841", "correction": -1.86, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.465, "n_atoms": 4.0, "uncertainty_per_atom": 0.0172, "name": "MP2020 anion correction (peroxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE O"], "oxide_type": "peroxide"}, "data": {"oxide_type": "peroxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -44.8627245, "composition": {"Ba": 1.0, "B": 6.0}, "entry_id": "mp-954", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "B"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE B"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -984.82034203, "composition": {"Li": 12.0, "B": 44.0, "O": 72.0}, "entry_id": "mp-1020014", "correction": -49.464000000000006, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 72.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -1754.38810683, "composition": {"B": 48.0, "O": 132.0, "Ba": 60.0}, "entry_id": "mp-3974", "correction": -90.68400000000001, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 132.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["B", "O", "Ba_sv"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE B", "PBE O", "PBE Ba_sv"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"B": 3.0, "O": -2.0, "Ba": 2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -57.35016254, "composition": {"Ba": 6.0, "Li": 24.0}, "entry_id": "mp-210", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Li_sv"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Li_sv"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -99.94837775, "composition": {"B": 12.0, "O": 2.0}, "entry_id": "mp-1346", "correction": -1.374, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 2.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {}}}] -------------------------------------------------------------------------------- /data/entries_files/B-Ba-Na-O: -------------------------------------------------------------------------------- 1 | [{"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -379.43882132, "composition": {"Na": 8.0, "B": 16.0, "O": 28.0}, "entry_id": "mp-17941", "correction": -19.236, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 28.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Na_pv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Na_pv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Na": 1.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -138.94388246, "composition": {"Na": 3.0, "B": 20.0}, "entry_id": "mp-262", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Na_pv", "B"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Na_pv", "PBE B"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -204.62869763, "composition": {"Na": 2.0, "B": 30.0}, "entry_id": "mp-2315", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Na_pv", "B"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Na_pv", "PBE B"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -813.02257261, "composition": {"Na": 12.0, "B": 36.0, "O": 60.0}, "entry_id": "mp-556226", "correction": -41.220000000000006, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 60.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Na_pv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Na_pv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Na": 1.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -17.39547494, "composition": {"Ba": 1.0, "O": 2.0}, "entry_id": "mp-1105", "correction": -0.93, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.465, "n_atoms": 2.0, "uncertainty_per_atom": 0.0172, "name": "MP2020 anion correction (peroxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE O"], "oxide_type": "peroxide"}, "data": {"oxide_type": "peroxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -39.27327052, "composition": {"Ba": 12.0, "Na": 12.0}, "entry_id": "mp-1247744", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Na_pv"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Na_pv"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -44.8627245, "composition": {"Ba": 1.0, "B": 6.0}, "entry_id": "mp-954", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "B"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE B"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -11.22104788, "composition": {"Na": 2.0, "O": 1.0}, "entry_id": "mp-2352", "correction": -0.687, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 1.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Na_pv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Na_pv", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Na": 1.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -325.39315834, "composition": {"Na": 6.0, "B": 14.0, "O": 24.0}, "entry_id": "mp-31073", "correction": -16.488, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 24.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Na_pv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Na_pv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -11.82719219, "composition": {"Ba": 1.0, "O": 1.0}, "entry_id": "mp-1342", "correction": -0.687, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 1.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -757.88829789, "composition": {"Ba": 8.0, "B": 32.0, "O": 56.0}, "entry_id": "mp-27692", "correction": -38.472, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 56.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -50.52485938, "composition": {"Na": 6.0, "O": 6.0}, "entry_id": "mp-2340", "correction": -2.79, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.465, "n_atoms": 6.0, "uncertainty_per_atom": 0.0172, "name": "MP2020 anion correction (peroxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Na_pv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Na_pv", "PBE O"], "oxide_type": "peroxide"}, "data": {"oxide_type": "peroxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -132.7627571, "composition": {"Na": 8.0, "B": 4.0, "O": 10.0}, "entry_id": "mp-27564", "correction": -6.870000000000001, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 10.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Na_pv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Na_pv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Na": 1.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -407.15204404, "composition": {"Ba": 2.0, "Na": 2.0, "B": 18.0, "O": 30.0}, "entry_id": "mp-17864", "correction": -20.610000000000003, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 30.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Na_pv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Na_pv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -80.1526877, "composition": {"B": 12.0}, "entry_id": "mp-160", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["B"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE B"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -18.38546865, "composition": {"Ba": 4.0, "Na": 8.0}, "entry_id": "mp-11820", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Na_pv"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Na_pv"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -30.47199894, "composition": {"Ba": 4.0, "Na": 2.0, "O": 2.0}, "entry_id": "mp-1019519", "correction": -1.374, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 2.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Na_pv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Na_pv", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -157.19647474, "composition": {"Na": 12.0, "B": 4.0, "O": 12.0}, "entry_id": "mp-30975", "correction": -8.244, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 12.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Na_pv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Na_pv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Na": 1.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -99.94837775, "composition": {"B": 12.0, "O": 2.0}, "entry_id": "mp-1346", "correction": -1.374, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 2.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -704.01677603, "composition": {"Na": 8.0, "B": 32.0, "O": 52.0}, "entry_id": "mp-542300", "correction": -35.724000000000004, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 52.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Na_pv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Na_pv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -954.31119372, "composition": {"Ba": 32.0, "Na": 8.0, "B": 24.0, "O": 72.0}, "entry_id": "mp-6575", "correction": -49.464000000000006, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 72.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Na_pv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Na_pv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "Na": 1.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -120.39584432, "composition": {"B": 6.0, "O": 9.0}, "entry_id": "mp-306", "correction": -6.183000000000001, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 9.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -158.6822595, "composition": {"Ba": 6.0, "B": 4.0, "O": 12.0}, "entry_id": "mp-755417", "correction": -8.244, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 12.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -267.10223563, "composition": {"Ba": 8.0, "B": 8.0, "O": 20.0}, "entry_id": "mp-771158", "correction": -13.740000000000002, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 20.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -487.97530113, "composition": {"Ba": 4.0, "Na": 4.0, "B": 20.0, "O": 36.0}, "entry_id": "mp-1019554", "correction": -24.732000000000003, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 36.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Na_pv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Na_pv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "Na": 1.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -27.27724614, "composition": {"Na": 2.0, "O": 4.0}, "entry_id": "mp-1901", "correction": -0.644, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.161, "n_atoms": 4.0, "uncertainty_per_atom": 0.0075, "name": "MP2020 anion correction (superoxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Na_pv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Na_pv", "PBE O"], "oxide_type": "superoxide"}, "data": {"oxide_type": "superoxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -39.58364375, "composition": {"O": 8.0}, "entry_id": "mp-12957", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE O"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -1754.38810683, "composition": {"B": 48.0, "O": 132.0, "Ba": 60.0}, "entry_id": "mp-3974", "correction": -90.68400000000001, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 132.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["B", "O", "Ba_sv"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE B", "PBE O", "PBE Ba_sv"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"B": 3.0, "O": -2.0, "Ba": 2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -161.84595666, "composition": {"Na": 6.0, "B": 6.0, "O": 12.0}, "entry_id": "mp-3889", "correction": -8.244, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 12.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Na_pv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Na_pv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Na": 1.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -702.08658267, "composition": {"Ba": 4.0, "B": 32.0, "O": 52.0}, "entry_id": "mp-27794", "correction": -35.724000000000004, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 52.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -79.66562882, "composition": {"Ba": 2.0, "Na": 2.0, "B": 2.0, "O": 6.0}, "entry_id": "mp-6660", "correction": -4.122, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 6.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "Na_pv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE Na_pv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "Na": 1.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -323.99999398, "composition": {"Ba": 6.0, "B": 12.0, "O": 24.0}, "entry_id": "mp-540659", "correction": -16.488, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 24.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv", "B", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv", "PBE B", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Ba": 2.0, "B": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -1.91897083, "composition": {"Ba": 1.0}, "entry_id": "mp-122", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Ba_sv"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Ba_sv"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -2.62444601, "composition": {"Na": 2.0}, "entry_id": "mp-10172", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Na_pv"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Na_pv"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}] -------------------------------------------------------------------------------- /data/entries_files/K-Mg-O-P: -------------------------------------------------------------------------------- 1 | [{"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -4.79068775, "composition": {"Mg": 3.0}, "entry_id": "mp-1094122", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Mg_pv"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Mg_pv"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -167.85635131, "composition": {"K": 2.0, "P": 30.0}, "entry_id": "mp-1211471", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["K_sv", "P"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE K_sv", "PBE P"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {"K": 1.0, "P": -0.06666666666666667}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -58.78323749, "composition": {"K": 8.0, "P": 8.0}, "entry_id": "mp-7441", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["K_sv", "P"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE K_sv", "PBE P"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {"K": 1.0, "P": -1.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -13.64577415, "composition": {"K": 1.0, "O": 2.0}, "entry_id": "mp-1866", "correction": -0.322, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.161, "n_atoms": 2.0, "uncertainty_per_atom": 0.0075, "name": "MP2020 anion correction (superoxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["K_sv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE K_sv", "PBE O"], "oxide_type": "superoxide"}, "data": {"oxide_type": "superoxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -10.22532998, "composition": {"K": 2.0, "O": 1.0}, "entry_id": "mp-971", "correction": -0.687, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 1.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["K_sv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE K_sv", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"K": 1.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -82.57680791, "composition": {"K": 8.0, "P": 12.0}, "entry_id": "mp-569857", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["K_sv", "P"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE K_sv", "PBE P"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {"K": 1.0, "P": -0.6666666666666666}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -227.35800618, "composition": {"P": 42.0}, "entry_id": "mp-1198724", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["P"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE P"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -11.96742144, "composition": {"Mg": 1.0, "O": 1.0}, "entry_id": "mp-1265", "correction": -0.687, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 1.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Mg_pv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Mg_pv", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Mg": 2.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -88.96494596, "composition": {"K": 8.0, "Mg": 4.0, "O": 8.0}, "entry_id": "mp-755802", "correction": -5.496, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 8.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["K_sv", "Mg_pv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE K_sv", "PBE Mg_pv", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"K": 1.0, "Mg": 2.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -262.06451338, "composition": {"K": 8.0, "P": 8.0, "O": 24.0}, "entry_id": "mp-5039", "correction": -16.488, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 24.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["K_sv", "P", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE K_sv", "PBE P", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"K": 1.0, "P": 5.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -49.5676689, "composition": {"Mg": 2.0, "P": 8.0}, "entry_id": "mp-384", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Mg_pv", "P"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Mg_pv", "PBE P"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {"Mg": 2.0, "P": -0.5}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -452.89601398, "composition": {"Mg": 4.0, "P": 16.0, "O": 44.0}, "entry_id": "mp-15437", "correction": -30.228, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 44.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Mg_pv", "P", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Mg_pv", "PBE P", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Mg": 2.0, "P": 5.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -363.8823897, "composition": {"K": 8.0, "Mg": 8.0, "P": 8.0, "O": 32.0}, "entry_id": "mp-558795", "correction": -21.984, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 32.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["K_sv", "Mg_pv", "P", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE K_sv", "PBE Mg_pv", "PBE P", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"K": 1.0, "Mg": 2.0, "P": 5.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -151.6844515, "composition": {"Mg": 24.0, "P": 16.0}, "entry_id": "mp-2514", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Mg_pv", "P"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Mg_pv", "PBE P"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {"Mg": 2.0, "P": -3.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -85.50821124, "composition": {"K": 12.0, "Mg": 2.0, "O": 8.0}, "entry_id": "mp-12171", "correction": -5.496, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 8.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["K_sv", "Mg_pv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE K_sv", "PBE Mg_pv", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"K": 1.0, "Mg": 2.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -39.58364375, "composition": {"O": 8.0}, "entry_id": "mp-12957", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE O"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -269.1716021, "composition": {"K": 12.0, "P": 44.0}, "entry_id": "mp-1568", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["K_sv", "P"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE K_sv", "PBE P"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {"K": 1.0, "P": -0.2727272727272727}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -184.44704543, "composition": {"K": 12.0, "P": 4.0, "O": 16.0}, "entry_id": "mp-557753", "correction": -10.992, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 16.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["K_sv", "P", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE K_sv", "PBE P", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"K": 1.0, "P": 5.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -32.73696412, "composition": {"K": 4.0, "O": 4.0}, "entry_id": "mp-2672", "correction": -1.86, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.465, "n_atoms": 4.0, "uncertainty_per_atom": 0.0172, "name": "MP2020 anion correction (peroxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["K_sv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE K_sv", "PBE O"], "oxide_type": "peroxide"}, "data": {"oxide_type": "peroxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -247.57201293, "composition": {"Mg": 149.0, "P": 1.0}, "entry_id": "mp-1185593", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Mg_pv", "P"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Mg_pv", "PBE P"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -46.59453593, "composition": {"K": 8.0, "P": 6.0}, "entry_id": "mp-28424", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["K_sv", "P"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE K_sv", "PBE P"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {"K": 1.0, "P": -1.3333333333333333}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -306.78864485, "composition": {"Mg": 8.0, "P": 8.0, "O": 28.0}, "entry_id": "mp-1195826", "correction": -19.236, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 28.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Mg_pv", "P", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Mg_pv", "PBE P", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Mg": 2.0, "P": 5.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -158.09991815, "composition": {"K": 8.0, "P": 4.0, "O": 14.0}, "entry_id": "mp-1019796", "correction": -9.618, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 14.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["K_sv", "P", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE K_sv", "PBE P", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"K": 1.0, "P": 5.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -179.13164285, "composition": {"Mg": 6.0, "P": 4.0, "O": 16.0}, "entry_id": "mp-14396", "correction": -10.992, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 16.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Mg_pv", "P", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Mg_pv", "PBE P", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Mg": 2.0, "P": 5.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -98.40677698, "composition": {"P": 4.0, "O": 10.0}, "entry_id": "mp-2452", "correction": -6.870000000000001, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 10.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["P", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE P", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"P": 5.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -193.18164845, "composition": {"K": 2.0, "Mg": 2.0, "P": 6.0, "O": 18.0}, "entry_id": "mp-14058", "correction": -12.366000000000001, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 18.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["K_sv", "Mg_pv", "P", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE K_sv", "PBE Mg_pv", "PBE P", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"K": 1.0, "Mg": 2.0, "P": 5.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -22.20797894, "composition": {"K": 20.0}, "entry_id": "mp-1184905", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["K_sv"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE K_sv"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -254.60119342, "composition": {"Mg": 4.0, "P": 8.0, "O": 24.0}, "entry_id": "mp-18620", "correction": -16.488, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 24.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Mg_pv", "P", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Mg_pv", "PBE P", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Mg": 2.0, "P": 5.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -20.12844752, "composition": {"K": 2.0, "Mg": 2.0, "P": 2.0}, "entry_id": "mp-1018737", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["K_sv", "Mg_pv", "P"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE K_sv", "PBE Mg_pv", "PBE P"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {"K": 1.0, "Mg": 2.0, "P": -3.0}}}] -------------------------------------------------------------------------------- /data/entries_files/Li-O-P-Sc: -------------------------------------------------------------------------------- 1 | [{"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -98.40677698, "composition": {"P": 4.0, "O": 10.0}, "entry_id": "mp-2452", "correction": -6.870000000000001, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 10.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["P", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE P", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"P": 5.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -796.712923, "composition": {"Sc": 8.0, "P": 24.0, "O": 72.0}, "entry_id": "mp-5207", "correction": -49.464000000000006, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 72.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Sc_sv", "P", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Sc_sv", "PBE P", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Sc": 3.0, "P": 5.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -66.94955434, "composition": {"Li": 8.0, "P": 8.0}, "entry_id": "mp-9588", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "P"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE P"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {"Li": 1.0, "P": -1.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -14.26360048, "composition": {"Li": 2.0, "O": 1.0}, "entry_id": "mp-1960", "correction": -0.687, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 1.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Li": 1.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -362.33139018, "composition": {"Sc": 16.0, "O": 24.0}, "entry_id": "mp-216", "correction": -16.488, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 24.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Sc_sv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Sc_sv", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Sc": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -60.28354666, "composition": {"Li": 2.0, "Sc": 2.0, "O": 4.0}, "entry_id": "mp-5840", "correction": -2.748, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 4.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "Sc_sv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE Sc_sv", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Li": 1.0, "Sc": 3.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -673.12945607, "composition": {"Li": 20.0, "P": 20.0, "O": 60.0}, "entry_id": "mp-1202801", "correction": -41.220000000000006, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 60.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "P", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE P", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Li": 1.0, "P": 5.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -39.58364375, "composition": {"O": 8.0}, "entry_id": "mp-12957", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE O"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -12.66493821, "composition": {"Sc": 2.0}, "entry_id": "mp-67", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Sc_sv"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Sc_sv"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -227.35800618, "composition": {"P": 42.0}, "entry_id": "mp-1198724", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["P"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE P"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -144.90876834, "composition": {"Sc": 12.0, "P": 8.0}, "entry_id": "mp-22600", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Sc_sv", "P"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Sc_sv", "PBE P"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {"Sc": 2.0, "P": -3.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -43.97466066, "composition": {"Li": 1.0, "O": 8.0}, "entry_id": "mp-1235059", "correction": -1.288, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.161, "n_atoms": 8.0, "uncertainty_per_atom": 0.0075, "name": "MP2020 anion correction (superoxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE O"], "oxide_type": "superoxide"}, "data": {"oxide_type": "superoxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -188.86212432, "composition": {"Li": 12.0, "P": 28.0}, "entry_id": "mp-28336", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "P"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE P"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {"Li": 1.0, "P": -0.42857142857142855}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -97.83535879, "composition": {"Sc": 2.0, "P": 2.0, "O": 8.0}, "entry_id": "mp-4200", "correction": -5.496, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 8.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Sc_sv", "P", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Sc_sv", "PBE P", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Sc": 3.0, "P": 5.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -14.72510828, "composition": {"Sc": 1.0, "P": 1.0}, "entry_id": "mp-2807", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Sc_sv", "P"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Sc_sv", "PBE P"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {"Sc": 3.0, "P": -3.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -167.91805416, "composition": {"Li": 8.0, "P": 4.0, "O": 14.0}, "entry_id": "mp-28450", "correction": -9.618, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 14.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "P", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE P", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Li": 1.0, "P": 5.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -110.56579697, "composition": {"Sc": 12.0, "P": 4.0}, "entry_id": "mp-1188800", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Sc_sv", "P"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Sc_sv", "PBE P"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -100.42366837, "composition": {"Li": 6.0, "P": 2.0, "O": 8.0}, "entry_id": "mp-13725", "correction": -5.496, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 8.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "P", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE P", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Li": 1.0, "P": 5.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -5.72676856, "composition": {"Li": 3.0}, "entry_id": "mp-1018134", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv"], "oxide_type": "None"}, "data": {"oxide_type": "None"}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -593.21336969, "composition": {"Li": 12.0, "Sc": 8.0, "P": 12.0, "O": 48.0}, "entry_id": "mp-6565", "correction": -32.976, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 48.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "Sc_sv", "P", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE Sc_sv", "PBE P", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Li": 1.0, "Sc": 3.0, "P": 5.0, "O": -2.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -27.85189145, "composition": {"Li": 6.0, "P": 2.0}, "entry_id": "mp-736", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "P"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE P"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {"Li": 1.0, "P": -3.0}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -38.76889738, "composition": {"Li": 4.0, "O": 4.0}, "entry_id": "mp-841", "correction": -1.86, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.465, "n_atoms": 4.0, "uncertainty_per_atom": 0.0172, "name": "MP2020 anion correction (peroxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE O"], "oxide_type": "peroxide"}, "data": {"oxide_type": "peroxide", "oxidation_states": {}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -328.58948842, "composition": {"Li": 8.0, "P": 56.0}, "entry_id": "mp-27687", "correction": 0.0, "energy_adjustments": [], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "P"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE P"], "oxide_type": "None"}, "data": {"oxide_type": "None", "oxidation_states": {"Li": 1.0, "P": -0.14285714285714285}}}, {"@module": "pymatgen.entries.computed_entries", "@class": "ComputedEntry", "energy": -165.62742052, "composition": {"Li": 2.0, "Sc": 2.0, "P": 4.0, "O": 14.0}, "entry_id": "mp-10517", "correction": -9.618, "energy_adjustments": [{"@module": "pymatgen.entries.computed_entries", "@class": "CompositionEnergyAdjustment", "@version": null, "adj_per_atom": -0.687, "n_atoms": 14.0, "uncertainty_per_atom": 0.002, "name": "MP2020 anion correction (oxide)", "cls": {"@module": "pymatgen.entries.compatibility", "@class": "MaterialsProject2020Compatibility", "@version": null}, "description": "Composition-based energy adjustment"}], "parameters": {"run_type": "GGA", "is_hubbard": false, "pseudo_potential": {"functional": "PBE", "labels": ["Li_sv", "Sc_sv", "P", "O"], "pot_type": "paw"}, "hubbards": {}, "potcar_symbols": ["PBE Li_sv", "PBE Sc_sv", "PBE P", "PBE O"], "oxide_type": "oxide"}, "data": {"oxide_type": "oxide", "oxidation_states": {"Li": 1.0, "Sc": 3.0, "P": 5.0, "O": -2.0}}}] -------------------------------------------------------------------------------- /data/plot_layout/plotly_pd_layouts.json: -------------------------------------------------------------------------------- 1 | { 2 | "default_binary_layout": { 3 | "autosize": true, 4 | "height": 700, 5 | "xaxis": { 6 | "title": "Fraction", 7 | "anchor": "y", 8 | "mirror": "ticks", 9 | "nticks": 8, 10 | "showgrid": true, 11 | "showline": true, 12 | "side": "bottom", 13 | "tickfont": { 14 | "size": 16.0 15 | }, 16 | "ticks": "inside", 17 | "titlefont": { 18 | "color": "#000000", 19 | "size": 20.0 20 | }, 21 | "type": "linear", 22 | "zeroline": false, 23 | "gridcolor": "rgba(0,0,0,0.1)" 24 | }, 25 | "yaxis": { 26 | "title": "Formation energy (eV/atom)", 27 | "anchor": "x", 28 | "mirror": "ticks", 29 | "showgrid": true, 30 | "showline": true, 31 | "side": "left", 32 | "tickfont": { 33 | "size": 16.0 34 | }, 35 | "ticks": "inside", 36 | "titlefont": { 37 | "color": "#000000", 38 | "size": 20.0 39 | }, 40 | "type": "linear", 41 | "gridcolor": "rgba(0,0,0,0.1)" 42 | }, 43 | "hovermode": "closest", 44 | "paper_bgcolor": "rgba(0,0,0,0)", 45 | "plot_bgcolor": "rgba(0,0,0,0)", 46 | "showlegend": true, 47 | "legend": { 48 | "orientation": "h", 49 | "traceorder": "reversed", 50 | "x": 0, 51 | "y": 1.05, 52 | "xanchor": "left", 53 | "tracegroupgap": 7 54 | }, 55 | "margin": { 56 | "b": 20, 57 | "l": 10, 58 | "pad": 20, 59 | "t": 20, 60 | "r": 10 61 | } 62 | }, 63 | "default_ternary_layout": { 64 | "autosize": true, 65 | "height": 700, 66 | "hovermode": "closest", 67 | "paper_bgcolor": "rgba(0,0,0,0)", 68 | "plot_bgcolor": "rgba(0,0,0,0)", 69 | "margin": { 70 | "b": 10, 71 | "l": 0, 72 | "pad": 0, 73 | "t": 0, 74 | "r": 0 75 | }, 76 | "showlegend": true, 77 | "legend": { 78 | "orientation": "h", 79 | "x": 0.5, 80 | "y": 0.0, 81 | "traceorder": "reversed", 82 | "xanchor": "center", 83 | "yanchor": "top" 84 | }, 85 | "scene_camera": { 86 | "center": { 87 | "x": -0.1, 88 | "y": 0, 89 | "z": -0.15 90 | }, 91 | "eye": { 92 | "x": -0.1, 93 | "y": 0, 94 | "z": 2.5 95 | }, 96 | "projection": { 97 | "type": "orthographic" 98 | } 99 | }, 100 | "scene": { 101 | "xaxis": { 102 | "title": null, 103 | "visible": false, 104 | "autorange": true, 105 | "showgrid": false, 106 | "zeroline": false, 107 | "showline": false, 108 | "ticks": "", 109 | "showaxeslabels": false, 110 | "showticklabels": false, 111 | "showspikes": false 112 | }, 113 | "yaxis": { 114 | "title": null, 115 | "visible": false, 116 | "autorange": true, 117 | "showgrid": false, 118 | "zeroline": false, 119 | "showline": false, 120 | "ticks": "", 121 | "showaxeslabels": false, 122 | "showticklabels": false, 123 | "showspikes": false 124 | }, 125 | "zaxis": { 126 | "title": null, 127 | "visible": false, 128 | "autorange": true, 129 | "showgrid": false, 130 | "zeroline": false, 131 | "showline": false, 132 | "ticks": "", 133 | "showaxeslabels": false, 134 | "showticklabels": false, 135 | "showspikes": false 136 | } 137 | }, 138 | "scene_aspectratio": { 139 | "x": 1.7, 140 | "y": 1.7, 141 | "z": 1.2 142 | } 143 | }, 144 | "default_quaternary_layout": { 145 | "autosize": true, 146 | "height": 700, 147 | "hovermode": "closest", 148 | "margin": { 149 | "b": 10, 150 | "l": 0, 151 | "pad": 0, 152 | "t": 0, 153 | "r": 0 154 | }, 155 | "paper_bgcolor": "rgba(0,0,0,0)", 156 | "plot_bgcolor": "rgba(0,0,0,0)", 157 | "showlegend": true, 158 | "legend": { 159 | "orientation": "h", 160 | "x": 0.5, 161 | "y": 0.0, 162 | "traceorder": "reversed", 163 | "xanchor": "center", 164 | "yanchor": "top" 165 | }, 166 | "scene": { 167 | "xaxis": { 168 | "title": null, 169 | "visible": false, 170 | "autorange": true, 171 | "showgrid": false, 172 | "zeroline": false, 173 | "showline": false, 174 | "ticks": "", 175 | "showaxeslabels": false, 176 | "showticklabels": false, 177 | "showspikes": false 178 | }, 179 | "yaxis": { 180 | "title": null, 181 | "visible": false, 182 | "autorange": true, 183 | "showgrid": false, 184 | "zeroline": false, 185 | "showline": false, 186 | "ticks": "", 187 | "showaxeslabels": false, 188 | "showticklabels": false, 189 | "showspikes": false 190 | }, 191 | "zaxis": { 192 | "title": null, 193 | "visible": false, 194 | "autorange": true, 195 | "showgrid": false, 196 | "zeroline": false, 197 | "showline": false, 198 | "ticks": "", 199 | "showaxeslabels": false, 200 | "showticklabels": false, 201 | "showspikes": false 202 | } 203 | }, 204 | "scene_camera": { 205 | "center": { 206 | "x": 0, 207 | "y": -0.08, 208 | "z": 0 209 | }, 210 | "projection": { 211 | "type": "orthographic" 212 | } 213 | }, 214 | "scene_aspectratio": { 215 | "x": 1.4, 216 | "y": 1.4, 217 | "z": 1.4 218 | } 219 | }, 220 | "stable_colorscale": [ 221 | [ 222 | 0.0, 223 | "#0c8c00" 224 | ], 225 | [ 226 | 0.5, 227 | "#d8ffd4" 228 | ], 229 | [ 230 | 1.0, 231 | "#ffffff" 232 | ] 233 | ], 234 | 235 | "unstable_colorscale": [ 236 | [ 237 | 0.0, 238 | "#fad393" 239 | ], 240 | [ 241 | 0.5, 242 | "#ff813d" 243 | ], 244 | [ 245 | 1.0, 246 | "#ff0000" 247 | ] 248 | ], 249 | 250 | "stable_markers_colorscale": [ 251 | [ 252 | 0.0, 253 | "#075400" 254 | ], 255 | [ 256 | 1.0, 257 | "#7ce371" 258 | ] 259 | ], 260 | "default_binary_marker_settings": { 261 | "mode": "markers", 262 | "marker": { 263 | "size": 8, 264 | "line": { 265 | "width": 4, 266 | "color": "black" 267 | } 268 | }, 269 | "hoverinfo": "text", 270 | "hoverlabel": { 271 | "font": { 272 | "size": 14 273 | } 274 | }, 275 | "showlegend": true 276 | }, 277 | "default_ternary_marker_settings": { 278 | "mode": "markers", 279 | "marker": { 280 | "size": 7, 281 | "line": { 282 | "width": 4, 283 | "color": "black" 284 | } 285 | }, 286 | "hoverinfo": "text", 287 | "hoverlabel": { 288 | "font": { 289 | "size": 14 290 | } 291 | }, 292 | "showlegend": true 293 | }, 294 | "default_quaternary_marker_settings": { 295 | "mode": "markers", 296 | "marker": { 297 | "size": 6, 298 | "line": { 299 | "width": 4, 300 | "color": "black" 301 | } 302 | }, 303 | "hoverinfo": "text", 304 | "hoverlabel": { 305 | "font": { 306 | "size": 14 307 | } 308 | }, 309 | "showlegend": true, 310 | "line": { 311 | "width": 2, 312 | "color": "black" 313 | } 314 | }, 315 | "default_annotation_layout": { 316 | "align": "center", 317 | "opacity": 0.7, 318 | "showarrow": false, 319 | "xanchor": "right", 320 | "yanchor": "auto", 321 | "xshift": -10, 322 | "yshift": -10, 323 | "xref": "x", 324 | "yref": "y" 325 | }, 326 | "empty_plot_style": { 327 | "xaxis": { 328 | "visible": false 329 | }, 330 | "yaxis": { 331 | "visible": false 332 | }, 333 | "paper_bgcolor": "rgba(0,0,0,0)", 334 | "plot_bgcolor": "rgba(0,0,0,0)" 335 | } 336 | } 337 | -------------------------------------------------------------------------------- /data/results_files/BaAl2(SiO4)2_result.csv: -------------------------------------------------------------------------------- 1 | ,target,reactants,reaction_energy(eV/atom),inverse_hull_energy(eV/atom),reaction,competing phases 2 | 0,BaAl2(SiO4)2,"['SiO2', 'BaAl2O4']",-0.08967180692307783,-0.08967180692307863,2 SiO2 + BaAl2O4 -> BaAl2(SiO4)2,[] 3 | 1,BaAl2(SiO4)2,"['Al2O3', 'BaSi2O5']",-0.06825677961539023,-0.06825677961538901,Al2O3 + BaSi2O5 -> BaAl2(SiO4)2,[] 4 | 2,BaAl2(SiO4)2,"['Al2SiO5', 'BaSiO3']",-0.06823911660261386,-0.06823911660261395,Al2SiO5 + BaSiO3 -> BaAl2(SiO4)2,[] 5 | -------------------------------------------------------------------------------- /data/results_files/BaLiBO3_result.csv: -------------------------------------------------------------------------------- 1 | ,target,reactants,reaction_energy(eV/atom),inverse_hull_energy(eV/atom),reaction,competing phases 2 | 0,BaLiBO3,"['LiBO2', 'BaO']",-0.19232405708334843,-0.15303256599358317,LiBO2 + BaO -> BaLiBO3,"[['Ba2Li(BO2)5', 'Li6B4O9']]" 3 | 1,BaLiBO3,"['Li2O', 'Ba2B2O5']",-0.08728973645832776,-0.08728973645832827,0.5 Li2O + 0.5 Ba2B2O5 -> BaLiBO3,[] 4 | 2,BaLiBO3,"['Ba3(BO3)2', 'Li3BO3']",-0.03953985888888068,-0.03953985888888045,0.3333 Ba3(BO3)2 + 0.3333 Li3BO3 -> BaLiBO3,[] 5 | -------------------------------------------------------------------------------- /data/results_files/KMgPO4_result.csv: -------------------------------------------------------------------------------- 1 | ,target,reactants,reaction_energy(eV/atom),inverse_hull_energy(eV/atom),reaction,competing phases 2 | 0,KMgPO4,"['MgO', 'KPO3']",-0.10854472857145751,-0.10854472857145758,MgO + KPO3 -> KMgPO4,[] 3 | 1,KMgPO4,"['K3PO4', 'Mg3(PO4)2']",-0.0370625407143095,-0.037062540714310366,0.3333 K3PO4 + 0.3333 Mg3(PO4)2 -> KMgPO4,[] 4 | -------------------------------------------------------------------------------- /data/results_files/Li3Sc2(PO4)3_result.csv: -------------------------------------------------------------------------------- 1 | ,target,reactants,reaction_energy(eV/atom),inverse_hull_energy(eV/atom),reaction,competing phases 2 | 0,Li3Sc2(PO4)3,"['Sc2O3', 'LiPO3']",-0.10212501197491797,-0.034161004524869476,Sc2O3 + 3 LiPO3 -> Li3Sc2(PO4)3,"[['LiScP2O7', 'Li3PO4'], ['Li4P2O7', 'LiScP2O7']]" 3 | 1,Li3Sc2(PO4)3,"['ScPO4', 'Li3PO4']",-0.012807472375034563,-0.012807472375034656,2 ScPO4 + Li3PO4 -> Li3Sc2(PO4)3,[] 4 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | pymatgen==2022.5.26 2 | plotly==5.6.0 -------------------------------------------------------------------------------- /synthesis_planning/interfacial_pdplotter.py: -------------------------------------------------------------------------------- 1 | ''' 2 | Created on Jan 20, 2021 3 | 4 | @author: jiadongc@umich.edu 5 | ''' 6 | 7 | import plotly.graph_objects as go 8 | import json 9 | import os 10 | 11 | from pymatgen.util.string import htmlify 12 | from pymatgen.analysis.reaction_calculator import ComputedReaction 13 | from pymatgen.analysis.phase_diagram import CompoundPhaseDiagram 14 | from pymatgen.core.composition import Composition 15 | from pymatgen.analysis.phase_diagram import PhaseDiagram, PDPlotter 16 | 17 | from synthesis_planning.reactions import Reaction 18 | from synthesis_planning.synthesis_pathways import get_inverse_hull_energy 19 | 20 | '''layout of the interfacial reaction convex hull''' 21 | with open(os.getcwd() + "/data/plot_layout/plotly_pd_layouts.json", "r") as f: 22 | plotly_layouts = json.load(f) 23 | 24 | class InterReactions(): 25 | def __init__( 26 | self, 27 | reaction: Reaction): 28 | """ 29 | Formulate information of interfacial reaction compound convex hull 30 | Args: 31 | reaction (Reaction): a synthesis planning Reaction object 32 | """ 33 | self.reaction = reaction 34 | self.cpd = self.build_compound_convex_hull() 35 | self.decomp_reactions = self.build_decomposition_reactions() 36 | 37 | def build_compound_convex_hull(self): 38 | """ 39 | Construct a interfacial reaction compound convex hull 40 | Return: a pymatgen CompoundPhaseDiagram object of the reaction 41 | """ 42 | cpd = CompoundPhaseDiagram(self.reaction.all_entries, 43 | [pre.composition for pre in self.reaction.reactants]) 44 | return cpd 45 | 46 | def build_decomposition_reactions(self): 47 | """ 48 | Build a dictionary between kinks entry and their corresponding 49 | decomposition reactions 50 | Return: 51 | decomp_reactions(dict): {ComputedEntry : ComputedReaction} dictionary 52 | """ 53 | decomp_reactions = {} 54 | for entry in self.reaction.all_entries: 55 | dreact = ComputedReaction( 56 | self.reaction.reactants, 57 | self.reaction.all_phases[entry] 58 | ) 59 | decomp_reactions[entry.name] = dreact 60 | return decomp_reactions 61 | 62 | 63 | class Inter_PDPlotter(PDPlotter): 64 | def __init__( 65 | self, 66 | interfacial_reactions: InterReactions, 67 | emphasize_entries = [], 68 | show_unstable: float = 0.2, 69 | backend: str = "plotly", 70 | **plotkwargs 71 | ): 72 | """ 73 | A plotter class for interfacial reaction compound convex hull. 74 | Args: 75 | interfacial_reactions (InterReactions): InterReactions object 76 | emphasize_entries (ComputedEntry): entry that needs to be emphasized on the plot 77 | show_unstable (float): Whether unstable (above the hull) phases will be 78 | plotted. If a number > 0 is entered, all phases with 79 | e_hull < show_unstable (eV/atom) will be shown. 80 | backend ("plotly" | "matplotlib"): Python package used for plotting. Defaults to "plotly". 81 | **plotkwargs (dict): Keyword args passed to matplotlib.pyplot.plot. Can 82 | be used to customize markers etc. If not set, the default is 83 | { 84 | "markerfacecolor": (0.2157, 0.4941, 0.7216), 85 | "markersize": 10, 86 | "linewidth": 3 87 | } 88 | """ 89 | self.interfacial_reactions = interfacial_reactions 90 | super().__init__(interfacial_reactions.cpd, 91 | show_unstable = show_unstable, 92 | backend = backend, 93 | **plotkwargs) 94 | self.reactions_dict = interfacial_reactions.decomp_reactions 95 | self.emphasize_entries = emphasize_entries 96 | 97 | def show(self, *args, **kwargs): 98 | """ 99 | Draw the interfacial reaction phase diagram using Plotly (or Matplotlib) and show it. 100 | Args: 101 | *args: Passed to get_plot. 102 | **kwargs: Passed to get_plot. 103 | """ 104 | 105 | filename = kwargs.pop('filename', None) 106 | print(*args) 107 | print(**kwargs) 108 | 109 | fig = self.get_plot(*args, **kwargs) 110 | 111 | if self.emphasize_entries: 112 | for target_entry in self.emphasize_entries: 113 | for coords, entry in self.pd_plot_data[1].items(): 114 | if norm_formula(entry.name) ==\ 115 | norm_formula(target_entry.name): 116 | x_coord = coords[0] 117 | y_coord = coords[1] 118 | fig.add_trace( 119 | go.Scatter( 120 | mode='markers', 121 | x=[x_coord], 122 | y=[y_coord], 123 | marker=dict( 124 | color='rgba(135, 206, 250, 0.5)', 125 | size=30, 126 | line=dict( 127 | color='MediumPurple', 128 | width=4 129 | ) 130 | ), 131 | showlegend=False 132 | ) 133 | ) 134 | if not filename: 135 | filename = get_reaction_filename(self.interfacial_reactions.reaction) 136 | directory = os.getcwd() 137 | directory += "/data/phase_diagrams" 138 | if not os.path.exists(directory): 139 | os.mkdir(directory) 140 | filename = directory + "/" + filename 141 | fig.write_html(filename) 142 | fig.show() 143 | 144 | def get_x_y_values(self): 145 | """ 146 | get the composition-reaction energy values of the plot 147 | Return: x (list): list of composition values 148 | y (list): list of energy values 149 | """ 150 | x, y, z, text, textpositions = [], [], [], [], [] 151 | min_energy_x = None 152 | 153 | offset_2d = 0 154 | offset_3d = 0 155 | energy_offset = -0.1 * self._min_energy 156 | if self._dim == 2: 157 | min_energy_x = min(list(self.pd_plot_data[1].keys()), key=lambda c: c[1])[0] 158 | 159 | for coords, entry in self.pd_plot_data[1].items(): 160 | if entry.composition.is_element: # taken care of by other function 161 | continue 162 | x_coord = coords[0] 163 | y_coord = coords[1] 164 | textposition = None 165 | 166 | if self._dim == 2: 167 | textposition = "bottom left" 168 | if x_coord >= min_energy_x: 169 | textposition = "bottom right" 170 | x_coord += offset_2d 171 | else: 172 | x_coord -= offset_2d 173 | y_coord -= offset_2d 174 | elif self._dim == 3: 175 | textposition = "middle center" 176 | if coords[0] > 0.5: 177 | x_coord += offset_3d 178 | else: 179 | x_coord -= offset_3d 180 | if coords[1] > 0.866 / 2: 181 | y_coord -= offset_3d 182 | else: 183 | y_coord += offset_3d 184 | 185 | z.append(self._pd.get_form_energy_per_atom(entry) + energy_offset) 186 | 187 | elif self._dim == 4: 188 | x_coord = x_coord - offset_3d 189 | y_coord = y_coord - offset_3d 190 | textposition = "bottom right" 191 | z.append(coords[2]) 192 | 193 | x.append(x_coord) 194 | y.append(y_coord) 195 | textpositions.append(textposition) 196 | 197 | if self.emphasize_entries != None: 198 | for target_entry in self.emphasize_entries: 199 | if entry.name == target_entry.name: 200 | text.append(target_entry.name) 201 | else: 202 | text.append("") 203 | else: 204 | 205 | if self.reactions_dict[entry.name]._reactant_entries == \ 206 | self.reactions_dict[entry.name]._product_entries: 207 | text.append(entry.name) 208 | else: 209 | ''' If the entry is made manually, do not text''' 210 | text.append("") 211 | 212 | return (x,y) 213 | 214 | def _create_plotly_stable_labels(self, label_stable=True): 215 | """ 216 | Creates a (hidable) scatter trace containing labels of stable phases. 217 | Contains some functionality for creating sensible label positions. 218 | For kinks (competing phases or decomposition reactions), the labels will 219 | be the decompositions products, e.g., for decomposition reaction: 220 | LiBO2 + BaO -> Ba2Li(BO2)5 + Li6B4O9, the label is 'Ba2Li(BO2)5 + Li6B4O9'. 221 | 222 | Return: go.Scatter (or go.Scatter3d) plot 223 | """ 224 | x, y, z, text, textpositions = [], [], [], [], [] 225 | stable_labels_plot = None 226 | min_energy_x = None 227 | offset_2d = 0.005 # extra distance to offset label position for clarity 228 | offset_3d = 0.01 229 | 230 | energy_offset = -0.1 * self._min_energy 231 | if self._dim == 2: 232 | min_energy_x = min(list(self.pd_plot_data[1].keys()), key=lambda c: c[1])[0] 233 | 234 | for coords, entry in self.pd_plot_data[1].items(): 235 | if entry.composition.is_element: # taken care of by other function 236 | continue 237 | x_coord = coords[0] 238 | y_coord = coords[1] 239 | textposition = None 240 | 241 | if self._dim == 2: 242 | textposition = "bottom left" 243 | if x_coord >= min_energy_x: 244 | textposition = "bottom right" 245 | x_coord += offset_2d 246 | else: 247 | x_coord -= offset_2d 248 | y_coord -= offset_2d 249 | elif self._dim == 3: 250 | textposition = "middle center" 251 | if coords[0] > 0.5: 252 | x_coord += offset_3d 253 | else: 254 | x_coord -= offset_3d 255 | if coords[1] > 0.866 / 2: 256 | y_coord -= offset_3d 257 | else: 258 | y_coord += offset_3d 259 | 260 | z.append(self._pd.get_form_energy_per_atom(entry) + energy_offset) 261 | 262 | elif self._dim == 4: 263 | x_coord = x_coord - offset_3d 264 | y_coord = y_coord - offset_3d 265 | textposition = "bottom right" 266 | z.append(coords[2]) 267 | 268 | x.append(x_coord) 269 | y.append(y_coord) 270 | textpositions.append(textposition) 271 | 272 | # add decompositions products as texts on the plot 273 | r = self.reactions_dict[entry.original_entry.name] 274 | products = [e.name for e in r._product_entries] 275 | text.append(" + ".join(products)) 276 | 277 | 278 | visible = True 279 | if not label_stable or self._dim == 4: 280 | visible = "legendonly" 281 | 282 | plot_args = dict( 283 | text=text, 284 | textposition=textpositions, 285 | mode="text", 286 | name="Labels (stable)", 287 | hoverinfo="skip", 288 | opacity=1.0, 289 | visible=visible, 290 | showlegend=True, 291 | ) 292 | 293 | if self._dim == 2: 294 | stable_labels_plot = go.Scatter(x=x, y=y, **plot_args) 295 | elif self._dim == 3: 296 | stable_labels_plot = go.Scatter3d(x=y, y=x, z=z, **plot_args) 297 | elif self._dim == 4: 298 | stable_labels_plot = go.Scatter3d(x=x, y=y, z=z, **plot_args) 299 | 300 | return stable_labels_plot 301 | def get_plot( 302 | self, 303 | label_stable: bool = True, 304 | label_unstable: bool = True, 305 | 306 | energy_colormap=None, 307 | process_attributes: bool = False, 308 | plt=None, 309 | label_uncertainties: bool = False, 310 | fill: bool = True 311 | ): 312 | """ 313 | Args: 314 | label_stable: Whether to label stable compounds. 315 | label_unstable: Whether to label unstable compounds. 316 | ordering: Ordering of vertices, given as a list ['Up', 317 | 'Left','Right'] (matplotlib only). 318 | energy_colormap: Colormap for coloring energy (matplotlib only). 319 | process_attributes: Whether to process the attributes (matplotlib only). 320 | plt: Existing matplotlib.pyplot object if plotting multiple phase diagrams 321 | (matplotlib only). 322 | label_uncertainties: Whether to add error bars to the hull. 323 | For binaries, this also shades the hull with the uncertainty window. 324 | (plotly only). 325 | fill: Whether to shade the hull. For ternary_2d and quaternary plots, this 326 | colors facets arbitrarily for visual clarity. For ternary_3d plots, this 327 | shades the hull by formation energy (plotly only). 328 | highlight_entries: Entries to highlight in the plot (plotly only). This will 329 | create a new marker trace that is separate from the other entries. 330 | 331 | Returns: 332 | go.Figure (backend="plotly") or matplotlib.pyplot (backend="matplotlib") 333 | """ 334 | fig = None 335 | data = [] 336 | 337 | if self.backend == "plotly": 338 | if self._dim != 1: 339 | data.append(self._create_plotly_lines()) 340 | 341 | stable_marker_plot, unstable_marker_plot = self._create_plotly_markers( 342 | label_uncertainties, 343 | ) 344 | 345 | if self._dim == 2 and label_uncertainties: 346 | data.append(self._create_plotly_uncertainty_shading(stable_marker_plot)) 347 | 348 | if self._dim == 3 and self.ternary_style == "3d": 349 | data.append(self._create_plotly_ternary_support_lines()) 350 | 351 | if self._dim != 1 and not (self._dim == 3 and self.ternary_style == "2d"): 352 | data.append(self._create_plotly_stable_labels(label_stable)) 353 | 354 | if fill and self._dim in [3, 4]: 355 | data.extend(self._create_plotly_fill()) 356 | 357 | data.extend([stable_marker_plot, unstable_marker_plot]) 358 | 359 | 360 | 361 | fig = go.Figure(data=data) 362 | fig.layout = self._create_plotly_figure_layout() 363 | fig.update_layout(coloraxis_colorbar={"yanchor": "top", "y": 0.05, "x": 1}) 364 | 365 | elif self.backend == "matplotlib": 366 | if self._dim <= 3: 367 | fig = self._get_matplotlib_2d_plot( 368 | label_stable, 369 | label_unstable, 370 | 371 | energy_colormap, 372 | plt=plt, 373 | process_attributes=process_attributes, 374 | ) 375 | elif self._dim == 4: 376 | fig = self._get_matplotlib_3d_plot(label_stable) 377 | 378 | return fig 379 | def _create_plotly_markers(self, label_uncertainties=False): 380 | """ 381 | Creates stable and unstable marker plots for overlaying on the phase diagram. 382 | 383 | Return: Tuple of Plotly go.Scatter (or go.Scatter3d) objects in order: ( 384 | stable markers, unstable markers) 385 | """ 386 | 387 | def get_marker_props(coords, entries, stable=True): 388 | """ Method for getting marker locations, hovertext, and error bars 389 | from pd_plot_data. New hovertexts are reaction energy, inverse hull 390 | energy, reaction representation""" 391 | x, y, z, texts, energies, uncertainties = [], [], [], [], [], [] 392 | # add hover information on the plot 393 | for coord, entry in zip(coords, entries): 394 | # add formula, reaction energy 395 | energy = round(self._pd.get_form_energy_per_atom(entry), 3) 396 | entry_id = getattr(entry, "entry_id", "no ID") 397 | comp = entry.composition 398 | 399 | if hasattr(entry, "original_entry"): 400 | comp = entry.original_entry.composition 401 | 402 | formula = comp.reduced_formula 403 | clean_formula = htmlify(norm_formula(formula)) 404 | label = f"Comp: {clean_formula}
" f"React_E: {energy} eV/atom
" 405 | 406 | # add inverse hull energy 407 | if entry.original_entry.composition not in self._pd.terminal_compositions: 408 | invE = get_inverse_hull_energy(entry, self._pd) 409 | label += f"Inv_E: {invE}
" 410 | 411 | # add reaction str representation 412 | label += f"{self.reactions_dict[entry.name].__str__()}" 413 | 414 | if not stable: 415 | e_above_hull = round(self._pd.get_e_above_hull(entry), 3) 416 | if e_above_hull > self.show_unstable: 417 | continue 418 | label += f" (+{e_above_hull} eV/atom)" 419 | energies.append(e_above_hull) 420 | else: 421 | uncertainty = 0 422 | if ( 423 | hasattr(entry, "correction_uncertainty_per_atom") 424 | and label_uncertainties 425 | ): 426 | uncertainty = round(entry.correction_uncertainty_per_atom, 4) 427 | label += f"
(Error: +/- {uncertainty} eV/atom)" 428 | 429 | uncertainties.append(uncertainty) 430 | energies.append(energy) 431 | 432 | texts.append(label) 433 | 434 | x.append(coord[0]) 435 | y.append(coord[1]) 436 | 437 | if self._dim == 3: 438 | z.append(energy) 439 | elif self._dim == 4: 440 | z.append(coord[2]) 441 | 442 | return { 443 | "x": x, 444 | "y": y, 445 | "z": z, 446 | "texts": texts, 447 | "energies": energies, 448 | "uncertainties": uncertainties, 449 | } 450 | 451 | stable_coords, stable_entries = ( 452 | self.pd_plot_data[1].keys(), 453 | self.pd_plot_data[1].values(), 454 | ) 455 | unstable_entries, unstable_coords = ( 456 | self.pd_plot_data[2].keys(), 457 | self.pd_plot_data[2].values(), 458 | ) 459 | 460 | stable_props = get_marker_props(stable_coords, stable_entries) 461 | 462 | unstable_props = get_marker_props( 463 | unstable_coords, unstable_entries, stable=False 464 | ) 465 | 466 | stable_markers, unstable_markers = dict(), dict() 467 | 468 | if self._dim == 2: 469 | stable_markers = plotly_layouts["default_binary_marker_settings"].copy() 470 | stable_markers.update( 471 | dict( 472 | x=list(stable_props["x"]), 473 | y=list(stable_props["y"]), 474 | name="Stable", 475 | marker= dict(color="darkgreen", size=11, line=dict(color="black", width=2)), 476 | opacity=0.9, 477 | hovertext=stable_props["texts"], 478 | error_y=dict( 479 | array=list(stable_props["uncertainties"]), 480 | type="data", 481 | color="gray", 482 | thickness=2.5, 483 | width=5, 484 | ), 485 | ) 486 | ) 487 | 488 | unstable_markers = plotly_layouts["default_binary_marker_settings"].copy() 489 | unstable_markers.update( 490 | dict( 491 | x=list(unstable_props["x"]), 492 | y=list(unstable_props["y"]), 493 | name="Above Hull", 494 | marker=dict( 495 | color=unstable_props["energies"], 496 | colorscale=plotly_layouts["unstable_colorscale"], 497 | size=6, 498 | symbol="diamond", 499 | ), 500 | hovertext=unstable_props["texts"], 501 | ) 502 | ) 503 | 504 | elif self._dim == 3: 505 | stable_markers = plotly_layouts["default_ternary_marker_settings"].copy() 506 | stable_markers.update( 507 | dict( 508 | x=list(stable_props["y"]), 509 | y=list(stable_props["x"]), 510 | z=list(stable_props["z"]), 511 | name="Stable", 512 | marker=dict( 513 | color="black", 514 | size=12, 515 | opacity=0.8, 516 | line=dict(color="black", width=3), 517 | ), 518 | hovertext=stable_props["texts"], 519 | error_z=dict( 520 | array=list(stable_props["uncertainties"]), 521 | type="data", 522 | color="darkgray", 523 | width=10, 524 | thickness=5, 525 | ), 526 | ) 527 | ) 528 | 529 | unstable_markers = plotly_layouts["default_ternary_marker_settings"].copy() 530 | unstable_markers.update( 531 | dict( 532 | x=unstable_props["y"], 533 | y=unstable_props["x"], 534 | z=unstable_props["z"], 535 | name="Above Hull", 536 | marker=dict( 537 | color=unstable_props["energies"], 538 | colorscale=plotly_layouts["unstable_colorscale"], 539 | size=6, 540 | symbol="diamond", 541 | colorbar=dict( 542 | title="Energy Above Hull
(eV/atom)", x=0.05, len=0.75 543 | ), 544 | ), 545 | hovertext=unstable_props["texts"], 546 | ) 547 | ) 548 | 549 | elif self._dim == 4: 550 | stable_markers = plotly_layouts["default_quaternary_marker_settings"].copy() 551 | stable_markers.update( 552 | dict( 553 | x=stable_props["x"], 554 | y=stable_props["y"], 555 | z=stable_props["z"], 556 | name="Stable", 557 | marker=dict( 558 | color=stable_props["energies"], 559 | colorscale=plotly_layouts["stable_markers_colorscale"], 560 | size=8, 561 | opacity=0.9, 562 | ), 563 | hovertext=stable_props["texts"], 564 | ) 565 | ) 566 | 567 | unstable_markers = plotly_layouts[ 568 | "default_quaternary_marker_settings" 569 | ].copy() 570 | unstable_markers.update( 571 | dict( 572 | x=unstable_props["x"], 573 | y=unstable_props["y"], 574 | z=unstable_props["z"], 575 | name="Above Hull", 576 | marker=dict( 577 | color=unstable_props["energies"], 578 | colorscale=plotly_layouts["unstable_colorscale"], 579 | size=5, 580 | symbol="diamond", 581 | colorbar=dict( 582 | title="Energy Above Hull
(eV/atom)", x=0.05, len=0.75 583 | ), 584 | ), 585 | hovertext=unstable_props["texts"], 586 | visible="legendonly", 587 | ) 588 | ) 589 | 590 | stable_marker_plot = ( 591 | go.Scatter(**stable_markers) 592 | if self._dim == 2 593 | else go.Scatter3d(**stable_markers) 594 | ) 595 | unstable_marker_plot = ( 596 | go.Scatter(**unstable_markers) 597 | if self._dim == 2 598 | else go.Scatter3d(**unstable_markers) 599 | ) 600 | 601 | return stable_marker_plot, unstable_marker_plot 602 | 603 | def get_reaction_filename(reaction : Reaction): 604 | """ 605 | Create default interfacial reaction convex hull html file name 606 | Args: 607 | reaction (Reaction): a synthesis planning Reaction object 608 | Return: 609 | a string of saved phase diagram html file name. 610 | """ 611 | target = reaction.target.name 612 | reactants = [r.name for r in reaction.reactants] 613 | return "-".join([target, "_".join(reactants)]) + ".html" 614 | 615 | 616 | def norm_formula(formula): 617 | """ 618 | Transform the formula to a pretty integer formula, such as 'LiO0.5' to 'Li2O' 619 | Args: 620 | formula (string): 621 | Return: 622 | string of a pretty integer formula 623 | """ 624 | return Composition(formula).get_integer_formula_and_factor()[0] 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | -------------------------------------------------------------------------------- /synthesis_planning/materials_entries.py: -------------------------------------------------------------------------------- 1 | ''' 2 | Created on Feb 1, 2023 3 | 4 | @author: jiadongc@umich.edu 5 | ''' 6 | import os 7 | import json 8 | 9 | from pymatgen.entries.computed_entries import ComputedEntry 10 | from pymatgen.analysis.phase_diagram import PhaseDiagram 11 | from pymatgen.ext.matproj import MPRester 12 | # For people who use the new MaterialsProject API: 13 | '''from mp_api import MPRester''' 14 | 15 | from synthesis_planning import settings 16 | 17 | 18 | def getOrigStableEntriesList(els,filename = None): 19 | """ 20 | Guery stable entries from MaterialsProject databse based on chemical elements. 21 | Save the entries in the first time query. 22 | Args: 23 | els (list): list of strings of chemical elements 24 | filename (string): path and filename of the saved entries file 25 | Return: 26 | list of queried entries 27 | """ 28 | directory = os.getcwd() 29 | directory += "/data/entries_files" 30 | if not os.path.exists(directory): 31 | os.makedirs(directory) 32 | s_els = list(els).copy() 33 | 34 | s_els.sort() 35 | if filename == None: 36 | filename = '-'.join(s_els) 37 | 38 | cache = os.path.join(directory, filename) 39 | if os.path.exists(cache): 40 | print('loading from cache. stable entries','-'.join(s_els)) 41 | with open(cache, 'r') as f: 42 | dict_entries = json.load(f) 43 | list_entries = [] 44 | for e in dict_entries: 45 | list_entries.append(ComputedEntry.from_dict(e)) 46 | return list_entries 47 | else: 48 | print('Reading from database.stable entries','-'.join(s_els)) 49 | with MPRester(settings.MPI_KEY) as MPR: 50 | entries = MPR.get_entries_in_chemsys(s_els) 51 | pd = PhaseDiagram(entries) 52 | newentries=[] 53 | for e in pd.stable_entries: 54 | newentries.append(e) 55 | dict_entries = [] 56 | for e in newentries: 57 | dict_entries.append(e.as_dict()) 58 | with open(cache,'w') as f: 59 | json.dump(dict_entries,f) 60 | return newentries 61 | 62 | def getEntriesList(els,filename = None): 63 | """ 64 | Guery all entries from MaterialsProject databse based on chemical elements. 65 | Save the entries in the first time query. 66 | Args: 67 | els (list): list of strings of chemical elements 68 | filename (string): path and filename of the saved entries file 69 | Return: 70 | list of queried entries 71 | """ 72 | directory = os.getcwd() 73 | directory += "/data/entries_files" 74 | s_els = list(els).copy() 75 | s_els.sort() 76 | if filename == None: 77 | filename = '-'.join(s_els) + "_all_entries" 78 | cache = os.path.join(directory, filename) 79 | if os.path.exists(cache): 80 | print('loading from cache. all entries','-'.join(s_els)) 81 | with open(cache, 'r') as f: 82 | dict_entries = json.load(f) 83 | list_entries = [] 84 | for e in dict_entries: 85 | list_entries.append(ComputedEntry.from_dict(e)) 86 | return list_entries 87 | else: 88 | print('Reading from database. all entries','-'.join(s_els)) 89 | with MPRester(settings.MPI_KEY) as MPR: 90 | entries = MPR.get_entries_in_chemsys(s_els) 91 | 92 | dict_entries = [] 93 | for e in entries: 94 | dict_entries.append(e.as_dict()) 95 | with open(cache,'w') as f: 96 | json.dump(dict_entries,f) 97 | return entries -------------------------------------------------------------------------------- /synthesis_planning/reactions.py: -------------------------------------------------------------------------------- 1 | ''' 2 | Created on Feb 1, 2023 3 | 4 | @author: jiadongc@umich.edu 5 | ''' 6 | 7 | from itertools import combinations 8 | 9 | from pymatgen.analysis.reaction_calculator import ComputedReaction 10 | 11 | class SkipReaction(Exception): 12 | pass 13 | 14 | def get_possible_reactions(precursors, product): 15 | """ 16 | get all possible pairwise combinatorial reactions based on precursors and products 17 | Args: 18 | precursors (list): list of reactant entries 19 | product (list): list of product entries 20 | Return: 21 | a list of reactions of pymatgen ComputedReaction objects 22 | """ 23 | combs = list(combinations(precursors, 2)) 24 | reactions = [] 25 | for reactants in combs: 26 | try: 27 | reactants = list(reactants) 28 | reaction = ComputedReaction(reactants, product) 29 | if len(reaction.reactants) == 2 and len(reaction.products)==1: 30 | reactions.append(reaction) 31 | except: 32 | SkipReaction('Reaction can not be compositionally balanced') 33 | return reactions 34 | 35 | class Reaction(): 36 | def __init__(self, target, reactants, 37 | reaction_energy, inverse_hull_energy, 38 | reaction, all_entries, all_phases): 39 | """ 40 | Gather critical information of a chemical reaction 41 | Args: 42 | target (ComputedEntry): product of the reaction 43 | reactants (list): list of reactants entries of the reaction 44 | reaction_energy (float): reaction energy of the reaction 45 | inverse_hull_energy (float): inverse hull energy of the reaction 46 | reaction (ComputedReaction): a pymatgen ComputedReaction object of the reaction 47 | all_entries (list): list of ComputedEntry objects in the reaction compound 48 | convex hull, including kinks (potential competing phases and decomposition 49 | reactions). 50 | all_phases (dict): {kink entry: decomposition entries at the kink} dictionary 51 | """ 52 | self.target = target 53 | self.reactants = reactants 54 | self.reactE = reaction_energy 55 | self.invE = inverse_hull_energy 56 | self.reaction = reaction 57 | self.all_entries = all_entries 58 | self.all_phases = all_phases 59 | self.competing_phases_names = self.get_competing_phases_names() 60 | 61 | def get_competing_phases_names(self): 62 | """ 63 | Get potential competing phases. Competing phases that will appear together 64 | due to the decomposition reactions are in the same sub list. 65 | e.g., for reaction LiBO2 + BaO -> BaLiBO3, there is one competing decomposition 66 | reaction: LiBO2 + BaO -> Ba2Li(BO2)5 + Li6B4O9. So the return result will be 67 | [...,['Ba2Li(BO2)5', 'Li6B4O9'],...] 68 | Return: 69 | list of list of strings. 70 | """ 71 | competing_phases_names = [] 72 | for entry in self.all_phases: 73 | cphases = [] 74 | for j in self.all_phases[entry]: 75 | cphases.append(j.name) 76 | if len(cphases) == 1: 77 | if cphases[0] != self.target.name and\ 78 | cphases[0] not in [react.name for react in self.reactants]: 79 | competing_phases_names += cphases 80 | else: 81 | competing_phases_names.append(cphases) 82 | return competing_phases_names 83 | 84 | def display(self): 85 | """display the reaction information""" 86 | print(self.__str__()) 87 | 88 | def __repr__(self): 89 | """Return: a list of reaction information""" 90 | outputs = [ 91 | self.target.name, 92 | [i.name for i in self.reactants], 93 | self.reactE, 94 | self.invE, 95 | self.reaction.__str__(), 96 | self.competing_phases_names 97 | ] 98 | return outputs 99 | 100 | def __str__(self): 101 | """Return: a string of reaction information""" 102 | outputs = [f"target: {self.target.name}", 103 | f"reactants: {[i.name for i in self.reactants]}", 104 | f"reaction energy: {self.reactE}", 105 | f"inverse hull energy: {self.invE}", 106 | f"reaction: {self.reaction.__str__()}", 107 | f"competing phases: {self.competing_phases_names}" 108 | ] 109 | return "\n"+"\n".join(outputs) 110 | -------------------------------------------------------------------------------- /synthesis_planning/settings.py: -------------------------------------------------------------------------------- 1 | ''' 2 | Created on Feb 1, 2023 3 | 4 | @author: jiadongc@umich.edu 5 | ''' 6 | 7 | """ 8 | MPI_KEY is the Materials Project API key. 9 | 10 | Legacy Materials Project API key for pymatgen.ext.matproj.MPRester can be obtained: 11 | https://legacy.materialsproject.org/open 12 | 13 | New Materials Project API key for mp_api.MPRester can be obtained: 14 | https://materialsproject.org/api 15 | """ 16 | 17 | MPI_KEY = "" -------------------------------------------------------------------------------- /synthesis_planning/synthesis_pathways.py: -------------------------------------------------------------------------------- 1 | ''' 2 | Created on Feb 1, 2023 3 | 4 | @author: jiadongc@umich.edu 5 | ''' 6 | from pymatgen.core.composition import Composition 7 | from pymatgen.entries.computed_entries import ComputedEntry 8 | from pymatgen.analysis.phase_diagram import PhaseDiagram, CompoundPhaseDiagram 9 | 10 | import os 11 | import math 12 | import pandas as pds 13 | 14 | from synthesis_planning.materials_entries import getOrigStableEntriesList 15 | # from myResearch.getOrigStableEntriesList import getOrigStableEntriesList 16 | from synthesis_planning.reactions import get_possible_reactions, Reaction 17 | 18 | class SynthesisPathways(): 19 | def __init__(self, formula : str, 20 | exclude_reactants = [], 21 | selected_reactions_to_csv = True, 22 | normalize_to_pretty_formula = True): 23 | """ 24 | Predict optimal synthesis pathways for a target by minimizing reaction 25 | compound convex hull complexity and save most driving force for the process 26 | from competing phases to the target. 27 | 28 | Args: 29 | formula (str): string of the target formula 30 | exclude_reactants (list): list of strings of formulas to avoid in 31 | reactants. Reactions that have reactants in this list will not 32 | be considered. 33 | selected_reactions_to_csv (bool / string): whether save predicted reactions 34 | to a csv file or not. bool input type corresponds to default filenames, 35 | while string input type corresponds to designated filename. 36 | normalize_to_pretty_formula (bool): whether change the target formula 37 | to a pretty integer formula, i.e., Ba0.3Li0.3B0.3O0.9 changes to BaLiBO3 38 | """ 39 | if normalize_to_pretty_formula: 40 | formula = norm_formula(formula) 41 | self.formula = formula 42 | self.exclude_reactants = exclude_reactants 43 | els = [str(el) for el in Composition(formula).elements] 44 | entries = getOrigStableEntriesList(els) 45 | self.pd = PhaseDiagram(entries) 46 | 47 | target = self.remove_original_target_entry_if_exists_in_hull(entries, formula) 48 | if not target: 49 | # If target is not a stable material but promising to synthesize, 50 | # its should be near the convex hull, representing a near-hull 51 | # metastable stability. We make a fake entry for the target with 52 | # a slightly below the convex hull free energy for simplicity. 53 | # This allows us to do estimate to target materials without structures. 54 | target = self.make_stable_entry_from_comp(Composition(formula)) 55 | self.target = target 56 | 57 | self.reactions = get_possible_reactions(entries, [target]) 58 | 59 | print(f"all possible pairwise reactions: {len(self.reactions)}") 60 | selected_reactions = self.get_target_deepest_reactions() 61 | self.all_pairwise_reactions = self.get_all_pairwise_reactions_info() 62 | self.selected_reactions = self.save_most_energy_for_last_step(selected_reactions) 63 | 64 | if selected_reactions_to_csv: 65 | self.turn_to_csv(selected_reactions_to_csv) 66 | 67 | def turn_to_csv(self, filename): 68 | """ 69 | Save selected predicted reactions to default / designated csv file. 70 | Args: 71 | filename (bool / string) 72 | """ 73 | self.df = pds.DataFrame([react.__repr__() for react in self.selected_reactions], 74 | columns = ['target', 'reactants', 75 | 'reaction_energy(eV/atom)', 76 | 'inverse_hull_energy(eV/atom)', 77 | 'reaction', 78 | 'competing phases']) 79 | if not isinstance(filename, str): 80 | directory = os.getcwd() 81 | directory += "/data/results_files" 82 | if not os.path.exists(directory): 83 | os.mkdir(directory) 84 | filename = self.formula + "_result.csv" 85 | self.df.to_csv(directory + "/" + filename) 86 | else: 87 | self.df.to_csv(filename) 88 | 89 | 90 | def save_most_energy_for_last_step(self, selected_reactions): 91 | """ 92 | Sort the selected predicted reactions based on their inverse hull energies. 93 | A more negative inverse hull energy represents the driving force from competing 94 | phases to the target is greater. 95 | Args: 96 | selected_reactions (list): list of Reaction objects 97 | Return: 98 | list of sorted Reaction objects 99 | """ 100 | if selected_reactions: 101 | selected_reactions = sorted(selected_reactions, 102 | key = lambda x:x.invE) 103 | return selected_reactions 104 | 105 | def get_target_deepest_reactions(self): 106 | """ 107 | Select reactions where the target is the deepest entry in the reaction compound 108 | convex hull. This means the reaction driving force from reactants to the target 109 | is the largest. 110 | Return: 111 | list of Reaction objects0 112 | """ 113 | pd = self.pd 114 | selected_reactions = [] 115 | for reaction in self.reactions: 116 | 117 | reactants = reaction._reactant_entries 118 | # we only consider pairwise reactions 119 | comp1 = reactants[0].composition 120 | comp2 = reactants[1].composition 121 | # exclude reactions with specific reactants 122 | if any(reactant.name in self.exclude_reactants for reactant in reactants): 123 | continue 124 | new_entries, products = self.construct_kinks_entries(pd, comp1, comp2, self.target) 125 | 126 | cpd = CompoundPhaseDiagram(new_entries,[comp1,comp2]) 127 | lowest_entry, depth = self.get_lowest_entry_and_energy(cpd) 128 | 129 | if norm_formula(lowest_entry.name) == norm_formula(self.target.name): 130 | invE = get_inverse_hull_energy(lowest_entry, cpd) 131 | selected_reactions.append( 132 | Reaction( 133 | self.target, 134 | reactants, 135 | depth, 136 | invE, 137 | reaction, 138 | new_entries, 139 | products, 140 | )) 141 | 142 | return selected_reactions 143 | 144 | def get_all_pairwise_reactions_info(self): 145 | pd = self.pd 146 | all_pairwise_reactions = [] 147 | for reaction in self.reactions: 148 | # print(reaction) 149 | reactants = reaction._reactant_entries 150 | # we only consider pairwise reactions 151 | comp1 = reactants[0].composition 152 | comp2 = reactants[1].composition 153 | # exclude reactions with specific reactants 154 | if any(reactant.name in self.exclude_reactants for reactant in reactants): 155 | continue 156 | new_entries, products = self.construct_kinks_entries(pd, comp1, comp2, self.target) 157 | 158 | cpd = CompoundPhaseDiagram(new_entries,[comp1,comp2]) 159 | depth = reaction.calculated_reaction_energy/Composition(self.target.name).num_atoms 160 | # if norm_formula(lowest_entry.name) == norm_formula(self.target.name): 161 | 162 | for e in cpd.stable_entries: 163 | if norm_formula(e.name) == norm_formula(self.target.name): 164 | target_entry = e 165 | invE = get_inverse_hull_energy(target_entry, cpd) 166 | all_pairwise_reactions.append( 167 | Reaction( 168 | self.target, 169 | reactants, 170 | depth, 171 | invE, 172 | reaction, 173 | new_entries, 174 | products, 175 | )) 176 | 177 | return all_pairwise_reactions 178 | 179 | def remove_original_target_entry_if_exists_in_hull(self, entries, formula): 180 | """ 181 | Remove the entry of the formula if it is a stable material in the 182 | MaterialsProject database 183 | Args: 184 | entries (list): list of ComputedEntry objects 185 | formula (string): string of a material's formula 186 | Return: 187 | whether the material is stable. If stable, return the target entry, 188 | else, return False 189 | """ 190 | target = False 191 | for entry in entries: 192 | if norm_formula(entry.name) == norm_formula(formula): 193 | target = entry 194 | if target: 195 | entries.remove(target) 196 | return target 197 | 198 | def make_stable_entry_from_comp(self, comp): 199 | """ 200 | Make a fake stable entry that is slightly below the current convex hull 201 | Args: 202 | comp (Composition): a pymatgen Composition object 203 | Return: 204 | a fake convex hull stable ComputedEntry 205 | """ 206 | 207 | energy = self.pd.get_hull_energy(comp) 208 | new_entry=ComputedEntry(comp, energy-0.001) 209 | return new_entry 210 | 211 | def construct_kinks_entries(self, pd, comp1, comp2, target): 212 | """ 213 | Transfer kinks to entries.The kinks are intersections of the 'comp1-comp2' 214 | reaction compound convex hull slice plane with tie lines or equilibrium 215 | phases along the higher dimensional convex hull 'pd'. These kinks are 216 | potential competing phases or decomposition reactions during the synthesis. 217 | Args: 218 | pd (PhaseDiagram): a pymatgen PhaseDiagram object that formed by all 219 | elements in comp1 and comp2 220 | comp1 (Composition): a pymatgen Composition object of a precursor 221 | comp2 (Composition): a pymatgen Composition object of a precursor 222 | target (ComputedEntry): a pymatgen ComputedEntry the target 223 | Return: 224 | new_entries (list): a list of kinks entries 225 | products (dict): {kink entry: decomposition entries at the kink} dictionary 226 | """ 227 | 228 | cricomps = pd.get_critical_compositions(comp1, comp2) 229 | 230 | new_entries = [] 231 | products = {} 232 | for comp in cricomps: 233 | energy = pd.get_hull_energy(comp) 234 | entry = ComputedEntry(comp, energy) 235 | products[entry] = list(self.pd.get_decomposition(comp).keys()) 236 | new_entries.append(entry) 237 | new_entries.append(target) # in case the target is not in pd 238 | products[target] = [target] 239 | return new_entries, products 240 | 241 | def get_lowest_entry_and_energy(self, cpd): 242 | """ 243 | Select the entry that has the most negative reaction energy versus the 244 | terminal entries in the compound convex hull. 245 | Args: 246 | cpd (CompoundPhaseDiagram): a pymatgen CompoundPhaseDiagram object 247 | elements in comp1 and comp2 248 | Return: 249 | lowest_entry (ComputedEntry): a pymatgen ComputedEntry 250 | depth (float): reaction energy of the lowest_entry 251 | """ 252 | depth = math.inf 253 | for e in cpd.stable_entries: #not new_entries 254 | ener = cpd.get_form_energy_per_atom(e) 255 | if ener < depth: 256 | depth = ener 257 | lowest_entry = e 258 | return lowest_entry,depth 259 | 260 | def get_inverse_hull_energy(cpd_entry, cpd): 261 | """ 262 | get the inverse hull energy of the entry. Inverse hull energy refers to the 263 | reaction energy of the entry versus to its nearby composition entries in the 264 | compound convex hull 'cpd'. 265 | Args: 266 | cpd_entry (TransformedPDEntry / ComputedEntry) 267 | cpd (CompoundPhaseDiagram / PhaseDiagram) 268 | Return: 269 | invE (float): inverse hull energy of cpd_entry 270 | """ 271 | 272 | mod_entries = [] 273 | for e in cpd.stable_entries: 274 | if e.name != cpd_entry.name: 275 | mod_entries.append(e) 276 | mod_cpd = PhaseDiagram(mod_entries,cpd.species_mapping.values()) 277 | 278 | invE = mod_cpd.get_decomp_and_e_above_hull(cpd_entry, 279 | allow_negative=True)[1] 280 | return invE 281 | 282 | def norm_formula(formula): 283 | """ 284 | Transform the formula to a pretty integer formula, such as 'LiO0.5' to 'Li2O' 285 | Args: 286 | formula (string): 287 | Return: 288 | string of a pretty integer formula 289 | """ 290 | return Composition(formula).get_integer_formula_and_factor()[0] 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | --------------------------------------------------------------------------------