├── 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 |
--------------------------------------------------------------------------------