Phase Diagram Generator
App slug: phase-diagram Category: Experimentalist Tools
The Phase Diagram Generator builds a convex-hull phase diagram for a selected chemical system using Materials Project entries and pymatgen. It can also evaluate user-submitted candidate phases by inserting them into the phase diagram and computing their energy above hull.
This app is designed for experimental materials scientists who want a quick stability map similar in spirit to OQMD-style phase-diagram tools, but using Materials Project data as the current backend source.
What The App Does
The app can:
- query Materials Project entries for a chemical system such as
Li-Fe-O - build a pymatgen
PhaseDiagram - identify stable phases on the convex hull
- list near-hull unstable phases
- evaluate optional candidate formulas and energies
- report decomposition products for unstable candidates
- generate an interactive HTML phase-diagram plot when supported by pymatgen/Plotly
- export CSV and JSON result files
Inputs
Chemical System
Enter a chemical system using chemsys=.
chemsys=Li-Fe-O
You can also enter the chemical system alone:
Li-Fe-O
The first version supports two, three, or four elements. Binary and ternary systems are the best suited for interactive plots.
Optional Candidate Phase
To evaluate one candidate:
chemsys=Li-Fe-O
formula=LiFeO2
formation_energy=-1.55
Candidate energies can be supplied as:
formation_energy=-1.55
energy_per_atom=-6.20
total_energy=-24.8
You can also add candidates using compact lines:
chemsys=Li-Fe-O
candidate=LiFeO2,-1.55
candidate=Li2FeO3,-1.42
For compact candidate=Formula,energy lines, the dropdown Default candidate energy type controls whether the number is interpreted as formation energy per atom, total energy per atom, or total energy.
Candidate CSV
Optional CSV columns:
| Column | Meaning |
|---|---|
formula or composition | Candidate formula |
formation_energy | Formation energy per atom |
formation_energy_per_atom | Formation energy per atom |
energy_per_atom | Total energy per atom |
total_energy | Total formula/cell energy |
energy | Uses the selected default candidate energy type |
Example:
formula,formation_energy
LiFeO2,-1.55
Li2FeO3,-1.42
Algorithm Summary
The backend workflow is:
1. Parse the chemical system. 2. Query Materials Project entries for the chemical system using mp-api. 3. Build a pymatgen PhaseDiagram from the MP entries. 4. Convert optional candidate phases into ComputedEntry objects. 5. Convert candidate formation energies to total energies using pymatgen elemental references. 6. Rebuild the phase diagram with MP entries plus user candidates. 7. Compute energy above hull for stable, near-hull, and candidate entries. 8. Compute decomposition products for unstable candidates. 9. Export tables, JSON, and an HTML phase-diagram plot.
Outputs
| File | Description |
|---|---|
phase-diagram.html | Interactive pymatgen/Plotly phase diagram when available |
phase-diagram-summary.csv | Candidate, stable, and near-hull phase summary table |
phase-diagram-stable-phases.csv | Stable hull phases |
phase-diagram-unstable-near-hull.csv | Lowest-energy unstable MP phases |
phase-diagram-candidates.csv | User candidate hull results |
phase-diagram-data.json | Machine-readable result data |
Important Notes
This app currently uses Materials Project, not OQMD, as the entry source.
The hull is only as reliable as the energy scale of the entries. If user candidate energies come from a different calculation setup, model, functional, or correction scheme, the absolute energy above hull can be misleading.
For publication-quality results, use internally consistent DFT energies and correction schemes.
Limitations
- Binary and ternary systems are best for visual phase diagrams.
- Quaternary systems are supported mainly through tables.
- OQMD data is not yet integrated.
- Experimental phase diagrams with temperature, pressure, entropy, and non-stoichiometry are not modeled.
- Candidate energies must be compatible with Materials Project-style total energies if absolute hull values are needed.
Acknowledgements
This app uses pymatgen for phase-diagram construction and Materials Project data access through mp-api. Users should cite pymatgen and Materials Project when using the generated results in reports or publications.