# Introduction

Welcome to the Materials Project.

This is public documentation for the [Materials Project](https://materialsproject.org) (MP). The Materials Project is a decade-long effort from the Department of Energy to pre-compute properties of "materials" and make this data publicly available, with the intent of accelerating the process of materials discovery. In this context, a material can mean either an inorganic crystal (like silicon), or a molecule (like ethylene). Possible applications are vast, but might include better batteries, solar energy, water splitting, optoelectronics, catalysts and more (see [here](https://materialsproject.org/about/publications) for a list of publications).

{% hint style="info" %}
If you notice an error or omission, please let us know at [our user forum located at matsci.org/materials-project](https://matsci.org/materials-project). The Materials Project documentation is a living document and always a work in progress. If you find any errors or opportunities for improvement in these docs, please use the "Edit on Github" button in the right sidebar to suggest changes for us to review. Thank you!
{% endhint %}


# Frequently Asked Questions (FAQ)

This page contains answers to common questions about the Materials Project.

See also our "Glossary of Terms" page which defines common terms in use by Materials Project.

{% content-ref url="/pages/BuNAccHeoTQBXP3ZevIH" %}
[Glossary of Terms](/frequently-asked-questions/glossary-of-terms)
{% endcontent-ref %}

## How do I sign in to the Materials Project?

You can login to the Materials Project either using an existing social identity provider (currently GitHub, Google, Facebook, Microsoft or Amazon) or via an email link.

{% hint style="info" %}
Be aware, your Materials Project account is linked to both your email address and the method that you log in. If you log in via a different method, this will be registered as a new account.
{% endhint %}

Here are some issues people have encountered when trying to sign in the [Materials Project](https://materialsproject.org/) website, and their solutions:

* **I want to log in with my social identity provider (GitHub/Google/Facebook/Microsoft/Amazon), but I can’t.**

  Ensure that your password for your provider is correct (go to their site and log in there), ensure that you have a full name set on that account, and ensure that you allow Materials Project to see your basic profile info (name and email address).

  You also may be behind a firewall that doesn’t allow GitHub/Google/Facebook/Microsoft/Amazon. In that case, use our email based option instead.
* **I appear to sign in OK (the popup goes away), but then I remain on the sign-in screen.**

  It may take a few seconds, depending on your connection, to actually get logged in. This is because we have an external identity provider verify your email address so that we don’t have to store any passwords on our servers.

  You may also have an older browser that won’t work well with our website at all. The latest version of Mozilla Firefox, Google Chrome, or Microsoft Edge will work well. Older versions of Internet Explorer will not work.
* **I tried using the email option several times but haven’t received a login** link.

  We currently don’t do any validation of your email addresses, so if it “looks right”, i.e. you mistype [*myname@gmail.com*](mailto:myname@gmail.com) as *myname@**gmali**.com*, we will still try to send to the wrong address. Also check your "Spam" or "Junk" folder in case the login email has been flagged.

  There is a known issue with Tencent @qq.com addresses, where Tencent throttles delivery and you might not get an email within a reasonable amount of time. Please consider using an alternative to your @qq.com address for login.

## How do I cite Materials Project?

Citations are appropriate wherever Materials Project data, methods or output are used. See this page on the Materials Project website for more information:

{% embed url="<https://materialsproject.org/about/cite>" %}
How to Cite Materials Project
{% endembed %}

There is a canonical Materials Project citation, and additional citations for specific properties or tools. See also the [Database Versions](/changes/database-versions) page for information on how to cite a specific database version.

## Where do the material properties shown on Materials Project come from?

The Materials Project core data is all calculated in-house by the Materials Project team using a variety of simulation methods. To understand the quality of these predictions, it is crucial to read the peer-reviewed publications from the Materials Project where each property is benchmarked as much as possible against known experimental values: this will give an estimate of typical error and, importantly, any systematic error that may be present.

## Why are the lattice parameters different to what I expect?

The same crystal structure can have multiple, equivalent sets of lattice parameters depending on what crystallographic "setting" is used.

Typically, there are two sets of lattice parameters reported. Lattice parameters can be defined for the **primitive** **cell**, which is a definition of the crystal with the fewest number of atoms and therefore convenient for simulations and other uses, and the **conventional cell**, which is typically easier to visualize and more like you will see in textbooks.

If the lattice parameters are very different to what you expect, check the setting first!

Some systematic errors are also present. These will typically be an over-estimation of 1–3% for most crystals. Layered crystals will also typically have significant error in the interlayer distances since van der Waals interactions are not well-described by the simulation methods (PBE) used by Materials Project. These systematic errors will be improved as Materials Project switches to user newer simulation methods (r2SCAN). See [Calculation Details](/methodology/materials-methodology/calculation-details) for more information

## Why is my predicted symmetry of a structure different from the symmetry reported on Materials Project?

Space-group assignments can depend on the symmetry tolerance (`symprec`) used when analyzing structures. The Materials Project database uses the emmet/MP pipeline tolerance (`symprec = 0.1`) which can yield a higher (more symmetric) space group than smaller tolerances (e.g. `symprec = 0.01`) used by tools like `pymatgen`. If you find a different space group with your analysis, try re-checking the `symprec` values to be consistent with different symmetry tools (pymatgen/spglib/VESTA)

## How can I get CIF Files of structures from Materials Project?

If you search for compounds using our [Materials Explorer](https://materialsproject.org/materials), for example by chemical formula or by choosing a set of elements, it will generate a table of all possible computed structures matching the criteria in MP. Clicking on each entry in the table of results will open a detail page for that compound, and from that page, there is a button link to export the structure in multiple formats like CIF, JSON, POSCAR or as a VASP Input Set (MPRelaxSet). There are also options to choose between a conventional or a primitive lattice.

![Materials Explorer interface for exporting structures in different formats](/files/ZEZDoVUVzsYpu1zWnBmd)

## Why is the band gap different to what I expect?

Electronic band gaps are difficult to calculate reliably from first principles, especially using methods that scale well to hundreds of thousands of materials. The method used by the Materials Project (PBE) *systematically underestimates* band gaps.

While it would be possible to provide higher quality calculations for a select number of materials, with more accurate band gaps, it is noted that for materials discovery purposes it is useful to have a dataset that has the same systematic error. See Electronic Structure for more information.

## Why has a value changed on Materials Project?

The Materials Project presents the data it generates in two ways:

1. As individual calculations. These are always the same, and as far as possible Materials Project tries to ensure all historical calculations remain available. Typically, only advanced users will access information about individual calculations.
2. As aggregated information. This is information generated from a combination of individual calculations. This information is what is presented on the public "material details" pages, and is what most users will access. As new, improved calculations are performed, this aggregated information can change.

The Materials Project periodically updates this aggregated information in the form of new database releases. See [Database Versions](/changes/database-versions) for information on the latest database releases.

{% hint style="warning" %}
If performing scientific research with Materials Project data, make sure to cite the database version from which the data was retrieved. See [How to Cite](https://materialsproject.org/about/cite) for more information.
{% endhint %}

## What is a "task\_id" and what is a "material\_id" and how do they differ?

Every database needs a unique key which can be used to distinguish one entry from another. In the Materials Project, each unique material is given a `material_id` (also referred to in various places as mp-id, mpid, MPID). This allows a specific polymorph of a given material to be referenced. For example, wurtzite GaN is assigned the `material_id` of [`mp-804`](https://materialsproject.org/materials/mp-804), while zinc blende GaN is assigned a `material_id` of [`mp-830`](https://materialsproject.org/materials/mp-830).

### How does a "material\_id" get assigned?

The Materials Project is a computational resource. All of the information on a given *material details page* is actually a combination of data generated from many individual calculations or "tasks". It is also important that these tasks also have unique identifiers.

When a task is added to the Materials Project database, it will get an identifier assigned with the format `mp-[0-9]` ("mp-" with numbers after it). These identifiers are assigned sequentially, so smaller numbers usually refer to older calculations. An identifier referring to an *individual calculation task* are known as a `task_id`.

When the Materials Project database is built, a unique material will then have a collection of multiple different task\_ids associated with it. The numerically smallest `task_id` will then become the `material_id`. This ensures that, as new, additional calculations are associated with the same material, its `material_id` should not change.

### In the past, I have seen material\_ids that start with "mvc", what are these?

Some calculation tasks were associated with a search for multivalent cathode materials. These tasks were given the prefix `mvc-` instead of `mp-` and thus some materials also had the prefix `mvc-`. However, this caused confusion and this approach has been retired. Tasks with the prefix `mvc-` still exist since the `task_id` cannot change, but a `material_id` will now always start with an `mp-` prefix by convention provided that at least one task associated with that material has the `mp-` prefix.

### Do material\_ids ever change? Do task\_ids ever change?

A `task_id` will never change. It will always refer to the same, individual calculation task.

A `material_id` might change in rare instances, such as the removal of the `mvc-` prefix, although this is avoided wherever possible.

If a `material_id` *does* change, we ensure a redirect on the website is always in place, and the new `material_id` can also be found programmatically with the API using the `get_material_id_from_task_id()` function. This way, any publications or research that reference an older `material_id` are still valid, and the relevant data can still be retrieved.

## What does \_\_\_\_\_\_ mean?

Consult our glossary here:

{% content-ref url="/pages/BuNAccHeoTQBXP3ZevIH" %}
[Glossary of Terms](/frequently-asked-questions/glossary-of-terms)
{% endcontent-ref %}

If a term is used in Materials Project but is not listed, [let us know](/community/getting-help) and we will add it.


# Glossary of Terms

Terms used by the Materials Project (MP), ordered alphabetically. Some terms are scientific terms while other terms refer to tools used in MP infrastructure.

**Builder.** A builder is a little script written in the Python programming language that helps create new database collection(s) from input database collection(s). It's typically used to allow common analysis tasks to be repeated automatically, for example the calculation of "energies above hull" when new calculations are added to the database. Builders are an essential step in the Materials Project database release process and are formalized with the `emmet` code.

**Chemical system.** On Materials Project, a chemical system is a set of materials whose members all contain the same elements. It is usually noted with as dash-delimited list of elements. For example, the "Ga-In-N" chemical system would contain all materials containing Ga, In or N or combinations of these elements (Ga, In, N2, GaN, InGaN, etc.).

**Correction scheme.** The Materials Project performs calculations using a simulation technique with known systematic errors. A correction scheme is employed to adjust energies based on the elements present in a material to address these systematic errors. Only elements for which sufficient experimental data is available can be corrected.

**Energy above hull.** A measure of a material's thermodynamic stability. This value refers to a mathematical construction that can be calculated from a set of formation energies and compositions known as a convex hull, and often referred to here as a "phase diagram." However, unlike most phase diagrams, convex hulls are usually given without a temperature axis since the simulation technique used (DFT) gives predictions at zero temperature. A material which lies "on the convex hull" is predicted to be thermodynamically stable, while off the hull is predicted to be metastable or unstable. Values above 200 meV/atom are considered very large and suggest an unstable material that might not be synthesizable, however this ceiling differs significantly by chemistry. Energies above hull are given as a guide and subject to both limits of calculation precision (several meV) and also of calculation accuracy due to limitations of the simulation technique used, where errors can be significant in certain chemistries.

**Mixing scheme.** The Materials Project uses two slightly different simulation techniques depending on the elements present in a material. These are GGA (Generalized Gradient Approximation) and GGA+U, where the +U (Hubbard correction) is a correction applied to address systematic deficiencies in GGA when simulating elements with highly localized electrons such as d-orbitals or f-orbitals. Energies from these respective techniques are not directly comparable with each other, so a mixing scheme is employed such that elements can be compared. Details of the mixing scheme can be found in [this paper](https://doi.org/10.1103/PhysRevB.84.045115).


# Changes and Updates

A changelog of Materials Project (MP) updates to the website, documentation, database, and API.

The Materials Project is an active, academic research project. Changes are common as new research methods become available, and the quality and kind of data we present changes, and also as a result of organizational needs. This page summarizes major changes in different aspects of the Materials Project.

## Upcoming Changes

This documentation will continue to be improved. New documentation is currently being written for each of the Materials Project "apps". Some pages may be blank until this is completed.

## Previous Changes

### Database

The Materials Project database is constantly evolving as new and better calculations become available, both as a result of new features and better methods, and also as errors or problems are identified and fixed.

See the following documentation page for a list of changes to the Materials Project database:

{% content-ref url="/pages/f3uEQx4WluTXfpGJty92" %}
[Database Versions](/changes/database-versions)
{% endcontent-ref %}

### API

The Materials Project API has recently undergone a significant modernization effort. The new Materials Project website is exclusively powered by this API.

See the following documentation page for more information:

{% content-ref url="/pages/urJpMBiAABWFI3EnbKiM" %}
[Differences between new and legacy API](/downloading-data/differences-between-new-and-legacy-api)
{% endcontent-ref %}

### Website

The Materials Project has recently undergone a major change in its website architecture. More information on this can be seen in the [release announcement](https://medium.com/materials-project/announcing-a-new-materials-project-2628ded751c).

It is recommended that the URL <https://materialsproject.org> is used as the primary location of the Materials Project website, however a specific website version can be visited via the following links:

* <https://next-gen.materialsproject.org> will always take visitors to the latest Materials Project website with the newest database version available.
* <https://legacy.materialsproject.org> will take visitors to a frozen snapshot of the older Materials Project website. This is powered by an older version of the database with known issues. The legacy website is being left online for some time as we fully transition to the next-gen website, and to allow users time to make any adjustments as necessary for features that may only be available on the legacy website, however the legacy website will be taken offline in due course.

See the website changelog for a detailed list of recent changes:

{% content-ref url="/pages/ItJ3lmjgf9xO8lEuyXNl" %}
[Website Changelog](/changes/website-changelog)
{% endcontent-ref %}

### Documentation

The Materials Project documentation has gone through several iterations, powered previously by MediaWiki and MkDocs software. The current version is powered by GitBook. This switch was made to allow more easy and rapid changes to the documentation, in the hopes of ensuring documentation is maintained at a consistent, high quality.

The current documentation is also available via GitHub at <https://github.com/materialsproject/public-docs>. Edits and improvements from external users are very welcome, please submit a "pull request" with any suggest change or use the "Edit in GitHub" button on the relevant page.

The previous MkDocs documentation is [still available](https://github.com/materialsproject/docs) for the historical record, and the older MediaWiki documentation are currently offline but available on request. However, the current version of the documentation should contain all necessary information including historical information. An effort has been made to ensure URLs remain the same during the transition from the previous MkDocs-powered documentation to the new GitBook-powered documentation.


# Database Versions

A changelog of Materials Project (MP) database releases.

This page contains a summary of major changes for each version of the Materials Project database.

We are aware of a community need for more detailed change logs, and hope to improve our reporting for future database versions.

{% hint style="info" %}
Database versions are labelled via the date they become generally available to the public. For advanced users, the public database label is mapped to an internal pull request number, and this is accessible in the API via the `builder_meta` key.
{% endhint %}

{% hint style="info" %}
You can verify the current database version powering the website on the footer of every page. If you are using the API, there is a `get_database_version` method available.
{% endhint %}

## v2026.04.13

{% hint style="info" %}
This version was made available on S3 (via MP's Open Data repositories) on April 13, 2026 for testing and validation
{% endhint %}

This version went live on June 08, 2026 at around 4:00 pm Pacific

#### Backend Changes

* This release is marks a major transition in MP's data storage layer. *All* core data products are now backed by Delta tables on S3. See [this guide](https://docs.materialsproject.org/materials-project-data-lakehouse) for more information.
  * Native integrations have been added to the `mp-api` Python client to handle these changes. See notes on using local [MPDatasets and Arrow integrations](/materials-project-data-lakehouse/arrow-datasets) for further details + working examples
  * See the `arrow` [MatSci forum subcategory](https://matsci.org/c/materials-project/arrow/) for additional Q\&A or to submit questions

#### New Content

* Added 74,052 new GNoME materials computed at the r2SCAN level of theory
  * This brings the total to 117k GNoME materials. A future release will be dedicated to the final bulk release of the remaining GNoME materials
* Began recompute of all materials in MP's core dataset with r<sup>2</sup>SCAN
  * This data is *not yet integrated* into the core `materials`  collection (or downstream, e.g., `thermo`, `summary`, etc.)
    * Only available in the `tasks` collection for the time being with docs where `batch_id==r2scan_2026_kaplan`
  * Progress: \~26% of non-deprecated, `BY-C` (non-GNoME) materials
  * r<sup>2</sup>SCAN-computed band structures will be added in future releases
* Added new phonon documents generated using the pheasy methodology
  * +26K `material`s now have additional phonon data. Retrievable via `mp-api` by using the `phonon_method` `kwarg` -> `mpr.materials.phonon.search(phonon_method="pheasy")`
  * ChemRxiv link:&#x20;

#### Electronic Structure Collection

* Metadata corrections:
  * Previous releases of the `electronic_structure` collection had inconsistent population of the origins field due to a logic bug. This has been fixed, and the origins field now accurately documents the provenance of the various properties that are aggregated to produce each `electronic_structure` document
* &#x20;More band structure/DOS property coverage:
  * The `electronic_structure` builder previously only aggregated electronic structure data for materials that had *both* a band structure and a DOS, with a fallback of propagating VASP calculation outputs for the material's structure when this condition failed. The builder has been updated to handle materials that have *only* a DOS, *only* a band structure, or *both*, with the same default of propagating VASP outputs when none of the previous conditions are met
  * Resulting increase in coverage:
    * +\~16K materials with associated band structures
    * +\~40 materials with an associated DOS

#### Internal ID Formatting Changes

* We have begun transitioning to [alphabetical identifiers](https://docs.materialsproject.org/data-production/identifiers) internally
  * For backwards compatibility, all existing materials will still be accessible with their old IDs (e.g., `mp-149`) *or* their alphabetical equivalents (`mp-ft`, or even `mp-aaaaaaft`)
    * This applies to the website, the `mp-api` client, and the base REST API
    * "Power" users that utilize the REST api or retrieve data directly from S3 (i.e., interacting with MP's raw data) should be aware that any backwards compatible identifier format rendering for `material_id`s and `task_id`s has to be done manually
  * Newly-added materials will primarily be accessible by their alphabetical IDs

#### EOS, XAS, & Phonon Collection Identifier Changes

* To date, these static collections have used material\_id as their primary key. This may have been accurate when they were first produced, but in many cases the "`material_id`"s associated with these documents have drifted over time as the underlying data and analysis libraries have evolved. This has led to user confusion when matching these documents with materials.
* For the EOS and XAS collections, `material_id` has been changed to `task_id` to better reflect their origins and to allow consistent matching of these documents to the underlying "task" (calculation) from which they were generated.
  * Queries to both the EOS and XAS endpoints (via the `mp-api` Python client) that use the old `material_ids` `kwarg` will still continue to work, but a warning will be emitted asking to use `task_ids`  instead
* The phonon collection is an exception: it now uses a more generic identifier field (literally `identifier`), since the original phonon documents (and the new `pheasy` documents) were never part of a particular "task" and are instead an aggregation of properties. This identifier is still quasi-linked to the corresponding task in the core tasks collection that has the same `task_id` (i.e., where `phonon.identifier == task.task_id`), so that phonon documents can still be accurately linked to `material`s&#x20;

#### Unchanged Collections

* The following collections are unchanged from v2025.09.25 (outside of being backed by Delta tables on S3)
  * `absorption`
  * `alloys`
  * `conversion-electrodes`
  * `elasticity`
  * `insertion-electrodes`
  * `piezoelectric`
  * `provenance`&#x20;
* Subsequent builds will update these collections as more of MP's data pipelines are refactored/modernized

## v2025.09.25

This version went live on Sept. 25, 2025 at about 5:30pm Pacific

#### Insertion Electrode Collection Corrections

Fixed filtering errors that incorrectly excluded GGA+U entries and included r2SCAN entries when building the insertion electrode collection. These corrections:

* Added \~1,200 insertion electrode documents
* Ensured all data in the collection now comes from the same thermodynamic hull (GGA\_GGA+U)

## v2025.06.09

This version went live on June 11, 2025 at about 10:15pm Pacific

**New Content:**

* Migrated [schema](https://github.com/materialsproject/emmet/blob/bcc362a4e375d7a8366c6b611cd57aac672ade13/emmet-core/emmet/core/phonon.py#L805) of legacy phonon data computed with density functional perturbation theory (DFPT) for \~1,500 materials, for consistency with new phonon workflows in atomate2
* New schema allows for efficient storage of phonon band structures and densities of states (DOSes) with parquet

## v2025.04.10

This version went live on April 18th, 2025 at about 2:15pm Pacific

**New Content:**

* Added 30,00 GNoME-originated materials calculated using r2SCAN
* The Kingsbury Lab at Princeton University has contributed 1133 calculations (mixture of PBEsol and r2SCAN calculations)

## v2025.02.12.post1

This version went live on March 21st, 2025 at about 12:00pm Pacific.

This is a patch release addressing localized data issues.

#### Property Origins field

A bug was reported regarding the origins field for certain types of tasks (mp\_api [#960](https://github.com/materialsproject/api/issues/960)). The dielectric, piezoelectric, and absorption collections were affected by this bug, which was then propagated to the aggregate origins field in the summary collection.\
\
This bug only impacted the mapping of task IDs in the origins fields for the affected collections. No changes were made to the underlying data for these collections.

#### Elasticity Collection Updates

Further sanity checks were applied to deprecate additional documents (290 new deprecations) with unreasonable elastic moduli:

* Any documents with elastic moduli (bulk or shear) values outside the range of -100 GPa to 800 GPa were deprecated
* Any documents that failed either of the following elastic modulus requirements were also deprecated:
  * KR <= KVRH <= KV
  * GR <= GVRH <= GV

A backlog issue regarding inconsistencies in how deprecated elasticity documents were displayed in the Materials Explorer interface was also addressed

* Deprecated elasticity documents will no longer appear in the Materials Explorer search interface
* The deprecated documents can still be retrieved via the mp\_api client

## v2025.02.12.post

This version went live on February 28th, 2025 at about 6:30pm Pacific.

This is a patch release addressing localized data issues.

#### Elasticity Collection Updates

* Fixed an input validation error in the elasticity builder's task document processing, emmet [#767](https://github.com/materialsproject/emmet/pull/1199)
* Resolved tensor fitting failures for 2,484 compounds (approximately 28% increase in valid tensors)
* Reduced number of entries with unreasonable elastic moduli ([MatSci forum issue](https://matsci.org/t/unreasonable-elastic-moduli/61426))

## v2025.02.12

This version went live on February 12th, 2025 at about 4pm Pacific.

#### New Content

* Added 1,073 ytterbium (Yb) materials recalculated using the Yb\_3 pseudo-potential and re-relaxed with r2SCAN
* Added \~30 new hybrid inorganic/organic formate perovskites

#### Electronic Structure Data Updates

* Improved consistency of magnetic ordering assignment for structures in the electronic structure and summary collections

#### Battery Explorer/Electrode Collection Updates

* Fixed data loss issue from v2024.12.18 release, restoring missing entries in the electrodes collection as reported on [MatSci](https://matsci.org/t/what-did-the-2024-12-update-bring-to-battery-explorer/60284/1)
* Resolved upstream builder dependencies that caused the initial data loss

## v2024.12.18

This version went live on December 20th, 2024 at about 11pm Pacific.

Major updates include the addition of r2SCAN calculations and improvements to thermodynamic data handling.

**New Content:**

* Added 15,483 GNoME-originated materials calculated using r2SCAN. We remind our users that the GNoME structures are licensed BY-NC (non-commerical purposes). Explicitly accepting theBY-NC license is now required to access the GNoME dataset in the Materials/GNoME explorers and the API. A further release of an additional \~100k GNoME materials is in preparation.

**Core Changes:**

* Modified the `run_type`requirement for the definition of a valid material (`emmet-core`[622f2e3](https://github.com/materialsproject/emmet/commit/622f2e3035b9bcf66bccc653af03618a0d7d84b9)):
  * **Previously**: A material was required to have at least one `GGA(+U)`calculation
  * **Now**: MP accepts materials with only r2SCAN calculations, as going forward MP will be prioritizing r2SCAN workflows
  * This change restored 736 previously deprecated materials

**Thermodynamic Data Updates:**

* New hierarchy for `thermo`data presentation:
  * Affects Materials Explorer and `MPRester().summary` endpoint
  * Resolves display issues on the Materials Explorer for 586 materials with valid thermodynamic data that were found to have failed to generate thermodynamic stability data using MP's [GGA/GGA+U/r2SCAN Mixing scheme](https://docs.materialsproject.org/methodology/materials-methodology/thermodynamic-stability/thermodynamic-stability/gga-gga+u-r2scan-mixing)
  * These values were not passed through to the `summary` endpoint as a strict `thermo_type`of `GGA_GGA+U_R2SCAN`was required
  * New preference order for `thermo_type: GGA_GGA+U_R2SCAN`> `r2SCAN`> `GGA_GGA+U`
  * The `thermo_type`for a material can be found on the material's Material Detail Page under Properties in the Thermodynamic Stability tab

## v2024.11.14

This version went live on December 12th, 2024 around noon Pacific.

* Transition in document schemas for the `tasks` collection:
  * Part of forward-looking transition from `atomate` to `atomate2`workflow orchestration package
  * Previous: `emmet.core.vasp.task_valid.TaskDocument`
  * Current: `emmet.core.tasks.TaskDoc`
  * Accessing fields is slightly different with `TaskDoc` (ex: each `Calculation` in `calcs_reversed` is no longer accessed like a dict, but as a `Calculation` object), but `TaskDoc` should be fully backwards compatible with operations on `TaskDocument`.
  * `TaskDoc` has some advantages over `TaskDocument`, such as dynamically updating `task_type`, `run_type`, and `calc_type`. This would avoid long-term errors such as noted below for certain NSCF calculations, or noted issues with incorrectly parsing r²SCAN meta-GGA calcs as (PBE) GGA
* 21,144 `tasks` were incorrectly assigned a `task_type` of `NSCF Uniform` when they were really `NSCF Line.` `NSCF Uniform` tasks are used to calculate DOSes, `NSCF Line`tasks are used to generate band structure scans. These and associated properties in `materials/summary` (band gaps, DOS, etc.) have been corrected.
* 39,374 materials were mistakenly assigned a DOS from a deprecated `NSCF Uniform` task. These have been corrected and removed
* The current set of 2,047 GNoME-originated materials has been deprecated in preparation for a release of about 120,000 GNoME materials
* While the XAS data has not changed, be sure to update to the newest version of `pymatgen` to avoid issues parsing certain XAS tasks

## v2023.11.1

* Improved and expanded set of elasticity data. Note that there are schema changes with how it is accessed in `SummaryDoc` and `ElasticityDoc`.
* Conversion electrode data added alongside existing insertion electrode data.
* \~10k new materials added, with \~5k deprecated. This includes a temporary deprecation of all compounds containing `Yb` while they are being re-run. This is in response to pseudopotential issues identified which were providing incorrect energies.

## v2022.10.28

This database build incorporates Materials Project’s (R2)SCAN calculations as pre-release data. The default fields returned by the website and API will remain unchanged from the previous release at the GGA(+U) level of theory, but the (R2)SCAN data is now available for advanced users. Either see the “Pre-release Data” section of a relevant material details page, generate an R2(SCAN) phase diagram with the Phase Diagram app, or access the data via the thermo API endpoint. This database release also incorporates several new perovskite materials from a collaboration with Zachary Bare, University of Colorado.

## v2021.11.10

This will be the first release with our new website and API. It does not contain any new data but is built using our new database building methods and is largely consistent with the previous database release. Some changes exist to the previous release due to improvements to detection of multi-anion systems leading to changes in the applied formation energy corrections.

{% hint style="warning" %}
Be aware, database version v2021.11.10 onwards is *only* available on the new Materials Project website and API. The [legacy website](https://legacy.materialsproject.org) and [legacy API](/downloading-data/differences-between-new-and-legacy-api) are frozen to the v2021.05.13 database release.
{% endhint %}

## v2021.05.13

This release updates the energy correction scheme we use to generate phase diagrams and compute formation energies. **As with any new database release, formation energies for many compounds have changed**; however in this case the change is due only to our new energy correction scheme and not to any new data. We are proud to report that the new correction scheme has reduced the overall error in formation energy in our database by 7% compared to experiment.

You can see details of each correction that has been applied by inspecting the `energy_adjustments` attribute of a `ComputedEntry` retrieved via the API. In addition, the new correction scheme is available for manual use via the `MaterialsProject2020Compatibility` class in pymatgen.

We realize that this change may be disruptive to ongoing work, and want to assure you that the historical corrections are still available in pymatgen if needed. They may be recovered by manually reprocessing `ComputedEntry` using the legacy `MaterialsProjectCompatibility` class. An example notebook demonstrating how to do this available [on matgenb 25](https://github.com/materialsvirtuallab/matgenb/blob/3dc1e275f0a9ceadc032d83d71601676530d736e/notebooks/2021-5-12-Explanation%20of%20Corrections.ipynb).

Below we summarize the most significant changes associated with the new `MaterialsProject2020Compatibility` correction scheme. For complete details and documentation, please refer to [this manuscript 32](https://chemrxiv.org/articles/preprint/A_Framework_for_Quantifying_Uncertainty_in_DFT_Energy_Corrections/14593476).

**1. Refitted corrections for legacy species**\
Corrections applied to oxygen compounds, diatomic gases, and transition metal oxides and fluorides have been refit using more up to date DFT calculations and a larger compilation of computed and experimental formation enthalpy data.

**2. Corrections for additional species**\
We have added corrections for Br, I, Se, Si, Sb, and Te, which did not previously have energy corrections. As a result, formation energies for materials containing these species will generally be lower than they were previously.

**3. Diatomic gas corrections moved to compounds**\
Previously, corrections for H, F, Cl, and N were applied to the elements. One consequence of this was that polymorphs of H2, N2, Cl2 and F2 were *always*assigned a zero energy above hull, even if some polymorphs were higher in energy. This made interpretation of these values confusing. With this release, energy corrections are applied to the material (e.g., LiH) and not the element. This also means that unstable polymorphs of diatomic gases will now have non-zero `e_above_hull`

**4. Oxidation state based corrections**\
Our build process now estimates the likely oxidation states of each species in a material, and uses this information to intelligently apply corrections to anionic species only when their estimated oxidation state is negative. For example, in the compound `MoCl3O`, estimated oxidation states for both Cl and O are negative, so both anions receive corrections.

Our algorithms are not always successful in predicting the oxidation state. When this occurs, we apply anion corrections to only the most electronegative element in the material. As a result, some ternary or higher compounds in the database may be destabilized in this release because their oxidation states could not be determined. This is the case for MoCl5O (mp-1196724) for example, which does not receive a Cl correction because O is more electronegative.

If this affects your work, you can manually assign oxidation states by populating the `oxidation_states` key of the `.data` attribute of any `ComputedEntry` and then reprocessing the data using `MaterialsProject2020Compatibility`.

**5. Uncertainty Quantification**\
We now compute the estimated uncertainty associated with the energy corrections on a material. Uncertainties reflect the measured uncertainty in the underlying experimental data that we use to determine the corrections, as well as uncertainty associated with the fitting procedure itself. This information enables new methods of assessing phase stability, as described in [this manuscript 32](https://chemrxiv.org/articles/preprint/A_Framework_for_Quantifying_Uncertainty_in_DFT_Energy_Corrections/14593476)

**A Note for API and MPRester Users**

For API users, if you are retrieving formation energies directly via the API, you will get the correct, latest formation energies from the current database release. However, if you are using `get_entries` or `get_pourbaix_entries` which apply the correction scheme on-the-fly, make sure to update to the latest version of pymatgen (v2022.0.8 or later) to get the correct values. If you are using pymatgen v2021 or earlier, this will use the old correction scheme by default when using `get_entries` and `get_pourbaix_entries`.

## v2021.03.22

This release updates some older materials with new calculations, and adjusts our rules for deprecating older calculations. It does not contain any new materials. Thanks to the new calculations many materials that were previously deprecated are now accessible again. This release is in preparation for a switch to our new compatibility scheme which will improve our predictions of formation energy.

## v2021.02.08

We had a small new database release today, this introduces new higher-quality calculations for around 30,000 materials. It also deprecates 78 materials since we currently do not have calculations for these materials that match our current quality standards; we hope to restore these 78 materials in a subsequent release. For an exact list, please see the attached file.

As a reminder, all historical calculation tasks remain available via our API and the task detail pages, and information on deprecated materials also remain available via the API. More information on our deprecation policy is in our documentation. We continue our work on better ways communicate database diffs and to more easily provide access to historical information, so stay tuned for future announcements here.

[db\_v2020\_09\_08\_to\_v2021\_02\_08\_diff.yaml](https://matsci.org/uploads/short-url/CITebuwCI46kWUbfjIWfMFf6ye.yaml) (376.9 KB)

## v2020.09.08

This releases addresses issues noticed in the previous release with formation energies and updates the energies of approximately 6k materials where this error was greatest. We are planning a further supplemental release.

We’re also looking at ways to put in place a process to be more transparent with database changes and updates to share more specifically what has changed, as well as providing means to access historical versions of the database, since we know this is a common requirement.

Note that, wherever possible, we continue to keep individual historical calculation data available via its *task\_id* even in cases where the aggregated information (such as that presented on the materials detail page) might change.

**V2020.08.20 Released**

In this release we have added thousands of new band structure and density of states calculations, improving our overall material coverage and data quality. Additionally, we have overhauled the plotting for these quantities on the material details page. This is a first step in improving the electronic structure data within the Materials Project as part of our [new tool set 46](https://www.nature.com/articles/s41524-020-00383-7) for band structure calculations.

We are also working through an on-going issue affecting the energies of a small number of materials. In the previous release, we added a large batch of higher-quality calculations for our energetics as well as fixing numerous bugs. However, we discovered an error in our calculation parameters leading to larger energies than expected for a minority of materials and issues such as those discussed [here 27](https://matsci.org/t/inconsistent-energy-between-mp-756366-and-mp-763752-li/4648). We are currently re-running these calculations and will be fixing this data in a supplemental update in the next few weeks. We advise anybody performing large screening studies to do so with caution or wait until this supplemental update has been released.

## v2020.06

In this database release, we have added several thousand materials and many magnetic ground states, improved the quality of our energetics, and fixed many bugs. This database release is part of on-going efforts in 2020 to improve database reliability and quality, following the introduction of our deprecation process last year. There are still known issues with this release which we are working to address, please let us know if you encounter any in our forum.

## **v2019.12.05**

The issue mentioned in 2019-12-04 has now been addressed, however approximately 7% of materials saw errors in their reported energies above hull of greater than 0.05 eV/atom. Values calculated via *pymatgen* or via the phase diagram app on the website during this time were correct, while values reported on the materials details page and via the `e_above_hull` API key were incorrect.

We encourage users who accessed convex hulls from the website between the latest database release and 2019-12-05 to re-check any values obtained from the website.

We apologize for the error, and will be incorporating additional checks into our automated testing to prevent similar errors in the future.

## **v2019.12.04**

We are aware of an on-going issue with the reported energies above hull on the materials detail pages. We will update this thread when a fix has been fully implemented and with further details.

Until this issue is fully resolved, correct energies above hull can be retrieved using *pymatgen* as follows:

```
from pymatgen import MPRester
from pymatgen.analysis.phase_diagram import PhaseDiagram

with MPRester(YOUR_API_KEY_HERE) as mpr:
    # replace with your elements and mp-id of interest
    entries = mpr.get_entries_in_chemsys(['Li','Co', 'O'])
    entry_of_interest = mpr.get_entry_by_material_id('mp-19128')

phase_diagram = PhaseDiagram(entries)
e_above_hull = phase_diagram.get_e_above_hull(entry_of_interest)

print("e_above_hull", e_above_hull)
```

If you have not previously used *pymatgen*, it is a Python code and can be installed using `pip install pymatgen` or `conda install --channel conda-forge pymatgen`.

*Note: the above information for v2019-12-04 is now out of date.*

## v2019.11.21

During deployment of the new v2019.11 database, there was temporary issue with generating interactive phase diagrams leading to incorrect formation enthalpies for a small number of chemical systems. This has now been fixed. Data presented on the materials detail pages was unaffected by this issue.

## v2019.11

* Introduced 3,971 new materials
* Amorphous materials added with `amorphous` tag
* Added `theoretical` which is True when the material matches no known experimental structure from ICSD
* Fixed several inconsistency bugs for `band_gap`, piezo tensors, elastic warnings, and total magnetic moment.

## v2019.05

* Introduced a new `deprecated` field to materials. By default the website and API only search for materials that are not deprecated: {“deprecated”: false}.
* Deprecated 15,000 and added 3,600 new materials. We will be recomputing the deprecated materials to fill these spaces back up. Some of these new relaxations may end up matching current materials, so the total number of materials is not guaranteed to be the same as in V2019.02. This also affects downstream properties. Most notably, \~3k elastic tensors associated with the deprecated materials have been removed from the database and are no longer accessible.
* Fixed an issue with sandboxes not properly building the whole hull. Previously, only the sandboxed chemical systems were being recalculated for energy\_above\_hull searches

## v2019.02

* Added over 47,000 new materials from orderings of disordered ICSD as well as compounds from the Pauling File
* Finalized enforcing symmetry on piezo tensors
* Moved third order elastic data to elasticity\_third\_order so that people are not swamped by the mountain of information associated with it.

## v2018.12

* Adjusted the mp-id naming scheme to fix “mvc” ids taking over old mp-ids.
* Fixed piezoeletric max\_direction to be a miller index rather than a unit vector.

## v2018.11

* Changed the grouping of magnetic materials to aggregate all magnetic orderings of a given material into a single material-id, and report the lowest energy ordering
* Fixed incorrect calculation and display of polycrystalline dielectric constants
* Fixed labeling of all materials as high-pressure. Note we’re parsing ICSD tags for this labeling so while some materials may not conventionally be considered high-pressure, a single matching ICSD entry can tag a material as such. We would love to hear comments on how we could better tag high-pressure materials
* Begun enforcing the symmetry of the structure on piezo tensors. In general, this reduces the expected piezo value.


# Website Changelog

#### 2026-05-22

* Support `AlphaID` display, see more [here](https://docs.materialsproject.org/data-production/identifiers).
* Add XAS explorer popover links
* Add `messageAIO` upload interface
* Add Phonon interactive button and fix access control

#### 2022-12-16 (7ca3bcd3)

* Fix issue with API query, see [here](https://matsci.org/t/rest-query-returned-with-error-status-code-500/45793).
* Better integration between `MPRester` and `MPContribs` API python clients.
  * **Users of the new API should upgrade to `mp-api>=0.30.5` and `mpcontribs-client>=5.0.4`**

#### 2022-12-02 (13f229ed)

* Fix an incorrect unit label for elasticity data on the new website. Thank you to Serge Maalouf for reporting.
  * Data returned from the API was correct and unaffected by this error.
* Fix for insufficient precision in reporting atomic co-ordinates of some materials. Kindly reported by Branton Campbell for the entry `mp-1106336`.
  * Data returned from the API was correct and unaffected by this error.
* An issue with displaying "task detail" pages is resolved.

#### 2022-08-09 (f2aa3e0a)

* Resolved a bug with "MOF Explorer" detail pages not loading.
* We are investigating an issue with the "Crystal Toolkit" app.
  * This was resolved.

#### 2022-07-28 (e7527896)

* Added "Alloy Systems" section to the material details pages.
  * This is a preview of a new feature and is not yet peer-reviewed.
  * More information on the methodology is available [here](https://arxiv.org/abs/2206.10715).
  * Examples of this feature might be seen on the materials detail page for [CdTe](https://materialsproject.org/materials/mp-406) or [GaN](https://materialsproject.org/materials/mp-804).

#### 2022-07-12 (5d802243)

* Fixed an issue with permuted axis labels in the Equations of State plots, kindly reported by [zzyfor2019](https://matsci.org/u/zzyfor2019) on the forum
  * The data returned by the API was correct and unaffected by this error
* Fixed an issue with swapped labels in the Battery Explorer, kindly reported by 施荣鑫 via email
  * The data returned by the API was correct and unaffected by this error


# Documentation Credit

Acknowledgements for the individuals who helped write the Materials Project documentation.

The Materials Project documentation is a collaborative effort between Materials Project staff, contributors, and researchers including graduate students, postdocs and members of the Materials Project community.

A recent list of contributors can be found here:

{% embed url="<https://github.com/materialsproject/public-docs/graphs/contributors>" %}
Recent list of Materials Project documentation contributors.
{% endembed %}

See also the "Documentation Authors" sections on individual documentation pages.


# Getting Help

Resources for getting assistance with your MP questions and needs.

## Materials Science Community Forum at matsci.org

The Materials Project runs a forum at [matsci.org](https://matsci.org) intended as a shared space for several computational materials science projects, as well as general discussion about materials science. For the past several years, this effort has been co-run by the OpenKIM project. See [About matsci.org](https://matsci.org/faq) for more information about the forum and its governance.

All questions are welcome here! See our category at <https://matsci.org/materials-project>.

### Contact

Please reach out to us on the [forum](https://matsci.org/materials-project): if questions or feedback are asked in a public setting, it allows others to benefit from seeing the answer too, and allows more people to participate in the conversation.


# Getting Involved

How to contribute to the Materials Project.

The Materials Project would not be the resource it is today without the sustained efforts of many individual contributors who have helped make the Materials Project better. The Materials Project is a free, academic resource, with only a small team of core maintainers: any help received is always appreciated, and means we can make the Materials Project better for everyone!

There are several ways to get involved:

* If you are a software developer, please refer to the [Contributor Guide](/community/getting-involved/contributor-guide).
* If you are a domain expert, you can join the discussion and help answer questions of less experienced users in our forum at <https://matsci.org/materials-project>.
* If you are a domain expert, you can also notify us of errors on our public forum. Please check the forum for existing solutions and our [FAQ](/frequently-asked-questions) first to ensure that this error is not already known; some common issues arise from a misunderstanding of the data that Materials Project offers.
* If you generate data, either experimental or computational, you can use our contribution platform [MPContribs](/services/mpcontribs) to upload and link your data to the relevant material on Materials Project. This helps us by being able to offer a more complete and helpful resource, and also helps improve the discoverability of your own research by making it available to a wider audience. All uploaded data is credited to the original authors, and will have links to the appropriate publications.
* If you are an advanced user of Materials Project data or codes, you can help us improve documentation and tutorials.
* If you have discovered or know about a new crystal structure that is not present in the Materials Project database, you can submit it to us for calculation to help us offer a more complete database. If you are an advanced user, we may be able to receive calculations directly, but this typically requires prior communication and planning.

Any help is gratefully received, and we work hard to try to give back to the community ourselves wherever possible!


# Contributor Guide

How to get new code into Materials Project repositories.

## Purpose of this Guide

This guide aims to facilitate the process of contributing to any [Materials Project (MP) open source repositories](https://github.com/materialsproject). It offers high-level instructions and guidelines for those who wish to contribute to MP, regardless of the size of the contribution. Whether you're fixing a bug, improving docs, or proposing a new feature, this guide is for you. All contributions are welcome and appreciated!

This guide is a work in progress and will be updated as necessary to reflect changes in MP's practices. If you have any suggestions, don't hesitate to open an issue or a pull request!

**Happy contributing!**

## The Materials Project Software Ecosystem

MP consists of several interconnected parts, each serving a specific purpose that together enable high-throughput computations.

### Official Materials Project Codes

The primary codes that most users are likely to interact with and contribute to are:

* **pymatgen** \[[docs](https://pymatgen.org/)]\[[repo](https://github.com/materialsproject/pymatgen)]: A large Python library for various materials analysis, manipulation and IO between different codes. Can be used on its own for analysis and setting up calculations to be executed manually, or together with the other codes below for a higher level of automation, error correction, and databasing of results.
* **atomate2** \[[docs](https://materialsproject.github.io/atomate2/)]\[[repo](https://github.com/materialsproject/atomate2)]: A library of automated computational workflows for various properties, such as structural relaxations, bandgaps, etc.

The following lower-level codes provide additional critical functions, but most users will likely make contributions to `pymatgen` or `atomate2`.

* **custodian** \[[docs](https://materialsproject.github.io/custodian/)]\[[repo](https://github.com/materialsproject/custodian)]**:** Just in time (JIT) job management software that provides automated, on the fly error correction to calculations as they are running. Many workflows (particularly VASP and Q-Chem) are designed to work closely with `custodian`, although use of custodian is not required.
* **jobflow** \[[docs](https://materialsproject.github.io/jobflow/)]\[[repo](https://github.com/materialsproject/jobflow)]**:** A library for writing and executing workflows. Jobflow defines the base `Job`, `Flow`, and `Maker` classes that are used in `atomate2` to define computational workflow steps.
* **fireworks** \[[docs](https://materialsproject.github.io/fireworks/)]\[[repo](https://github.com/materialsproject/fireworks)]: A software for managing execution of computational workflows, particularly suited for high-performance computing (HPC) environments with queueing systems. Instructions for setting up FireWorks for use with `atomate2` can be found [here](https://materialsproject.github.io/jobflow/install_fireworks.html). `atomate2` workflows can also be run without FireWorks.
* **emmet** \[[docs](https://materialsproject.github.io/emmet/)]\[[repo](https://github.com/materialsproject/emmet/)]**:** Defines structured schemas for storing outputs of different types of calculations performed by the Materials Project team. These comprise both code-specific schemas (e.g., for a VASP relaxation) and code-agnostic schemas (e.g., for any periodic solid material). `emmet` also uses maggma's `Builder` to define data processing pipelines that build the Materials Project database.
* **maggma** \[[docs](https://materialsproject.github.io/maggma/)]\[[repo](https://github.com/materialsproject/maggma)]**:** A framework for building modular data pipelines. maggma's `Store` and `Builder` classes provide a unified interface for accessing and transforming data. `atomate2` uses `Store` to save workflow results into a database or file, and `emmet` uses `Builder` to define the pipelines for processing Materials Project data.
* **crystaltoolkit** \[[docs](https://docs.crystaltoolkit.org/index.html)]\[[repo](https://github.com/materialsproject/crystaltoolkit)]**:** A web app framework that makes it easy for developers to create interactive web apps for materials science data, based on [plot.ly dash](https://dash.plotly.com/).

Because official MP codes are highly interdependent, their development is coordinated by the [MP Software Foundation](https://github.com/materialsproject/foundation). This group of developers meets regularly to establish policies regarding the scope of different packages, coding standards, etc.

### External Tools and Third-Party Codes

Many external or third-party developed codes are built to interoperate with the official MP codes above. An overview of these is available on the [Software Ecosystem page](/community/getting-involved/mp-community-software-ecosystem).

## How to Contribute

This section provides general guidelines for how to make contributions to the MP software ecosystem. If you are brand new to contributing to a software project, we encourage you to first read [#questions-and-answers-for-new-contributors](#questions-and-answers-for-new-contributors "mention").

Note that detailed instructions for setting up a development environment or installing the necessary packages and dependencies for a particular project are not found here. Because they are repository-specific, please consult the documentation of the respective repositories (linked above) for that.

### Types of Contributions

We welcome many types of contributions, some of which require little to no coding experience. Contributions may include:

* Reporting a problem via a GitHub issue
* Testing a new feature
* Proposing a new feature
* Writing documenation
* Writing examples
* Developing graphics, slides, or Jupyter notebooks that aid in training and documentation
* Fixing a bug and submitting a GitHub pull request
* Writing a new feature and submitting a GitHub pull request

### Communication

As you work on a contribution, the best ways to communicate with project maintainers and fellow users are:

* **GitHub Issues**: If you've found a problem or want to propose an idea, open an issue in the relevant repo. This is the first place to go if you need help with something. **Please don't submit how-to and support questions via issues, use GitHub Discussions instead (see below).**
* **Pull Request Comments**: If you want to discuss a specific change proposed in a pull request, use the PR's comments. This allows all discussions about a change to be kept in one place which is easily referenced later.
* **GitHub Discussions**: For more general discussions, use GitHub Discussions. This can be a great place to announce your intent to develop a new feature, ask for feedback on a proposal, discuss a new out-there idea, or get help with a problem.

Remember, it's okay to ask for help and feedback! We all started somewhere, and the MP community is there to help.

### Code of Conduct

Official Materials Project codes implement the [Contributor Covenant code of conduct](https://www.contributor-covenant.org/), which applies to project maintainers as well as all interactions with and among contributors. The overarching principle is to maintain a respectful and inclusive environment. Please read and adhere to these guidelines to ensure a positive and welcoming atmosphere for all contributors.

**TODO - need a link over "these guidelines" (need new PR to implement this)**

#### Contribution Workflow

Materials Project codes are hosted on GitHub and generally follow the [GitHub Flow](https://docs.github.com/en/get-started/quickstart/github-flow) development model. If you're unfamiliar with this process, refer to GitHub [docs](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests) for more information. Briefly, the steps are:

1. **Read this guide**: It provides an important orientation to the overall MP software ecosystem and expectations of code quality, etc.
2. **Check the Discussion boards:** Visit the GitHub discussion board for the project you want to contribute to to see whether anyone is working on something similar. You might find some free help!
3. **Describe your plans:** It's a good idea to post something on the discussion board to register your intentions (especially if you are developing a significant new feature or tutorial). This helps prevent duplication of effort.
4. **Fork and Clone**: Fork the repository you wish to contribute to, then clone it to your local machine.
5. **Create a New Branch**: Always create a new branch for your changes. This keeps your fork's main branch clean and makes it easier to open new pull requests in the future.
6. **Commit Your Changes**: Make your changes and commit them to your local repository.
7. **Push to Your Fork**: Push your changes to your fork.
8. **Open a Pull Request (PR)**: Open a PR against the **upstream** repo you're contributing to. We encourage you to do so EARLY - well before your code is highly developed or even working. You can use the Draft status to show that your PR is not ready for review yet, but having it open allows you to receive feedback from project maintainers and other community stakeholders. You can always mark it as ready for review later.

#### Code Quality Guidelines

Each Materials Project repository adheres to similar code format, testing, and documentation requirements. Although the specifics may vary slightly from repository to repository, the general requirements are as follows:

1. **Code Style**: All code should adhere to [`black`](https://black.readthedocs.io/en/stable/index.html) formatting and [`ruff`](https://beta.ruff.rs/docs/) linting rules, use `snake_case` for variable naming, `PascalCase` for classes, `CONSTANT_CASE` for globals.
2. **Testing**: All new features and bug fixes need tests. These should be implemented using [`pytest`](https://docs.pytest.org/en/7.3.x/), with a new unit test for each bug fix (that fails without the fix and passes with it) and functional tests for each new feature.
3. **Documentation**: Good docs are crucial. Function docstrings should follow the [Google docstring format](https://www.sphinx-doc.org/en/master/usage/extensions/example_google.html) and describe every argument and keyword argument in concise terms, including appropriate units for the input (where applicable). Package documentation should be written in active and concise language, with small, ready-to-run code snippets that allow users to quickly try out new features. Relevant links should be included to allow users to easily find additional context or details e.g. in docs or GitHub issues/pull requests.

## Questions and Answers for new Contributors

### How much experience do I need to contribute?

None! We routinely have new contributors who have not previously been involved in software development, or who are currently learning it as part of their graduate training. We do not have the resources to provide individual mentorship, but we will do what we can to support new contributors.

### How do I get started?

Reading this guide is the first step! After that, we suggest you visit the Discussion board of the GitHub repository for the project you want to contribute to. You can see what people are working on and even make a post to describe what you'd like to contribute to gather feedback.

If you prefer to discuss your plans more privately, don't be shy about reaching out to the package maintainers or other expert users directly.

### Where can I find help?

GitHub Issues for bugs and Discussions for Q\&A (see [#communication](#communication "mention")) are a great place to start. For scientific and troubleshooting questions, you can also post on the [MatSci forums](https://matsci.org/). Finally, reach out to your colleagues, other expert users, or project maintainers.

### How do I add a new workflow? (link to atomate)

See [this guide](https://github.com/materialsproject/atomate2/blob/main/docs/user/key_concepts_overview.md) in the `atomate2` documentation! Note that all new workflows should go into `atomate2` rather than the legacy version of `atomate` (a.k.a., atomate 1). More tutorials for running and analyzing the outputs of `atomate2` workflow can be found [here](https://github.com/materialsproject/atomate2/tree/main/tutorials).

### How do I support a new code in pymatgen?

See this tutorial in the `pymatgen`documentation. You can also draw inspiration from similar PRs. The most recent new code support was parsing AIRSS (ab-initio random structure search) results implemented in [pymatgen#2625](https://github.com/materialsproject/pymatgen/pull/2625).

Alternatively, you can add input/output parsing or analysis tools as separate add-on packages using the `pymatgen.io` and `pymatgen.analysis` namespaces. See [this template](https://github.com/materialsproject/pymatgen-addon-template) to get started, as well as the [`pymatgen-io-validation`](https://github.com/materialsproject/pymatgen-io-validation) toolkit developed with this template to validate MP calculations.

### How do I make a web app to share my data?

We suggest using `crystaltoolkit` , which we built to make it easy to create web apps for materials science. We have a [growing list of example apps on GitHub](https://github.com/materialsproject/crystaltoolkit/tree/main/crystal_toolkit/apps/examples) like this simple starter for rendering an [interactive 3d crystal structure](https://github.com/materialsproject/crystaltoolkit/blob/main/crystal_toolkit/apps/examples/basic_hello_structure_interactive.py). You can find a simple guide [here](https://docs.crystaltoolkit.org/first_component.html).

### How do I know who maintains XXX code?

Check the README file, which is displayed on the main page of each GitHub repository. We do our best to list the currently active maintainers of each repository there

### Getting Credit for your Work

We value community contributions and want to do our best to provide appropriate credit. Some of the ways you can get visible credit for your work include

* Submit a PR to be added to the lists of contributors for a specific code. For example, see
* All MP codes support [`duecredit`](https://github.com/duecredit/duecredit/), which provides function decorators to associate publications with specific functions, classes and modules. You are welcome to include these decorators in your contributions where applicable (e.g. when you re-implement code from a paper, or use parameters from a paper, or contribute code you've created and published about). If in doubt, better to add citations than to not have them.
* If you have developed an external tool that uses one or more MP codes, we invite you to submit it for inclusion on the [ecosystem page](https://github.com/materialsproject/public-docs/blob/main/community/getting-involved/community/getting-involved/mp-community-software-ecosystem.md)
* For `pymatgen` add-ons, submit a PR to be added to the [addons page](https://matsci.org/)

### Can I suggest new structures for MP?

Yes! New structures, especially ones from validated experimental databases, are always welcome suggestions. The team *may* choose to perform DFT geometry optimizations, electronic band structure, etc. calculations for these suggested structures.

MP cannot perform calculations on behalf of external users. We encourage those in need of help performing MP-style workflows to try [`atomate2`](https://materialsproject.github.io/atomate2/).


# Potential Collaborators

The Materials Project welcomes collaborations and strives to maintain an environment where people are encouraged to share their findings as well as their analysis methods.

If you are interested in collaborating with others or are seeking ways to actively contribute:

* Join the weekly infrastructure update Zoom call and listen to decisions being made to improve the Materials Project or bring up a specific item to discuss. To request to attend, [email us](mailto:feedback@materialsproject.org) with the subject line "Request to Join MP Update Call" and a brief introduction as well as the specific item you would like to discuss. Depending on the topic proposed, it might be referred for discussion on the [Materials Project forum](https://matsci.org/materials-project) instead.
* Materials Project hosts annual meetings for discussions among Materials Project Principal Investigators, their research groups, and the infrastructure team. If you have a suggestion for an item to be discussed in this context, please also send us an email. If you are a new member of the Materials Project collaboration, reach out to us so that you can get involved in these meetings directly.
* Reach out to [people who are heavily involved](https://materialsproject.org/about/people) in the Materials Project, especially if you are already contributing to code on [GitHub](https://github.com/materialsproject) (for example, [pymatgen](https://github.com/materialsproject/pymatgen)) and would like to get in work with people who maintain/review these repositories. You can read more about their involvement, field of expertise, current projects and see if their goals align with yours to propose areas of collaboration.


# MP Community Software Ecosystem

Software that directly builds upon core MP infrastructure but is not directly affiliated with MP.

### Overview

Many individuals both affiliated and unaffiliated with MP have published software that directly builds upon core MP resources. This page seeks to highlight such efforts so their hard work can be recognized and so you can learn about new tools that might benefit your own research.

{% hint style="info" %}
Refer to the [Materials Project-hosted codes](/community/getting-involved/contributor-guide#official-materials-project-codes) section in the Contributor Guide for the main packages that are directly supported by the Materials Project. A full list can be found on the [`materialsproject`](https://github.com/materialsproject) GitHub organization page.
{% endhint %}

### The MP Community Software Ecosystem

{% hint style="info" %}
This list is not exhaustive. If you would like to make a suggestion to add here, please contact **TODO**.\
\
All listed programs must use one of the primary [Materials Project-hosted codes](/community/getting-involved/contributor-guide#official-materials-project-codes) as a core dependency in a non-artificial way and be actively maintained (defined here as a commit within the last year).
{% endhint %}

* [AMSET](https://github.com/hackingmaterials/amset): AMSET is a package for calculating electronic transport properties from first-principles calculations.
* [automatminer](https://github.com/hackingmaterials/automatminer): An automatic engine for predicting materials properties.
* [CHGNet](https://github.com/CederGroupHub/chgnet): Pretrained universal neural network potential for charge-informed atomistic modeling
* [Doped](https://github.com/SMTG-Bham/doped): doped is a python package for setting up, parsing and analysing ab-initio defect calculations.
* [IFermi](https://github.com/fermisurfaces/IFermi): Fermi surface generation, analysis and visualisation.
* [LobsterPy](https://github.com/JaGeo/LobsterPy): Package to perform automatic bonding analysis with the program Lobster in the field of computational materials science and quantum chemistry
* [matbench-discovery](https://github.com/janosh/matbench-discovery): An evaluation framework for machine learning models simulating high-throughput materials discovery.
* [matcalc](https://github.com/materialsvirtuallab/matcalc): A python library for calculating materials properties
* [matgl](https://github.com/materialsvirtuallab/matgl): Graph deep learning library for materials
* [matminer](https://github.com/hackingmaterials/matminer): Data mining for materials science
* [matsciml](https://github.com/IntelLabs/matsciml): Open MatSci ML Toolkit is a framework for prototyping and scaling out deep learning models for materials discovery supporting widely used materials science datasets, and built on top of PyTorch Lightning, the Deep Graph Library, and PyTorch Geometric.
* [mispr](https://github.com/molmd/mispr): A software for automating materials science computations
* [NanoParticleTools](https://github.com/BlauGroup/NanoParticleTools): NanoParticleTools tools is a python module that facilitates monte carlo simulation of Upconverting Nanoparticles (UCNP) using [RNMC](https://github.com/BlauGroup/RNMC)
* [pyEQL](https://github.com/KingsburyLab/pyEQL): A Python library for solution chemistry
* [pymatviz](https://github.com/janosh/pymatviz): A toolkit for visualizations in materials informatics.
* [PyTASER](https://github.com/WMD-group/PyTASER): Python package to simulate differential absorption of crystals from first principles
* [PyXtal](https://github.com/qzhu2017/PyXtal): A code to generate atomic structure with symmetry
* [quacc](https://github.com/Quantum-Accelerators/quacc): quacc is a flexible platform for computational materials science and quantum chemistry that is built for the big data era.
* [reaction-network](https://github.com/materialsproject/reaction-network): Reaction Network is a Python package for predicting likely inorganic chemical reaction pathways using graph theoretical methods.
* [robocrystallographer](https://github.com/hackingmaterials/robocrystallographer): Automatic generation of crystal structure descriptions.
* [ShakeNBreak](https://github.com/SMTG-Bham/ShakeNBreak): Defect structure-searching employing chemically-guided bond distortions
* [SMACT](https://github.com/WMD-group/SMACT): Python package to aid materials design and informatics
* [smol](https://github.com/CederGroupHub/smol): Statistical Mechanics on Lattices
* [sumo](https://github.com/SMTG-Bham/sumo): Heavyweight plotting tools for ab initio calculations
* [surfaxe](https://github.com/SMTG-Bham/surfaxe): Dealing with slabs for first principles calculations of surfaces
* [WFacer](https://github.com/CederGroupHub/WFacer): Modulated automation of cluster expansion based on atomate2 and Jobflow

  \\


# Community Resources

Links to Materials Project (MP) Community Resources and information about the MP Workshop.

[Materials Project Website](https://materialsproject.org/)

[Materials Project Forum (matsci.org)](https://matsci.org/c/materials-project/8/l/latest)

[Materials Project Github](https://github.com/materialsproject)

[Materials Project Youtube Channel](https://www.youtube.com/c/MaterialsProject/playlists)

## Past MP Workshop Materials

To increase open access for the scientific the community, recordings and materials from the Materials Project Workshops are released publicly.

[MP Workshop Python Primer](https://www.youtube.com/watch?v=nO0vvZpyDEA\&list=PLTjFYVNE7LTiJBX4IYu_XY3C5kRUZLnn6)

[2021 MP Workshop Youtube Recordings (Virtual Workshop)](https://www.youtube.com/watch?v=kMClBnOejXk\&list=PLTjFYVNE7LTi6kGvPAF7DDQYj0KDL-vQL)

[2020 MP Workshop Youtube Recordings](https://www.youtube.com/watch?v=vga6eV3IAac\&list=PLTjFYVNE7LTiuOK8Re7ltY0a3OHFcQhAE)

[2020 MP Workshop Bilibili Recordings](https://www.bilibili.com/video/BV1Uz4y1f7L5/)

[2019 MP Workshop Youtube Recordings](https://www.youtube.com/watch?v=a6Zsbu1xpGo\&list=PLTjFYVNE7LThQriSxXUIr_Wkg9tUcoax5)


# Code of Conduct

Guidance for conduct within the Materials Project (MP) organization.

The Materials Project does not have a unified code of conduct at present since it is a joint, collaborative effort, and different aspects of the Materials Project, such as its different open-source codes, are led and maintained by different individuals at different institutions.

However, as guidance, we refer all contributors to the [Contributor Covenant](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) for setting expectations for each other. Text from the Contributor Covenant is copied below.

We have set up the <conduct@materialsproject.org> email address for any issues involving inappropriate conduct.

### Our Pledge <a href="#our-pledge" id="our-pledge"></a>

We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.

### Our Standards <a href="#our-standards" id="our-standards"></a>

Examples of behavior that contributes to a positive environment for our community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others’ private information, such as a physical or email address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting


# MPContribs

Introduction to MP's contribution platform MPContribs

**MPContribs** provides a [platform](https://contribs.materialsproject.org) and [Application Programming Interface (API)](https://contribs-api.materialsproject.org) to contribute computational as well as experimental data to Materials Project. Data on MPContribs is collectively maintained as annotations to existing MP materials (or formulas and chemical systems), and automatically exposed to over 440,000 MP users. The platform serves as the backbone for data and apps contributed to MP while leaving full ownership and control over the data with contributors. Contributed data is automatically shown on MP's [materials details pages](https://materialsproject.org/materials/mp-22987/#contributed_data) or its disambiguation pages for formulas and chemical systems. A dedicated landing page is provided for each MPContribs project which can be used to reference the dataset in journal publications through Digital Object Identifiers (DOIs) provided by MP in collaboration with the DOE Office of Scientific and Technological Information ([OSTI](https://www.osti.gov/)). The MPContribs [python client](https://pypi.org/project/mpcontribs-client/) can be used to programmatically retrieve, upload and modify contributed data.

See below for an overview of its [concepts](#concepts). Continue with the following sections in MP's documentation to learn more:

* [Explore Contributed Data](/apps/explore-contributed-data)
* [Download Contributed Data](/downloading-data/query-and-download-contributed-data)
* [Contribute your own Data](/uploading-data/what-is-mpcontribs)

## Concepts

Each MPContribs deployment is organized into **projects**. The MP account creating the project becomes its owner. An owner can ask for the MP accounts of their collaborators to be given access to their project. A collaborator assumes the same level of permissions within a project as the owner.

A project contains a list of **contributions** to existing MP materials (or alternatively to formulas and chemical systems). It's in the owner's purview to decide what exactly constitutes a project. Often this will simply be an umbrella for a dataset containing contributions to MP materials that are comparable in their scientific context and thus are consistent in their data schema.

Any MP account can create (or be an owner of) a maximum of 3 projects at any time. Project owners can immediately start adding up to 500 contributions to their project without approval from MP. To add more contributions or to publish the project, project owners or their collaborators can reach out to [MPContribs administrators](mailto:contribs@materialsproject.org) to obtain approval. Project owners can reach out to MPContribs admins to request that a DOI be issued for their project.

By default, projects are set to private, i.e. only visible to owners and their collaborators. Each individual contribution in a project is set to public by default and thus automatically released to the public when the project is published. Since the public/private flag can be controlled for each contribution individually, some contributions in a project can be kept private even if the project is public. The public/private state of a project and its contributions can be changed/reverted at any time.

A single contribution constitutes a small blob of data assigned and linked to the according MP material through identifiers such as MP's [materials IDs](/frequently-asked-questions#what-is-a-task_id-and-what-is-a-material_id-and-how-do-they-differ), formulas or chemical systems. In addition to these identifiers, each individual contribution can contain the following four components:

* A **data** component containing hierarchically organized key-value data (think nested dictionaries). In its flattened format, this component can contain a maximum of 50 keys/fields each of which becomes a **column** in the overview table on the [project landing pages](/apps/explore-contributed-data). Nested fields in the data dictionary are organized as grouped columns on the landing page table. Any data types included in the data component become queryable, filterable and sortable using a wide variety of [operators](/downloading-data/query-and-download-contributed-data#programmatically). Also see the [API documentation](https://contribs-api.materialsproject.org) for a generic list of available filters.
* A **structures** component containing a list of up to 10 [pymatgen structures](https://pymatgen.org/pymatgen.core.structure.html#pymatgen.core.structure.Structure) with optionally customized names. A string in the format used for Crystallographic Information Files (CIFs) is stored with each structure and can be retrieved through the API or downloaded through the project landing pages.
* A **tables** component containing a list of up to 10 [pandas DataFrames](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html). This component is intended for the inclusion of 2D spectra (think CSV files) with each contribution. A [Plotly graph](https://plotly.com/python/) is generated for each table and included in the according contribution detail page for visualization purposes. Each DataFrame's name and other attributes (title, axis labels, ...) needed to configure the Plotly graph can be controlled via the Dataframes' `attrs` attribute. The total number of table rows is stored and all table cells formatted automatically. The API paginates the table rows for more efficient data retrieval. Each table can be downloaded as CSV programmatically or through the project landing pages.
* An **attachments** component containing a list of up to 10 [MPContribs Attachments](https://github.com/materialsproject/MPContribs/blob/4d5fe7b02ef2e65c02229bb4b74f2a1c8ce77307/mpcontribs-client/mpcontribs/client/__init__.py#L319-L393) with customized names. Attachments can be gzipped text files (CSV, JSON, ...) or images in PNG, JPEG, GIF, or TIFF formats. An attachment can either be created directly from a file path or from a python list or dictionary using the `mpcontribs.client.Attachment.from_data()` method. Each attachment can be up to 2.4 MB large. Attachment meta-data are queryable but not its contents (think e-mail attachments).

Duplicate structures, tables, and attachments are only saved once internally but referenced by all contributions they were submitted with. See the section about [contributing data](/uploading-data/what-is-mpcontribs) for more information and examples.


# ML & AI applications

This section summarizes the ways in which Materials Project and its collaborators' data and tools can help with the development of new ML methods.

*These pages are under active development as we improve the quality of our documentation on ML applications and ML-dataset accessibility.*

### Motivation

Predicting the properties of materials, such [as those computed by the Materials Project](https://docs.materialsproject.org/methodology/total-energies/) and [its collaborators](https://next-gen.materialsproject.org/contribs), can be an expensive and time-consuming undertaking. Synthesizing, characterizing, and experimentally validating novel materials in the physical world is vastly more expensive.

New techniques based on ML are a promising avenue for reducing the time and cost of materials development by multiple orders of magnitude. These include direct prediction of physical properties from structural or chemical composition information, and direct prediction of the materials potential energy surface by "foundation potentials" (FPs), AKA universal machine learning interatomic potentials (MLIPs).

Using information such as crystal structure, chemical composition, and electronic bandstructures as inputs, ML models can be trained to predict otherwise expensive or computationally prohibitive properties. More, ML can help scientists generate novel ideas for highly complex tasks like solid-state synthesis and crystal structure determination with heretofore unobtainable physical insights. In practice, this means scientists can screen enormous chemical and configurational search spaces in the pursuit of stable, cheap, and highly performant materials.


# MatBench

Tools for assessing the ability of machine learning models to predict materials properties, similar to ML community standards like ImageNet

## MatBench

With Alex Dunn of Anubhav Jain's group. Data stored at a dedicated MPContribs site here:\
<https://ml.materialsproject.org>

Machine learning requires large amounts of clean and reliable data to train new effective\
algorithms. Since the data in the Materials Project is curated and calculated using\
consistent techniques, it is an ideal source of training and benchmarking data.

### Data Access

[Matbench](https://matbench.materialsproject.org) is a Materials Project effort offering diverse datasets available specifically for training, benchmarking, and evaluating machine learning models. These datasets aim to fill a similar purpose within the materials science field as ImageNet did for the development of computer vision algorithms. These Matbench datasets have been [curated, cleaned and standardized](https://doi.org/10.1038/s41524-020-00406-3) specifically for ML applications.

<figure><img src="/files/4KN6DX5orHEUvpkBKyJN" alt="" width="254"><figcaption></figcaption></figure>

Matbench consists of data sourced both from the Materials Project and also from external sources with:

* The number of samples spanning between 312 and 132,000 entries
* Both experimental and calculated data included
* Data with and without structural information
* A variety of electronic, thermal, thermodynamic, and mechanical properties

<figure><img src="/files/OcNvo9U9aRWNZWPGvLlO" alt="" width="375"><figcaption></figcaption></figure>

The datasets are available through a variety of means:

* Interactively, via [MPContribs-ML](https://ml.materialsproject.org)
* Programmatically, via the [matbench](https://github.com/materialsproject/matbench) python package
* Direct download, via the [Benchmark Info Page](https://matbench.materialsproject.org/Benchmark%20Info/matbench_v0.1/) on the leaderboard website

Please consult the [publication](https://doi.org/10.1038/s41524-020-00406-3) \[1] and [leaderboard website](https://matbench.materialsproject.org) for more information.

### Public leaderboard

A core concern of the development of new ML models is being able to compare and evaluate different\
algorithms consistently. The Matbench initiative is also designed specifically for the purpose of\
comparing materials property prediction algorithms.

Using the Matbench framework, researchers who develop new models can submit their model scores to the Materials Project, and **submissions are open to everyone**!

For more information on how to submit, see our [official documentation](https://matbench.materialsproject.org/How%20To%20Use/1install/).

Along with the [leaderboard](https://matbench.materialsproject.org/), the matbench website also provides for all submissions:

* Detailed and complete information about every benchmark via the [Full Benchmark Data](https://matbench.materialsproject.org/Full%20Benchmark%20Data/matbench_v0.1_Ax_CrabNet_v1.2.1/) page.
* Raw data of every prediction (and optional uncertainties) on the [source repository](https://github.com/materialsproject/matbench)
* [Per-task leaderboards](https://matbench.materialsproject.org/Leaderboards%20Per-Task/matbench_v0.1_matbench_dielectric/) for non-general purpose or specialized algorithms
* Full citation info and statistics for all submissions

<figure><img src="/files/ztwp4xBv7k43UO0sxR5N" alt="" width="563"><figcaption></figcaption></figure>

See [this dedicated site](https://matbench.materialsproject.org) for more information on the leaderboard and the current best-performing algorithms.

### Tools

Several tools have been developed specifically to work with Materials Project code and data for the\
purposes of machine learning. Some of these tools have been developed within the Materials Project, and\
others developed externally.

#### Automatic featurization with Matminer

[Matminer](https://hackingmaterials.lbl.gov/matminer/) is a do-all Python toolbox for machine learning with materials.

* assigning features to materials primitives (like crystal structures) using routines adapted from peer-reviewed literature
* access to MatBench datasets and other datasets
* create your own datasets with access to multiple online repositories, such as Materials Project, AFLOW, and the Materials Data Facility

<figure><img src="/files/ReBHQExjRfwknzoA9y0Z" alt="" width="375"><figcaption></figcaption></figure>

<figure><img src="/files/6ESQww1OoKYaaqPHaLsE" alt="" width="375"><figcaption></figcaption></figure>

Matminer is developed by the [Hacking Materials group](https://hackingmaterials.lbl.gov).

#### "AutoML" for Materials Science with Automatminer

[Automatminer](https://hackingmaterials.lbl.gov/automatminer/) is a fully-automatic engine for predicting materials properties. It automatically determines the appropriate feature sets to apply, generates features and applies feature reduction routines, and searches a large space of ML models and hyperparameters to determine the optimal machine learning pipeline for the problem. Automatminer can be trained and deployed entirely without human tuning, and requires as few as 10 lines of code to train a full pipeline.

<figure><img src="/files/PY30ut9SJwWoQvzf4RfM" alt="" width="375"><figcaption></figcaption></figure>

Automatminer is developed by the [Hacking Materials group](https://hackingmaterials.lbl.gov), led by Alex Dunn.

## References:

\[1] A. Dunn, Q. Wang, A. Ganose, D. Dopp, and A. Jain, npj Computational Materials 6 (2020) ([DOI](https://doi.org/10.1038/s41524-020-00406-3))


# Matbench Discovery

With Janosh Riebesell of Alpha Lee's and Kristin Persson's groups

[Matbench Discovery](https://matbench-discovery.materialsproject.org/) is a platform and framework for evaluation for machine learning models simulating high-throughput materials discovery. See its documentation and paper \[1] for an overview of the methods used to assess ML models.

## References

\[1] J. Riebesell, R. E. A. Goodall, P. Benner, Y. Chiang, B. Deng, G. Ceder, M. Asta, A. A. Lee, A. Jain, and K. A.\
Persson, *Nature Mach. Intell.* vol. 7, pp. 836–847, yr. 2025. ([DOI](https://doi.org/10.1038/s42256-025-01055-1))


# MPtrj

The Materials Project contains a large set of relaxation data across its entire database. These relaxation "trajectories," along with single-point data, for the PBE GGA and GGA+U calculations are stored in the [tasks](https://docs.materialsproject.org/frequently-asked-questions#what-is-a-task_id-and-what-is-a-material_id-and-how-do-they-differ) collection of Materials Project. Deng *et al.* collated the energies, forces, stresses, structures, and on-site magnetic moments (when available) from this ionic step data, and used it to train a graph neural network, CHGNet \[1], for the potential energy surface of most of the periodic table.

The collected dataset is called *MPtrj* in the [CHGNet](https://chgnet.lbl.gov/) \[1]. Subsets of MPtrj were used in the earlier universal machine learning interatomic potentials (MLIPs) [M3GNet](https://matgl.ai/) \[2] and later ones such as MACE-MP-0 \[3].

The original MPtrj dataset is hosted on MPContribs ([explorer](https://next-gen.materialsproject.org/contribs/projects/MPtrj_2022_9)) ([bulk download](https://s3.us-east-1.amazonaws.com/materialsproject-contribs/MPtrj_2022_9/MPtrj-2022.9_full.parquet)) with a parquet format bulk download. An example notebook for working with parquet data is also [available](https://s3.us-east-1.amazonaws.com/materialsproject-contribs/MatPES_2025_1/working_with_parquet_data.ipynb).

### References

\[1] B. Deng, P. Zhong, K.J. Jun, J. Riebesell, K. Han, C. J. Bartel, and G. Ceder. "CHGNet as a pretrained universal neural network potential for charge-informed atomistic modelling". *Nature Mach. Intell.*, vol. 5, pp. 1031–1041, yr. 2023. ([DOI](https://doi.org/10.1038/s42256-023-00716-3)) ([original figshare](https://figshare.com/articles/dataset/Materials_Project_Trjectory_MPtrj_Dataset/23713842?file=41619375))

\[2] C. Chen and S.P. Ong, "A universal graph deep learning interatomic potential for the periodic table". *Nature Comput. Sci.*, vol. 2, pp. 718–728, yr. 2022. ([DOI](https://doi.org/10.1038/s43588-022-00349-3))

\[3] I. Batatia *et al.*, "A foundation model for atomistic materials chemistry". arXiv:2401.00096v3, yr. 2025. ([DOI](https://doi.org/10.48550/arXiv.2401.00096))


# r2SCAN datasets

Development of robust, high fidelity datasets for training universal machine learning interatomic potentials

## MatPES

The materials potential energy surface (MatPES) collaboration aims to generate low noise, high coverage small datasets of DFT-computed properties (energies, forces, stresses, magnetic moments, etc.) for training universal machine learning interatomic potentials.

The data is generated with the [`MatPESStaticSet`](https://github.com/materialsproject/pymatgen/blob/f9d9fe8e0ce09ef30cc03bcc4e9937d27afd5a6a/src/pymatgen/io/vasp/sets.py#L1655) in pymatgen, with efficient PBE and r<sup>2</sup>SCAN workflows implemented in [atomate2](https://github.com/materialsproject/atomate2/blob/457f017fd82ecfb67aec10c794600874bfbbeaf7/src/atomate2/vasp/flows/matpes.py#L25).

The full dataset can be[ downloaded from MPContribs](https://materialsproject-contribs.s3.amazonaws.com/index.html#MatPES_2025_1/) and uses the [MatPESTrainDoc schema](https://github.com/materialsproject/emmet/blob/56840ac7110096636565809cd72036fbb064392e/emmet-core/emmet/core/ml.py#L393) from `emmet-core`

## MP-ALOE

In a similar vein, Kuner *et al.* \[2] sought to expand both the size and chemistries chosen in an r<sup>2</sup>SCAN dataset, and used an active learning method to explore under-sampled regions of the potential energy surface. The resultant Materials Project active learning of off-equilibrium structures (MP-ALOE) dataset contains \~900,000 r<sup>2</sup>SCAN calculations which are compatible with MatPES.

**\[WIP]** MP-ALOE will similarly be available on MPContribs (explorer) (bulk download).

## References:

\[1] A. D. Kaplan, R. Liu, J. Qi, T. W. Ko, B. Deng, J. Riebesell, G. Ceder, K. A. Persson, and S. P. Ong, “A\
foundational potential energy surface dataset for materials,” arXiv:2503.04070, yr. 2025 ([DOI](https://doi.org/10.48550/arXiv.2503.04070)) ([MPContribs explorer](https://next-gen.materialsproject.org/contribs/projects/MatPES_2025_1)) ([website](https://matpes.ai/))

\[2] M.C. Kuner, A.D. Kaplan, K.A. Persson, M. Asta, and D.C. Chrzan, "MP-ALOE: An r<sup>2</sup>SCAN dataset for universal machine learning interatomic potentials". arXiv:2507.05559, yr. 2025. ([DOI](https://doi.org/10.48550/arXiv.2507.05559)) ([original figshare](https://doi.org/10.6084/m9.figshare.29452190.v2))


# MP + LLMs (MCP)

Model context protocols for integrating Materials Project data with large lanuage models.

While large lanugage models (LLMs) are often trained on a fraction of the Materials Project data via web scraping, they lack more detailed data which is only accessible once logged into your account. Certain LLMs can leverage tools to access databases via [model context protocol (MCP)](https://modelcontextprotocol.io/docs/getting-started/intro). With version `0.46.0` of MP's API client, `mp_api`, an MCP server is included to help with agentic database retrieval.

This guide describes the tools available, in development, and setup for the MP MCP. A "tool" in MCP world simply describes a function which an LLM can use in a task. The inputs and outputs of a tool must (roughly) be JSONable.

## Tools

MP's MCP is designed to be agnostic to the agent using it. Thus we have designed the MCP with key `fetch` and `search` tools which are compatible with [OpenAI's ChatGPT requirements](https://developers.openai.com/api/docs/mcp/#create-an-mcp-server). The `search` tool performs bulk retrieval of materials data from MP, with limited metadata attached to it. The `fetch` tool can then be used to retrieve more detailed information for a single material.

`search` accepts searching either via chemical formula, dash-delimited chemical system (ex: `"Na-Cl"`), or by keywords. If a formula or chemical system are input, the `materials.summary` collection (the primary data you see on a materials web page) will be queried directly. If keywords are used, the `robocrys` automatically generated crystal description is queried instead.

`fetch` can then be used to aggregate metadata across the `materials.summary`, `materials.similarity`, and `materials.robocrys` endpoints. Specifically, crystallographic and thermodynamic information from `summary`, crystallographically similar materials from `similarity`, and `robocrys` automatically generated descriptions are aggregated.

If submitting a Materials Project ID, `fetch` will return that document, if it exists. `fetch` also accepts a chemical system or formula, and will return only the most stable result in that space.

### In-development

The next release of the API client will also include the following tools:

* `fetch_all`: to retrieve detailed metadata for all materials in MP
* `fetch_many`: to retrieve up to 100 detailed entries from MP
* `get_phase_diagram_from_elements`: to obtain phase diagram information from MP

As well as a CLI tool `mpmcp` which will locally deploy an MCP server.

## Setup

The MP MCP is based on [`fastmcp`](https://gofastmcp.com/getting-started/welcome). You will also need [`uv`](https://docs.astral.sh/uv/) to handle package management for the MCP's environment.

To start, run from a shell:

```console
git clone https://github.com/esoteric-ephemera/mp_api.git
cd mp_api
git checkout v0.46.0
pip install -e '.[mcp]'
```

In the following, ensure you have `$MP_API_KEY` set as an environment variable. Assume these commands are run from the `mp_api` directory.

The following setup guides are in alphabetical order. These specific examples have been tested by the Materials Project staff and should not be construed as an endorsement of any particular architecture, model, corporation, etc.

### Anthropic Claude Desktop

```console
fastmcp install claude-desktop $(pwd)/mp_api/mcp/server.py --project $(pwd) --python 3.12 --env MP_API_KEY=$MP_API_KEY
```

You may need to initialize the JSON file containing the MCP server configurations. For MacOS users, run this:

```console
echo '{"mcpServers": {}}' > ~/Library/Application\ Support/Claude/claude_desktop_config.json
```

Windows and Linux users will need to modify the path to their desktop application.

### Google Gemini CLI

```console
fastmcp install gemini-cli $(pwd)/mp_api/mcp/server.py --project $(pwd) --python 3.12 --env MP_API_KEY=$MP_API_KEY
```

### OpenAI Codex

To modify only the local directory and therefore only access the MCP once in the API client code directory, run this code block:

```console
mkdir .codex
printf "[mcp_servers.materials_project_mcp]\ntype = \"command\"\ncommand = \"uv\"\nargs = [\n  \"run\",\n  \"--extra\",\n  \"mcp\",\n  \"--directory\",\n  \"$(pwd)\",\n  \"python\",\n  \"-m\",\n  \"mp_api.mcp.server\",\n]\nenv = {\"MP_API_KEY\" = \"$MP_API_KEY\"}" > .codex/config.toml
```

If you instead want to use the MCP with your Codex environment generally, append to the configuration file at your home:

```console
printf "\n[mcp_servers.materials_project_mcp]\ntype = \"command\"\ncommand = \"uv\"\nargs = [\n  \"run\",\n  \"--extra\",\n  \"mcp\",\n  \"--directory\",\n  \"$(pwd)\",\n  \"python\",\n  \"-m\",\n  \"mp_api.mcp.server\",\n]\nenv = {\"MP_API_KEY\" = \"$MP_API_KEY\"}" >> ~/.codex/config.toml
```


# Materials Methodology

Overview of methodology for materials-related calculations and analyses on the Materials Project (MP).


# Overview

An overview of materials methodology.

This section provides a list of methodologies used in computational materials science to calculate properties of materials.

### What is a material?

The term materials is used quite loosely, and has become more inclusive as the materials science community branches out to various areas of physics and chemistry. The conventional textbook definition of materials is divided, by chemical composition, into three classes: metals, ceramics and polymers.

Metallic materials are composed of, as the name suggests, metals. This class of materials is commonly seen in applications where structural integrity is important; jet engines, for example, have to use an alloy of up to 15 types of metals to remain structurally sound despite the high temperature generated by combustion.

Ceramic materials are mostly oxides of metals. Some staple ceramic materials include Lead Zirconate Titanate (PZT) and CoO<sub>2</sub>. The former is the most commonly used piezoelectric (this type of materials converts mechanical work into electrical work) while the latter is the most commonly used Lithium ion battery cathode.

Polymer materials are the result of polymerization of organic monomer molecules. As a relatively new materials class, polymers have received much research attention due to their versatility. Polymers are ubiquitious in modern life in the form of plastics. Furthermore, polymer research in materials science also branches out to biological areas like drug delivery and tissue regeneration.

Another way to classify materials is by their use case; in this scenario materials are classified into structural and functional materials. Structural materials serve to protect the structural integrity of something, for example, a car frame. Functional materials serve a particular function (other than supporting weight), for example: doped semiconductors which emit particular color of light when packaged as a light emitting diode (LED); battery elecrodes/electrolytes; piezoelectrics for accurate timekeeping, and magnetic materials used in medical technology like MRIs.

In short, materials science focuses on the joint of physics and chemistry and works on coming up with designs that satisfy a particular need in our real world.

### What kind of properties do we care about?

Depending on the intended usage of our calculated data, there are different sets of properties that we care about:

* Electronic structure:
  * Band structure
  * Electronic density of states
  * Magnetism
  * Electronic charge density
    * Partial charges
    * Multipole moments (dipole, quadrupole, etc.)
  * Piezoelectricity
  * Dielectric constants
* Atomic structure:
  * Crystal structure
  * Elastic constants
  * Ionic conducivity / mobility
  * Phonon spectra
  * Thermodynamic equations of state
* Electron-phonon coupling and its effects on the above properties

And many more that we haven't mentioned here!

### How do we calculate/predict these properties?

In computational materials science, we use Ab Initio (from first principles) methods to simulate the behavior of particles in the systems we're interested in. For materials data on the Materials Project, the majority of our work is done using Vienna Ab Initio Simulation Package (VASP), which primarily uses Density Functional Theory (DFT) to calculate many properties from first principles.


# Calculation Details

Details of calculation parameters for the density functional theory (DFT) calculation results contained in the Materials Project (MP) database.

We use DFT as implemented in the Vienna Ab Initio Simulation Package (VASP) software [\[1\]](#references) to evaluate the total energy of compounds. For the exchange-correlational functional, we employ a mix of Generalized Gradient Approximation (GGA) and GGA+*U*, or a mix of GGA, GGA+U, and r2SCAN. Both mixing schemes are [described here](/methodology/materials-methodology/thermodynamic-stability/thermodynamic-stability). All calculations are performed at 0 K and 0 atm. All computations are performed with spin polarization on and with magnetic ions in a high-spin ferromagnetic initialization (the system can of course relax to a low spin state during the DFT relaxation). For a select number of materials, alternate spin states are searched for. Details on this can be found in the [Magnetic Properties section](/methodology/materials-methodology/magnetic-properties).

Input structures are sourced from many different places, including the Inorganic Crystal Structure Database (ICSD). [\[2\]](#references) We relax all cell and atomic positions in our calculation two times in consecutive runs. When multiple crystal structures are present for a single chemical composition, we attempt to evaluate all unique structures as determined by an affine mapping technique. [\[3\]](#references)

More detailed information on the GGA/GGA+U and r2SCAN calculations run by the Materials Project can be found in the following two subsections:

{% content-ref url="/pages/caDA65fTcpzFVmMZlWFi" %}
[GGA/GGA+U Calculations](/methodology/materials-methodology/calculation-details/gga+u-calculations)
{% endcontent-ref %}

{% content-ref url="/pages/auYtsX2akEwuhyGKEjAK" %}
[r2SCAN Calculations](/methodology/materials-methodology/calculation-details/r2scan-calculations)
{% endcontent-ref %}

## References

\[1]: Kresse, G. & Furthmuller, J., 1996. Efficient iterative schemes for ab initio total-energy calculations using a plane-wave basis set. Physical Review B, 54, pp.11169-11186.

\[2]: G. Bergerhoff, The inorganic crystal-structure data-base, Journal Of Chemical Information and Computer Sciences. 23 (1983) 66-69.

\[3]: R. Hundt, J.C. Schön, M. Jansen, CMPZ - an algorithm for the efficient comparison of periodic structures, Journal Of Applied Crystallography. 39 (2006) 6-16.


# GGA/GGA+U Calculations

Details on GGA and GGA+U calculations run by the Materials Project

{% content-ref url="/pages/K6OvpCvi55YfcUsHbUVU" %}
[Parameters and Convergence](/methodology/materials-methodology/calculation-details/gga+u-calculations/parameters-and-convergence)
{% endcontent-ref %}

{% content-ref url="/pages/eTVYpxu8oRe51V3Y9vuz" %}
[Hubbard U Values](/methodology/materials-methodology/calculation-details/gga+u-calculations/hubbard-u-values)
{% endcontent-ref %}

{% content-ref url="/pages/FzABf12hNXv84iPPKS60" %}
[Pseudo-potentials](/methodology/materials-methodology/calculation-details/gga+u-calculations/pseudopotentials)
{% endcontent-ref %}


# Parameters and Convergence

Parameter and convergence details for GGA and GGA+U calculations run by the Materials Project

## Calculation Parameters

We use the Projector Augmented Wave (PAW) method for modeling core electrons with an energy cutoff of 520 eV. This cutoff corresponds to 1.3 times the highest cutoff recommended among all the pseudopotentials we use (more details can be found in the [pseudopotentials section](/methodology/materials-methodology/calculation-details/gga+u-calculations/pseudopotentials)). A baseline k-point mesh of 1000/(number of atoms in the cell) is used for all computations. Specifically, the Monkhorst-Pack method is used for the k-point choices (with $$\Gamma$$-centered for hexagonal cells), and the tetrahedron method is used to perform the k-point integration. It is important to note that Pymatgen has the ability change those default parameters if they are not adequate for the computation (e.g., switch to another k-point integration scheme). Some details of our calculation method can be found in ref [\[1\]](#references); however, the Materials Project has updated many parameters as documented throughout the Methodology sections. The most up-to-date input sets can be [found here](https://github.com/materialsproject/pymatgen/tree/master/src/pymatgen/io/vasp).

### Total energy convergence

As mentioned, we currently employ a k-point mesh of 1000 per reciprocal atom (pra). However, we have performed a convergence test of total energy with respect to k-point density and convergence energy difference for a subset of chemically diverse compounds for a previous parameter set, which employed a smaller k-point mesh of 500 pra. Using a 500 pra k-point mesh, the numerical convergence for most compounds tested was within 5 meV/atom, and 96% of compounds tested were converged to within 15 meV/atom. Results for the new parameter set will be better due to the denser k-point mesh employed. Convergence will depend on chemical system; for example, oxides were generally converged to less than 1 meV/atom. [\[2\]](#references)

### Structure convergence

The energy difference for ionic convergence is set to 0.0005 \* natoms in the cell. Data on expected accuracy on cell volumes can be found in a previous paper. [\[1\]](#references) We have found these parameters to yield well-converged structures in most instances; however, if the structures are to be used for further calculations that require strictly converged atomic positions and cell parameters (e.g. elastic constants, phonon modes, etc.), we recommend that users re-optimize the structures with tighter cutoffs or in force convergence mode.

## Authors

1. Shyue Ping Ong

## References

\[1]: A. Jain, G. Hautier, C. Moore, S.P. Ong, C.C. Fischer, T. Mueller, K.A. Persson, G. Ceder., A High-Throughput Infrastructure for Density Functional Theory Calculations, Computational Materials Science. vol. 50 (2011) 2295-2310.

\[2]: L. Wang, T. Maxisch, G. Ceder, Oxidation energies of transition metal oxides within the GGA+U framework, Physical Review B. 73 (2006) 1-6.


# Hubbard U Values

Details on Hubbard U corrections used by the Materials Project

## Hubbard U Values

It is well-known that first principles calculations within the local density approximation (LDA) or generalized gradient approximation (GGA) lead to considerable error in calculated redox reaction energies of many transition metal compounds. This error arises from the self-interaction error in LDA and GGA, which is not canceled out in redox reactions where an electron is transferred between significantly different environments, such as between a metal and a transition metal or between a transition metal and oxygen or fluorine. Extensive discussion of this issue can be found in the following works. [\[1-4\]](#references)

In the Materials Project, we have calibrated $$U$$ values for many transition metals of interest using the approach outlined in Wang et al.'s work [\[5\]](#references). At the present moment, $$U$$ values have only been calibrated for transition metal oxide systems. $$U$$ values were calibrated for the following elements: $$\text{Co}$$, $$\text{Cr}$$, $$\text{Fe}$$, $$\text{Mn}$$, $$\text{Mo}$$, $$\text{Ni}$$, $$\text{V}$$ and $$\text{W}$$. The choice of systems to which we apply $$U$$ was largely determined by our experience and by systematic benchmarking. It is very likely that we will expand calibration of $$U$$ values to more chemical systems in the future.

In the Materials Project, for an oxide or fluoride material with a transition element listed previously, with the VASP input settings constructed according to the logic defined in [pymatgen](https://github.com/materialsproject/pymatgen/blob/master/pymatgen/io/vasp/MPRelaxSet.yaml).

Note that for fluorides, the $$U$$ value gets set to the one calibrated from the oxide system, although in principle our architecture allows different $$U$$ values to be set for oxides and fluorides respectively.

### Calibration and Values

The $$U$$ values were obtained by fitting to experimental binary formation enthalpies as described in Wang et al.'s work. This method is simple yet accurately reproduces phase stabilities. A least squares method of obtaining the correct $$U$$ value was used, as follows:

1. For each non-overlapping formation energy reaction considered, we find the region where the formation energy error passes zero. For the $$\text{V-O}$$ system, this includes the following:
   * $$2\text{V}\_2\text{O}\_3 + \text{O}\_2 \rightarrow 4 \text{VO}\_2$$
   * $$4 \text{VO}\_2 + \text{O}\_2 \rightarrow 2\text{V}\_2\text{O}\_5$$
2. For each formation energy region identified, we fit the linear equation $$\begin{align} \mbox{Error/redox} & = m U + c \end{align}$$ to the final $$U$$ range. In the case of $$\text{V}$$, we will have two sets of $$(m,c)$$.
3. We find the *U* value that minimizes the sum of square Error / Redox.
4. In the case of $$\text{V}$$, we get a $$U$$ value of 3.25.

The full list of U values used is described in the table below. For oxides and fluorides containing any of the elements, only GGA+U calculations are performed.

<table><thead><tr><th>Element</th><th width="357">System</th><th>Fitting Reaction</th><th>Redox Couple</th><th>Calibrated U (eV)</th><th>Comments</th></tr></thead><tbody><tr><td>Co</td><td>Oxides</td><td><span class="math">6\text{CoO} + \text{O}_2 \rightarrow 2 \text{Co}_3\text{O}_4</span></td><td><span class="math">\text{Co}^{2+} \rightarrow\text{Co}^{2.67+}</span></td><td>3.32</td><td></td></tr><tr><td>Cr</td><td>Oxides</td><td><span class="math">2/3\text{Cr}_2 \text{O}_3 + \text{O}_2 \rightarrow 4/3 \text{CrO}_3</span></td><td><span class="math">\text{Cr}^{3+} \rightarrow \text{Cr}^{6+}</span></td><td>3.7</td><td></td></tr><tr><td>Fe</td><td>Oxides</td><td><span class="math">6\text{FeO} + \text{O}_2 \rightarrow 2 \text{Fe}_3 \text{O}_4</span><br><span class="math">4\text{Fe}_3\text{O}_4 +\text{O}_2 \rightarrow 6 \text{Fe}_2 \text{O}_3</span></td><td><span class="math">\text{Fe}^{2+} \rightarrow \text{Fe}^{2.67+}</span><br><span class="math">\text{Fe}^{2.67+} \rightarrow \text{Fe}^{3+}</span></td><td>5.3</td><td></td></tr><tr><td>Mn</td><td>Oxides</td><td><span class="math">6 \text{MnO} + \text{O}_2 \rightarrow 2 \text{Mn}_3\text{O}_4</span><br><span class="math">\text{Mn}_3\text{O}_4 + \text{O}_2\rightarrow 3 \text{MnO}_2</span></td><td><span class="math">\text{Mn}^{2+} \rightarrow \text{Mn}^{2.67+}</span><br><span class="math">\text{Mn}^{2.67+} \rightarrow \text{Mn}^{4+}</span></td><td>3.9</td><td><span class="math">\text{Mn}_2\text{O}_3</span> was explicitly excluded from calibration set due to the large number of atoms in its unit cell.</td></tr><tr><td>Mo</td><td>Oxides</td><td><span class="math">2 \text{MoO}_2 + \text{O}_2 \rightarrow 2 \text{MnO}_3</span></td><td><span class="math">\text{Mo}^{4+} \rightarrow \text{Mo}^{6+}</span></td><td>4.38</td><td></td></tr><tr><td>Ni</td><td>Oxides</td><td><span class="math">\text{Li}_2 \text{O} + 2\text{NiO} + 1/2 \text{O}_2 \rightarrow 2 \text{LiNiO}_2</span></td><td><span class="math">\text{Ni}^{2+} \rightarrow \text{Ni}^{3+}</span></td><td>6.2</td><td>Binary formation energies are not readily available for Ni. The Ni U calibration was performed using a ternary oxide formation energy.<a href="#references">[5]</a></td></tr><tr><td>V</td><td>Oxides</td><td><span class="math">2 \text{V}_2 \text{O}_3 + \text{O}_2 \rightarrow 4 \text{VO}_2</span><br><span class="math">4 \text{VO}_2 + \text{O}_2 \rightarrow 2 \text{V}_2 \text{O}_5</span></td><td><span class="math">\text{V}^{3+} \rightarrow \text{V}^{4+}</span><br><span class="math">\text{V}^{4+} \rightarrow \text{V}^{5+}</span></td><td>3.25</td><td><span class="math">\text{VO}</span> was explicitly excluded from calibration due to its known metallic nature.</td></tr><tr><td>W</td><td>Oxides</td><td><span class="math">2 \text{WO}_2 + \text{O}_2 \rightarrow 2 \text{WO}_3</span></td><td><span class="math">\text{W}^{4+} \rightarrow \text{W}^{6+}</span></td><td>6.2</td><td></td></tr></tbody></table>

### Caveats

The U values are calibrated for phase stability analyses, and should be used with care if applied to obtain other properties such as band structures. Also, the U values depend on the pseudopotential used. Further, typically, U values should be site specific, however in our approach, U values were applied to all sites with an element listed above, and only to the d-orbitals. A discussion of the pseudopotentials used in the Materials Project can be found [here](https://docs.materialsproject.org/methodology/materials-methodology/calculation-details/pseudopotentials).

## References

\[1]: F. Zhou, M. Cococcioni, C. A. Marianetti, D. Morgan and G. Ceder. First-principles prediction of redox potentials in transition-metal compounds with LDA+U. Physical Review B, 2004, 70, 235121. <doi:10.1103/PhysRevB.70.235121>

\[2]: M. Cococcioni, S. de Gironcoli, Linear response approach to the calculation of the effective interaction parameters in the LDA+U method. Physical Review B, 2005, 71, 035105. <doi:10.1103/PhysRevB.71.035105>

\[3]: L. Wang, T. Maxisch, & G. Ceder. Oxidation energies of transition metal oxides within the GGA+U framework. Physical Review B. 2006, 73, 195107, <doi:10.1103/PhysRevB.73.195107>

\[4]: A. Jain, G. Hautier, S. P. Ong, C. Moore, C. Fischer, K. A. Persson, & G. Ceder. Formation enthalpies by mixing GGA and GGA + U calculations. Physical Review B, 2011, 84(4), 045115. <doi:10.1103/PhysRevB.84.045115>

\[5]: M. Wang, A. Navrotsky Enthalpy of formation of LiNiO2, LiCoO2 and their solid solution, LiNi1-xCoxO2, Solid State Ionics, vol. 166, no. 1-2, pp. 167-173, Jan. 2004.


# Pseudo-potentials

Description of the pseudo-potentials (PSP) used in the GGA and GGA+U calculations.

{% hint style="info" %}
On 2023-05-02, we changed the Yb PSP in *all* VASP input sets from `Yb_2` to `Yb_3` as `Yb_2` gives incorrect thermodynamics for most systems with Yb3+. See [pymatgen#2968](https://github.com/materialsproject/pymatgen/issues/2968) for details. We are also recomputing all Yb compounds in MP for an upcoming database release. The release notes will highlight this change.
{% endhint %}

Pseudopotentials are used to reduce computation time by replacing the full electron system in the Coulombic potential by a system only taking explicitly into account the "valence" electrons (i.e., the electrons participating into bonding) but in a pseudopotential. This approach not only reduces the electron number but also the energy cutoff necessary (this is critical in plane-wave-based computations). All computations in the materials project have been performed using a specific type of very efficient pseudopotentials: the projector augmented wave (PAW) pseudopotentials. [\[1\]](#references) We used the library of PAW pseudopotentials provided by VASP but for a given element there are often several possibilities in the VASP library. This wiki presents how the choices between the different pseudopotential options were made.

## The strategy

As a test set, we ran all elements and binary oxides present in the ICSD with the available PAW pseudopotentials. As it is difficult to test for all properties (structural, electronic, etc...), we chose to be inclusive and to select the pseudopotential with the largest number of electrons (high e) **except** if convergence issues were seen on our test set, or if previous experience excluded a specific pseudopotential. We also excluded pseudopotentials with too large an energy cutoff.

We also compared to recommendations from the VASP manual present in [1](https://www.vasp.at/wiki/index.php/Available_PAW_potentials).

Finally, as we had energies for elements and binary oxides, we compared binary oxide formation energies with the available pseudopotentials. The oxygen molecule energy was obtained from Wang et al. Please note that this data is pure GGA and some chemistries (e.g., transition metals) will give extremely bad formation energy results in GGA. This is not an issue with the pseudopotential but with the functional, so we do not focus on that issue in this wiki.

## Pseudopotential comments and choice

### Summary

The PBE GGA and PBE+U calculations in the Materials Project use older pseudopotentials, some of which are no longer distributed by VASP. In particular, the Ce, Eu, Gd, Ge, Li, Mg, and Na POTCARs come from a pre-March 2002 release, and are no longer distributed by VASP. The rest of the POTCARs listed below can be approximated by the POTCARs in[ the PBE 2010 release](https://vasp.at/wiki/Available_pseudopotentials#LDA_\(2010\),_PW91_\(2006\)_and_PBE_\(2010\)_PAW_potentials), which is still distributed by VASP.

These POTCARs are selected by the [MPRelaxSet](https://github.com/materialsproject/pymatgen/blob/821893487db356bc4d2b5414de592c2abc32a261/src/pymatgen/io/vasp/MPRelaxSet.yaml#L84) in pymatgen.

| Element | TITEL                     |
| ------- | ------------------------- |
| Ac      | PAW\_PBE Ac 06Sep2000     |
| Ag      | PAW\_PBE Ag 06Sep2000     |
| Al      | PAW\_PBE Al 04Jan2001     |
| Ar      | PAW\_PBE Ar 07Sep2000     |
| As      | PAW\_PBE As 06Sep2000     |
| Au      | PAW\_PBE Au 06Sep2000     |
| B       | PAW\_PBE B 06Sep2000      |
| Ba      | PAW\_PBE Ba\_sv 06Sep2000 |
| Be      | PAW\_PBE Be\_sv 06Sep2000 |
| Bi      | PAW\_PBE Bi 08Apr2002     |
| Br      | PAW\_PBE Br 06Sep2000     |
| C       | PAW\_PBE C 08Apr2002      |
| Ca      | PAW\_PBE Ca\_sv 06Sep2000 |
| Cd      | PAW\_PBE Cd 06Sep2000     |
| Ce      | PAW\_PBE Ce 28Sep2000     |
| Cl      | PAW\_PBE Cl 17Jan2003     |
| Co      | PAW\_PBE Co 06Sep2000     |
| Cr      | PAW\_PBE Cr\_pv 07Sep2000 |
| Cs      | PAW\_PBE Cs\_sv 08Apr2002 |
| Cu      | PAW\_PBE Cu\_pv 06Sep2000 |
| Dy      | PAW\_PBE Dy\_3 06Sep2000  |
| Er      | PAW\_PBE Er\_3 06Sep2000  |
| Eu      | PAW\_PBE Eu 08Apr2002     |
| F       | PAW\_PBE F 08Apr2002      |
| Fe      | PAW\_PBE Fe\_pv 06Sep2000 |
| Ga      | PAW\_PBE Ga\_d 06Sep2000  |
| Gd      | PAW\_PBE Gd 08Apr2002     |
| Ge      | PAW\_PBE Ge\_d 06Sep2000  |
| H       | PAW\_PBE H 15Jun2001      |
| He      | PAW\_PBE He 05Jan2001     |
| Hf      | PAW\_PBE Hf\_pv 06Sep2000 |
| Hg      | PAW\_PBE Hg 06Sep2000     |
| Ho      | PAW\_PBE Ho\_3 06Sep2000  |
| I       | PAW\_PBE I 08Apr2002      |
| In      | PAW\_PBE In\_d 06Sep2000  |
| Ir      | PAW\_PBE Ir 06Sep2000     |
| K       | PAW\_PBE K\_sv 06Sep2000  |
| Kr      | PAW\_PBE Kr 07Sep2000     |
| La      | PAW\_PBE La 06Sep2000     |
| Li      | PAW\_PBE Li\_sv 23Jan2001 |
| Lu      | PAW\_PBE Lu\_3 06Sep2000  |
| Mg      | PAW\_PBE Mg\_pv 06Sep2000 |
| Mn      | PAW\_PBE Mn\_pv 07Sep2000 |
| Mo      | PAW\_PBE Mo\_pv 08Apr2002 |
| N       | PAW\_PBE N 08Apr2002      |
| Na      | PAW\_PBE Na\_pv 05Jan2001 |
| Nb      | PAW\_PBE Nb\_pv 08Apr2002 |
| Nd      | PAW\_PBE Nd\_3 06Sep2000  |
| Ne      | PAW\_PBE Ne 05Jan2001     |
| Ni      | PAW\_PBE Ni\_pv 06Sep2000 |
| Np      | PAW\_PBE Np 06Sep2000     |
| O       | PAW\_PBE O 08Apr2002      |
| Os      | PAW\_PBE Os\_pv 20Jan2003 |
| P       | PAW\_PBE P 17Jan2003      |
| Pa      | PAW\_PBE Pa 07Sep2000     |
| Pb      | PAW\_PBE Pb\_d 06Sep2000  |
| Pd      | PAW\_PBE Pd 05Jan2001     |
| Pm      | PAW\_PBE Pm\_3 07Sep2000  |
| Pr      | PAW\_PBE Pr\_3 07Sep2000  |
| Pt      | PAW\_PBE Pt 05Jan2001     |
| Pu      | PAW\_PBE Pu 06Sep2000     |
| Rb      | PAW\_PBE Rb\_sv 06Sep2000 |
| Re      | PAW\_PBE Re\_pv 06Sep2000 |
| Rh      | PAW\_PBE Rh\_pv 06Sep2000 |
| Ru      | PAW\_PBE Ru\_pv 06Sep2000 |
| S       | PAW\_PBE S 17Jan2003      |
| Sb      | PAW\_PBE Sb 06Sep2000     |
| Sc      | PAW\_PBE Sc\_sv 07Sep2000 |
| Se      | PAW\_PBE Se 06Sep2000     |
| Si      | PAW\_PBE Si 05Jan2001     |
| Sm      | PAW\_PBE Sm\_3 07Sep2000  |
| Sn      | PAW\_PBE Sn\_d 06Sep2000  |
| Sr      | PAW\_PBE Sr\_sv 07Sep2000 |
| Ta      | PAW\_PBE Ta\_pv 07Sep2000 |
| Tb      | PAW\_PBE Tb\_3 06Sep2000  |
| Tc      | PAW\_PBE Tc\_pv 06Sep2000 |
| Te      | PAW\_PBE Te 08Apr2002     |
| Th      | PAW\_PBE Th 07Sep2000     |
| Ti      | PAW\_PBE Ti\_pv 07Sep2000 |
| Tl      | PAW\_PBE Tl\_d 06Sep2000  |
| Tm      | PAW\_PBE Tm\_3 06Sep2000  |
| U       | PAW\_PBE U 06Sep2000      |
| V       | PAW\_PBE V\_pv 07Sep2000  |
| W       | PAW\_PBE W\_pv 06Sep2000  |
| Xe      | PAW\_PBE Xe 07Sep2000     |
| Y       | PAW\_PBE Y\_sv 06Sep2000  |
| Yb      | PAW\_PBE Yb\_2 06Sep2000  |
| Zn      | PAW\_PBE Zn 06Sep2000     |
| Zr      | PAW\_PBE Zr\_sv 07Sep2000 |

### 1st-row elements

$$\text{B, C, N, O, F}$$

Usually, they have three pseudopotentials: a soft \_s, a hard \_h, and a standard. The standard is recommended by VASP and will be used for all. The hard ones have extremely high cut-offs (700 eV)

### alkali and alkali-earth

The table below indicates our choices. Basically, we chose all high e- pseudopotentials except for Na where we excluded `Na_sv` due to its very high cutoff (700 eV).

| element | options            | VASP   | Low elec: oxide form\_enth (exp-comp) eV per fu | High elec: oxide form\_enth (exp-comp) eV per fu | High e- conv. Stats | our choice | rem                                                                                                  |
| ------- | ------------------ | ------ | ----------------------------------------------- | ------------------------------------------------ | ------------------- | ---------- | ---------------------------------------------------------------------------------------------------- |
| Li      | Li, Li\_sv         | Li\_sv | 0.03                                            | 0.01                                             | all converged       | Li\_sv     | highest e- psp chosen                                                                                |
| Na      | Na, Na\_sv, Na\_pv | Na\_pv | 0.06                                            | 0.01                                             | all converged       | Na\_pv     | Na\_sv is extremely high in cutoff (700 eV) for marginal gain in accuracy on Na2O                    |
| K       | K\_pv, K\_sv       | K\_sv  | 0.01                                            | 0.01                                             | 80% conv for both   | K\_sv      | highest e- psp chosen                                                                                |
| Cs      | Cs\_sv             | Cs\_sv |                                                 |                                                  |                     | Cs\_sv     |                                                                                                      |
| Rb      | Rb\_pv, Rb\_sv     | Rb\_sv | 0.05                                            | 0.03                                             | all converged       | Rb\_sv     | highest e- psp chosen                                                                                |
| Be      | Be, Be\_sv         | Be     | 0.04                                            | 0.04                                             | all converged       | Be\_sv     | highest e- psp chosen                                                                                |
| Mg      | Mg, Mg\_pv         | Mg\_pv | 0.02                                            | 0.05                                             | all converged       | Mg\_pv     | VASP and thermo suggest Mg as they are not much different; we decided to stick with the high e- psp. |
| Ca      | Ca\_sv, Ca\_pv     | Ca\_pv | 0.06                                            | 0.03                                             | all converged       | Ca\_sv     | highest e- psp chosen                                                                                |
| Sr      | Sr\_sv             | Sr\_sv |                                                 |                                                  |                     | Sr\_sv     |                                                                                                      |
| Ba      | Ba\_sv             | Ba\_sv |                                                 |                                                  |                     | Ba\_sv     |                                                                                                      |
|         |                    |        |                                                 |                                                  |                     |            |                                                                                                      |

### d-elements, transition metals

The table below shows the details on the PSP choices. All high e- PSPs have been chosen except for Pd which had convergences problem with the high e- PSP in PdO.

<table><thead><tr><th>element</th><th width="229">options</th><th>VASP</th><th>Low elec: oxide form_enth (exp-comp) eV per fu</th><th>High elec: oxide form_enth (exp-comp) eV per fu</th><th>High e- conv. Stats</th><th>our choice</th><th>rem</th></tr></thead><tbody><tr><td>Sc</td><td>Sc_sv</td><td>Sc_sv</td><td></td><td></td><td></td><td>Sc_sv</td><td></td></tr><tr><td>Y</td><td>Y_sv</td><td>Y_sv</td><td></td><td></td><td></td><td>Y_sv</td><td></td></tr><tr><td>Ti</td><td>Ti, Ti_pv, Ti_sv</td><td>Ti_pv</td><td>0.13</td><td>0.23</td><td>metal conv pb with Ti and Ti_sv</td><td>Ti_pv</td><td>highest e- psp with best conv. chosen</td></tr><tr><td>Zr</td><td>Zr, Zr_sv</td><td>Zr_sv</td><td>0.06</td><td>0.03</td><td>all converged</td><td>Zr_sv</td><td>highest e- psp chosen</td></tr><tr><td>Hf</td><td>Hf, Hf_pv</td><td>Hf_pv</td><td>0.19</td><td>0.18</td><td>all converged</td><td>Hf_pv</td><td>highest e- psp chosen</td></tr><tr><td>V</td><td>V, V_pv, V_sv</td><td>V_pv</td><td>0.39</td><td>0.46</td><td>all converged</td><td>V_pv</td><td>balance of high e-psp and compute cost</td></tr><tr><td>Nb</td><td>Nb_pv</td><td>Nb_pv</td><td></td><td></td><td></td><td>Nb_pv</td><td></td></tr><tr><td>Ta</td><td>Ta, Ta_pv</td><td>Ta_pv</td><td>0.3</td><td>0.31</td><td>similar conv. for both</td><td>Ta_pv</td><td>highest e- psp chosen</td></tr><tr><td>Cr</td><td>Cr, Cr_pv</td><td>Cr_pv</td><td>0.53</td><td>0.6</td><td>all converged</td><td>Cr_pv</td><td>highest e- psp chosen</td></tr><tr><td>Mo</td><td>Mo, Mo_pv</td><td>Mo_pv</td><td>0.39</td><td>0.45</td><td>all converged</td><td>Mo_pv</td><td>highest e- psp chosen</td></tr><tr><td>W</td><td>W, W_pv</td><td>W_pv</td><td>0.47</td><td>0.48</td><td>all converged</td><td>W_pv</td><td>highest e- psp chosen</td></tr><tr><td>Mn</td><td>Mn, Mn_pv</td><td>Mn or Mn_pv (!)</td><td>0.29</td><td>0.31</td><td>all converged</td><td>Mn_pv</td><td>highest e- psp chosen</td></tr><tr><td>Tc</td><td>Tc, Tc_pv</td><td>Tc or Tc_pv</td><td></td><td></td><td>all converged (no metals BTW)</td><td>Tc_pv</td><td>highest e- psp chosen</td></tr><tr><td>Re</td><td>Re, Re_pv</td><td>Re</td><td>0.56</td><td>0.59</td><td>all converged</td><td>Re_pv</td><td>highest e- psp chosen</td></tr><tr><td>Fe</td><td>Fe, Fe_pv</td><td>Fe_pv</td><td>0.62</td><td>0.47</td><td>50% conv. on oxides for both psp</td><td>Fe_pv</td><td>highest e- psp chosen</td></tr><tr><td>Co</td><td>Co</td><td>Co</td><td></td><td></td><td></td><td>Co</td><td></td></tr><tr><td>Ni</td><td>Ni, Ni_pv</td><td>Ni</td><td>0.4</td><td>0.4</td><td>all converged</td><td>Ni_pv</td><td>highest e- psp chosen</td></tr><tr><td>Cu</td><td>Cu, Cu_pv</td><td>Cu</td><td>0.07</td><td>0.1</td><td>all converged</td><td>Cu_pv</td><td>highest e- psp chosen</td></tr><tr><td>Zn</td><td>Zn</td><td>Zn</td><td></td><td></td><td></td><td>Zn</td><td></td></tr><tr><td>Ru</td><td>Ru, Ru_pv</td><td>Ru</td><td>0.41</td><td>0.41</td><td>all converged</td><td>Ru_pv</td><td>highest e- psp chosen</td></tr><tr><td>Rh</td><td>Rh, Rh_pv</td><td>Rh</td><td>0.36</td><td>0.35</td><td>all converged</td><td>Rh_pv</td><td>highest e- psp chosen</td></tr><tr><td>Pd</td><td>Pd, Pd_pv</td><td>Pd</td><td>0.2</td><td>0.2</td><td>Pd_pv has one unconv. PdO</td><td>Pd</td><td>due to the conv. issue we chose Pd (recommended by VASP too).</td></tr><tr><td>Ag</td><td>Ag</td><td></td><td></td><td></td><td></td><td>Ag</td><td></td></tr><tr><td>Cd</td><td>Cd</td><td></td><td></td><td></td><td></td><td>Cd</td><td></td></tr><tr><td>Hg</td><td>Hg</td><td></td><td></td><td></td><td></td><td>Hg</td><td></td></tr><tr><td>Au</td><td>Au</td><td></td><td></td><td></td><td></td><td>Au</td><td></td></tr><tr><td>Ir</td><td>Ir</td><td></td><td></td><td></td><td></td><td>Ir</td><td></td></tr><tr><td>Pt</td><td>Pt</td><td>Pt</td><td></td><td></td><td></td><td>Pt</td><td></td></tr><tr><td>Os</td><td>Os, Os_pv</td><td>Os_pv</td><td>0.67</td><td>0.7</td><td>all converged</td><td>Os_pv</td><td>highest e- psp chosen</td></tr><tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr></tbody></table>

### main group

Si, P, Cl, S will be used in their standard form (not hard) as suggested by VASP manual.

The `Al_h` psp was found to be definitely wrong in terms of band structure. There were "ghost" states found in the DOS.

Pb is interesting as the high e- psp shows significantly higher error in formation energies. We kept the high e- psp (`Pb_d`), but it might be interesting to study this a little more. One hypothesis relies on a recent result showing that lead oxide formation energies need the use of spin-orbit coupling to be accurate. [\[2\]](#references) Our computations do not include any relativistic corrections for valence electrons. However, spin-orbit coupling is taken into account during the psp construction. This would explain why a psp with more core electrons (treated indirectly with spin-orbit coupling) would give more accurate results than a psp with fewer electrons.

`Bi_d` shows a convergence problem, so the decision on Bi has been postponed to further analysis.

Finally, Po and At, while referred to in the VASP manual, are not present in the VASP PAW library.

| element | options          | VASP  | Low elec: oxide form\_enth (exp-comp) eV per fu | High elec: oxide form\_enth (exp-comp) eV per fu | High e- conv. Stats | our choice | rem                                                                           |
| ------- | ---------------- | ----- | ----------------------------------------------- | ------------------------------------------------ | ------------------- | ---------- | ----------------------------------------------------------------------------- |
| Ga      | Ga, Ga\_d, Ga\_h | Ga\_d | 0.05                                            | 0.01                                             | all converged       | Ga\_d      | Ga\_h seems best (0.01 instead of 0.02) but same problem as Al\_h?            |
| Ge      | Ge, Ge\_d, Ge\_h | Ge\_d | 0.06                                            | 0.06                                             | all converged       | Ge\_d      | Ge\_h seems best (Ge\_h and Ge\_d similar though) but same problem as Al\_h ? |
| Al      | Al, Al\_h        | Al    | 0.03                                            | 0.01                                             | all converged       | Al         | Good energetics but pb in band structure                                      |
| As      |                  |       |                                                 |                                                  |                     | As         |                                                                               |
| Se      |                  |       |                                                 |                                                  |                     | Se         |                                                                               |
| Br      |                  |       |                                                 |                                                  |                     | Br         |                                                                               |
| In      | In, In\_d        | In\_d | 0.13                                            | 0.1                                              | all converged       | In\_d      | highest e- psp chosen                                                         |
| Sn      | S, Sn\_d         | Sn\_d | 0.16                                            | 0.12                                             | all converged       | Sn\_d      | highest e- psp chosen                                                         |
| Tl      | Tl, Tl\_d        | Tl\_d | 0.26                                            | 0.31                                             | all converged       | Tl\_d      | highest e- psp chosen                                                         |
| Pb      | Pb, Pb\_d        | Pb\_d | 0.17                                            | 0.36                                             | all converged       | Pb\_d      | highest e- psp chosen                                                         |
| Bi      | Bi, Bi\_d        | Bi\_d |                                                 |                                                  | convergence pb      | ?          |                                                                               |
| Po      | Po, Po\_d        |       |                                                 |                                                  |                     | Po         | no Po psp is available in the PAW library!                                    |
| At      | At, At\_d        |       |                                                 |                                                  |                     | At\_d      | no At psp is available in the PAW library                                     |

### rare-earth, f-electrons

These are probably the most problematic to use as pseudopotentials. Here is what the VASP manual says about them:

> Due to self-interaction errors, f-electrons are not handled well by presently available density functionals. In particular, partially filled states are often incorrectly described, leading to large errors for Pr-Eu and Tb-Yb where the error increases in the middle (Gd is handled reasonably well, since 7 electrons occupy the majority shell). These errors are DFT and not VASP related. Particularly problematic is the description of the transition from an itinerant (band-like) behavior observed at the beginning of each period to localized states towards the end of the period. For the elements, this transition occurs already in La and Ce, whereas the transition sets in for Pu and Am for the elements. A routine way to cope with the inabilities of present DFT functionals to describe the localized electrons is to place the electrons in the core. Such potentials are available and described below. Furthermore, PAW potentials in which the states are treated as valence states are available, but these potentials are not expected to work reliable when the electrons are localized.

In summary, the pseudopotentials can either include or not include f electrons; how accurate including them or not is depends on the nature of the bonding for each particular system (localized or not).

What we found is that convergence issues are often seen for high electron psp (e.g., Pr, Nd, Sm). Also, some pseudopotentials (e.g., `Er_2`, `Eu_2`) freeze too many electrons and therefore have issues with oxidation states that make one of the frozen electron participate in bonding (e.g., Eu2O3, Er2O3). Finally, there is a major problem with Tb. Only `Tb_3` exists but Tb is known to also form Tb4+ compounds (e.g., TbO2). For those Tb4+ compounds, this psp is likely to be extremely wrong. There is currently no fix for this except waiting for someone to develop a PAW `Tb_4` psp.

| element | options          | VASP | Low elec: oxide form\_enth (exp-comp) eV per fu | High elec: oxide form\_enth (exp-comp) eV per fu | High e- conv. Stats                  | our choice | rem                                                                                                              |
| ------- | ---------------- | ---- | ----------------------------------------------- | ------------------------------------------------ | ------------------------------------ | ---------- | ---------------------------------------------------------------------------------------------------------------- |
| La      | La, La\_s        | La   | 0.12                                            | 0.17                                             | all converged                        | La         | La\_s means soft                                                                                                 |
| Ce      | Ce\_3, Ce        | /    | 1.18                                            | 0.26                                             | all converged                        | Ce         | thermo data on CeO2 is terrible with Ce\_3, cf Ce4+ thermo data on Ce2O3 is similar with both                    |
| Pr      | Pr\_3, Pr        | /    | 0.00                                            | 0.09                                             | Pr metal did not converge            | Pr\_3      | Pr\_3 better oxide thermo (surprisingly good!) and convergence in metal.                                         |
| Nd      | Nd\_3, Nd        | /    | 0.04                                            | 0.01                                             | Nd metal conv. problem               | Nd\_3      | convergence pb                                                                                                   |
| Pm      | Pm\_3, Pm        | /    | /                                               | /                                                |                                      | Pm\_3      | no real data to compare, it is between Nd and Sm in the periodic table, so we decided to pick a \_3 as Nd and Sm |
| Sm      | Sm\_3, Sm        | /    | 0.1                                             | /                                                | Sm metal conv. pb                    | Sm\_3      | conv pb                                                                                                          |
| Eu      | Eu\_2, Eu        | /    | 0.68                                            | 0.25                                             | all converged                        | Eu         | Both EuO and Eu2O3 thermo worse with Eu\_2                                                                       |
| Gd      | Gd\_3, Gd        | /    | 0.2                                             | 0.12                                             | all converged                        | Gd         | Gd has better thermo and highest e-                                                                              |
| Tb      | Tb\_3            | /    |                                                 |                                                  | all converged                        | Tb\_3      | There is a major pb with Tb. It can 4+ and we have only a 3+ psps                                                |
| Dy      | Dy\_3            | /    |                                                 |                                                  | all converged                        | Dy\_3      |                                                                                                                  |
| Ho      | Ho\_3            | /    |                                                 |                                                  |                                      | Ho\_3      |                                                                                                                  |
| Er      | Er\_2, Er\_3     | /    | 1.16                                            | 0.15                                             | all converged                        | Er\_3      | thermo data on Er2O3 off with Er\_2                                                                              |
| Tm      | Tm, Tm\_3        | /    | 0.2                                             | ?                                                | could not converge any metal with Tm | Tm\_3      |                                                                                                                  |
| Yb      | Yb\_3, Yb\_2, Yb | /    | 1.03                                            | 0.59                                             | all converged                        | Yb\_3      | thermo data off with Yb\_2 and Yb has convergence issues                                                         |
| Lu      | Lu\_3, Lu        | /    | 0.43                                            | ?                                                | Lu could not be converged            | Lu\_3      |                                                                                                                  |

### transuranides, f-electrons

U, Ac, Th, Pa, Np, Pu, Am

Following VASP suggestion, we decided to use the standard (and not the soft) version for all those pseudopotentials.

## Citation

To cite the Materials Project, please reference the following work:

M. K. Horton, P. Huck, R. X. Yang, J. M. Munro, S. Dwaraknath, A. M. Ganose, R. S. Kingsbury, M. Wen, J. X.\
Shen, T. S. Mathis, A. D. Kaplan, K. Berket, J. Riebesell, J. George, A. S. Rosen, E. W. C. Spotte-Smith, M. J.\
McDermott, O. A. Cohen, A. Dunn, M. C. Kuner, G.-M. Rignanese, G. Petretto, D. Waroquiers, S. M. Griffin,\
J. B. Neaton, D. C. Chrzan, M. Asta, G. Hautier, S. Cholia, G. Ceder, S. P. Ong, A. Jain, and K. A. Persson,\
Nature Materials, yr. 2025, DOI: [10.1038/s41563-025-02272-0](https://doi.org/10.1038/s41563-025-02272-0)

#### Past citations

To cite the legacy data in the Materials Project (from <https://legacy.materialsproject.org/>), please cite:

A. Jain, G. Hautier, C. J. Moore, S. P. Ong, C. C. Fischer, T. Mueller, K. A. Persson, and G. Ceder, A high-throughput infrastructure for density functional theory calculations, Computational Materials Science, vol. 50, yr. 2011, pp. 2295-2310. [DOI:10.1016/j.commatsci.2011.02.023](https://dx.doi.org/10.1016/j.commatsci.2011.02.023)

## Authors

1. Geoffroy Hautier
2. Aaron Kaplan
3. Michael Wolloch (VASP)

## References

\[1]: P.E. Blöchl, Physical Review B 50, 17953-17979 (1994).

\[2]: R. Ahuja, A. Blomqvist, P. Larsson, P. Pyykkö, and P. Zaleski-Ejgierd, Physical Review Letters 106, 1-4 (2011).


# r2SCAN Calculations

Details on r2SCAN calculations run by the Materials Project

Since database release `v2022.10.28` the Materials Project has incorporated metaGGA functionals into its core dataset in the form of r2SCAN calculations. Part of this includes a [new energy correction scheme](/methodology/materials-methodology/thermodynamic-stability/thermodynamic-stability) that allows for the mixing of GGA, GGA+U and r2SCAN results in its thermodynamic data.

All r2SCAN data is obtained from a two-step workflow which is comprised of an initial GGA structure optimization, followed by final optimization with r2SCAN. The first step allows for the generation of an initial guess of the structure and charge density at a lower computational cost, speeding up the subsequent metaGGA calculation. More specifically, PBESol is used as the GGA functional for the first optimization step. For more details on the workflow see Ref [\[1\]](#references).

Information regarding calculation parameters, convergence, and pseudopotential choices can also be found in the following subsections:

{% content-ref url="/pages/WRwGtOi39M7ArZi1ZHvR" %}
[Parameters and Convergence](/methodology/materials-methodology/calculation-details/r2scan-calculations/parameters-and-convergence)
{% endcontent-ref %}

{% content-ref url="/pages/KmtgF8pX1il0XIUCaRKq" %}
[Pseudopotentials](/methodology/materials-methodology/calculation-details/r2scan-calculations/pseudopotentials)
{% endcontent-ref %}

## References

\[1] R. Kingsbury, A. S. Gupta, C. J. Bartel, J. M. Munro, S. Dwaraknath, M. Horton, and K. A. Persson Phys. Rev. Materials 6, 013801 (2022)


# Parameters and Convergence

Parameter and convergence details for r2SCAN calculations run by the Materials Project

## Calculation Parameters

We use the projector-augmented wave (PAW) or modeling core electrons with an energy cutoff of 680 eV. K-point grids were generated automatically by VASP using KSPACING values ranging from 0.22/Å to 0.44/Å. Specifically, the Monkhorst-Pack method is used for grid generation (with $$\Gamma$$-centered for hexagonal cells), and the tetrahedron method is used to perform the k-point integrations. These were determined from the GGA-estimated bandgap of each material based on the work by Wisesa et al. [\[1\]](#references). More details regarding the calculation method can be found in ref [\[2\]](#references); however, the Materials Project has updated many parameters as documented throughout the Methodology sections. The most up-to-date input sets can be [found here](https://github.com/materialsproject/pymatgen/blob/f9d9fe8e0ce09ef30cc03bcc4e9937d27afd5a6a/src/pymatgen/io/vasp/sets.py#L1315).

### Convergence

Plane-wave energy cutoff and k-point density settings were selected such that formation energies converged within approximately 1 meV/atom for a benchmark set of 21 materials and were selected to be conservatively high [\[2\]](#references):

| Formula  | Spacegroup | Materials Project ID |
| -------- | ---------- | -------------------- |
| AlN      | P63mc      | mp-661               |
| Al2O3    | R3c        | mp-1143              |
| BN       | P63/mmc    | mp-984               |
| BaBeSiO4 | Cm         | mp-550751            |
| CeO2     | Fm3m       | mp-20194             |
| CaF2     | Fm3m       | mp-2741              |
| EuO      | Fm3m       | mp-21394             |
| FeP      | Pnma       | mp-1005              |
| FeS      | P4/nmm     | mp-505531            |
| GaAs     | F43m       | mp-2534              |
| InSb     | F43m       | mp-20012             |
| LiH      | Fm3m       | mp-23703             |
| LiF      | Fm3m       | mp-1138              |
| LiCl     | P63mc      | mp-1185319           |
| Li2O     | Fm3m       | mp-1960              |
| LiN      | I4m2       | mp-1059612           |
| MoS2     | P3m1       | mp-1027525           |
| NaI      | Fm3m       | mp-23268             |
| SrI2     | Pnma       | mp-568284            |
| TiO2     | C2/m       | mp-554278            |
| VO2      | P21/c      | mp-1102963           |

## References

\[1] P. Wisesa, K. A. McGill, and T. Mueller, Efficient generation of generalized Monkhorst-Pack grids through the use of informatics, Phys. Rev. B 93, 1 (2016).

\[2] R. Kingsbury, A. S. Gupta, C. J. Bartel, J. M. Munro, S. Dwaraknath, M. Horton, and K. A. Persson Phys. Rev. Materials 6, 013801 (2022)


# Pseudopotentials

Description of the pseudopotentials used in the r2SCAN related calculations.

All calculations used pseudopotentials from the "PBE PAW datasets version 54" set released in September 2015; a list of the specific POTCAR symbols used for each element is provided below. Although these pseudopotentials were developed for use with the PBE functional, their use with SCAN is common practice because no SCAN-specific pseudopotentials are available for use in VASP. These POTCARs are selected in the [MPScanRelaxSet](https://github.com/materialsproject/pymatgen/blob/bd29947130c497af7e25888bed7016bf898bed2c/src/pymatgen/io/vasp/MPSCANRelaxSet.yaml#L31) in pymatgen.

| Element | TITEL                     |
| ------- | ------------------------- |
| Ac      | PAW\_PBE Ac 06Sep2000     |
| Ag      | PAW\_PBE Ag 02Apr2005     |
| Al      | PAW\_PBE Al 04Jan2001     |
| Am      | PAW\_PBE Am 08May2007     |
| Ar      | PAW\_PBE Ar 07Sep2000     |
| As      | PAW\_PBE As 22Sep2009     |
| At      | PAW\_PBE At 21May2007     |
| Au      | PAW\_PBE Au 04Oct2007     |
| B       | PAW\_PBE B 06Sep2000      |
| Ba      | PAW\_PBE Ba\_sv 06Sep2000 |
| Be      | PAW\_PBE Be\_sv 06Sep2000 |
| Bi      | PAW\_PBE Bi 08Apr2002     |
| Br      | PAW\_PBE Br 06Sep2000     |
| C       | PAW\_PBE C 08Apr2002      |
| Ca      | PAW\_PBE Ca\_sv 06Sep2000 |
| Cd      | PAW\_PBE Cd 06Sep2000     |
| Ce      | PAW\_PBE Ce 23Dec2003     |
| Cf      | PAW\_PBE Cf 17Oct2013     |
| Cl      | PAW\_PBE Cl 06Sep2000     |
| Cm      | PAW\_PBE Cm 17Jan2011     |
| Co      | PAW\_PBE Co 02Aug2007     |
| Cr      | PAW\_PBE Cr\_pv 02Aug2007 |
| Cs      | PAW\_PBE Cs\_sv 08Apr2002 |
| Cu      | PAW\_PBE Cu\_pv 06Sep2000 |
| Dy      | PAW\_PBE Dy\_3 06Sep2000  |
| Er      | PAW\_PBE Er\_3 06Sep2000  |
| Eu      | PAW\_PBE Eu 23Dec2003     |
| F       | PAW\_PBE F 08Apr2002      |
| Fe      | PAW\_PBE Fe\_pv 02Aug2007 |
| Fr      | PAW\_PBE Fr\_sv 29May2007 |
| Ga      | PAW\_PBE Ga\_d 06Jul2010  |
| Gd      | PAW\_PBE Gd 23Dec2003     |
| Ge      | PAW\_PBE Ge\_d 03Jul2007  |
| H       | PAW\_PBE H 15Jun2001      |
| He      | PAW\_PBE He 05Jan2001     |
| Hf      | PAW\_PBE Hf\_pv 06Sep2000 |
| Hg      | PAW\_PBE Hg 06Sep2000     |
| Ho      | PAW\_PBE Ho\_3 06Sep2000  |
| I       | PAW\_PBE I 08Apr2002      |
| In      | PAW\_PBE In\_d 06Sep2000  |
| Ir      | PAW\_PBE Ir 06Sep2000     |
| K       | PAW\_PBE K\_sv 06Sep2000  |
| Kr      | PAW\_PBE Kr 07Sep2000     |
| La      | PAW\_PBE La 06Sep2000     |
| Li      | PAW\_PBE Li\_sv 10Sep2004 |
| Lu      | PAW\_PBE Lu\_3 06Sep2000  |
| Mg      | PAW\_PBE Mg\_pv 13Apr2007 |
| Mn      | PAW\_PBE Mn\_pv 02Aug2007 |
| Mo      | PAW\_PBE Mo\_pv 04Feb2005 |
| N       | PAW\_PBE N 08Apr2002      |
| Na      | PAW\_PBE Na\_pv 19Sep2006 |
| Nb      | PAW\_PBE Nb\_pv 08Apr2002 |
| Nd      | PAW\_PBE Nd\_3 06Sep2000  |
| Ne      | PAW\_PBE Ne 05Jan2001     |
| Ni      | PAW\_PBE Ni\_pv 06Sep2000 |
| Np      | PAW\_PBE Np 06Sep2000     |
| O       | PAW\_PBE O 08Apr2002      |
| Os      | PAW\_PBE Os\_pv 20Jan2003 |
| P       | PAW\_PBE P 06Sep2000      |
| Pa      | PAW\_PBE Pa 07Sep2000     |
| Pb      | PAW\_PBE Pb\_d 06Sep2000  |
| Pd      | PAW\_PBE Pd 04Jan2005     |
| Pm      | PAW\_PBE Pm\_3 07Sep2000  |
| Po      | PAW\_PBE Po\_d 25May2007  |
| Pr      | PAW\_PBE Pr\_3 07Sep2000  |
| Pt      | PAW\_PBE Pt 04Feb2005     |
| Pu      | PAW\_PBE Pu 06Sep2000     |
| Ra      | PAW\_PBE Ra\_sv 29May2007 |
| Rb      | PAW\_PBE Rb\_sv 06Sep2000 |
| Re      | PAW\_PBE Re\_pv 06Sep2000 |
| Rh      | PAW\_PBE Rh\_pv 25Jan2005 |
| Rn      | PAW\_PBE Rn 28Aug2006     |
| Ru      | PAW\_PBE Ru\_pv 28Jan2005 |
| S       | PAW\_PBE S 06Sep2000      |
| Sb      | PAW\_PBE Sb 06Sep2000     |
| Sc      | PAW\_PBE Sc\_sv 07Sep2000 |
| Se      | PAW\_PBE Se 06Sep2000     |
| Si      | PAW\_PBE Si 05Jan2001     |
| Sm      | PAW\_PBE Sm\_3 07Sep2000  |
| Sn      | PAW\_PBE Sn\_d 06Sep2000  |
| Sr      | PAW\_PBE Sr\_sv 07Sep2000 |
| Ta      | PAW\_PBE Ta\_pv 07Sep2000 |
| Tb      | PAW\_PBE Tb\_3 06Sep2000  |
| Tc      | PAW\_PBE Tc\_pv 04Feb2005 |
| Te      | PAW\_PBE Te 08Apr2002     |
| Th      | PAW\_PBE Th 07Sep2000     |
| Ti      | PAW\_PBE Ti\_pv 07Sep2000 |
| Tl      | PAW\_PBE Tl\_d 06Sep2000  |
| Tm      | PAW\_PBE Tm\_3 20Jan2003  |
| U       | PAW\_PBE U 06Sep2000      |
| V       | PAW\_PBE V\_pv 07Sep2000  |
| W       | PAW\_PBE W\_sv 04Sep2015  |
| Xe      | PAW\_PBE Xe 07Sep2000     |
| Y       | PAW\_PBE Y\_sv 25May2007  |
| Yb      | PAW\_PBE Yb\_3 08Jul2013  |
| Zn      | PAW\_PBE Zn 06Sep2000     |
| Zr      | PAW\_PBE Zr\_sv 04Jan2005 |

## References

\[1] R. Kingsbury, A. S. Gupta, C. J. Bartel, J. M. Munro, S. Dwaraknath, M. Horton, and K. A. Persson Phys. Rev. Materials 6, 013801 (2022)


# Thermodynamic Stability


# Energy Corrections

How energy adjustments and corrections are calculated on the Materials Project (MP) website.

To better model energies across diverse chemical spaces, we apply several adjustments to the total calculated energy of each material. These adjustments fall into two different sets, each of which is described in a different subsection. One set, consisting of anion and GGA/GGA+U mixing scheme corrections, and another consisting of only GGA/GGA+U/r2SCAN mixing scheme corrections. The former is used in the in the current and legacy data, while the latter is only present in releases after the addition of r2SCAN calculations (post `v2022.10.28`). Both of them are used to produce `ComputedStructureEntry` objects, and mixed phase diagrams.

{% content-ref url="/pages/tsaskK0xNgAcSHVUzej5" %}
[Anion and GGA/GGA+U Mixing](/methodology/materials-methodology/thermodynamic-stability/thermodynamic-stability/anion-and-gga-gga+u-mixing)
{% endcontent-ref %}


# Anion and GGA/GGA+U Mixing

Details on anion and GGA/GGA+U mixing scheme corrections

This correction scheme assumes independent, linear corrections associated with each corrected element. For example, $$\text{VO}\_2$$ would receive both a '$$\text{V}$$' and an 'oxide' correction (as explained below), while elemental $$\text{V}$$ would receive no corrections. For complete details of our correction scheme, refer to Wang et al. [\[1\]](#references)

## Methodology

### 1) Anion corrections

For many elements that take on negative oxidation states in solids, differences in electron localization between the elements and the solid can result in substantial errors in formation energies computed from DFT calculations. This is especially true for elements that are gaseous in their standard state - $$\text{O}\_2$$, $$\text{N}\_2$$, $$\text{Cl}\_2$$, $$\text{F}\_2$$, and $$\text{H}\_2$$.

To address this, we adjust the energies of materials containing certain elements by applying a correction to anionic species, as explained in ref [\[1\]](#references). Specifically, we apply energy corrections to 14 anion species -- 'oxide', 'peroxide', 'superoxide', $$\text{S}$$, $$\text{F}$$, $$\text{Cl}$$, $$\text{Br}$$, $$\text{I}$$, $$\text{N}$$, $$\text{H}$$, $$\text{Se}$$, $$\text{Si}$$, $$\text{Sb}$$, and $$\text{Te}$$. In the case of oxygen-containing compounds, separate corrections are applied to oxides, superoxides, and peroxides based on the specific bonding environment of oxygen in the material, as determined from nearest-neighbor bond lengths (e.g., <1.35 Å for superoxide, <1.49 Å for 'peroxide', and 'oxide' otherwise). Thus, $$\text{Na}\_2\text{O}$$ receives an 'oxide' correction while $$\text{NaO}\_2$$ receives a \`superoxide' correction.

Anion corrections are applied to a material only when it contains a corrected element *as an anion.* For example, the '$$\text{H}$$' correction is applied to $$\text{LiH}$$ but not to $$\text{H}\_2\text{O}$$. A specie is classified as an anion if its estimated oxidation state (when available) is negative, or if it is the most electronegative element in the formula.

### 2) GGA / GGA+*U* Mixing Corrections

Some compounds are better modeled with a *U* correction term to the density functional theory Hamiltonian while others are better modeled without (i.e., regular GGA). Energies from calculations with the +*U* correction are not directly comparable to those without. To obtain better accuracy across chemical systems, we use GGA+*U* when appropriate, GGA otherwise, and mix energies from the two calculation methodologies by adding an energy correction term to the GGA+*U* calculations to make them comparable to the GGA calculations.

Specifically, we use GGA+*U* for oxide and fluoride compounds containing any of the transition metals $$\text{V}$$, $$\text{Cr}$$, $$\text{Mn}$$, $$\text{Fe}$$, $$\text{Co}$$, $$\text{Ni}$$, $$\text{W}$$, and $$\text{Mo}$$, and GGA for everything else. More details on this method can be found in refs. [\[1,2\]](#references)

## Accuracy of Total Energies

To estimate the accuracy of our total energy calculations, we compute reaction data and compare against experimental data. Note that this data set was compiled using a lower k-point mesh and pseudopotentials with fewer electrons than the current Materials Project parameter set.

### Estimating errors in calculated reaction energies

The accuracy of calculated reaction energies depends on the chemical system investigated. In general, GGA calculations have similar errors among chemically similar systems. Hence, reaction energies between chemically similar systems (e.g., a reaction where the reactants and products are all oxides, such as $$\text{MgO + Al2O3} \rightarrow\text{MgAl2O4}$$ tend to have smaller errors than reactions between chemically dissimilar systems (e.g., between metals and insulators).

![](/files/jFgLzrWsE48bkV95WQpk)

*Figure 1: Errors in Calculated Formation Energies for 413 binaries in the Kubaschewski Tables. Energies are normalized to per mol atom.*

To provide a quantitative indicator of the error we may expect from the reaction calculator, we have computed the reaction energies of 413 binaries in the Kubaschewski Tables formed with Group V, VI and VII anions. Figure 1 shows the errors in the calculated formation energies (compared to the experimental values) for these compounds. The mean absolute error (MAE) is around 14 kJ mol$$^{-1}$$. 75% of the calculated formation energies are within 20 kJ mol$$^{-1}$$. We also found that compounds of certain elements tend to have larger errors. For example, $$\text{Bi}$$, $$\text{Co}$$, $$\text{Pb}$$, $$\text{Eu}$$, $$\text{U}$$, $$\text{Tl}$$ and $$\text{W}$$ compounds often have errors larger than 20 kJ mol$$^{-1}$$.

It should be noted that while an MAE of 14 kJ mol$$^{-1}$$ is significantly higher than the desired chemical accuracy of 4 kJ mol$$^{-1}$$, it compares fairly well with the performance of most quantum chemistry calculations [\[3\]](#references). Other than the most computationally expensive model chemistries such as G1-G3 and CBS, the reaction energy errors of most computational chemistry model chemistries are well above 10 kJ mol$$^{-1}$$.

For oxidation of the elements into binary compounds, an average error of \~4% or 33 kJ/mol-$$\text{O}\_2$$ is typical.\[^9] For conventional ternary oxide formation from the elements, we have found a mean relative absolute error of about 2%. [\[4\]](#references)

### Sources of error

The largest contribution to the error comes from the inability of the GGA to fully describe electronic exchange and correlation effects. In addition, there is some error associated with neglecting zero-point effects and with comparing 0K, 0atm computations with room-temperature enthalpy experiments. The latter effect was estimated to contribute less than 0.03 eV/atom by Lany. [\[5\]](#references) The stability of antiferromagnetic compounds may be underestimated, as the majority of our calculations are performed ferromagnetically only. The effect of magnetism may be small (under 10 meV/atom) or large (100 meV/atom or greater), depending on the compound. For compounds with heavy elements, relativistic effects may lead to greater-than-expected errors.

### GGA errors on reaction energies between chemically similar compounds

We recently conducted a more in-depth study comparing GGA (+U) reaction energies of ternary oxides from binary oxides on 135 compounds. [\[6\]](#references)

The main conclusions are:

* The error in reaction energies for the binary oxide to ternary oxides reaction energies are an order of magnitude lower than for the more often reported formation energies from the element. An error intrinsic to GGA (+U) is estimated to follow a normal distribution centered in zero (no systematic underestimation or overestimation) and with a standard deviation around 24 meV/at.
* When looking at phase stability (and for instance assessing if a phase is stable or not), the relevant reaction energies are most of the time not the formation energies from the elements but reaction energies from chemically similar compounds (e.g., two oxides forming a third oxide). Large cancellation of errors explain this observation.
* The +U is necessary for accurate description of the energetics even when reactions do not involve change in formal oxidation states

## Citations

To cite the calculation methodology, please reference the following works:

1. A. Jain, G. Hautier, C. Moore, S.P. Ong, C.C. Fischer, T. Mueller, K.A. Persson, G. Ceder., A High-Throughput Infrastructure for Density Functional Theory Calculations, Computational Materials Science, vol. 50, 2011, pp. 2295-2310. [DOI:10.1016/j.commatsci.2011.02.023](https://dx.doi.org/10.1016/j.commatsci.2011.02.023)
2. A. Jain, G. Hautier, S.P. Ong, C. Moore, C.C. Fischer, K.A. Persson, G. Ceder, Accurate Formation Enthalpies by Mixing GGA and GGA+U calculations, Physical Review B, vol. 84, 2011, p. 045115. [DOI:10.1103/PhysRevB.84.045115](https://doi.org/10.1103/PhysRevB.84.045115)

## References

\[1]: Wang, A., Kingsbury, R.S., Horton, M., Jain, A., Ong, S.P., Dwaraknath, S., Persson, K. A framework for quantifying uncertainty in DFT energy corrections. *Scientific Reports* 11 (2021), 15496. [DOI: 10.1038/s41598-021-94550-5](https://doi.org/10.1038/s41598-021-94550-5)

\[2]: A. Jain, G. Hautier, S.P. Ong, C. Moore, C.C. Fischer, K.A. Persson, G. Ceder, Formation Enthalpies by Mixing GGA and GGA+U calculations, Physical Review B, vol. 84 (2011), 045115.

\[3]: J.B. Foresman, A.E. Frisch, Exploring Chemistry With Electronic Structure Methods: A Guide to Using Gaussian, Gaussian. (1996).

\[4]: A. Jain, S.-a Seyed-Reihani, C.C. Fischer, D.J. Couling, G. Ceder, W\.H. Green, Ab initio screening of metal sorbents for elemental mercury capture in syngas streams, Chemical Engineering Science. 65 (2010) 3025-3033.

\[5]: S. Lany, Semiconductor thermochemistry in density functional calculations, Physical Review B. 78 (2008) 1-8.

\[6]: G. Hautier, S.P. Ong, A. Jain, C. J. Moore, G. Ceder, Accuracy of density functional theory in predicting formation energies of ternary oxides from binary oxides and its implication on phase stability, Physical Review B, 85 (2012), 155208

## Acknowledgments

Thank you to the original authors of this page:

1. Anubhav Jain
2. Shyue Ping Ong
3. Geoffroy Hautier
4. Charles Moore


# GGA/GGA+U/r2SCAN Mixing

Details on the GGA/GGA+U/r2SCAN mixing scheme corrections

An updated energy correction scheme [\[1\]](#references) is used to allow for the mixing of GGA, GGA+U, and r2SCAN calculations. This is constructed by considering all electronic energies to be the sum of a reference energy, and a relative energy. The reference energy ($$E\_{ref}$$) for each functional is defined as the ([empirically corrected](/methodology/materials-methodology/thermodynamic-stability/thermodynamic-stability/anion-and-gga-gga+u-mixing)) electronic energy of the GGA(+U) ground-state structure at each point in composition space. The energy of a material associated with either functional can then be expressed as a difference relative to a specific reference energy ($$\Delta E\_{ref}$$). The formation energy of a material is calculated in the usual way by subtracting the electronic energies of the elemental endpoints in each respective functional. It should be noted that $$\Delta E\_{ref}$$ is calculated from the differences in polymorph energies, and consequently does not depend on the elemental endpoint energies. While the updated mixing scheme is similar to the previous scheme involving only GGA and GGA+U calculations, it extends the approach to be amenable to any two functionals without relying on pre-fitted energy correction parameters.

### Mixing Rules

The two rules used to construct mixed GGA/GGA+U/r2SCAN phase diagrams are as follows:

1. Start with a GGA(+U) convex energy hull. Replace GGA(+U) energies with r2SCAN energies by adding their $$\Delta E\_{ref}$$ to the corresponding GGA(+U) reference energy.
2. Construct the convex energy hull using formation energy calculated using r2SCAN energies, only when r2SCAN calculations exist for every reference structure (i.e. every stable GGA(+U) structure). In this case, add any missing GGA(+U) materials by adding their $$\Delta E\_{ref}$$to the corresponding r2SCAN reference energy.

<figure><img src="/files/neCBA8XsPc76IPpmpVdh" alt=""><figcaption><p>Figure 1. Rules for mixing GGA(+U) (blue) and r2SCAN (red) energies onto a single phase diagram. (left) r2SCAN energies are placed onto the GGA(+U) hull by referencing them to the r2SCAN energy of the GGA(+U) ground state via <span class="math">\Delta E_{ref}</span>. A, B, C, ad D represent different polymophs at a single composition, and polymorph A is the ground state. (right) r2SCAN formation energies are used to build the convex hull only when there are r2SCAN calculations for every GGA(+U) ground state.</p></figcaption></figure>

For more detailed information on the mixing scheme and its benchmarks, see the original publication in Ref [\[1\]](#references).

## References

\[1] Kingsbury, R.S., Rosen, A.S., Gupta, A.S. *et al.* A flexible and scalable scheme for mixing computed formation energies from different levels of theory. *npj Comput Mater* 8, 195 (2022). <https://doi.org/10.1038/s41524-022-00881-w>


# Adding Energy Corrections to Custom Entries

To use the outputs of custom DFT calculations in conjunction with the entries from the Materials Project ([provided the custom calculations are run with the same settings](/methodology/materials-methodology/calculation-details)) , a [series of corrections ](/methodology/materials-methodology/thermodynamic-stability/thermodynamic-stability/gga-gga+u-r2scan-mixing)have to applied to the outputs of the calculation:

```python
from pymatgen.io.vasp import Vasprun
from pymatgen.entries.computed_entries import ComputedStructureEntry
from pymatgen.entries.compatibility import MaterialsProject2020Compatibility

vasprun = Vasprun("vasprun.xml")
processed_entry = ComputedStructureEntry(
    structure = vasprun.structures[-1],
    energy = vasprun.final_energy,
    parameters = {'run_type': 'GGA', 'potcar_symbols': vasprun.potcar_symbols}
)
processed_entry.energy_adjustments = MaterialsProject2020Compatibility().get_adjustments(cse)
```

For structures containing anions, [another correction](/methodology/materials-methodology/thermodynamic-stability/thermodynamic-stability/anion-and-gga-gga+u-mixing) has to be applied by supplying oxidation states:

```python
from pymatgen.entries.compatibility import MaterialsProject2020Compatibility
from pymatgen.analysis.bond_valence import BVAnalyzer

#if oxidation states are not known a-priori, use Bond Valences to assign them
try:
    bva = BVAnalyzer()
    entry.data["oxidation_states"] = {
        site.species.elements[0].name : bva.get_valences(entry.structure)[i]
        for i, site in enumerate(entry.structure)
    }
except Exception as exc:
    oxi_states = entry.composition.oxi_state_guesses()
    if len(oxi_states) > 0:
        entry.data["oxidation_states"] = oxi_states[0]

processed_entry = MaterialsProject2020Compatibility()
processed_entry.process_entry(entry)
```

Then the computed structure entry will contain an individual list of energy corrections, accessible through `processed_entry.energy_adjustments`, an overall correction value in `processed_entry.corrections`, and a final corrected energy in `processed_entry.energy` or `processed_entry.energy_per_atom` .


# Phase Diagrams (PDs)

A description of the methodology for constructing and interpreting compositional phase diagrams from the Materials Project (MP) website and API.

## Introduction

A **phase diagram** is a calculation of the *thermodynamic phase equilibria* of multicomponent systems. It is an important tool in materials science for revealing 1) thermodynamic stability of compounds, 2) predicted equilibrium chemical reactions, and 3) processing conditions for synthesizing materials. However, the experimental determination of a phase diagram is an extremely time-consuming process, requiring careful synthesis and characterization of all phases in a chemical system.

Computational modeling tools, such as the density functional theory (DFT) methods used by the Materials Project, can accelerate compositional phase diagram construction significantly. By calculating the energies of all known compounds in a given chemical system (e.g. the lithium/iron/oxygen chemical system, Li-Fe-O), we can determine the phase diagram for that system at a temperature of $$T=0$$ K and pressure of $$P=0$$ atm. Furthermore, for systems comprised of predominantly solid phases open with respect to a gaseous element, approximations can be made as to the finite temperature and pressure phase diagrams.

In this section, we will describe the theory/methodology behind the calculation of compositional phase diagrams.

## Methodology

This section will discuss how to construct phase diagrams from DFT-calculated energies. This is exact process done by the Materials Project (MP) for computing formation energies, thermodynamic stability, and phase diagrams. This methodology has been implemented in Python within the **pymatgen** package. Please see [#code-pymatgen](#code-pymatgen "mention")for brief examples of how to build phase diagrams on your own.

### Calculating formation energy

The formation energy, $$\Delta E\_f$$, is the energy change upon reacting to form a phase of interest from its constituent components. The components typically used are the constituent elements. For a phase composed of $$N$$ components indexed by $$i$$, the formation energy can be calculated as follows:

$$\Delta E\_f = E - \sum\_i^N{n\_i\mu\_i}$$

where $$E$$ is the total energy of the phase of interest, $$n\_i$$is the total number of moles of component $$i$$, and $$\mu\_i$$ is the total energy of component $$i$$. **Note** that $$\mu\_i$$is often referred to as the chemical potential of the component, however, this is only rigorously true when working with Gibbs free energies, $$G$$.

{% hint style="info" %}
**Example:**

For barium titanate, BaTiO$$\_3$$, the formation energy would be calculated as:

$$\Delta E\_f (BaTiO\_3) = E(BaTiO\_3) - 1\*\mu\_{Ba} - 1\*\mu\_{Ti} - 3\*\mu\_{O}$$
{% endhint %}

Typically, formation energies are **normalized** on a per-atom basis by dividing by the number of atoms in 1 mole of formula. For example, for BaTiO$$\_3$$, the normalized per-atom formation energy would be calculated by dividing the $$E\_f$$ above by *5 atoms.*

### Constructing the compositional phase diagram

#### The convex hull approach

To construct a phase diagram, one needs to compare the relative thermodynamic stability of phases belonging to the system using an appropriate free energy model. For an isothermal, isobaric, closed system, the relevant thermodynamic potential is the Gibbs free energy, $$G$$, which can be expressed as a Legendre transform of the enthalpy, $$H$$, and internal energy, $$E$$, as follows:

$$
\eqalign{G(T,P,N\_{Li},N\_{Fe},N\_{O}) &= H(T,P,N\_{Li},N\_{Fe},N\_{O}) - TS(T,P,N\_{Li},N\_{Fe},N\_{O})\cr &= \eqalign{E(T,P,N\_{Li},N\_{Fe},N\_{O}) + PV(T,P,N\_{Li},N\_{Fe},N\_{O})\cr - TS(T,P,N\_{Li},N\_{Fe},N\_{O}}}
$$

where $$T$$ is the temperature of the system, $$S$$ is the entropy of the system, $$P$$ is the pressure of the system, $$V$$ is the volume of the system, and $$N\_i$$ is the number of atoms of species $$i$$ in the system.

For systems comprising primarily of condensed phases, the $$PV$$ term can be neglected and at 0K, the expression for $$G$$ simplifies to just $$E$$. Normalizing $$E$$ with respect to the total number of particles in the system, we obtain $$\bar{E}(0,P,x\_{Li},x\_{Fe},x\_O)$$. By taking the convex hull [\[2\]](#references) of $$E$$ for all phases belonging to the M-component system and projecting the stable nodes into the $$(M-1)$$- dimension composition space, one can obtain the 0 K phase diagram for the closed system at constant pressure. The convex hull of a set of points is the smallest convex set containing the points. For instance, to construct a 0 K, closed $$Li-Fe-O$$ system phase diagram, the convex hull is taken on the set of points in $$(\bar{E},x\_{Li},x\_{Fe})$$ space with $$x\_O$$ being related to the other composition variables by $$x\_O = 1 - x\_{Li} - x\_{Fe}$$.

#### Evaluating thermodynamic stability

![Figure 2: Illustration of various thermodynamic stability metrics, reproduced from Bartel \[1\].](/files/plFCQgMQexs5SYSfqIsz)

*Figure 2* is an example of a calculated binary A-X phase diagram at 0 K and 0 atm. Binary phase diagrams show the complete convex hull for the system, where the y-axis is the formation energy per atom and the x-axis is the composition.

The blue lines show the convex hull construction, which connects stable phases (circles). Unstable phases will always appear above the convex hull line (squares); one measure of the thermodynamic stability of an arbitrary compound is its distance from the convex hull line ($$\Delta E\_d$$), which predicts the decomposition energy of that phase into the most stable phases.

## **Accuracy of Calculated Phase Diagrams**

In general, we can expect that compositional phase diagrams comprising of predominantly solid phases to be reproduced fairly well by our calculations. However, it should be noted that there are inherent limitations in accuracy in the DFT calculated energies. Furthermore, our calculated phase diagrams are at 0 K and 0 atm, and differences with non-zero temperature phase diagrams are to be expected.

For grand potential phase diagrams, further approximations are made as to the entropic contributions [\[2\]](#references). They are therefore expected to be less accurate, but nonetheless provide useful insights on general trends.

## Code (pymatgen)

While the Materials Project website has a phase diagram app (<https://materialsproject.org/phasediagram>), and `PhaseDiagram` objects can also be obtained directly from the API ([Examples](/downloading-data/using-the-api/examples#phase-diagram)), two code snippets are provided below that show how to use the API and pymatgen to construct and plot your own phase diagrams with Python.

#### GGA/GGA+U

Constructing mixed GGA/GGA+U phase diagrams **can be done directly with the corrected `ComputedStructureEntry` objects from the API.**

```python
from mp_api.client import MPRester
from pymatgen.analysis.phase_diagram import PhaseDiagram, PDPlotter

with MPRester("your_api_key") as mpr:

    # Obtain only corrected GGA and GGA+U ComputedStructureEntry objects
    entries = mpr.get_entries_in_chemsys(elements=["Li", "Fe", "O"], 
                                         additional_criteria={"thermo_types": ["GGA_GGA+U"]}) 
    # Construct phase diagram
    pd = PhaseDiagram(entries)
    
    # Plot phase diagram
    PDPlotter(pd).get_plot()
```

#### GGA/GGA+U/R2SCAN

Constructing a mixed GGA/GGA+U/R2SCAN phase diagram **requires corrections to be reapplied locally.** This is because the corrected `ComputedStructureEntry` object obtained from the thermodynamic data endpoint of the API for a given material is from its home chemical system phase diagram (i.e. `Si-O` for SiO2, or `Li-Fe-O` for Li2FeO3).

**Unlike the previous GGA/GGA+U only mixing scheme, the updated scheme does not guarantee the same correction to an entry in phase diagrams of different chemical systems.** In other words, the energy correction applied to the entry for silicon (mp-149) in the Si-O phase diagram is not guaranteed to be the same for the one in the Si-O-P phase diagram.

For more details on the correction scheme and its logic, see the [Energy Corrections](/methodology/materials-methodology/thermodynamic-stability/thermodynamic-stability) section or the original publication [\[4\]](#references).

```python
from mp_api.client import MPRester
from pymatgen.analysis.phase_diagram import PhaseDiagram, PDPlotter
from pymatgen.entries.mixing_scheme import MaterialsProjectDFTMixingScheme

with MPRester("your_api_key") as mpr:

    # Obtain GGA, GGA+U, and r2SCAN ComputedStructureEntry objects
    entries = mpr.get_entries_in_chemsys(elements=["Li", "Fe", "O"], 
                                         additional_criteria={"thermo_types": ["GGA_GGA+U", "R2SCAN"]}) 
    
    # Apply corrections locally with the mixing scheme
    scheme = MaterialsProjectDFTMixingScheme()
    corrected_entries = scheme.process_entries(entries)
    
    # Construct phase diagram
    pd = PhaseDiagram(corrected_entries)
    
    # Plot phase diagram
    PDPlotter(pd).get_plot()
```

## Citations

{% hint style="info" %}
**Methodology (I)**

[S. P. Ong, L. Wang, B. Kang, G. Ceder., The Li-Fe-P-O2 Phase Diagram from First Principles Calculations, Chemistry of Materials, vol. 20, Mar. 2008, pp. 1798-1807.](https://doi.org/10.1021/cm702327g)
{% endhint %}

{% hint style="info" %}
**Methodology (II)**

[S.P. Ong, A. Jain, G. Hautier, B. Kang, and G. Ceder, Thermal stabilities of delithiated olivine MPO4 (M=Fe, Mn) cathodes investigated using first principles calculations, Electrochemistry Communications, vol. 12, 2010, pp. 427-430](https://doi.org/10.1016/j.elecom.2010.01.010).
{% endhint %}

## References

\[1] Bartel, C.J. Review of computational approaches to predict the thermodynamic stability of inorganic solids. *J Mater Sci* **57,** 10475–10498 (2022).[ https://doi.org/10.1007/s10853-022-06915-4](https://doi.org/10.1007/s10853-022-06915-4)

\[2] V. Raghavan, Fe-Li-O Phase Diagram, ASM Alloy Phase Diagrams Center, P. Villars, editor-in-chief; H. Okamoto and K. Cenzual, section editors; <http://www1.asminternational.org/AsmEnterprise/APD>, ASM International, Materials Park, OH, 2006.

\[3] C. Bradford Barber, David P. Dobkin, and H. Huhdanpaa, ACM Trans. Mathematical Software (TOMS), vol. 22, pp. 469 - 483, yr. 1996. ([DOI](https://dx.doi.org/10.1145/235815.235821))

\[4] Kingsbury, R.S., Rosen, A.S., Gupta, A.S. *et al.* A flexible and scalable scheme for mixing computed formation energies from different levels of theory. *npj Comput Mater* 8, 195 (2022). <https://doi.org/10.1038/s41524-022-00881-w>


# Chemical Potential Diagrams (CPDs)

Overview of how chemical potential diagrams (CPDs) are constructed and visualized. These are available as part of the Phase Diagram App.

## Introduction

The chemical potential diagram is the mathematical dual to the compositional phase diagram. To create the diagram, convex minimization is performed in energy (E) vs. chemical potential (μ) space by taking the lower convex envelope of hyperplanes. Accordingly, “points” on the compositional phase diagram become N-dimensional convex polytopes (domains) in chemical potential space.

For more information on this specific implementation of the algorithm, please cite/reference the paper below:

## Methodology

### Constructing hyperplanes

### Calculating lower convex envelope (halfspace intersection)

![Figure by Matthew McDermott.](/files/mxIZ4jirIvLKM2cgEzWJ)

### Visualizing the chemical potential diagram

![Two dimensional (2-D) chemical potential diagram for the V-S chemical system. Energies are DFT-calculated energies directly acquired from MP database.](/files/3DCUlLPPj5divYvICf7f)

![Three dimensional (3-D) chemical potential diagram for the V-S-O chemical system. Energies are DFT-calculated energies directly acquired from MP database.](/files/X79vd2rTCIdkJXwAXpgY)

### Relationship to predominance diagrams

![Relationship between 3-D chemical potential diagram and predominance diagrams, which are 2-D views of the full three-dimensional chemical potential diagram surface. Figure by Matthew McDermott.](/files/14nUSMj6z6nuDVarD09w)

## Citations

{% hint style="info" %}
**Methodology**

Todd, P. K., McDermott, M. J., Rom, C. L., Corrao, A. A., Denney, J. J., Dwaraknath, S. S., Khalifah, P. G., Persson, K. A., & Neilson, J. R. (2021). Selectivity in Yttrium Manganese Oxide Synthesis via Local Chemical Potentials in Hyperdimensional Phase Space. Journal of the American Chemical Society, 143(37), 15185-15194. <https://doi.org/10.1021/jacs.1c06229>
{% endhint %}

## References

\[1] Yokokawa, H. “Generalized chemical potential diagram and its applications to chemical reactions at interfaces between dissimilar materials.” JPE 20, 258 (1999). <https://doi.org/10.1361/105497199770335794>

\[1] Todd, P. K., McDermott, M. J., Rom, C. L., Corrao, A. A., Denney, J. J., Dwaraknath, S. S., Khalifah, P. G., Persson, K. A., & Neilson, J. R. (2021). Selectivity in Yttrium Manganese Oxide Synthesis via Local Chemical Potentials in Hyperdimensional Phase Space. Journal of the American Chemical Society, 143(37), 15185-15194. <https://doi.org/10.1021/jacs.1c06229>


# Finite Temperature Estimation

Description of the methodology used to estimate Gibbs free energies of formation at finite (T>0 K) temperature. This is an option available within the Phase Diagram App.

## Background

## Methodology

## Citations

## References


# Electronic Structure

How electronic band structures and density of states are calculated on the Materials Project (MP) website.

## Calculation Details

A relaxed structure associated with the canonical data in the `entries` field of a material data entry is used to run both uniform and line-mode NSCF calculations with the same functional (and U if any). Currently, only GGA (PBE) and GGA+U DOS and band structures are available from the database.

We first run a static (SCF) calculation with a uniform (Monkhorst Pack or $$\Gamma$$-centered for hexagonal systems) k-point grid determined by the standard `MPStaticSet` input set in pymatgen. The charge density is extracted from this and used for the subsequent uniform and line-mode NSCF calculations. The parameters for both of these are determined by the `MPNonSCFSet` input set in pymatgen. For more details, see the band structure workflow in [atomate](https://atomate.org/).

### Line-mode Band Structure

The line-mode NSCF calculation is run with k-points chosen along high-symmetry lines within the Brillouin zone of the material. Currently, three conventions for choosing this k-path are used, and follow the methodologies by Curtarolo et al. [\[1\]](#references), Hinuma et al. [\[2\]](#references), and Munro et al. [\[3\]](#references) Code for generating the k-paths can be found within [pymatgen](https://pymatgen.org/pymatgen.symmetry.html#pymatgen.symmetry.bandstructure.HighSymmKpath).

The Setyawan-Curtarolo band structure data is displayed on the website by default with full lines for spin-up and dashed lines for spin-down. For insulators, the band gap is computed according to the band structure. The nature of the gap (direct or undirect) as well as the k-points involved in the band gap transition are displayed. The VBM and CBMs are displayed for insulators as well by purple dots. Note that the website might not show all bands included in the calculation. These can be obtained by by downloaded the band structure data from the [API](/downloading-data/using-the-api).

### Density of States (DOS)

The DOS displayed on the website shows the total DOS, and elemental projections by default. However, total orbital and elemental orbital projections are also calculated and available from the [API](/downloading-data/using-the-api). Please note that the DOS data and line-mode band structure may not completely agree on all derived properties such as the band-gap due to k-point grid differences. For instance, the uniform k-point grid used to calculate the DOS might not include some specific k-points along one of the high-symmetry lines, while the line-mode band structure will.

### Material Band Gap

The band gap listed for a given material is chosen from one of its calculations. The current calculation hierarchy is as follows:

**Density of States > Line-mode Band Structure > Static (SCF) > Optimization**

## Accuracy of Band Structures

**Note**: *The term 'band gap' in this section generally refers to the fundamental gap, not the optical gap. The difference between these quantities is reported to be small in semiconductors but significant in insulators.* [\[4\]](#references)

![](/files/zIKD3xmr1xuRv2uxSKnC)

*Figure 1: Experimental versus computed band gaps for 237 compounds in an internal test. The computed gaps are underestimated by an average factor of 1.6, and the residual error even after accounting for this shift is significant (MAE of 0.6 eV). We thank M. Chan for her assistance in compiling this data.*

Density functional theory is formulated to calculate ground state properties. Although the band structure involves excitations of electrons to unoccupied states, the Kohn-Sham energies used in solving the DFT equations are often interpreted to correspond to electron energy levels in the solid.

The correspondence between the Kohm-Sham eigenvalues computed by DFT and true electron energies is theoretically valid only for the highest occupied electron state. The Kohn-Sham energy of this state matches the first ionization energy of the material, given an exact exchange-correlation functional. However, for other energies, there is no guarantee that Kohn-Sham eigenvalues will correspond to physical observables.

Despite the lack of a rigorous theoretical basis, the DFT band structure does provide useful information. In general, band dispersions predicted by DFT are reported to match experimental observations; one small test of band dispersion accuracy found that errors ranged from 0.1 to about 0.4 eV.[\[5\]](#references) However, predicted band gaps are usually severely underestimated. Therefore, a common way to interpret DFT band structures is to apply a 'scissor' operation whereby the conduction bands are shifted in energy by a constant amount so that the band gap matches known experimental observations.

### Band gaps

In general, band gaps computed with common exchange-correlation functionals such as the LDA and GGA are severely underestimated. Typically the disagreement is reported to be around 50% in the literature. Some internal testing by the Materials Project supports these statements; typically, we find that band gaps are underestimated by about 40% (Figure 1). We additionally find that several known insulators are predicted to be metallic.

#### Origin of band gap error and improving accuracy

The errors in DFT band gaps obtained from calculations can be attributed to two sources: 1. Approximations employed to the exchange correlation functional 2. A derivative discontinuity term, originating from the true density functional being discontinuous with the total number of electrons in the system.

Of these contributions, (2) is generally regarded to be the larger and more important contribution to the error. It can be partly addressed by a variety of techniques such as the GW approximation but typically at high computational cost.

Strategies to improve band gap prediction at moderate to low computational cost now been developed by several groups, including Chan and Ceder (delta-sol),[\[6\]](#references) Heyd et al. (hybrid functionals) [\[7\]](#references), and Setyawan et al. (empirical fits) [\[8\]](#references). (These references also contain additional data regarding the accuracy of DFT band gaps.) The Materials Project may employ such methods in the future in order to more quantitatively predict band gaps. For the moment, computed band gaps should be interpreted with caution.

## Materials Displaying Unexpected 0 eV Band Gaps

It is not uncommon to encounter materials on the Materials Project (MP) that are listed with a 0 eV band gap, even though they were previously reported (or expected) to be insulating or semiconducting. This can be surprising, especially if earlier MP data or published literature reported a nonzero band gap.

This section explains **why a 0 eV band gap might appear**, how to **determine if it is limitation of DFT, or a parsing artifact**, and how to **recompute or validate the band gap** using MP’s API and `pymatgen`.

***

### Why Might a Material Show a 0 eV Band Gap?

* **Database and Parsing Updates:** The MP team periodically improves its calculation methods and data parsing. In late 2024, MP changed how band gaps are parsed and stored, leading to updates in many materials’ reported band gaps.
* **Task Type Corrections:** Sometimes, the type of calculation used to determine the band gap is corrected in the database, which can change the reported value.
* **Ambiguities in Band Edge Detection:** Automated methods for detecting the conduction band minimum (CBM) and valence band maximum (VBM) can sometimes fail, especially for materials with complex density of states (DOS) near the Fermi level.
* **Numerical Artifacts:** In rare cases, bugs or limitations in the parsing code or the underlying calculation (e.g., Fermi level placement) can result in an incorrect 0 eV gap.

***

### How to Check if a 0 eV gap is from DFT or a parsing artifact

#### 1. Look Up the Material’s Calculation Tasks

Check which calculation (task) was used to determine the band gap. The MP API provides task IDs for band structure and DOS calculations.

{% code overflow="wrap" %}

```python
from mp_api.client import MPRester

with MPRester() as mpr:
    summ_doc = mpr.materials.summary.search(material_ids=["mp-1211100"])[0]

print("Band structure task:", getattr(summ_doc.bandstructure, "latimer_munro", None)) 
print("DOS task:", getattr(summ_doc.dos, "latimer_munro", None))
```

{% endcode %}

#### 2. Recompute the Band Gap from DOS

The most robust way to check the band gap is to recompute it from the DOS:

{% code overflow="wrap" %}

```python
from mp_api.client import MPRester

with MPRester() as mpr:
    dos = mpr.materials.electronic_structure_dos.get_dos_from_task_id('mp-1776854') 
print("Band gap from DOS:", dos.get_gap()) # Output: e.g., 5.84 eV
```

{% endcode %}

#### 3. Recompute the Band Gap from Band Structure

In some cases, the band structure object may have an incorrect Fermi level. You can reconstruct it using the VBM from the DOS:

{% code overflow="wrap" %}

```python
from mp_api.client import MPRester

from pymatgen.electronic_structure.bandstructure import BandStructure

with MPRester() as mpr:
    band_struct = mpr.materials.electronic_structure_bandstructure.get_bandstructure_from_task_id("mp-1776854")
    dos =  mpr.materials.electronic_structure_dos.get_dos_from_task_id("mp-1776854")
 
cbm, vbm = dos.get_cbm_vbm()

bs_corrected = BandStructure( [k.frac_coords for k in bs.kpoints], band_struct.bands, band_struct.lattice_rec, vbm, band_struct.labels_dict, structure=band_struct.structure )

print("Band gap from corrected band structure:", bs_corrected.get_gap()) # Output: e.g., ~6.14 eV
```

{% endcode %}

***

### Common Causes and Solutions

| Cause                             | What to Do                                      |
| --------------------------------- | ----------------------------------------------- |
| **Physical Metal/Semimetal**      | 0 eV is correct                                 |
| **Parsing Artifact or Bug**       | Recompute from DOS or band structure (see code) |
| **Database Update/Method Change** | Check release notes/changelog                   |
| **Missing Calculations/Data**     | Data may not be available for this material     |

***

### Additional Notes

* Not all materials have band structure or DOS data available. If the API returns `None` for these, the calculation has not been performed.
* As of now, the raw VASP output files are not publicly available, but the MP team is working on making these accessible.
* For more details, see the [Materials Project changelog](https://next-gen.materialsproject.org/changelog)

***

**If you continue to see unexpected 0 eV band gaps, or if you have evidence that a material should be insulating, consider reporting the issue on the** [**Materials Project forum**](https://matsci.org/)**.**

## Citation

To cite the calculation methodology, please reference the following works:

1. A. Jain, G. Hautier, C. Moore, S.P. Ong, C.C. Fischer, T. Mueller, K.A. Persson, G. Ceder., A High-Throughput Infrastructure for Density Functional Theory Calculations, Computational Materials Science, vol. 50, 2011, pp. 2295-2310. [DOI:10.1016/j.commatsci.2011.02.023](https://dx.doi.org/10.1016/j.commatsci.2011.02.023)

## Authors

1. Anubhav Jain
2. Shyue Ping Ong
3. Geoffroy Hautier
4. Charles Moore
5. Jason Munro

## References

\[1]: W. Setyawan, S. Curtarolo, High-throughput electronic band structure calculations: Challenges and tools, Computational Materials Science 2010, 49, 299-312.

\[2]: Y. Hinuma, P. Giovanni, Y. Kumagai, F. Oba, I. Tanaka, Band structure diagram paths based on crystallography Computational Materials Science 2017, 128, 140-184.

\[3]: J.M. Munro, K. Latimer, M.K. Horton, S. Dwaraknath, K.A. Persson, An improved symmetry-based approach to reciprocal space path selection in band structure calculations, npj Computarional Materials 2020, 6, 112.

\[4]: E.N. Brothers, A.F. Izmaylov, J.O. Normand, V. Barone, G.E. Scuseria, Accurate solid-state band gaps via screened hybrid electronic structure calculations., The Journal of Chemical Physics. 129 (2008)

\[5]: R. Godby, M. Schluter, L.J. Sham, Self-energy operators and exchange-correlation potentials in semiconductors, Physical Review B. 37 (1988).

\[6]: M. Chan, G. Ceder, Efficient Band Gap Predictions for Solids, Physical Review Letters 19 (2010)

\[7]: J. Heyd, J.E. Peralta, G.E. Scuseria, R.L. Martin, Energy band gaps and lattice parameters evaluated with the Heyd-Scuseria-Ernzerhof screened hybrid functional, Journal of Chemical Physics 123 (2005)

\[8]: W. Setyawan, R.M. Gaume, S. Lam, R. Feigelson, S. Curtarolo, High-throughput combinatorial database of electronic band structures for inorganic scintillator materials., ACS Combinatorial Science. (2011).


# Phonon Dispersion

How phonon dispersion and phonon band structures are calculated/visualized on the Materials Project (MP) website.

## Introduction

A phonon is a collective excitation of a set of atoms in condensed matter. These excitations can be decomposed into different modes, each being associated with an energy that corresponds to the frequency of the vibration. The different energies associated with each vibrational mode constitute the phonon vibrational spectra (or phonon band structure). The vibrational spectra of materials play an important role in physical phenomena such as thermal conductivity, superconductivity, ferroelectricity and carrier thermalization.

There are different methods to calculate the vibrational spectra from first-principles using the density functional theory formalism (DFT). It can be obtained from the Fourier transform of the trajectories of the atoms on a molecular dynamics run, from finite-differences of the total energy with respect to atomic displacements or directly from density functional perturbation theory (DFPT). The latter method is the one used in the calculations on the Materials project page.

## Formalism

In the density functional perturbation theory formalism the derivatives of the total energy with respect to a perturbation are directly obtained from the self-consistency loop [\[1\]](#references) For a generic point **q** in the Brillouin zone the phonon frequencies $$\omega\_{\mathbf{q},m}$$ and eigenvectors $$U\_m(\mathbf{q}\kappa'\beta)$$ are obtained by solving of the generalized eigenvalue problem

$$
\sum\_{\kappa'\beta}\widetilde{C}*{\kappa\alpha,\kappa'\beta}(\mathbf{q})U\_m(\mathbf{q}\kappa'\beta) = M*{\kappa}\omega^2\_{\mathbf{q},m}U\_m(\mathbf{q}\kappa\alpha)
$$

where $$\kappa$$ labels the atoms in the cell, $$\alpha$$ and $$\beta$$ are cartesian coordinates and $$\widetilde{C}\_{\kappa\alpha,\kappa'\beta}(\mathbf{q})$$ are the interatomic force constants in reciprocal space, which are related to the second derivatives of the energy with respect to atomic displacements. These values have been obtained by performing a Fourier interpolation of those calculated on a regular grid of **q**-points obtained with DFPT.

## Thermodynamic properties

The vibrational density of states $$g(\omega)$$ is obtained from an integration over the full Brillouin zone

$$
g(\omega) = \frac{1}{3nN}\sum\_{\mathbf{q},m}\delta(\omega-\omega\_{\mathbf{q},m})
$$

where $$n$$ is the number of atoms per unit cell and $$N$$ is the number of unit cells. The expressions for the Helmholtz free energy $$\Delta F$$, the phonon contribution to the internal energy $$\Delta E\_{\text{ph}}$$, the constant-volume specific heat $$C\_v$$ and the entropy $$S$$ can be obtained in the harmonic approximation [\[2\]](#references)

$$
\Delta F = 3nNk\*BT\int\_{0}^{\omega\_L}\text{ln}\left(2\text{sinh}\frac{\hbar\omega}{2k\_BT}\right)g(\omega)d\omega
$$

$$
\Delta E\_{\text{ph}} = 3nN\frac{\hbar}{2}\int\_{0}^{\omega\_L}\omega\text{coth}\left(\frac{\hbar\omega}{2k\_BT}\right)g(\omega)d\omega
$$

$$
C\*v = 3nNk\_B\int\_{0}^{\omega\_L}\left(\frac{\hbar\omega}{2k\_BT}\right)^2\text{csch}^2\left(\frac{\hbar\omega}{2k\_BT}\right)g(\omega)d\omega
$$

$$
S = 3nNk\*B\int\_{0}^{\omega\_L}\left(\frac{\hbar\omega}{2k\_BT}\text{coth}\left(\frac{\hbar\omega}{2k\_BT}\right) - \text{ln}\left(2\text{sinh}\frac{\hbar\omega}{2k\_BT}\right)\right)g(\omega)d\omega
$$

where $$k\_B$$ is the Boltzmann constant and $$\omega\_L$$ is the largest phonon frequency.

## Calculation details

All the DFT and DFPT calculations are performed with the ABINIT software package [\[3,4\]](#references).

The PBEsol [\[5\]](#references) semilocal generalized gradient approximation exchange-correlation functional (XC) is used for the calculations. This functional is proven to provide accurate phonon frequencies compared to experimental data [\[6\]](#references). The pseudopotentials are norm-conserving [\[7\]](#references) and taken from the pseudopotentials table Pseudo-dojo version 0.3 [\[8\]](#references).

The plane wave cutoff is chosen based on the hardest element for each compound, according to the values suggested in the Pseudo-dojo table. The Brillouin zone is sampled using equivalent **k**-point and **q**-point grids that respect the symmetries of the crystal with a density of approximately 1500 points per reciprocal atom and the **q**-point grid is always $$\Gamma$$-centered \[^9].

All the structures are relaxed with strict convergence criteria, i.e. until all the forces on the atoms are below $$10^{-6}$$ Ha/Bohr and the stresses are below $$10^{-4}$$ Ha/Bohr$$^3$$.

The primitive cells and the band structures are defined according to the conventions of Setyawan and Curtarolo [\[10\]](#references).

## Citation

Guido Petretto, Shyam Dwaraknath, Henrique P. C. Miranda, Donald Winston, Matteo Giantomassi, Michiel J. van Setten, Xavier Gonze, Kristin A. Persson, Geoffroy Hautier, Gian-Marco Rignanese, *High-throughput density functional perturbation theory phonons for inorganic materials*, **Scientific Data**, 5, 180065 (2018). [doi:10.1038/sdata.2018.65](https://doi.org/10.1038/sdata.2018.65)

## References

\[1]: Gonze, X. & Lee, C. Dynamical matrices, Born effective charges, dielectric permittivity tensors, and interatomic force constants from density functional perturbation theory. Phys. Rev. B 55, 10355–10368 (1997)

\[2]: C. Lee & X. Gonze, Ab initio calculation of the thermodynamic properties and atomic temperature factors of SiO2 α-quartz and stishovite. Phys. Rev. B 51, 8610 (1995)

\[3]: Gonze, X. et al. First-principles computation of material properties: the Abinit software project. Computational Materials Science 25, 478 – 492 (2002)

\[4]: Gonze, X. et al. ABINIT: First-principles approach to material and nanosystem properties. Computer Physics Communications 180, 2582 – 2615 (2009)

\[5]: Perdew, J. P. et al. Restoring the density-gradient expansion for exchange in solids and surfaces. Phys. Rev. Lett. 100, 136406 (2008)

\[6]: He, L. et al. Accuracy of generalized gradient approximation functionals for density-functional perturbation theory calculations. Phys. Rev. B 89, 064305 (2014)

\[7]: Hamann, D. R. Optimized norm-conserving Vanderbilt pseudopotentials. Phys. Rev. B 88, 085117 (2013)

\[8]: van Setten, M., Giantomassi, M., Bousquet, E., Verstraete, M.J., Hamann, D.R., Gonze, X. & Rignanese, G.-M., et al. The PseudoDojo: Training and grading a 85 element optimized norm-conserving pseudopotential table (2018). Computer Physics Communications 226, 39.

\[9]: Petretto, G., Gonze, X., Hautier, G. & Rignanese, G.-M. Convergence and pitfalls of density functional perturbation theory phonons calculations from a high-throughput perspective. Computational Materials Science 144, 331 – 337 (2018)

\[10]: Setyawan, W. & Curtarolo, S. High-throughput electronic band structure calculations: Challenges and tools. Computational Materials Science 49, 299 – 312 (2010)


# Diffraction Patterns

How diffraction patterns are calculated on the Materials Project (MP) website.

## Introduction

Diffraction occurs when waves (electrons, x-rays, neutrons) scattering from obstructions act as secondary sources of propagation. In the case of crystal structures, atoms in periodic lattices act as scattering sites from which constructive and destructive interference can occur. Line spectra of scattering intensity as a function incident angle can give powerful information into the planar spacing and symmetries of a crystalline material.

### X-ray Diffraction Formalism

The calculation of x-ray diffraction patterns (XRD) in the Materials Project relies on the diffraction condition in reciprocal space[\[1\]](#references):

$$
\bold{k}=\bold{k'}+\bold{g}\_{hkl}
$$

where $\bold{k}$ is the wave vector of the incident x-ray, $\bold{k'}$ is the wave​vector is the scattered x-ray and $\bold{g\_{hkl}}$ is the reciprocal lattice vector of the parallel set of diffracting planes with miller indices hkl. The length of reciprocal lattice plane vector $\bold{g\_{hkl}}$ is given by:

$$
|\bold{g\_{hkl}}| =\frac{2\sin \theta}{\lambda}
$$

where $\lambda$ is the wavelength of the x-ray. Therefore, the maximum diffraction plane condition which is searched is $|\bold{g\_{hkl}}| =\frac{2}{\lambda}$. Once all of the relevant diffraction planes with reciprocal lattice vectors within this limit are selected, the diffraction condition for each of these planes can be calculated:

$$
\sin( \theta) =  \frac{ \lambda}{2d\_{hkl}}
$$

where $d\_{hkl}$ is the is the spacing of the hkl plane. The structure factor for each of these diffraction conditions is calculated as:

$$
F\_{hkl} =  \sum \limits\_{j=1}^N f\_j  \exp(2 \pi i \ \mathbf{g\_{hkl}}
\cdot  \mathbf{r})
$$

where $j$ is the index for the $N$ atoms in the unit cell, $\bold{r}$​ is the basis vector for the atoms in the unit cell. The atomic scattering factor $f$​ is given by:

$$
f(s) = Z - 41.78214 \times s^2 \times \sum \limits\_{i=1}^n a\_i \
\exp(-b\_is^2)
$$

where $s = \frac{\sin(\theta)}{\lambda}$, $a\_{i}$ and $b\_{i}$ are parameters fitted to individual elements. ​The intensity of each diffraction condition is given by the squared modulus of the structure factor.

Finally the Lorentz-polarization factor is applied to correct for the change in x-ray amplitude due to scattering angle and geometry of the experimental conditions:

$$
P( \theta) =  \frac{1 +  \cos^2(2 \theta)}
{ \sin^2( \theta) \cos( \theta)}
$$

### Electron Diffraction

The Transmission Electron Microscopy (TEM) pattern for multiple Laue zones is calculated similarly to the XRD diffraction patterns and is available through the diffraction properties tab in the materials explorer.

## Code implementations

The above methods are implemented in the [`XRDCalculator`](https://github.com/materialsproject/pymatgen/blob/7b92f9ab4112d538381f4ee4dd6119295c200245/src/pymatgen/analysis/diffraction/xrd.py#L57) and [`TEMCalculator`](https://github.com/materialsproject/pymatgen/blob/7b92f9ab4112d538381f4ee4dd6119295c200245/src/pymatgen/analysis/diffraction/tem.py#L37) classes in `pymatgen`. The procedures used to produce an [XRD](https://github.com/materialsproject/crystaltoolkit/blob/a83185c5d00ba437cb59da986d8501741f9370c2/crystal_toolkit/components/diffraction.py#L47) or [TEM](https://github.com/materialsproject/crystaltoolkit/blob/a83185c5d00ba437cb59da986d8501741f9370c2/crystal_toolkit/components/diffraction_tem.py#L28) image on the Materials Project website can be found in the `crystal_toolkit` package.

## References

\[1]: De Graef, Marc, and Michael E. McHenry. *Structure of materials: an introduction to crystallography, diffraction and symmetry*. Cambridge University Press, 2012.


# Aqueous Stability (Pourbaix)

How aqueous stability (Pourbaix) diagrams are calculated and plotted on the Materials Project (MP) website.

{% hint style="info" %}
If using Pourbaix functionality for scientific research, please make sure to consult the original peer-reviewed publication and the[ "Known Issues"](#known-issues) section below.
{% endhint %}

## Introduction

A Pourbaix diagram, also frequently called a potential-pH diagram, or E-pH diagram, is a representation of aqueous phase electrochemical equilibria. It is a two-dimensional representation of a three-dimensional free energy-pH-potential diagram. In other words, it shows water-stable phases as a function of pH and potential, where, potential is defined with respect to the standard hydrogen electrode.

Experimentally determining Pourbaix Diagrams is painstaking work, as we need not only the free energy of aqueous ions, but also that of all solid phases that a system can exist in. The Materials Project offers a very convenient and powerful database of materials properties which has been used to generate Pourbaix diagrams in a high-throughput manner.

This manual outlines the usage of the Pourbaix App to calculate Pourbaix diagrams, and the thermodynamic formalism underlying the app.

## Thermodynamic Formalism of Pourbaix Diagrams

To calculate a Pourbaix diagram, free energies of the solid phases, and of the aqueous ions are required. Calculating free energies of ions is tricky, and time-consuming. To overcome this problem, a methodology utilizing experimentally measured free energies of aqueous ions and the calculated DFT energies for solid phases available in the Materials Project was developed.\[[1](https://github.com/materialsproject/docs/blob/e39711bcaa6a8f5d23258ade81f183e8c8df9476/docs/user-guide/pourbaix-tool.md#user-content-fn-1-e21700c5589a153a93175166fc253adf)] Note that the correction scheme described below is applied over and above any compatibilities/corrections which are applied to the species.

### Referencing Energies of Aqueous Ions

Briefly, for each ion, a reference solid is chosen, and the correction term is calculated for the ion as the energy difference between the experimental and the DFT calculated energies of the reference solid. The basic idea behind this scheme is that, if we have a reference energy for an aqueous ion which reproduces the correct dissolution for one solid, then accurate DFT solid-solid energy differences ensure that all other solids dissolve accurately with respect to that ion. The better the solid is represented by DFT, the more transferable the reference aqueous energy becomes. We therefore prefer to choose simple chemical systems (primarily binaries with an uncomplicated electronic structure) as representative solids.

For an aqueous ion i at standard state conditions (e.g., room temperature, atmospheric pressure, and 10^−6 M concentration) using a representative solid s, we define the chemical potential as:

\\

![Figure 1: Schematic to reference experimental aqueous ion energies to DFT data](/files/jeb2tfEr7GkJVm31L7Hn)

![](/files/eZrR9Zs1lG3M2V9gZ1wE)

Figure 1 shows this schematically.

### Correction for Water

In an aqueous environment, many chemical and electrochemical reactions are enabled by the breakdown, formation, or incorporation of water molecules. It is therefore important that the free energy of formation of water is captured accurately. This is known accurately from experiments as −2.46 eV. So, at standard state, the free energy of formation of water is set as follows:

![](/files/V9iapSWVhgtoeDB5zxPk)

### Correction for Elemental Gaseous, and Liquid States, except H2

For all gaseous elements, the experimentally determined entropic contribution at 298 K is added to the DFT/corrected energy of the element as follows:

<div align="center"><img src="/files/ygRLQodwN3AAm4Qge7FL" alt=""></div>

This is implemented for the following elements: O2, F2, Cl2, Br2, Hg

### Correction for H2

In an aqueous environment, O2 and H2 in their gaseous states are in equilibrium with water through the reaction

![](/files/ipETeH9oDij7hrMQdVlI)

Hence, the hydrogen energy is corrected such that the experimental free energy of formation of H2O is reproduced.

![](/files/2PRBmgrvpzDqzg8Kln95)

### Electrochemical Stability of Metastable Materials

In principle, Pourbaix diagrams account for materials only at thermodynamic equilibrium, providing no insight into the electrochemical stability of metastable materials which find practical applications in many commercial applications. However, one can compute the Gibbs free energy difference for an arbitrary material with respect to the Pourbaix stable domains as a function of pH and E, providing an electrochemical (in)stability map for this material. For detailed information on the formalism and its applications see reference 2.\[[2](https://github.com/materialsproject/docs/blob/e39711bcaa6a8f5d23258ade81f183e8c8df9476/docs/user-guide/pourbaix-tool.md#user-content-fn-2-e21700c5589a153a93175166fc253adf)]

### Using the Computational Pourbaix App

The Pourbaix app is capable of plotting elemental, and multi-element Pourbaix diagrams. To construct an Elemental Pourbaix diagram, enter the element of choice, and click on the Generate button.

To generate a multi-elemental Pourbaix diagram, choose the desired multiple elements from the periodic table, and click the Generate button. Note that oxygen and hydrogen are included by default, since these elements are always "open" in a Pourbaix diagram.

For multi-elemental diagrams, sliders are provided to specify a composition of the elements. Note that for each composition, a new Pourbaix diagram is generated from scratch.

To generate electrochemical stability maps of a specific material go to the material's details page and click on the "Aqueous Stability (Pourbaix)" tab which can be found in the "Generate Phase Diagram" tab. A new tab will open which will show the electrochemical stability map superimposed on a Pourbaix diagram. The ratio of elements used to generate the Pourbaix diagram are same as that of the material in consideration. Electrochemical stability maps are available for materials with up to three non H and O elements. For materials with more than three elements, one can use pymatgen to generate the maps programmatically.

### Interfacing With the Data

To ensure a clutter-free diagram, the domains on the Pourbaix diagram are not labeled by default. To view labels on the plot, select the "Domain Labels" check box. Each domain has a mouse-over point located at the center of the domain. Mousing over these points displays the entries corresponding to the domain. Domains which contain a solid in solution are shaded. This helps identify passivation regions, especially in multi-elemental systems, were identifying passivation regions is tricky. Zooming into domains is quite simple! Just drag a selection window using your mouse. To reset zoom, click on the reset zoom button which appears on the upper right corner. Data tables are shown to the right of the Pourbaix diagram. Mousing over rows in the "Stable" column of the table highlights the corresponding entries in the Pourbaix diagram. Some stable entries may not get highlighted. This is because the domains corresponding to these entries lies outside the standard limits of the Pourbaix diagram. The "Unstable" column in the table lists the unstable entries, and their corresponding energies above hull. Links in the data tables lead to more information about the corresponding entries. Unlinked entries are ions. Mousing over the book icon next to the ions shows the reference for the free energy of formation of the aqueous ion.

## Demonstration of the Pourbaix App

This section briefly demonstrates an elemental Pourbaix diagram, a multi-elemental Pourbaix diagram, and an electrochemical stability map.

### Elemental Pourbaix Diagram

Figure 2 shows the elemental Pourbaix diagram for Fe. The default concentration of ions is 10−8 M, but can be varied using the "Concentration" slider above the diagram.

![Figure 2: Pourbaix diagram for elemental Fe.](/files/qMmpFZ4s6jRPOMcSs4xg)

The two orange lines are the hydrogen reduction line, and the line denoting water oxidation to O2. These are clearly labeled in Figure 3. These lines show the stability region of H2O. For example, water is unstable below the H2 line, and so, hydrogen gas evolves at the cathode at conditions below this line. Similarly, above the O2 line, oxygen gas is evolved at the anode.

![Figure 3: Orange lines are the water oxidation and reduction lines in the Pourbaix diagram.](/files/INCUGZKaXcPB5guzI7gG)

### Multi-elemental Pourbaix diagram

The stability of multiple-elements in aqueous environments is predicted using multi-elemental Pourbaix diagrams like the one shown in Figure 4. The composition slider bar can be seen above the plot. Here, the small white bar separating the two colors can be clicked on and dragged to change the ratio of Fe to Cr. This may, or may not have any effect on the Pourbaix diagram. More information about how multi-elemental Pourbaix diagrams vary as a function of composition can be found elsewhere.\[[3](https://github.com/materialsproject/docs/blob/e39711bcaa6a8f5d23258ade81f183e8c8df9476/docs/user-guide/pourbaix-tool.md#user-content-fn-3-e21700c5589a153a93175166fc253adf)]

![Figure 4: Multi-elemental Fe-Cr Pourbaix diagram at a composition of 18% Cr, 82% Fe.](/files/qtgTSdGrbf4fj2IkR8lx)

For an n-element diagram, there are n coexisting phases. Note that these can be any mixture of solid, and aqueous phases. So, for the two-element diagram shown in Figure 4, there are two coexisting phases in each domain. As mentioned above, domains shaded blue indicate purely solid domains. For multi-elemental diagrams, shaded domains indicate those in which purely solid phases coexist.

### Electrochemical Stability Map

Figure 5 shows the Gibbs free energy of Fe2O3, as a scatter plot, superimposed over the Pourbaix diagram of Fe. For a material with more than one non H and O elements, the ratio of these elements is fixed to the ratio of elements of the material but the concentration of ions can be varied similar to the single- and multi-element Pourbaix diagrams.

![Figure 5: Electrochemical stability map of Fe2O3 (mp-24972).](/files/dY0MqIp49E8hUUl696ui)

A color bar is shown above the electrochemical stability maps. Note that Gibbs free energies larger than 1 eV/atom are not marked in the map. Stable and unstable phase energies can be found in the table to the right of the electrochemical stability map.

## Literature References for Ions

The free energies of ions in the aqueous phase have been taken from standard references/recent publications. The acronyms which show up on the tool-tips associated with the aqueous ions, and their corresponding references are as follows.

NBS Tables: NBS Thermodynamic tables.[4](https://github.com/materialsproject/docs/blob/e39711bcaa6a8f5d23258ade81f183e8c8df9476/docs/user-guide/pourbaix-tool.md#user-content-fn-4-e21700c5589a153a93175166fc253adf) M. Pourbaix (1974): Atlas of Electrochemical Equilibria in Aqueous Solutions. [5](https://github.com/materialsproject/docs/blob/e39711bcaa6a8f5d23258ade81f183e8c8df9476/docs/user-guide/pourbaix-tool.md#user-content-fn-5-e21700c5589a153a93175166fc253adf) Barin Knacke Kubaschewski: Thermochemical Properties of Inorganic Substances [6](https://github.com/materialsproject/docs/blob/e39711bcaa6a8f5d23258ade81f183e8c8df9476/docs/user-guide/pourbaix-tool.md#user-content-fn-6-e21700c5589a153a93175166fc253adf) Barner and Scheuerman (1978): Handbook of thermochemical data for compounds and aqueous species [7](https://github.com/materialsproject/docs/blob/e39711bcaa6a8f5d23258ade81f183e8c8df9476/docs/user-guide/pourbaix-tool.md#user-content-fn-7-e21700c5589a153a93175166fc253adf) Beverskog and Puigdomenech (1997): Beverskog and Puigdomenech, Corr. Sci. (1997) [8](https://github.com/materialsproject/docs/blob/e39711bcaa6a8f5d23258ade81f183e8c8df9476/docs/user-guide/pourbaix-tool.md#user-content-fn-8-e21700c5589a153a93175166fc253adf)\\

## Authors

Sai Jayaraman

Arunima K. Singh

Rebecca Stern

Eric Sivonxay

## Citations

1. K. A. Persson, B. Waldwick, P. Lazic, and G. Ceder, Phys. Rev. B, 85, 235438 (2012) [↩](https://github.com/materialsproject/docs/blob/e39711bcaa6a8f5d23258ade81f183e8c8df9476/docs/user-guide/pourbaix-tool.md#user-content-fnref-1-e21700c5589a153a93175166fc253adf)
2. A. K. Singh, L. Zhou, A. Shinde, S. K. Suram, J. H. Montoya, D. Winston, J. M. Gregoire, K. A. Persson, Chem. Mater. 29, 10159 (2017) [↩](https://github.com/materialsproject/docs/blob/e39711bcaa6a8f5d23258ade81f183e8c8df9476/docs/user-guide/pourbaix-tool.md#user-content-fnref-2-e21700c5589a153a93175166fc253adf)
3. Pourbaix Diagrams for Multielement Systems, Thompson, W. T., Kaye, M. H., Bale, C. W. and Pelton, A. D. (2011), in Uhlig's Corrosion Handbook, Third Edition (ed R. W. Revie), John Wiley & Sons, Inc., Hoboken, NJ, USA. [↩](https://github.com/materialsproject/docs/blob/e39711bcaa6a8f5d23258ade81f183e8c8df9476/docs/user-guide/pourbaix-tool.md#user-content-fnref-3-e21700c5589a153a93175166fc253adf)
4. NBS Technical Note 270-1 to 270-8. D. D. Wagman et. al, U. S. Department of Commerce (1973) [↩](https://github.com/materialsproject/docs/blob/e39711bcaa6a8f5d23258ade81f183e8c8df9476/docs/user-guide/pourbaix-tool.md#user-content-fnref-4-e21700c5589a153a93175166fc253adf)
5. Atlas of Electrochemical Equilibria in Aqueous Solutions, M. Pourbaix, NACE (1974) [↩](https://github.com/materialsproject/docs/blob/e39711bcaa6a8f5d23258ade81f183e8c8df9476/docs/user-guide/pourbaix-tool.md#user-content-fnref-5-e21700c5589a153a93175166fc253adf)
6. Thermochemical Properties of Inorganic Substances, I. Barin, O. Knacke, and O. Kubaschewski, Springer-Verlag, Berlin (1977) [↩](https://github.com/materialsproject/docs/blob/e39711bcaa6a8f5d23258ade81f183e8c8df9476/docs/user-guide/pourbaix-tool.md#user-content-fnref-6-e21700c5589a153a93175166fc253adf)
7. Handbook of thermochemical data for compounds and aqueous species, H. E. Barner, and R. V. Scheuerman, Wiley, New York, 1978 [↩](https://github.com/materialsproject/docs/blob/e39711bcaa6a8f5d23258ade81f183e8c8df9476/docs/user-guide/pourbaix-tool.md#user-content-fnref-7-e21700c5589a153a93175166fc253adf)
8. Revised Pourbaix diagrams for Ni at 25-300^oC, B. Beverskog and I. Puigdomenech, Corr. Sci., 39, 969-980 (1997) [↩](https://github.com/materialsproject/docs/blob/e39711bcaa6a8f5d23258ade81f183e8c8df9476/docs/user-guide/pourbaix-tool.md#user-content-fnref-7-e21700c5589a153a93175166fc253adf)
9. <https://github.com/materialsproject/docs/blob/e39711bcaa6a8f5d23258ade81f183e8c8df9476/docs/user-guide/pourbaix-tool.md#user-content-fnref-8-e21700c5589a153a93175166fc253adf>

\\


# Magnetic Properties

How magnetic properties are calculated on the Materials Project (MP) website.

## What are magnetic properties?

The magnetic behavior of a material is a complex and rich research area. The Materials Project currently only addresses a narrow aspect of the magnetism of materials: the magnitude and ordering of atomic magnetic moments in a crystal structure, at zero temperature.

At present, Materials Project only considers *collinear magnetic order* which means that atomic magnetic moments are represented by scalar values and not vectors.

## Methodology

The Materials Project approaches magnetism in two ways:

1. Historically, *all* materials are initialized in a *ferromagnetic* configuration by default. This was a pragmatic choice due to the computational expensive of considering all possible magnetic ordering. During the simulation of these materials, it is possible that the magnetic order will converge to a non-ferromagnetic order, but more likely the order will remain ferromagnetic even if the true ground state of the material is non-ferromagnetic. Therefore, the reported magnetic order for most materials on the Materials Project is a *description* of the calculated magnetic order, and *not a prediction* of the true ground state magnetic order.
2. For some materials, Materials Project has started to systematically search for ground state magnetic ordering of materials. This means that multiple magnetic ground states are considered for each material: ferromagnetic, anti-ferromagnetic, ferrimagnetic, etc. So far, this systematic search has been done for several thousand magnetic oxides. *For these materials, the reported magnetic order is therefore a prediction of the true ground state magnetic order.*

## References

{% embed url="<https://doi.org/10.1038/s41524-019-0199-7>" %}
Publication detailing the Materials Project strategy for magnetic materials.
{% endembed %}

{% embed url="<https://www.science.org/doi/full/10.1126/sciadv.abd1076>" %}
Publication detailing the initial set of magnetic orderings available on Materials Project.
{% endembed %}


# Elastic Constants

How elastic constants are calculated on the Materials Project (MP) website.

## Introduction

Elasticity describes a material's ability to resist deformations (i.e. size and shape) when subjected to external forces. This can be thought about in two, complementary ways:

* how much force is required to deform (stretch or compress) a material by a certain amount;
* how much a material will deform (stretch or compress) when a certain amount of external forces is applied to that material.

Elasticity is considered a reversible process. When the force is removed, the material returns to its original size and shape. This is only true up to a point: if a material is deformed too much, then it will be permanently changed.

For small deformations, most elastic materials exhibit linear elasticity and can be described by a linear relation between the stress and strain. These relationships are quantified with **elastic constants** like the **elasticity tensor** and its inverse quantity, the **compliance tensor**, as part of the theory of **linear elasticity.** These tensors can be used to calculate numbers such as the **bulk modulus, shear modulus, Young's modulus, and Poisson's ratio,** which are especially useful to describe the elastic behavior of isotropic materials.

It is beyond the scope of this documentation to explain this theory, but if this concept is new to you, a good place to start is to learn about [Hooke's Law](https://en.wikipedia.org/wiki/Hooke's_law). Readers with mathematical backgrounds are referred to ["Physical properties of crystals: their representation by tensors and matrices" by J.F. Nye](https://books.google.com/books?id=ugwql-uVB44C).

The Materials Project predicts elastic constants for over ten thousand materials. These are available via the Materials Project website and for direct download via the Materials Project API.

## Methodology

### Overview

The elastic constants from the Materials Project (MP) are calculated from first-principles Density Functional Theory (DFT). For a material, the process is started by performing an accurate structural relaxation, to a state of approximately zero stress. Subsequently, the relaxed structure is strained by changing its lattice vectors (magnitude and angle) and the resulting stress tensor is calculated from DFT, while allowing for relaxation of the ionic degrees of freedom. Finally, constitutive relations from linear elasticity, relating stress and strain, are employed to fit the full elastic tensor. From this, aggregate properties such as Voigt, Reuss, and Hill bounds on the bulk and shear moduli are derived. Multiple consistency checks are performed on all the calculated data to ensure its reliability and accuracy. For example, the $$6\times6$$ Voigt elastic matrix should be positive definite to ensure mechanical stability of a material.

### Voigt notation

Formally, the elastic tensor, $$\hat{\boldsymbol{C}}$$, is a forth-order tensor with 81 components (but only with 21 independent components):

$$
\boldsymbol{\sigma} = \boldsymbol{C}\boldsymbol{\epsilon} \quad \quad  \sigma\_{ij} = C\_{ijkl} \epsilon\_{kl} ,
$$

where $$\boldsymbol{\sigma}$$ and $$\boldsymbol{\epsilon}$$ are the second-order stress and strain tensors, respectively, and $$i,j,k,l$$ are Cartesian indices, taking values $$x$$, $$y$$, and $$z$$. Both $$\boldsymbol{\sigma}$$ and $$\boldsymbol{\epsilon}$$ symmetric tensor, and we can represent them in [Voigt notation](https://en.wikipedia.org/wiki/Voigt_notation) under the transformation $$xx \mapsto 1, yy \mapsto 2, zz \mapsto 3, yz \mapsto 4, xz \mapsto 5, xy \mapsto 6$$. For example, the strain transforms like $$\epsilon\_1 = \epsilon\_{xx}, \epsilon\_2 = \epsilon\_{yy}, \epsilon\_3 = \epsilon\_{zz}, \epsilon\_4 = \epsilon\_{yz}, \epsilon\_5 = \epsilon\_{xz}, \epsilon\_6 = \epsilon\_{xy}$$, and the elastic tensor transforms like $$C\_{xxxx} \mapsto C\_{11}, C\_{xxyy} \mapsto C\_{12}, .....$$Then the above linear elastic relationship can be expressed as

$$
\left\[
\begin{matrix}
\sigma\_{1} \\
\sigma\_{2} \\
\sigma\_{3} \\
\sigma\_{4} \\
\sigma\_{5} \\
\sigma\_{6}
\end{matrix}
\right]
=======

\left\[
\begin{matrix}
C\_{11} & C\_{12} & C\_{13} & C\_{14} & C\_{15} & C\_{16} \\
C\_{12} & C\_{22} & C\_{23} & C\_{24} & C\_{25} & C\_{26} \\
C\_{13} & C\_{23} & C\_{33} & C\_{34} & C\_{35} & C\_{36} \\
C\_{14} & C\_{24} & C\_{34} & C\_{44} & C\_{45} & C\_{46} \\
C\_{15} & C\_{25} & C\_{35} & C\_{45} & C\_{55} & C\_{56} \\
C\_{16} & C\_{26} & C\_{36} & C\_{46} & C\_{56} & C\_{66} \\
\end{matrix}
\right]
\left\[
\begin{matrix}
\epsilon\_{1} \\
\epsilon\_{2} \\
\epsilon\_{3} \\
2  \epsilon\_{5} \\
2  \epsilon\_{5} \\
2 \epsilon\_{6}
\end{matrix}
\right]
$$

The elastic tensor in Voigt notation is a $$6\times6$$ symmetric matrix, indicating that the elastic tensor has 21 independent components.

### Formalism

With the lattice vectors$${\boldsymbol{a}\_1, \boldsymbol{a}\_2, \boldsymbol{a}\_3}$$ of the relaxed structure, a material is first deformed according to $$\hat {\boldsymbol{a}}\_i = \boldsymbol{F} \boldsymbol{a}\_i, ( i=1,2,3)$$. The deformation gradient $$\boldsymbol{F}$$ is obtained by solving the equation for Green-Lagrange strain $$\boldsymbol{E}$$​, namely $$\boldsymbol{\epsilon} = \boldsymbol{E} = \frac{1}{2}\left(\boldsymbol{F}^T\boldsymbol{F} - \boldsymbol{I} \right)$$, where $$\boldsymbol{I}$$ is the identify matrix and the superscript denotes matrix transpose. Then he stress tensor, $$\boldsymbol{\sigma}$$, is obtained from DFT calculation for the deformed structure with the new lattice vectors $${ \hat{\boldsymbol{a}}\_1 ,\hat{\boldsymbol{a}}\_2, \hat{\boldsymbol{a}}\_3}$$. In the DFT calculation, the lattice vectors are fixed, but the ionic degree of freedoms are allowed to relax. Six strain states (listed below) are applied one by one to the initial relaxed structure so that only one independent deformation is considered each time. For each of the six strain states, 4 different default magnitudes strains are applied: $$\delta \in {-0.01, -0.005, +0.005, +0.01}$$. This leads to a total of 24 deformed structures, for which the stress tensor, $$\boldsymbol{\sigma}$$, is calculated. The obtained set of 24 stresses and strains are then used in a linear fitting to compute the elastic tensor. Note that conventional unit cells, obtained using pymatgen `SpacegroupAnalyzer`, are employed for all elastic constant calculations. In our experience, these cells typically yield more accurate and better converged elastic constants than primitive cells, at the cost of more computational time. We suspect this has to do with the fact that unit cells often exhibit higher symmetries and simpler Brillouin zones than primitive cells (an example is face centered cubic cells).

$$
\boldsymbol{\epsilon}=
\left\[{\begin{matrix}
\delta \\
0\\
0 \0 \0 \0 \\
\end{matrix}}\right] ,\quad
\boldsymbol{\epsilon}=
\left\[{\begin{matrix}
0 \\
\delta\\
0 \\
0 \\
0 \\
0 \\
\end{matrix}}\right] ,\quad
\boldsymbol{\epsilon} =
\left\[{\begin{matrix}
0 \\
0\\
\delta \\
0 \\
0 \\
0 \\
\end{matrix}}\right] ,\quad \boldsymbol{\epsilon} =
\left\[{\begin{matrix}
0 \\
0\\
0 \\
2\delta \\
0 \\
0 \\
\end{matrix}}\right] ,\quad
\boldsymbol{\epsilon} =
\left\[{\begin{matrix}
0 \\
0\\
0\\
0\\
2\delta \\
0 \\
\end{matrix}}\right] ,\quad
\boldsymbol{\epsilon} =
\left\[{\begin{matrix}
0 \\
0\\
0\\
0\\
0\\
2\delta \\
\end{matrix}}\right].
$$

Different choices of lattice vectors with respect to a Cartesian coordinate system may lead to elastic tensors that look different from what might be expected. For example, for the hexagonal crystal system it is commonly stated that $$C\_{11} = C\_{22}$$. However, this is true under the conditions that lattice vectors $$\boldsymbol{a}\_1$$and $$\boldsymbol{a}\_2$$are both in the basal plane, whereas $$\boldsymbol{a}\_3$$ is orthogonal to the basal plane. Hence, the elastic tensor can only be completely specified when the lattice vectors are expressed in a given coordinate system. To avoid confusion, we present the elastic tensor in two ways. First, the elastic tensor is presented for the exact choice of lattice vectors as presented on the Materials Project webpage. This is consistent with the cif-file of the "conventional standard" structure, which can also be downloaded from the Materials Project webpage. Elastic tensors can also be expressed in a standard format according to the IEEE standard. The standardized IEEE-format specifies the precise choice of lattice vectors in a coordinate system and thereby unambiguously defines the components of the elastic tensor [\[1\]](#references). In most cases, the elastic tensors in the POSCAR-format and the IEEE-format are identical. When the elastic tensor in POSCAR-format and IEEE-format are not identical however, they are related by a rotation, which can be obtained using the `get_ieee_rotation` method `pymatgen.core.tensors.Tensor` (including the elastic tensor).

### Derived elastic properties

From the elastic tensor defined above, a number of aggregate and derived properties is calculated. These properties are all available on the Materials Project webpage and are shown in the below Table. We report Voigt, Reuss and Voigt-Reuss-Hill [\[2\]](#references) bounds on the bulk and shear moduli for polycrystalline materials. Finally, the elastic anisotropy index [\[3\]](#references) and isotropic Poisson ratio are reported.

| Property                                | Unit         | Description                                                                                                          | Equation                                                                                                                              |
| --------------------------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Elastic tensor, $$C\_{ij}$$             | GPa          | Tensor, describing elastic behavior, corresponding to IEEE orientation, symmetrized to crystal structure             | see main text                                                                                                                         |
| Elastic tensor (original), $$C\_{ij}$$  | GPa          | Tensor, describing elastic behavior, unsymmetrized, corresponding to POSCAR (conventional standard cell) orientation | see main text                                                                                                                         |
| Compliance tensor, $$s\_{ij}$$          | GPa$$^{-1}$$ | Tensor, describing elastic behavior                                                                                  | $$s\_{ij} = C\_{ij}^{-1}$$                                                                                                            |
| Bulk modulus Voigt average, $$K\_V$$    | GPa          | Upper bound on $$K$$ for polycrystalline material                                                                    | $$9K\_{V}=\left(C\_{11}+C\_{22}+C\_{33}\right) + 2\left(C\_{12}+C\_{23}+C\_{31}\right)$$                                              |
| Bulk modulus Reuss average, $$K\_R$$    | GPa          | Lower bound on $$K$$ for polycrystalline material                                                                    | $$1 / K\_{R} = \left(s{11}+s{22}+s{33}\right) + 2\left(s{12}+s{23}+s\_{31}\right)$$                                                   |
| Shear modulus Voigt average, $G\_{V}$   | GPa          | Upper bound on $$G$$ for polycrystalline material                                                                    | $$15G\_{V} = \left(C{11}+C{22}+C{33}\right)-\left(C\_{12}+C\_{23}+C\_{31}\right) + 3\left(C\_{44}+C\_{55}+C\_{66}\right)$$            |
| Shear modulus Reuss average, $$G\_R$$   | GPa          | Lower bound on $$G$$ for polycrystalline material                                                                    | $$15 / G\_{R} = 4\left(s\_{11}+s\_{22}+s\_{33}\right)-4\left(s\_{12}+s\_{23}+s\_{31}\right) + 3\left(s\_{44}+s\_{55}+s\_{66}\right)$$ |
| Bulk modulus VRH average, $$K\_{VRH}$$  | GPa          | Average of $$K\_R$$ and $$K\_V$$                                                                                     | $$2 K\_{VRH} = \left(K\_{V} + K\_{R} \right)$$                                                                                        |
| Shear modulus VRH average, $$G\_{VRH}$$ | GPa          | Average of $$G\_R$$ and $$G\_V$$                                                                                     | $$2 G\_{VRH} = \left(G\_{V} + G\_{R} \right)$$                                                                                        |
| Universal elastic anisotropy, $$A^{U}$$ | -            | Description of elastic anisotropy                                                                                    | $$A^{U} = 5 \left(G\_{V}/G\_{R}\right) + \left(K\_{V}/K\_{R}\right) -6 \geq 0$$                                                       |
| Isotropic Poisson ratio, $$\mu$$        | -            | Number, describing lateral response to loading                                                                       | $$\mu = \left(3K\_{VRH} - 2G\_{VRH}\right)$ / $\left(6K\_{VRH} + 2G\_{VRH}\right)$$                                                   |

### DFT parameters

To obtain accurate elastic constants from DFT, a well-converged stress tensor is required. This typically means that more precise DFT-parameters have to be employed, compared to for example a simple total energy-calculation. Careful convergence testing and comparison to experimental results has led to a set of DFT-parameters that yield elastic constants, converged to within approximately 5% for over 95% of the systems. In choosing DFT-parameters for the calculations, we distinguish between metals and metallic compounds (metallics) on one hand and semiconductors and insulators (non-metallics) on the other hand. The most relevant DFT-parameters used in our HT-calculations are shown in Table 2. K-point density is expressed in per-reciprocal-atom (pra). The first-principles results presented in this work are performed using the projector augmented wave (PAW) method [\[3,4\]](#references) as implemented in the Vienna Ab Initio Simulation Package (VASP) [\[5,6,7\]](#references) . In all calculations, we employ the Perdew, Becke and Ernzerhof (PBE) [\[8\]](#references) Generalized Gradient Approximation (GGA) for the exchange-correlation functional. As described in the literature, several filters are used to detect cases where the elastic tensor might not have been converged properly. For those cases, the calculation is repeated but now with more stringent DFT-convergence parameters. Hence, the numerical values in Table 2 are representative for our calculations, but in some cases more strict parameters have been used. The calculation details for each compound can be found on the Materials Project webpage.

|                                | Metallics | Non-metallics |
| ------------------------------ | --------- | ------------- |
| Plane wave energy cut-off (eV) | 700       | 700           |
| Density of k-points (pra)      | 7,000     | 1,000         |
| Pseudo potential               | GGA-PBE   | GGA-PBE       |

![Visualization of the current elastic-property database, consisting of over 1,100 metals and inorganic compounds. This map shows the shear and bulk moduli, together with isotropic Poisson ratio and volume-per-atom. See the paper \[Charting the complete elastic properties of inorganic crystalline compounds\](http://www.nature.com/articles/sdata20159) for details.](/files/-MhjVmqe9oX6xBiVUZGx)

### Symmetrization

Tensor symmetrization and IEEE conversion procedures are implemented in [pymatgen](http://pymatgen.org/_modules/pymatgen/core/tensors.html). Symmetrization occurs by finding all of the symmetry operations that correspond to a particular crystal symmetry, and taking the average over all transformed tensors with respect to these operations. If there are $$y$$ symmetry operations are denoted $$Q\_{ij}^{(x)}$$ then:

$$
C{mnop}^{(sym)} = \sum{x=1}^y Q{im}^{(x)} Q{jn}^{(x)} Q{ko}^{(x)} Q{lp}^{(x)} C\_{ijkl}
$$

## How to Cite

If you use any elastic constants predicted by the Materials Project in your work, the corresponding methods paper(s) should be cited. See the [How to Cite](https://next-gen.materialsproject.org/about/cite) page for more.

## Thanks

Thanks to Maarten de Jong for the initial version of this page.

## References

1. IEEE standard on piezoelectricity. ANSI/IEEE Std 176-1987 0-1 (1988).
2. Hill, R. The elastic behaviour of a crystalline aggregate. Proceedings of the Physical Society. Section A 65, 349 (1952).
3. Ranganathan, S. I. & Ostoja-Starzewski, M. Universal elastic anisotropy index. Physical Review Letters 101, 055504 (2008).
4. Blochl, P. E. Projector augmented-wave method. Phys. Rev. B 50, 17953{17979 (1994).
5. Kresse, G. & Joubert, D. From ultrasoft pseudopotentials to the projector augmented-wave method. Phys. Rev. B59, 1758{1775 (1999).
6. Kresse, G. & Hafner, J. Ab initio molecular dynamics for liquid metals. Phys. Rev. B 47, 558{561 (1993).
7. Kresse, G. & Furthmuller, J. Efficffient iterative schemes for ab initio total-energy calculations using a plane-wave basis set. Phys. Rev. B 54, 11169{11186 (1996).
8. Perdew, J. P., Burke, K. & Ernzerhof, M. Generalized gradient approximation made simple. Physical Review Letters 77, 3865 (1996).


# Piezoelectric Constants

How piezoelectric constants are calculated for the Materials Project (MP) website.

## Introduction

Piezoelectricity is a reversible physical process that occurs in some materials whereby an electric moment is generated upon the application of a stress. This is often referred to as the direct piezoelectric effect. Conversely, the indirect piezoelectric effect refers to the case when a strain is generated in a material upon the application of an electric field. The mathematical description of piezoelectricity relates the strain (or stress) to the electric field via a third order tensor. This tensor describes the response of any piezoelectric bulk material, when subjected to an electric field or a mechanical load.

The piezoelectric constants from the Materials Project (MP) are calculated from first principles Density Functional Perturbation Theory (DFPT) [\[1\]](#references) and are approximated as the superimposed effect of an electronic and ionic contribution. From the full piezoelectric tensor, several properties are derived such as the maximum longitudinal piezoelectric modulus and the corresponding crystallographic direction. Just as with the elastic constants, multiple consistency checks are performed on all the calculated piezoelectric data to ensure its reliability and accuracy.

![](/files/FhBvssJ77l07ZiVSPS34)

*Figure 1: longitudinal piezoelectric modulus-surface for a cubic compound, showing the maximum response in the <111> family of directions.*

## Formalism

In this work, we calculate the piezoelectric stress coefficients, $$\textstyle e\_{ijk}^{T}$$ from DFPT, with units of $$\textstyle C/m^{2}$$. These can be defined in terms of thermodynamic derivatives as shown below [\[2\]](#references).

$$
e\_{ijk}^{T}= \left(\frac{\partial D\_{i}}{\partial \varepsilon\_{jk}}\right)*{E, T} = -\left(\frac{\partial \sigma*{jk}}{\partial E\_{i}}\right)\_{\varepsilon, T} !
$$

where $$\textstyle D$$, $$\textstyle E$$, $$\textstyle \varepsilon$$, $$\textstyle \sigma$$ and $$\textstyle T$$ represent the electric displacement field, the electric field, the strain tensor, the stress tensor and the temperature, respectively.

The above relations can be written in Voigt-notation as shown below.

$$
e\_{ij}^{T}= \left(\frac{\partial D\_{i}}{\partial \varepsilon\_{j}}\right)*{E, T} = -\left(\frac{\partial \sigma*{j}}{\partial E\_{i}}\right)\_{\varepsilon, T} !
$$

We note that the most commonly used piezoelectric constants appearing in the (experimental) literature are the piezoelectric strain constants, usually denoted by $$\textstyle d\_{ijk}$$. These can be readily related to the constants $$\textstyle e\_{ijk}$$ if the elastic compliances $$\textstyle s\_{lmjk}^{T}$$ (at constant electric field and temperature) of the materials are known: $$\textstyle d\_{ijk}^{T} = e\_{ilm} s\_{lmjk}^{ET}$$. In particular, the piezoelectric strain constants can be expressed thermodynamically as shown below

$$
d\_{kij}^{T} = \left(\frac{\partial \varepsilon\_{ij}}{\partial E\_{k}}\right)*{\sigma, T} = \left(\frac{\partial D*{k}}{\partial \sigma\_{ij}}\right)\_{E, T} !
$$

It is well-known that the piezoelectric behavior can only occur in crystals that lack inversion symmetry. This is the direct consequence of the symmetry properties of the piezoelectric tensor, which is of order 3. Another fundamental requirement for piezoelectric behavior is that the material has a band gap. Combined, these criteria severely limit the amount of compounds in nature that have the potential to exhibit piezoelectric behavior.

For the Materials Project in particular, potential piezoelectric materials in the database are identified by i) allowing only structures with space groups 1, 3-9, 16-46, 75-82, 89-122, 143-146, 149-161, 168-174, 177-190, 195-199, 207-220 (since these space groups lack inversion symmetry), and in addition ii) the calculated DFT bandgap of the material > 0.1 eV. Compounds in the Materials Project database that satisfy these criteria are selected for a full-DFT calculation of the piezoelectric tensor and derived properties (see below).

## Derived piezoelectric properties

For elastic properties, which are based on a tensor of order 4, isotropic Voigt and Reuss averages can be derived on the bulk and shear moduli. For piezoelectric properties, this isotropic averaging-approach does not quite work due to the requirement that inversion symmetry cannot occur in piezoelectric materials. On MP, in addition to the piezoelectric tensor in Voigt-notation, we report the maximum longitudinal piezoelectric modulus of the compound and the corresponding crystallographic direction in which this occurs. One can think of these quantities as the piezoelectric counterpart of the well-known Young's modulus and the stiffest elastic direction in the context of elasticity-theory. Fig. 1 shows an example of how the longitudinal piezoelectric modulus can be represented in 3D. This is for the case of a cubic material. As can be seen clearly, the maximum modulus occurs in the <111> family of crystallographic directions. By symmetry, this is always the case for cubic piezoelectric materials. Fig. 2 shows a more complicated longitudinal piezoelectric modulus-surface for an orthorhombic compound. In that case, the relative magnitudes of the tensor components dictate in which crystallographic direction, the maximum response occurs. Finally, note that for some compounds, a piezoelectric response is only induced by shear deformation rather than tensile or compressive deformation. For these cases, the response cannot be depicted such as in Figs. 1 and 2. The representations such as in Figs. 1 and 2 and created using the open-source MTEX package [\[3,4,5\]](#references).

![](/files/PHpjtwBwOBJ1HwPYw81j)

*Figure 2: longitudinal piezoelectric modulus-surface for an orthorhombic compound.*

## DFT parameters

The first-principles results presented in this work are performed using the projector augmented wave (PAW) method as implemented in the Vienna Ab Initio Simulation Package (VASP). In all calculations, we employ the Perdew, Becke and Ernzerhof (PBE) Generalized Gradient Approximation (GGA) for the exchange-correlation functional. A cut-off for the plane waves of 1000 eV is used and a uniform k-point density of approximately 2,000 per reciprocal atom (pra) is employed, which means that the number of atoms per cell multiplied by the number of k-points equals approximately 2,000. For the compounds that contain magnetic elements, a ferromagnetic state is initialized in the calculation. Similarly to our previous work, we expect to correctly converge to ferromagnetic and non-magnetic states in this way, but not to anti-ferromagnetic states. Due to the presence of strongly correlated electrons in some of the oxides, the GGA+U method is employed, with U representing the Hubbard-parameter. The values of U are chosen consistent with those employed in MP.

![](/files/k7ItgEuQJqz4w9PJP3m4)

*Figure 3: A graphical representation of the piezoelectric dataset, currently containing over 900 materials. A series of concentric circles indicate constant values of the maximum longitudinal piezoelectric modulus,* $$e\_{ij,max}$$*. The compounds are broken up according to the crystal system and the different point group symmetry-classes considered in this work. See the paper* [*A database to enable discovery and design of piezoelectric materials*](http://www.nature.com/articles/sdata201553) *for details.*

## Crystal symmetry

The crystal symmetry and in particular the point group dictates the symmetry of the piezoelectric tensor, relates components of the tensor to each other and imposes that certain components equal zero. All piezoelectric tensors in the Materials Project have been symmetrized for consistency with the underlying point group of the compound. Figure 4 gives an overview of the symmetrized piezoelectric tensors in MP, broken up by the different piezoelectric point groups. Also, typical surface representations are shown. The point group that only yields piezoelectric behavior upon the application of shear is not included in the representation in Fig. 4.

![](/files/zFmjsZC2nF0U1yqkNNzD)

*Figure 4: Piezoelectric tensors and symmetry classes considered in this work. Typical representations of the longitudinal piezoelectric modulus in 3D are also shown for each crystal point group. Note that depending on the components of the piezoelectric tensor, the surface representation can differ from those shown here. See the paper* [*A database to enable discovery and design of piezoelectric materials*](http://www.nature.com/articles/sdata201553) *for details.*

## Citation

To cite the piezoelectric properties within the Materials Project, please reference the following work:

* de Jong, Maarten and Chen, Wei and Geerlings, Henry and Asta, Mark and Persson, Kristin Aslaug. *A database to enable discovery and design of piezoelectric materials*, [Scientific Data 2 (2015)](http://www.nature.com/articles/sdata201553)

The paper presents the results of our piezoelectric constant-calculations for the first batch of 941 compounds. Our DFT-parameters, the workflow and comparison to experiments are described in detail. Also, the filters in the workflow used for detecting anomalies in the calculations are described in the paper.

## Authors

1. Maarten de Jong

## References

\[1]: Baroni, Giannozzi S. P. and Testa, A. Phys. Rev. Lett. 58, 1861 (1987)

\[2]: Nye, J. F. Physical properties of crystals (Clarendon press, 1985).

\[3]: Bachmann, F., Hielscher, R. & Schaeben, H. Texture analysis with MTEX-free and open source software toolbox. Solid State Phenomena 160, 63–68 (2010).

\[4]: Hielscher, R. & Schaeben, H. A novel pole figure inversion method: specification of the MTEX algorithm. Journal of Applied Crystallography 41, 1024–1037 (2008).

\[5]: Mainprice, D., Hielscher, R. & Schaeben, H. Calculating anisotropic physical properties from texture data using the MTEX open-source package. Geological Society, London, Special Publications 360, 175–192 (2011).


# Dielectric Constants

How dielectric constants are calculated on the Materials Project (MP) website.

## Introduction

A dielectric is a material that can be polarized by an applied electric field. This limits the dielectric effect to materials with a non-zero band gap. The mathematical description of the dielectric effect is a tensor constant of proportionality that relates an externally applied electric field to the field within the material. Along with the elastic and piezoelectric tensors, the dielectric tensor provides all the information necessary for the solution of the constitutive equations in applications where electric and mechanical stresses are coupled.

The dielectric tensors from the Materials Project (MP) are calculated from first principles Density Functional Perturbation Theory (DFPT) [\[1\]](#references) and are approximated as the superimposed effect of an electronic and ionic contribution. From the full piezoelectric tensor, several properties are derived such as the refractive index and potential for ferroelectricity. Just as with the piezoelectric and elastic constants, multiple consistency checks are performed on all the calculated dielectric data to ensure its reliability and accuracy.

## Formalism

Formally, the dielectric tensor ε relates the externally applied electric field to the field within the material and can be defined as:

$$
E\_i=\sum\_j \epsilon^{-1}*{ij}E*{0j}
$$

where $$E$$ is the electric field inside the material and $$E\_{0}$$is the externally applied electric field. the indices $$i,j$$ refer to the direction in space and take the values: $$1,2,3$$. The dielectric tensor can be split in the ionic ($$\epsilon^0$$) and electronic ($$\epsilon^\infty$$) contributions:

$$
\epsilon\_{ij}=\epsilon\_{ij}^0+\epsilon\_{ij}^\infty
$$

Here, we consider only the response of non-zero band gap materials to time-invariant fields. In the hypothetical case that a material does not respond at all to the external field, $$\epsilon\_{ij}^\infty$$ would be equal to the identity tensor and $$\epsilon\_{ij}^0$$ would be zero. In fact, materials with zero ionic contribution do exist. In general, for $$\epsilon\_{ij}^0$$ to be non-zero, compounds need to have at least 2 atoms per primitive cell, each having a different atomic charge. The dielectric tensor is symmetric and respects all the symmetry operations of the corresponding point group. This limits the number of independent elements in the tensor to a minimum of 1 and a maximum of 6 depending on the crystal symmetry.

The dielectric response calculated herein corresponds to that of a single crystal. In polycrystalline samples, grains are oriented randomly and hence, the actual response will be different. Generally, the dielectric response varies with the frequency of the applied external field however here, we consider the static response (i.e., the response at constant electric fields or the long wavelength limit). Since the ionic contribution vanishes at high frequencies, our results can be used to obtain an estimate of the refractive index, n, at optical frequencies and far from resonance effects using the well known formula: [\[2\]](#references)

$$
n=\sqrt{\epsilon^\infty\_{poly}}
$$

where $$\epsilon\_{poly}^\infty$$ is the average of the eigenvalues of the electronic contribution to the dielectric tensor. It should be noted this equation for the refractive index assumes the material is non-magnetic.

## DFT Parameters

The initial set of 1,056 dielectric tensors were calculated using the Vienna Ab-Initio Simulation Package [\[3-6\]](#references) (VASP version 5.3.4) combined with the Generalized Gradient Approximation GGA/PBE[\[7,8\]](#references)+U[\[9,10\]](#references) exchange-correlation functional and Projector Augmented Wave pseudopotentials [\[11,12\]](#references). The U values are energy corrections that address the spurious self-interaction energy introduced by GGA. Here, we used U values for d orbitals only that were fitted to experimental binary formation enthalpies using Wang et al. [\[13\]](#references) method. The full list of U values used, can be found in ref.[\[10\]](#references). The k-point density was set at 3,000 per reciprocal atom and the plane wave energy cut-off at 600 eV (ref. 4). For detailed information on the calculation of the dielectric tensor within the DFPT framework we refer to Baroni et al. [\[14,15\]](#references) and Gonze & Lee [\[16\]](#references).

Piezoelectricity calculations use the same DFPT methodology with a tighter parameter set to achieve convergence. As a result, the dielectric tensor is already converged in these calculations and is reported for any non-centrosymmetric material, not in the initial dataset of dielectrics.

## Benchmarking

We see that in most cases, it is possible to predict the dielectric constant of materials with a relative deviation of less than +/−25% from experimental values at room temperature. Including local field effects gives the smallest mean absolute relative deviation ( MARD= 16.2 % for GGA). Furthermore, we note a tendency to overestimate rather than underestimate the dielectric constant relative to experiments, which is a well-known effect of DFPT [\[17,18,19\]](#references) for the electronic contribution. Although it has often been related to the band gap underestimation problem of DFT, DFPT is a ground state theory and hence, the dielectric constant should, in principle, be described exactly [\[20\]](#references). In fact, as described by various authors, the problem is likely linked to the exchange-correlation functional [\[21-26\]](#references). Specifically, the exchange correlation functional has been found to depend on polarization but the actual dependence formula is, unfortunately, not known [\[27,28\]](#references). Additionally, the validity of GGA depends on the charge density varying slowly—an assumption that may be broken when an external electric field is applied [\[30\]](#references).

## Citation

To cite the dielectric properties within the Materials Project, please reference the following work:

* Benchmarking density functional perturbation theory to enable high-throughput screening of materials for dielectric constant and refractive index. Ioannis Petousis, Wei Chen, Geoffroy Hautier, Tanja Graf, Thomas D. Schladt, Kristin A. Persson, and Fritz B. Prinz. Phys. Rev. B 93(11). [DOI:10.1103/PhysRevB.93.115151](https://doi.org/10.1103/PhysRevB.93.115151)
* High-throughput screening of inorganic compounds for the discovery of novel dielectric and optical materials. Ioannis Petousis, David Mrdjenovich, Eric Ballouz, Miao Liu, Donald Winston, Wei Chen, Tanja Graf, Thomas D. Schladt, Kristin A. Persson, and Fritz B. Prinz. Scientific Data 4. [DOI:10.1038/sdata.2016.134](https://doi.org/10.1038/sdata.2016.134)

These papers present the results of our dielectric constant-calculations for the first batch of 1,056 compounds. Our DFT-parameters, the workflow, the workflow filters used for detecting anomalies in the calculations and comparison to experiments are described in detail.

## Authors

1. Shyam Dwaraknath
2. Ioannis Petousis

## References

\[1]: Baroni, Giannozzi S. P. and Testa, A. Phys. Rev. Lett. 58, 1861 (1987)

\[2]: Petousis I. et al. Benchmarking of the density functional perturbation theory to enable the high-throughput screening of materials for the dielectric constant and refractive index. Phys. Rev. B 93, 115151 (2016).

\[3]: Kresse G. & Hafner J. Ab initio molecular dynamics for liquid metals. Phys. Rev. B 47, 558–561 (1993).

\[4]: Kresse G. & Hafner J. Ab initio molecular-dynamics simulation of the liquid-metal-amorphous-semiconductor transition in germanium. Phys. Rev. B 49, 14251 (1994).

\[5]: Kresse G. & Furthmüller J. Efficiency of ab-initio total energy calculations for metals and semiconductors using a plane-wave basis set. Comp. Mater. Sci. 6, 15–50 (1996).

\[6]: Kresse G. & Furthmüller J. Efficient iterative schemes for ab initio total-energy calculations using a plane-wave basis set. Phys. Rev. B 54, 11169 (1996).

\[7]: Perdew J. P., Burke K. & Ernzerhof M. Generalized gradient approximation made simple. Phys. Rev. Lett. 77, 3865 (1996).

\[8]: Perdew J. P., Burke K. & Ernzerhof M. Generalized gradient approximation made simple \[Phys. Rev. Lett. 77, 3865 (1996)]. Phys. Rev. Lett. 78, 1396 (1997).

\[9]: Dudarev S. L., Botton G. A., Savrasov S. Y., Humphreys C. J. & Sutton A. P. Electron-energy-loss spectra and the structural stability of nickel oxide: An LSDA+U study. Phys. Rev. B 57, 1505 (1998).

\[10]: Jain A. et al. A high-throughput infrastructure for density functional theory calculations. Comp. Mater. Sci. 50, 8 2295 (2011).

\[11]: Blöchl P. E. Projector augmented-wave method. Phys. Rev. B 50, 17953 (1994).

\[12]: Kresse G. & Joubert D. From ultrasoft pseudopotentials to the projector augmented-wave method. Phys. Rev. B 59, 1758 (1999).

\[13]: Wang L., Maxisch T. & Ceder G. Oxidation energies of transition metal oxides within the GGA+ U framework. Phys. Rev. B 73, 195107 (2006).

\[14]: Baroni S., Giannozzi P. & Testa A. Elastic constants of crystals from linear-response theory. Phys. Rev. Lett. 59, 2662 (1987).

\[15]: Baroni S., de Gironcoli S., Dal Corso A. & Giannozzi P. Phonons and related crystal properties from density-functional perturbation theory. Rev. Mod. Phys. 73, 515 (2001).

\[16]: Gonze X. & Lee C. Dynamical matrices, born effective charges, dielectric permittivity tensors, and interatomic force constants from density-functional perturbation theory. Phys. Rev. B 55, 10355 (1997).

\[17]: N. Marzari and D. J. Singh, Phys. Rev. B 62, 12724 (2000). \[^18]: A. Dal Corso, S. Baroni, and R. Resta, Phys. Rev. B 49, 5323 (1994).

\[19]: F. Kootstra, P. L. de Boeij, and J. G. Snijders, Phys. Rev. B 62, 7071 (2000).

\[20]: A. Dal Corso, S. Baroni, and R. Resta, Phys. Rev. B 49, 5323 (1994).

\[21]: A. Dal Corso, S. Baroni, and R. Resta, Phys. Rev. B 49, 5323 (1994).

\[22]: V. Olevano, M. Palummo, G. Onida, and R. Del Sole, Phys. Rev. B 60, 14224 (1999).

\[23]: W. G. Aulbur, L. Jönsson, and J. W. Wilkins, Phys. Rev. B 54, 8540 (1996).

\[24]: Ph. Ghosez, X. Gonze, and R. W. Godby, Phys. Rev. B 56, 12811 (1997).

\[25]: R. Resta, Phys. Rev. Lett. 77, 2265 (1996). \[^26]: R. Resta, Phys. Rev. Lett. 78, 2030 (1997). \[27]: A. Dal Corso, S. Baroni, and R. Resta, Phys. Rev. B 49, 5323 (1994).

\[28]: W. G. Aulbur, L. Jönsson, and J. W. Wilkins, Phys. Rev. B 54, 8540 (1996).

\[29]: Ph. Ghosez, X. Gonze, and R. W. Godby, Phys. Rev. B 56, 12811 (1997).

\[30]: V. Olevano, M. Palummo, G. Onida, and R. Del Sole, Phys. Rev. B 60, 14224 (1999).


# Equations of State (EOS)

How equations of state (EOS) are calculated on the Materials Project (MP) website.

## Introduction

Thermodynamic equations of state (EOS) for crystalline solids describe material behaviors under changes in pressure, volume, entropy and temperature. Despite over a century of theoretical development and experimental testing of energy-volume (E-V) EOS for solids, there is still a lack of consensus with regard to which equation is optimal, as well as to what metrics are most appropriate for making this judgment.

Calculation of EOS is automated using self-documenting workflows compiled in the atomate code base. Atomate couples pymatgen for materials analysis, custodian for just-in-time debugging of DFT codes, and Fireworks for workflow management. The EOS workflow begins with a structure optimization and subsequently calculates the energy of isotropic deformations including ionic relaxation with volumetric strain ranging from -15.7% to 15.7% (-5% to 5% linear strain) of the optimized structure. Density-functional-theory (DFT) calculations were performed as necessary using the projector augmented wave (PAW) method as implemented in the Vienna Ab Initio Simulation Package (VASP) within the Perdew-Burke-Enzerhof (PBE) Generalized Gradient Approximation (GGA) formulation of the exchange-correlation functional. A cut-off for the plane waves of 520 eV is used and a uniform k-point density of approximately 1,000 per reciprocal atom is employed. In addition, standard Materials Project Hubbard U corrections are used for a number of transition metal oxides, as documented and implemented in the pymatgen VASP input sets. We note that the computational and convergence parameters were chosen consistently with the settings used in the Materials Project to enable direct comparisons with the large set of available MP data.

## Fitted Equation Forms

| **Equation**      | $$\boldsymbol{E(\nu^\*)}$$                                                                                                                      | $$\boldsymbol{K(\nu = 1)}$$ | $$\boldsymbol{K'(\nu = 1)}$$ | **Ref**              |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- | ---------------------------- | -------------------- |
| Birch (Euler)     | $$E = E\_o^{\*\*} + BV\_o\Big(\big(\nu^{-\frac{2}{3}} - 1\big)^2 + \frac{C}{2}\big(\nu^{-\frac{2}{3}} - 1\big)^3\Big)$$                         | $$\frac{8B}{9}$$            | $$C + 4$$                    | [\[1\]](#references) |
| Birch (Lagrange)  | $$E = E\_o + BV\_oC - BV\_o\nu^{\frac{2}{3}}\Big(\big(C - 2\big)\big(1 - \nu^{\frac{2}{3}}\big)^2 + C\big(1 - \nu^{\frac{2}{3}}\big) + C\Big)$$ | $$\frac{16B}{9}$$           | $$C - 2$$                    | [\[1\]](#references) |
| Mie-Gruneisen     | $$E = E\_o + \frac{BV\_o}{C} - \frac{BV\_o}{C - 1}\Big(\nu^{-\frac{1}{3}} - \frac{1}{C}\nu^{-\frac{C}{3}}\Big)$$                                | $$\frac{B}{9}$$             | $$\frac{7 + C}{3}$$          | [\[2\]](#references) |
| Murnaghan         | $$E = E\_o + \frac{BV\_o}{(C + 1)}\Big(\frac{\nu^{-C} - 1}{C} + \nu - 1\Big)$$                                                                  | $$B$$                       | $$C + 1$$                    | [\[3\]](#references) |
| Pack-Evans-James  | $$E = E\_o + \frac{BV\_o}{C}\Big(\frac{1}{C}\big(e^{3C(1 - \nu^{\frac{1}{3}})} - 1\big) - 3\big(1 -\nu^{\frac{1}{3}}\big)\Big)$$                | $$B$$                       | $$C + 1$$                    | [\[4\]](#references) |
| Poirier-Tarantola | $$E = E\_o + BV\_o\Big(ln(\nu)\Big)^2\Big(3 - C\big(ln(\nu)\big)\Big)$$                                                                         | $$6B$$                      | $$C + 2$$                    | [\[5\]](#references) |
| Tait              | $$E = E\_o + \frac{BV\_o}{C}\Big(\nu - 1 + \frac{1}{C}\big(e^{C(1 -\nu)} - 1\big)\Big)$$                                                        | $$B$$                       | $$C - 1$$                    | [\[6\]](#references) |
| Vinet             | $$E = E\_o + \frac{BV\_o}{C^2}\Big(1 - \big(1 + C(\nu^{\frac{1}{3}} - 1)\big)e^{-C(\nu^{\frac{1}{3}} - 1)}\Big)$$                               | $$\frac{B}{9}$$             | $$\frac{2}{3}C + 1$$         | [\[7\]](#references) |

$$\nu^\* = \frac{V}{V\_o}$$, where $$V\_o$$ is the volume at zero pressure.

$$E\_o^{\*\*} = E(\nu = 1)$$

## Citation

To cite the EOS data in the Materials Project, please reference the following work:

Latimer, K., Dwaraknath, S., Mathew, K., Winston, D., Persson, K. A. Evaluation of thermodynamic equations of state across chemistry and structure in the materials project. *NPJ Computational Materials.* **4,** 1, 2057-3960 (2018). [DOI:10.1038/s41524-018-0091-x](https://doi.org/10.1038/s41524-018-0091-x)

## Authors

1. Katherine Latimer
2. Shyam Dwaraknath
3. Donny Winston

## References

\[1]: Birch, F. Finite elastic strain of cubic crystals. *Physical Review.* **71,** 11, 809–824 (1947).

\[2]: Roy, B. and Roy, S. B. Applicability of isothermal three-parameter equations of state of solids: A reappraisal. *Journal of Physics: Condensed Matter.* **17,** 39, 6193–6216 (2005).

\[3]: Murnaghan, F. D. The compressibility of media under extreme pressures. *Proceedings of the National Academy of Sciences.* **30,** 244–247 (1944).

\[4]: Pack, D., Evans, W., James, H. The Propagation of Shock Waves in Steel and Lead. *The Proceedings of the Physical Society.* **60,** 1–8 (1948).

\[5]: Poirier, J. P. and Tarantola, A. A logarithmic equation of state. *Physics of the Earth and Planetary Interiors.* **109,** 1-2, 1–8 (1998).

\[6]: Dymond, J. H. and Malhotra, R. The Tait equation: 100 years on. *International Journal of Thermophysics.* **9,** 6, 941–951 (1988).

\[7]: Vinet, P., Ferrante, J., Rose, J. H., Smith, J. R. Compressibility of solids. *Journal of Geophysical Research.* **92,** 9319–9325 (1987).


# X-ray Absorption Spectra (XAS)

How x-ray absorption spectra are calculated on the Materials Project (MP) website.

X-ray Absorption Spectra (XAS) is calculated using the code FEFF$$^{1,2,3}$$.Feff is an ab initio multiple-scattering code for calculating excitation spectra and electronic structure. It is based on a real space Green’s function approach including a screened core-hole, inelastic losses and self-energy shifts, and Debye-Waller factors. The spectra include extended x-ray absorption fine structure (EXAFS), x-ray absorption near edge structure (XANES), and then both are stiched together to give a total XAS spectra. In addition the code can treat relativistic electron energy loss spectroscopy (EELS).

Multiple parameters are checked for convergence, including:

* *Self-consistent field (SCF)*
* *Full multiple scattering (FMS)*
* *EXCHANGE*: The EXCHANGE card specifies the exchange correlation potential model used for XANES calculation.
* *COREHOLE*: The COREHOLE card is used for specifying how the core is treated during XANES calculation.

For full details, please refer to publication:[ High-throughput computational X-ray absorption spectroscopy](https://www.nature.com/articles/sdata2018151)

#### References:

1. *Parameter-free calculations of x-ray spectra with FEFF9*, J.J. Rehr, J.J. Kas, F.D. Vila, M.P. Prange, K. Jorissen, Phys. Chem. Chem. Phys., 12, 5503-5513 (2010)
2. *Ab initio theory and calculations of X-ray spectra*, J.J. Rehr, J.J. Kas, M.P. Prange, A.P. Sorini, Y. Takimoto, F.D. Vila, Comptes Rendus Physique 10 (6) 548-559 (2009)
3. *Theoretical Approaches to X-ray Absorption Fine Structure*, J. J. Rehr and R. C. Albers, Rev. Mod. Phys. 72, 621, (2000)


# Surface Energies

## Introduction

Surface energy is a measure of the energy change associated with the breaking of intermolecular bonds in a bulk material to create a surface. In thermodynamically stable materials, the creation of a surface will always increase energy, otherwise there would be a thermodynamic driving force to create surfaces and the material would sublimate. In theory, surface energy is equal to half of the energy of cohesion (the energy needed to break all of the bonds required to form two new surfaces). However, this perfect cleaving of surfaces is rarely achieved. In reality, surfaces often rearrange and/or react with their surroundings to passivate or adsorb molecules or atoms to lower their surface energy from the theoretical cohesive energy value.

## Formalism

Surface energy is calculated using a slab model where a supercell of a crystal is oriented such that a given facet of interest is created and then exposed to vacuum by removing atoms from the supercell. If we are interested in creating a surface with the plane (*hkl*) exposed, lattice vector transformations are performed on the supercell with lattice vectors **a** and **b** parallel to the exposed plane (*hkl*) and lattice vector **c** as close to perpendicular to the exposed plane as is feasbile. This new unit cell is referred to as the oriented unit cell. The atoms in the oriented unit cell must also be shifted in the **c** direction in order to expose all possible symmetrically distinct atomic terminations. This algorithm for generating slabs is implemented in pymatgen [\[1\]](#references).

The surface energy $$\gamma^{\sigma}\_{hkl}$$ of facet (*hkl*) of a slab model is calculated as:

$$
\gamma^{\sigma}*{hkl} = \frac{E^{hkl,\sigma}*{slab} - E^{hkl}*{bulk} \cdot  n*{slab}}{2 \cdot A\_{slab}}
$$

where $$E^{hkl,\sigma}*{slab}$$​is the total energy of the slab with termination $$\sigma$$​, $$E^{hkl}*{bulk}$$​is the per atom total energy of the bulk oriented unit cell, $$n\_{slab}$$ is the total number of atoms in the slab and $$A$$ is the surface area of the slab. The bulk oriented unit cell's atomic positions as well as its volume are relaxed, whereas in the slab model, only the atomic positions are relaxed.

## DFT Parameters

All DFT calculations are performed in the Vienna Ab-initio Simulation Package (VASP) with the projector augmented wave (PAW) method. Exchange correlation effects are modeled using the Perdew-Berke-Ernzerhof (PBE) generalized gradient approximation (GGA) funcitonal. All calculations are spin polarized using a plane wave cutoff energy of 400eV. Full details can be found in [\[2\]](#references).

## References

\[1]: Ong, S. P. et al. Python Materials Genomics (pymatgen): A robust, open-source python library for materials analysis. *Computational Materials Science* **68**, 314–319 (2013)

\[2]: Tran, R., Xu, Z., Radhakrishnan, B. *et al.* Surface energies of elemental crystals. *Sci Data* **3,** 160080 (2016)


# Grain Boundaries

How grain boundaries are calculated on the Materials Project (MP) website.

Many real, bulk crystalline materials consist of many grains separated by grain boundaries (GBs). GBs are interfaces where crystals of the same phase meet with different orientations. These boundaries strongly affect mechanical, electrical, and chemical properties, making them critical in materials design.

On MP, the GB structures and properties can be accessed through the API or generated via the Crystal Toolkit. The toolkit employs the Coincidence Site Lattice (CSL) method, where two misoriented crystals are superimposed and coincident lattice sites identified. The algorithm (implemented in pymatgen) constructs the GB structure by:<sup>1</sup>

1\. **Lattice Transformation** – transform the unit cell into a CLS unit cell where the *a* and *b* vectors lie parallel to the desired GB plane.

2\. **Grain Creation and Rotation** – build two grains and rotate them relative to each other using the specified axis and angle.

3\. **Grain Stacking** – place the two grains together, adjusting relative shifts along the *a*, *b*, and *c* directions.

4\. **Atom Merging** – remove atoms that are too close, based on a user-defined distance tolerance.

<figure><img src="/files/HGvSyisa8j0vGs5JBppq" alt=""><figcaption></figcaption></figure>

```python
from mp_api.client import MPRester

with MPRester("your_api_key_here") as mpr:
   grain_bdy = mpr.materials.grain_boundaries.search()
```

## References

\[1] Zheng, H. *et al.* Grain boundary properties of elemental metals. *Acta Mater.* vol. 186, pp. 40–49, yr. 2020. ([DOI](https://doi.org/10.1016/j.actamat.2019.12.030))

## Authors

Mona Abdelgaid


# Charge Density

Obtaining the charge density shown on the Materials Project (MP) website.

Charge density data is obtained directly from the CHGCAR files that are output by our static DFT calculations. For more detailed information about this data [see the VASP wiki](https://www.vasp.at/wiki/index.php/CHGCAR).

An isosurface visualization of the charge density can be found on the material details pages. To obtain the full set of volumetric data for a given material [the API should be used.](/downloading-data/using-the-api/examples#charge-density-for-silicon-mp-149)


# Suggested Substrates

How suggested substrates are calculated on the Materials Project (MP) website.

## Introduction

Materials synthesis techniques such as Chemical Vapor Deposition, Molecular Beam Eptixay, Sputtering, etc. are prevalent in materials research. Synthesizing materials with these techniques comes with a challenge: how does one determine which subtrate to use?

Epitaxial growth of heterogeneous interfaces requires a fundamental understanding of the substrate material, film material, cleavage planes, lattice mismatches, and resultant stresses and strains. The Materials Project (MP) stores crystallographic information for each material in its database, calculated via First Principles Density Functional Theory. Each material's crystallographic information, in particular the surface termination lattice parameters, is especially useful to find the epitaxial matches between a desired material (film) and a corresponding substrate. The Suggested Substrates tool outputs the Miller Indices of the substrate and the film (target material) termination plane, the minimal co-incident area (MCIA), and Elastic Energy.

## Calculation Details

Suggested Substrates tool in MP relies mainly on the geometrical principles of lattice matching, based off of Zurr and McGill \[[1](#references)].

Suppose there is two slabs of materials: a film and a substrate. The MP database the lattice parameters for both the film and substrate bulk crystal. Slabs are generated by cleaving plane from from its bulk crystalline form. The cleaving plane is described by the Miller Index notation (e.g. Si(111)). The cleavage plane (equivalent to termination plane) is a surface; all of its sites can be described by a unique 2D lattice. Therefore, interfacing film and substrate slabs geometrically implies the mapping of their respective 2D lattices. If the film and substrate lattices match, it is described as an epitaxial match, with a 2D superlattice that describes the interfaced lattice. This 2D superlattice contains a set of primative translation vectors $$(\bold{a},\bold{b})$$ that describes both sides of the slab and their termination surface. Fig 1. below shows a schematic of how a new lattice is created at the interface of two slabs. Note: since it is a 2D representation, there is a 1D superlattice at the interface.

<div align="center"><img src="/files/jc5IID6TkXTrdKnkKu94" alt="Figure 1. Lattice matching between Si(111) and AlO(101) faces. A cell made of 21 sapphire unit cells has almost exactly the same dimensions as a cell made of 40 silicon unit cells. This can be described by a new superlattice (&#x27;supervector&#x27;) at the interface. Figure from Zur and McGill [1]"></div>

Finding the epitaxial lattice match between hetergenous interfaces implies finding a 2D superlattice that both sides must satisfy (or approximately satisfy). However, any interface can contain multiple sets of solutions to the primitive translation vectors $$(\bold{a},\bold{b})$$ that still satisfies the 2D superlattice. As such, the goal is to look for the smallest possible values of the primative primitive translation vectors $$(\bold{a},\bold{b})$$​, also known as the reduced primitive translational vectors. The reduced primitive vectors has a unique solution for $$\bold{a},\bold{b}$$, and $$\alpha$$, unlike the general primitive translation vector set. Zurr and McGill proposed the following algorithm to find the reduced lattice set:

1. look for $$\bold{a}$$​ being the shortest possible nonzero vector of the superlattice
2. look for being the shortest possible nonzero vector of the superlattice that is linearly independent of $$\bold{a}$$​
3. find angle $$\alpha$$​ between vectors $$(\bold{a},\bold{b})$$ that is non-obtuse.

The algorithm above is also shown in the flowchart in Fig 2. By leveraging computational resources and data from MP, it becomes possible to scan across all different cleavege planes for both the substrates and films to determine a set of reduced lattice planes, and therefore the epitaxial matches.

![Fig 2. Flowchart of the unit cell reduction procedure. Figure from Zurr and McGill \[1\]](/files/VUx1XDQgvKv3srGxNNuM)

Most heterogenous interfaces will experience lattice mismatches. The following ratio describes the unit cell matching between the film and the substrate:

$$
\frac{r\_1}{r\_2}=\frac{A\_2}{A\_1}
$$

Where $$A\_1,A\_2$$corresponds to the unit cell areas of the original lattice of the film and substrate, and $$r\_1,r\_2$$​ correspond to an integer value that satifies the unit cell areas being matched on the superlatice by the film and substrate. For lattice mismatches, we can set an upper limit for $$r\_1,r\_2$$​by introducing $$A\_{\textrm{max}}$$​, where it must satify $$r\_1A\_1 \approx r\_2A\_2 < A\_{\textrm{max}}$$​. And therefore:

$$
r\_1 <\frac{A\_{\textrm{max}}}{A\_1} \~,\~\~\~r\_2<\frac{A\_{\textrm{max}}}{A\_2}
$$

​The Suggest Substrates tool was first developed to study expitaxial polymorph stabilization through substrate selection \[[2](#references)]. This function is based upon the [CoherentInterfaceBuilder](https://github.com/materialsproject/pymatgen/blob/58b8bd589ec6b39b22007e536d5a8a38281d824f/pymatgen/analysis/interfaces/coherent_interfaces.py#L22) function in pymatgen.

## Author

Bryant Li

## References

\[1] A. Zur and T. C. McGill , "Lattice match: An application to heteroepitaxy", Journal of Applied Physics 55, 378-386 (1984) <https://doi.org/10.1063/1.333084>

\[2] Hong Ding, Shyam S. Dwaraknath, Lauren Garten, Paul Ndione, David Ginley, and Kristin A. Persson ACS Applied Materials & Interfaces 2016 8 (20), 13086-13093 DOI: 10.1021/acsami.6b01630


# Related Materials

How related materials are identified on the Materials Project (MP) website.

## Introduction

The similarity between two structures *i* and *j* is assessed on the basis of local coordination information from all sites in the two structures. [\[1,2\]](#references) The four basic steps involved are:

1. Find near(est) neighbors of all sites in both structures.
2. Evaluate each coordination pattern via coordination descriptors observed at each site to define site fingerprints.
3. Compute statistics of the descriptor values across all sites in a structure to define structure fingerprints.
4. Use structure fingerprints to rate the (dis)similarity between the two (vectors representing the two) structures.

## Near-neighbor finding

We use a novel method called [CrystalNN](https://github.com/materialsproject/pymatgen/blob/master/pymatgen/analysis/local_env.py#L3751) to find near(est) neighbors in periodic structures. While the method will be introduced shortly [\[3\]](#references), it is already available through the python package [pymatgen](https://github.com/materialsproject/pymatgen). A benchmarking framework has been developed to evaluate CrystallNN and compare it to other near-neighbor finding algorithms [\[4\]](#references).

## Site Fingerprints

The second step of the structure similarity calculation is the computation of a crystal site fingerprint, $$v^{site}$$, for each site in the two structures. The fingerprint is a 61-dimensional vector in which each element carries information about the local coordination environment computed with the *site* module of the python package [matminer](https://github.com/hackingmaterials/matminer). For example, the first two elements "wt $$\text{CN}*1$$" and "single bond $$\text{CN}*1$$" provide estimates of the likelihood (or weight) of how much the given site should be considered 1-fold coordinated (i.e., *w*$$|*{CN=1}$$*).\_ The third element "wt $$\text{CN}*2$$" provides a 2-fold coordination likelihood, whereas the fourth element "L-shaped $$\text{CN}*2$$" holds the resemblance similarity to an L-shaped coordination geometry (also called local structure order parameter) given that we find a coordination configuration with 2 atoms ($$q*{L}|*{CN=2}$$). The local structure order parameters can assume values between 0, meaning that the observed local environment has no resemblance with the target motif to which it is compared, and 1, which stands for perfect motif match. The remaining elements are: "water-like $$\text{CN}\_2$$", "bent 120 degrees $$\text{CN}\_2$$", "bent 150 degrees $$\text{CN}\_2$$", "linear $$\text{CN}\_2$$", "wt $$\text{CN}\_3$$", "trigonal planar $$\text{CN}\_3$$", "trigonal non-coplanar $$\text{CN}\_3$$", "T-shaped $$\text{CN}*3$$", "wt $$\text{CN}*4$$", "square co-planar $$\text{CN}*4$$", "tetrahedral $$\text{CN}*4$$", "rectangular see-saw-like $$\text{CN}*4$$", "see-saw-like $$\text{CN}*4$$", "trigonal pyramidal $$\text{CN}*4$$", "wt $$\text{CN}*5$$", "pentagonal planar $$\text{CN}*5$$", "square pyramidal $$\text{CN}*5$$", "trigonal bipyramidal $$\text{CN}*5$$", "wt $$\text{CN}*6$$", "hexagonal planar $$\text{CN}*6$$", "octahedral $$\text{CN}*6$$", "pentagonal pyramidal $$\text{CN}*6$$", "wt $$\text{CN}*7$$" "hexagonal pyramidal $$\text{CN}*7$$", "pentagonal bipyramidal $$\text{CN}*7$$", "wt $$\text{CN}*8$$" "body-centered cubic $$\text{CN}*8$$", "hexagonal bipyramidal $$\text{CN}*8$$", "wt $$\text{CN}*9$$", "q2 $$\text{CN}*9$$", "q4 $$\text{CN}*9$$", "q6 $$\text{CN}*9$$", "wt $$\text{CN}*{10}$$", "q2 $$\text{CN}*{10}$$", "q4 $$\text{CN}*{10}$$", "q6 $$\text{CN}*{10}$$", "wt $$\text{CN}*{11}$$", "q2 $$\text{CN}*{11}$$", "q4 $$\text{CN}*{11}$$", "q6 $$\text{CN}*{11}$$", "wt $$\text{CN}*{12}$$", "cuboctahedral $$\text{CN}*{12}$$", "q2 $$\text{CN}*{12}$$", "q4 $$\text{CN}*{12}$$", "q6 $$\text{CN}*{12}$$", "wt $$\text{CN}*{13}$$", "wt $$\text{CN}*{14}$$", "wt $$\text{CN}*{15}$$", "wt $$\text{CN}*{16}$$", "wt $$\text{CN}*{17}$$", "wt $$\text{CN}*{18}$$", "wt $$\text{CN}*{19}$$", "wt $$\text{CN}*{20}$$", "wt $$\text{CN}*{21}$$", "wt $$\text{CN}*{22}$$" "wt $$\text{CN}*{23}$$" and "wt $$\text{CN}*{24}$$" Note that $$q\_n$$ refers to Steinhardt bond orientational order parameter of order n. The resulting site fingerprint is thus defined as:

$$
\mathbf{v}^\text{site} = \[w|*{\text{CN}=1}, \quad w|*{\text{CN}=2}, \quad q\_\text{L}|*{\text{CN}=2}, \quad q*\text{water}|*{\text{CN}=2}, \quad \dots, \quad w|*{\text{CN}=24}]^\text{T}
$$

## Structure Fingerprints

The fingerprints from sites in a given structure are subsequently statistically processed to yield the minimum, maximum, mean, and standard deviation of each coordination information element," The resultant ordered vector defines a structure fingerprint, $v^{struct}$:

$$
\mathbf{v}^\text{struct} = \[ \min(w|*{\text{CN}=1}), \quad \max(w|*{\text{CN}=1}), \quad \text{mean}(w|*{\text{CN}=1}), \quad \text{std}(w|*{\text{CN}=1}), \dots, \min(w|*{\text{CN}=24}), \quad \max(w|*{\text{CN}=24}), \quad \text{mean}(w|*{\text{CN}=24}), \quad \text{std}(w|*{\text{CN}=24}) ]^\text{T}
$$

## Structure Distance/Dissimilarity

Finally, structure dissimilarity is determined by the distance, *d*, between two structure fingerprints $$v\_{i}^{struct}$$ and$$v\_{j}^{struct}$$:

$$
d = || \mathbf{v}*{i}^\text{struct} - \mathbf{v}*{j}^\text{struct} ||
$$

A small distance value indicates high similarity between two structures, whereas a large distance (>1) suggests that the structures are very dissimilar," The spinel example below gives an approximate threshold up to which **distance you can still consider two structures to be similar (0.9)**," Anything beyond 0.9 is most certainly not the same structure prototype.

The following function may also be used to convert this distance metric to a similarity value between 0 and 1:

$$
s = e^{-|| \mathbf{v}*{i}^\text{struct} - \mathbf{v}*{j}^\text{struct} ||}
$$

This similariy metric, s, is positively correlated with the similarity between the structures and can be easily converted to a percentage.

## Examples

* Diamond ([mp-66](https://materialsproject.org/materials/mp-66/)) vs. $$\text{GaAs}$$ ([mp-2534](https://materialsproject.org/materials/mp-2534/)) $$\rightarrow$$ *d* = 0
* Diamond ([mp-66](https://materialsproject.org/materials/mp-66/)) vs. rocksalt ([mp-22862](https://materiahttps/materialsproject.org/materials/mp-5827/lsproject.org/materials/mp-22862/)) $$\rightarrow$$ *d* = 3.5724
* Diamond ([mp-66](https://materialsproject.org/materials/mp-66/)) vs. perfect $$\text{CaTiO}\_3$$ perovskite ([mp-5827](https://materialsproject.org/materials/mp-5827/)) $$\rightarrow$$ *d* = 3.5540
* Rocksalt ([mp-22862](https://materialsproject.org/materials/mp-22862/)) vs. perfect $$\text{CaTiO}\_3$$ perovskite ([mp-5827](https://materialsproject.org/materials/mp-5827/)) $$\rightarrow$$ *d* = 2.7417
* $$\text{Ca(CoS}\_2\text{)}\_2$$-spinel ([mp-1408976](https://next-gen.materialsproject.org/materials/mp-1408976?material_ids=mp-1408976)) vs. $$\text{Si(CdO}\_2\text{)}\_2$$-spinel ([mp-560842](https://materialsproject.org/materials/mp-560842/)) $$\rightarrow$$ *d* = 0.8877

Below is a python code snippet that allows you to quickly reproduce above results," You will need to install [pymatgen](https://github.com/materialsproject/pymatgen) and [matminer](https://github.com/hackingmaterials/matminer) for this to work," Both are easily accessible via the [Python Package Index](https://pypi.python.org/pypi).

```python
import numpy as np
from mp_api.client import MPRester
from matminer.featurizers.site import CrystalNNFingerprint
from matminer.featurizers.structure import SiteStatsFingerprint

with MPRester() as mpr:

    # Get structures
    diamond = mpr.get_structure_by_material_id("mp-66")
    gaas = mpr.get_structure_by_material_id("mp-2534")
    rocksalt = mpr.get_structure_by_material_id("mp-22862")
    perovskite = mpr.get_structure_by_material_id("mp-5827")
    spinel_caco2s4 = mpr.get_structure_by_material_id("mp-1408976")
    spinel_sicd2O4 = mpr.get_structure_by_material_id("mp-560842")

# Calculate structure fingerprints
ssf = SiteStatsFingerprint(
    CrystalNNFingerprint.from_preset('ops', distance_cutoffs=None, x_diff_weight=0),
    stats=('mean', 'std_dev', 'minimum', 'maximum'))
v_diamond = np.array(ssf.featurize(diamond))
v_gaas = np.array(ssf.featurize(gaas))
v_rocksalt = np.array(ssf.featurize(rocksalt))
v_perovskite = np.array(ssf.featurize(perovskite))
v_spinel_caco2s4 = np.array(ssf.featurize(spinel_caco2s4))
v_spinel_sicd2O4 = np.array(ssf.featurize(spinel_sicd2O4))

# Print out distance between structures
print('Distance between diamond and GaAs: {:.4f}'.format(np.linalg.norm(v_diamond - v_gaas)))
print('Distance between diamond and rocksalt: {:.4f}'.format(np.linalg.norm(v_diamond - v_rocksalt)))
print('Distance between diamond and perovskite: {:.4f}'.format(np.linalg.norm(v_diamond - v_perovskite)))
print('Distance between rocksalt and perovskite: {:.4f}'.format(np.linalg.norm(v_rocksalt - v_perovskite)))
print('Distance between Ca(CoS2)2-spinel and Si(CdO2)2-spinel: {:.4f}'.format(np.linalg.norm(v_spinel_caco2s4 - v_spinel_sicd2O4)))
    
# Print out structure similarity percentages
print('Diamond and GaAs Similarity: {:.2f}%'.format(np.exp(-np.linalg.norm(v_diamond - v_gaas)) * 100))
print('Diamond and rocksalt Similarity: {:.2f}%'.format(np.exp(-np.linalg.norm(v_diamond - v_rocksalt)) * 100))
print('Diamond and perovskite Similarity: {:.2f}%'.format(np.exp(-np.linalg.norm(v_diamond - v_perovskite)) * 100))
print('Rocksalt and perovskite Similarity: {:.2f}%'.format(np.exp(-np.linalg.norm(v_rocksalt - v_perovskite)) * 100))
print('Ca(CoS2)2-spinel and Si(CdO2)2-spinel Similarity: {:.2f}%'.format(np.exp(-np.linalg.norm(v_spinel_caco2s4 - v_spinel_sicd2O4)) * 100))
```

## StructureMatcher

Another tool that is used to group materials is the [StructureMatcher](https://github.com/materialsproject/pymatgen/blob/master/pymatgen/analysis/structure_matcher.py#L292). There are multiple comparators (for example: [SpinComparator](https://github.com/materialsproject/pymatgen/blob/master/pymatgen/analysis/structure_matcher.py#L135), [ElementComparator](https://github.com/materialsproject/pymatgen/blob/master/pymatgen/analysis/structure_matcher.py#L176), etc.) that can be used to determine how to make comparisons between structures when determining their similarity.

## References

\[1]: Zimmermann, N. E. R. and Jain, A., Local structure order parameters and site fingerprints for quantification of coordination environment and crystal structure similarity, ***RSC Adv.***, 2020,**10**, 6063-6081

\[2]: Zimmermann NER, Horton MK, Jain A and Haranczyk M (2017) Assessing Local Structure Motifs Using Order Parameters for Motif Recognition, Interstitial Identification, and Diffusion Path Characterization. *Front. Mater.*&#x34;:34. doi: 10.3389/fmats.2017.00034

\[3]: Pan, H., Ganose, A. M., Horton, M., Aykol, M., Persson, K. A., Zimmermann, N. E., & Jain, A. (2021). Benchmarking coordination number prediction algorithms on inorganic crystal structures. *Inorganic chemistry*, *60*(3), 1590-1603.

## Authors

Nils Zimmermann, Donny Winston, Handong Ling, Oxana Andriuc


# Optical absorption spectra

How optical absorption spectra are calculated on the Materials Project (MP) website.

The optical absorption spectra is obtained by calculating the frequency-dependent dielectric tensors using VASP. It uses independent particle approximation and assumes only vertical interband transitions to obtain the imaginary part of the dielectric tensors. Via the Kramers-Kronig relations the relationship between the dispersions of the real and imaginary parts of the dielectric function can be established. With both the real and imaginary part of the frequency-dependent dielectric tensors, one can calculate the optical absorption coefficient at different photon energies. Our results are validated against the experimental database: <https://refractiveindex.info>

For more information, please see <https://arxiv.org/abs/2209.02918>.


# Alloys

How alloy data is calculated on the Materials Project (MP) website.

Until this documentation page is written, please see <https://doi.org/10.1016/j.patter.2023.100723> for more information on the methodology.

See the [API docs](https://materialsproject.github.io/api/_autosummary/mp_api.client.routes.materials.alloys.AlloysRester.html#mp_api.client.routes.materials.alloys.AlloysRester.search) for retrieving this data programmatically.

## References

\[1]: R. Woods-Robinson, M. K. Horton, and K. A. Persson, A method to computationally screen for tunable properties of crystalline alloys, Patterns, vol. 4, p. 100723, 2023. DOI: 10.1016/j.patter.2023.100723


# Understanding Structures and Properties in the Materials Project

#### 1. **Why Structures May Look Different**

When retrieving structures from the new Materials Project (MP) API, you may notice that the lattice parameters and angles do not match the conventional or primitive unit cells you might expect from textbooks or the legacy MP database.

**Key points:**

* **Non-unique representations:** A crystal can be represented in many valid ways. The MP database does **not** store or return the primitive or conventional unit cell by default.
* **Possible supercells:** The stored cell may contain multiple repeat units in a "non-standard" representation.
* **Origin of structures:** Structures often come from experimental sources (e.g., ICSD) or are generated by substitutions on known prototypes, and are typically **not** symmetry-reduced before calculations.
* **Why not always use symmetry reduction?** Automatic numeric symmetry detection can occasionally misidentify a material’s symmetry, leading to incorrect primitive cells.

If you need a **conventional** or **primitive** cell, you can convert the returned structure in Python:

```
from mp_api.client import MPRester

with MPRester("YOUR_API_KEY") as mpr:
    docs = mpr.materials.summary.search(material_ids=["mp-13", "mp-90"])
    structures = {str(doc.material_id): doc.structure for doc in docs}

# Convert to conventional cells
conventional = {mid: s.to_conventional() for mid, s in structures.items()}

# Convert to primitive cells
primitive = {mid: s.get_primitive_structure() for mid, s in conventional.items()}
```

2\. **Changes in Magnetic Moments and Other Properties**

You may also notice differences in computed properties (e.g., magnetic moments, volumes) between the **legacy** MP database and the **new** one.

**Reason:**

* **Legacy MP calculations** were performed with the **PBE GGA** functional.
* **New MP calculations** use the **r²SCAN meta-GGA** functional, which is a higher-level, generally more accurate theory for many material properties.

**Impact of r²SCAN:**

* Improves accuracy for:
  * Magnetic moments in many oxides
  * Magnetic ordering in antiferromagnets
  * Thermodynamic stability
* Known tendency:
  * Overestimates **on-site ferromagnetic moments** in elemental metals (e.g., Fe, Ni) compared to experiment and PBE

#### 3. **Summary Table**

| Aspect                          | Legacy MP               | Newer MP data                             |
| ------------------------------- | ----------------------- | ----------------------------------------- |
| **DFT functional**              | PBE (GGA) and GGA+U     | r²SCAN (meta-GGA)                         |
| **Returned cell type**          | Often conventional cell | Arbitrary non-standard cell (can convert) |
| **Magnetic moments in metals**  | Closer to experiment    | Often overestimated in transition metals  |
| **Thermodynamic accuracy**      | Good                    | Improved                                  |
| **Magnetic ordering in oxides** | Sometimes incorrect     | Improved                                  |

***

#### 4. **Best Practices**

* Always convert to a **primitive** or **conventional** cell if you need a standard representation. The Materials Project uses pymatgen and spglib to determine primitive and conventional cells
* Be aware of **functional differences** when comparing old and new MP data.
* Treat very small deviations (e.g., \~1e-16 in coordinates) as numerical noise.
* Consult the [Materials Project API documentation](https://materialsproject.org/) for updates — this behavior will be documented more clearly in the future.


# Molecules Methodology

Overview of methodology for molecules-related calculations and analyses on the Materials Project (MP).


# Overview

An overview of the molecules methodology

While the Materials Project has historically focused on materials, we also calculate the properties of small molecules. The term "small molecules" is somewhat vague but typically refers to molecules with molecular weight below 1000 atomic mass units or amu (for reference, the molecular weight of water is 18 amu). In practice, we use the term "small molecule" to distinguish from polymers and biomolecules (like proteins).

## What Is a Molecule?

A "molecule" is typically defined as two or more atoms that are chemically bound. When we use the term "molecule", we also include single atoms (e.g. the hydrogen atom, H) and monatomic ions (e.g. fluoride, F-), because these species can be important for calculating certain properties like metal binding energies.

Molecules are distinguished on the basis of their chemical formulas, charge, and spin multiplicities. For instance, we could write "3O2" to refer to neutral diatomic oxygen (O2) in the triplet ground state. Beyond this simple definition, one can either distinguish between molecules using the idea of potential energy surfaces (PES) or else using the idea of chemical bonding.

If a molecule is defined as a local minimum on a PES (the physical definition of a molecule), then every unique PES minimum obtained by a geometry optimization calculation (in terms of interatomic distances, angles, dihredrals, etc.) is a distinct molecule. It is worth noting that this physical definition is used by the Materials Project to differentiate materials.

In contrast, the chemical definition says molecules are distinguished by the different ways that atoms are connected by chemical bonds and interatomic interactions. In many cases, different minima on the PES have the same bonding structure and only differ by e.g. bond rotations. These conformational isomers or conformers are typically viewed as representing the same molecule, and most chemical observables (like vibrational spectra and electrochemical properties) are averaged over different interconverting conformers. The chemical definition is more complex than the physical picture because it requires additional definitions - i.e., what is a "bond"?

In MPcules, we use both the physical and the chemical definitions, but for most purposes, we rely on the chemical definition based on bonding.

## New vs. Legacy Data

The original molecule dataset included in the Materials Project, developed through the Electrolyte Genome project as part of the Joint Center for Energy Storage Research (JCESR), was focused on developing next-generation electrolytes for batteries. As such, the Electrolyte Genome and the original Molecules Explorer were narrowly focused on molecular electrochemical properties.

We have since expanded our molecular dataset, considering a larger set of molecules and a more diverse set of properties - not just electrochemical, but thermodynamic, electronic, vibrational, and more. Here, we primarily describe this new database, which we call the Materials Project for Molecules or "MPcules". This section mainly describes the methods used to generate the MPcules database. For further details regarding MPcules, please see our recent publication:\[1]

{% embed url="<https://doi.org/10.1039/D3DD00153A>" %}

For information about the Electrolyte Genome project and the legacy molecules data on the Materials Project, see \[2] and \[3].

## References:

1. Spotte-Smith, E.W\.C., Cohen, O.A., Blau, S.M., Munro, J.M., Yang, R., Guha, R.D., Patel, H.D., Vijay, S., Huck, P., Kingsbury, R., Horton, M.K., Persson, K.A., 2023. A database of molecular properties integrated in the Materials Project. *Digital Discovery*.
2. Qu, X., Jain, A., Rajput, N.N., Cheng, L., Zhang, Y., Ong, S.P., Brafman, M., Maginn, E., Curtiss, L.A. and Persson, K.A., 2015. The Electrolyte Genome project: A big data approach in battery materials discovery. *Computational Materials Science*, *103*, pp.56-67.
3. Cheng, L., Assary, R.S., Qu, X., Jain, A., Ong, S.P., Rajput, N.N., Persson, K. and Curtiss, L.A., 2015. Accelerating electrolyte discovery for energy storage with high-throughput screening. *The journal of physical chemistry letters*, *6*(2), pp.283-291.


# Calculation Details

Details of parameters for molecular DFT calculations contained in the Materials Project for molecules (MPcules) database.

For molecular properties, we use the DFT methods implemented in the Q-Chem electronic structure code. In principle, MPcules allows calculations using any level of theory (defined as the combination of exchange-correlation functional, basis set, and implicit solvent method) available in Q-Chem. In practice, the data included in MPcules is based on calculations using a small number of levels of theory. Currently, we use the range-separated hybrid generalized gradient approximation (GGA) functionals ωB97X-D\[1] and ωB97X-V\[2] as well as the range-separated hybrid meta-GGA functional wB97M-V\[3]. All calculations use the property-optimized augmented def2 basis sets from Rappoport and Furche\[4], namely def2-SVPD, def2-TZVPPD, or def2-QZVPPD. Solvent methods currently in use include vacuum (meaning that no solvent correction has been applied), the polarizable continuum model (PCM)\[5, 6], or the solvent model with density (SMD)\[7], which adds fitted terms to PCM to account for short-range interactions like the cavitation energy.

In cases where a particular property has been calculated at multiple levels of theory, we report the property calculated using the "best" level of theory available. To make this determination, we assign scores to each functional, basis set, and implicit solvent method (listed below), and we sum these scores to yield the overall level of theory score. These scores are ultimately arbitrary and are based on our subjective assessments, combined with reviewing benchmark studies in the literature. If two or more calculations use the same level of theory, the calculation with the lowest electronic energy is preferred. We note that calculations performed with different solvents cannot be compared (one solvent is not better than another, just suited for different applications), so in general, we determine the best property for each set of solvent parameters available.

* Functional scores (for currently used functoinals):
  * ωB97X-D: 5
  * ωB97X-V: 6
  * ωB97M-V: 7
* Basis set scores (for currently used basis sets):
  * def2-SVPD: 2
  * def2-TZVPPD: 6
  * def2-QZVPPD: 7
* Solvent method scores:
  * Vacuum: 1
  * PCM: 3
  * SMD: 5

Scores can also be found in Emmet:

{% embed url="<https://github.com/materialsproject/emmet/blob/main/emmet-core/emmet/core/settings.py>" %}

All calculations performed in MPcules are conducted on a potential energy surface (PES) at 0 K. For properties derived from vibrational frequency analyses - including infrared spectra and normal modes as well as molecular thermochemistry - the electronic energy is calculated at 0K, and all other properties assume standard state (i.e. temperature of 298.15 K and pressure of 1 atm).

Initial structures come from a variety of sources. MPcules contains molecules previously reported in the Lithium Ion Battery Electrolyte (LIBE) dataset \[8] and the MAgnesium Dataset of Electrolyte and Interphase ReAgents (MADEIRA) \[9]. In other cases, molecules from public datasets such as QM9 \[10] have been re-calculated in different levels of theory, functionalized, or otherwise modified.

## References

1. Chai, J.D. and Head-Gordon, M., 2008. Long-range corrected hybrid density functionals with damped atom–atom dispersion corrections. *Physical Chemistry Chemical Physics*, *10*(44), pp.6615-6620.
2. Mardirossian, N. and Head-Gordon, M., 2014. ωB97X-V: A 10-parameter, range-separated hybrid, generalized gradient approximation density functional with nonlocal correlation, designed by a survival-of-the-fittest strategy. *Physical Chemistry Chemical Physics*, *16*(21), pp.9904-9924.
3. Mardirossian, N. and Head-Gordon, M., 2016. ωB97M-V: A combinatorially optimized, range-separated hybrid, meta-GGA density functional with VV10 nonlocal correlation. *The Journal of chemical physics*, *144*(21).
4. Rappoport, D. and Furche, F., 2010. Property-optimized Gaussian basis sets for molecular response calculations. *The Journal of chemical physics*, *133*(13).
5. Miertuš, S., Scrocco, E. and Tomasi, J., 1981. Electrostatic interaction of a solute with a continuum. A direct utilizaion of AB initio molecular potentials for the prevision of solvent effects. *Chemical Physics*, *55*(1), pp.117-129.
6. Mennucci, B., 2012. Polarizable continuum model. *Wiley Interdisciplinary Reviews: Computational Molecular Science*, *2*(3), pp.386-404.
7. Marenich, A.V., Cramer, C.J. and Truhlar, D.G., 2009. Universal solvation model based on solute electron density and on a continuum model of the solvent defined by the bulk dielectric constant and atomic surface tensions. *The Journal of Physical Chemistry B*, *113*(18), pp.6378-6396.
8. Spotte-Smith, E.W\.C., Blau, S.M., Xie, X., Patel, H.D., Wen, M., Wood, B., Dwaraknath, S. and Persson, K.A., 2021. Quantum chemical calculations of lithium-ion battery electrolyte and interphase species. *Scientific data*, *8*(1), p.203.
9. Spotte-Smith, E.W\.C., Blau, S.M., Barter, D., Leon, N.J., Hahn, N.T., Redkar, N.S., Zavadil, K.R., Liao, C. and Persson, K.A., 2023. Chemical reaction networks explain gas evolution mechanisms in Mg-ion batteries. *Journal of the American Chemical Society*.
10. Ramakrishnan, R., Dral, P.O., Rupp, M. and Von Lilienfeld, O.A., 2014. Quantum chemistry structures and properties of 134 kilo molecules. *Scientific data*, *1*(1), pp.1-7.


# Atomic Partial Charges

How partial charges are determined in MPcules

Partial charges can be approximated from DFT calculations using a variety of methods, including calculating the population of atomic and molecular orbitals, partitioning the electron density around a molecule into atomic regions, or calculation an electrostatic potential. We currently include atomic partial charges calculated using four methods: Mulliken population analysis \[1], the restrained electrostatic potential (RESP) \[2], Bader charges \[3], and natural atomic populations from the Natural Bond Orbital (NBO) program \[4, 5]

We note that different methods of partial charge approximation can differ both quantitatively and qualitatively. In particular, the Mulliken method is has been reported to behave poorly, in part due to a strong dependence on the basis set used for the DFT calculation. When available, we recommend the use of NBO charges, and specifically advise against using Mulliken charges when multiple options are available.

## References

1. Mulliken, R.S., 1955. Electronic population analysis on LCAO–MO molecular wave functions. I. *The Journal of chemical physics*, *23*(10), pp.1833-1840.
2. Bayly, C.I., Cieplak, P., Cornell, W. and Kollman, P.A., 1993. A well-behaved electrostatic potential based method using charge restraints for deriving atomic charges: the RESP model. *The Journal of Physical Chemistry*, *97*(40), pp.10269-10280.
3. Bader, R.F.W., 1990. *Atoms in Molecules: A Quantum Theory*. Clarendon Press.
4. Glendening, E.D., Badenhoop, J.K., Reed, A.E., Carpenter, J.E., Bohmann, J.A., Morales, C.M., Karafiloglou, P., Landis, C.R., Weinhold, F., 2018. *NBO 7.0*. Theoretical Chemistry Institute, University of Wisconsin, Madison.
5. Glendening, E.D., Landis, C.R. and Weinhold, F., 2012. Natural bond orbital methods. *Wiley interdisciplinary reviews: computational molecular science*, *2*(1), pp.1-42.


# Atomic Partial Spins

How partial spins for open-shell molecules are determined in MPcules

Atomic partial spins can be defined similarly to atomic partial charges for molecules with unpaired electrons ("open-shell" molecules; "closed-shell" molecules with no upaired electrons have 0 net spin and therefore 0 partial spin on each atom, by definition). We currently calculate atomic partial spins using two methods: Mulliken population analysis \[1] and natural atomic populations from NBO \[2, 3]. While Mulliken partial charges can be unreliable, we have generally found that Mulliken partial spins are qualitatively similar to those obtained from NBO and can therefore be treated without prejudice.

## References

1. Mulliken, R.S., 1955. Electronic population analysis on LCAO–MO molecular wave functions. I. *The Journal of chemical physics*, *23*(10), pp.1833-1840.
2. Glendening, E.D., Badenhoop, J.K., Reed, A.E., Carpenter, J.E., Bohmann, J.A., Morales, C.M., Karafiloglou, P., Landis, C.R., Weinhold, F., 2018. *NBO 7.0*. Theoretical Chemistry Institute, University of Wisconsin, Madison.
3. Glendening, E.D., Landis, C.R. and Weinhold, F., 2012. Natural bond orbital methods. *Wiley interdisciplinary reviews: computational molecular science*, *2*(1), pp.1-42.


# Bonding

How chemical bonds are determined in MPcules

Especially when relying on the chemical definition of a molecule (see [Molecules Methodology - Overview](/methodology/molecules-methodology/overview)), it is important to define the bonds in a molecule. Bonds can include covalent bonds, meaning that electrons are shared between multiple atoms, or other interactions between atoms like ionic bonds, hydrogen bonds, and coordinate bonds.

In MPcules, we currently determine molecular bonding in three ways. The simplest way relies on the [OpenBabel](http://openbabel.org/wiki/Main_Page) cheminformatics toolkit \[1] and the [`metal_edge_extender` utility](https://pymatgen.org/pymatgen.analysis.html) defined in pymatgen. This method relies purely on valence- and distance-based heuristics, meaning that it can be used on any molecular structure, without any specific electronic structure calculations. Because of this, we rely on this OpenBabel/pymatgen method when [defining molecules](/methodology/molecules-methodology/overview).

In addition to the purely heuristic OpenBabel/pymatgen method, we also use the method of Spotte-Smith, Blau, et al. \[2] and natural bonding orbital (NBO) analysis \[3, 4]. The Spotte-Smith-Blau method begins with the heuristic bonds defined by OpenBabel and pymatgen. Then, applying the `critic2` tool \[5] we identify additional bonds as the critical points of the optimized electron density from a DFT calculation. More specifically, if there are any critical points between atoms with a field strength greater than 0.02 (in atomic units) where the distance between atoms is < 2.5 Å, we say that those atoms are bonded.

NBO reports bonds based on electron sharing in hybrid orbitals between atoms (that is, covalent bonds). In addition to these bonds that are directly output by NBO, we can infer electrostatic bonds via orbital interactions. Specifically, to identify coordinate bonds between metals and nonmetals from NBO, we examine NBO's second-order perturbation theory analysis. If there are interactions between nonmetal lone pair orbitals and metal lone vacant or anti-Rydberg orbitals where the distance between the metal and the nonmetal is < 3.0 Å and the perturbation energy for the orbital interaction is ≥ 3.0 kcal/mol, then we say that there is a bond between the metal and the nonmetal.

In both the Spotte-Smith-Blau method based on critical point analysis and the NBO method based partially on orbital interactions, the cutoff values (in terms of interatomic distance, field strength, and perturbation energy) were determined heuristically by closely analyzing the NBO outputs for a modest, quasi-random set of molecules from MPcules.

## References

1. O'Boyle, N.M., Banck, M., James, C.A., Morley, C., Vandermeersch, T. and Hutchison, G.R., 2011. Open Babel: An open chemical toolbox. *Journal of cheminformatics*, *3*(1), pp.1-14.
2. Spotte-Smith, E.W\.C., Blau, S.M., Xie, X., Patel, H.D., Wen, M., Wood, B., Dwaraknath, S. and Persson, K.A., 2021. Quantum chemical calculations of lithium-ion battery electrolyte and interphase species. *Scientific data*, *8*(1), p.203.
3. Glendening, E.D., Badenhoop, J.K., Reed, A.E., Carpenter, J.E., Bohmann, J.A., Morales, C.M., Karafiloglou, P., Landis, C.R., Weinhold, F., 2018. *NBO 7.0*. Theoretical Chemistry Institute, University of Wisconsin, Madison.
4. Glendening, E.D., Landis, C.R. and Weinhold, F., 2012. Natural bond orbital methods. *Wiley interdisciplinary reviews: computational molecular science*, *2*(1), pp.1-42.\\
5. Otero-de-la-Roza, A., Johnson, E.R. and Luaña, V., 2014. Critic2: A program for real-space analysis of quantum chemical interactions in solids. *Computer Physics Communications*, *185*(3), pp.1007-1018.


# Metal Coordination and Binding

How coordination properties of metals (e.g. binding energies) are determined in MPcules

The coordination of metals by nonmetallic molecules is important for many applications, such as chemical separations and electrolyte design. We therefore collect information on the binding properties of metals in molecules. These properties, especially thermodynamic quantities like binding energy, can be thought of in terms of the general reaction A-M → A + M, where M is a metal and A is some molecule. The process of calculating metal binding properties requires additional information about [molecular thermodynamics](/methodology/molecules-methodology/molecular-thermodynamics), [bonding](/methodology/molecules-methodology/bonding), [atomic partial charges](/methodology/molecules-methodology/atomic-partial-charges), and [atomic partial spins](/methodology/molecules-methodology/atomic-partial-spins).

The first step is to analyze the coordination environment around the metal. We look for any bonds involving the metal (see [bonding](/methodology/molecules-methodology/bonding) for an explanation of how chemical bonds are identified), categorize them in terms of the coordinating atom (e.g. O, F, N, or B), and then calculate statistics (e.g. the average, maximum, and minimum coordinate bond length).

From there, we need to determine the oxidation state (charge and spin) of each metal in a molecule. We do this by rounding the predicted atomic partial charge and atomic partial spin to the nearest whole number. If these values are incompatible - for instance, if a Li atom is predicted to have a charge of 1 and a spin multiplicity of 2 (net spin 1) - then we shift the charge by +1 or -1 depending on which charge is closer to the predicted partial atomic charge.

After determining the proper oxidation state of the metal (and, from this, the charge and spin multiplicity of the coordinating molecule), we search for the molecule documents in MPcules corresponding to the metal (M) and the molecule with that metal removed (A). If we can find appropriate documents, then we calculate the thermodynamics for the reaction listed above.


# Natural Atomic and Molecular Orbitals

How MPcules collects data from natural bonding orbital (NBO) analysis

NBO\[1,2] processes and analyzes the optimized wavefunction produced by a DFT calculation. First, the atom-centered (typically Gaussian) basis set is converted into a basis of natural atomic orbitals (e.g. s, p, d, and f). These natural atomic orbitals are then used to construct various hybrid orbitals, including natural hybrid orbitals, natural bond orbitals, and natural localized molecular orbitals. From these, NBO can report detailed information regarding atomic populations, lone pairs, bonds, and interactions between different orbitals.

Currently, MPcules reports NBO atomic populations (including the total number of electrons on an atom, the number of core, valence, and Rydberg electrons), lone pair and bond information (including the fraction of the hybrid orbital made up of different types of natural atomic orbitals, as well as its total occupancy), and the output of second-order perturbation theory analysis of donor-acceptor orbital interactions (including the perturbation energy, the energy difference between donor and acceptor, and the Fock matrix element for the interaction). Where appropriate, we also report orbital types, using NBO's internal code. For instance, bonding orbitals are labeled "BD", antibonding orbitals are "BD\*", lone pairs are "LP", and Rydberg orbitals are "RY".

For open-shell molecules, NBO performs separate analyses on the ɑ and β electrons. Accordingly, orbital information in MPcules is structured differently for closed-shell and open-shell molecules.

## References

1. Glendening, E.D., Badenhoop, J.K., Reed, A.E., Carpenter, J.E., Bohmann, J.A., Morales, C.M., Karafiloglou, P., Landis, C.R., Weinhold, F., 2018. *NBO 7.0*. Theoretical Chemistry Institute, University of Wisconsin, Madison.
2. Glendening, E.D., Landis, C.R. and Weinhold, F., 2012. Natural bond orbital methods. *Wiley interdisciplinary reviews: computational molecular science*, *2*(1), pp.1-42.


# Redox and Electrochemical Properties

How properties related to charge transfer are determined in MPcules

Properties related to reduction and oxidation can be calculated in two ways \[1]. In the vertical approximation, one assumes that the atomic structure of a molecule does not change upon charge transfer. We can therefore calculated vertical electron affinities (EA) and ionization energies (IE) by performing two DFT energy evaluations on the same molecular structure at two different charges. As an example, for a neutral (charge 0) molecule, the IE would be calculated by taking the difference in energy between the molecule at charge +1 and charge 0, and the EA would be calculated by taking the energy difference between the molecule at charge -1 and charge 0.

In the adiabatic approximation, one instead assumes that, upon reduction or oxidation, a molecule completely relaxes. To calculate reduction and oxidation properties in the adiabatic approximation, we compare the (free) energies of two different MPcules molcules with the same connectivity (not including metal bonds) at two different charges. It is worth noting that molecules can spontaneously decompose upon oxidation or reduction. However, as it is difficult to predict *a priori* when such dissociative redox events will occur, we neglect these reactions. In addition to adiabatic oxidation and reduction free energies, we report reduction and oxidation potentials referenced to hte standard hydrogen electrode (SHE), using the relative potentials reported by Trasatti \[2].

## References

1. Ong, S.P. and Ceder, G., 2010. Investigation of the effect of functional group substitutions on the gas-phase electron affinities and ionization energies of room-temperature ionic liquids ions using density functional theory. *Electrochimica Acta*, *55*(11), pp.3804-3811.
2. Trasatti, S., 1986. The absolute electrode potential: an explanatory note (Recommendations 1986). *Pure and Applied Chemistry*, *58*(7), pp.955-966.


# Molecular Thermodynamics

How MPcules calculate the thermochemical properties of molecules

DFT SCF calculations produce an electronic energy as output. This can be used to determine the relative stability of different structures and calculate reaction energies. If one performs a vibrational frequency analysis, one can instead calculate the enthalpy (including the zero-point vibrational energy) or the Gibbs free energy, which are more natural quantities for comparison to experiments.

To calculate free energies at reduced cost, computational chemists often perform geometry optimization and vibrational frequency analyses using relatively inexpensive levels of theory (e.g. using a small basis set, or ignoring solvent effects) and then re-calculate the electronic energy using a more accurate and expensive level of theory (e.g. using a larger basis set or including an implicit solvent model). We can calculate the molecular thermodynamics using two methods: one in which all thermodynamic quantities of interest (e.g. electronic energy, enthalpy, and Gibbs free energy) are calculated from a single vibrational frequency analysis calculation, and another in which most properties are obtained from a vibrational frequency analysis and the electronic energy is obtained from a single-point energy calculation performed on the same structure at a higher level of theory.

In MPcules, we consider both of these approaches. If it is possible to calculate a molecule's thermodynamic properties both with and without a single-point energy corrections, then the scores (see [Calculation Details](/methodology/molecules-methodology/calculation-details)) for the best uncorrected document and best corrected document are compared. For the corrected document, we average the scores for the vibrational frequency analysis and the single-point correction.


# Vibrational Properties

How molecular vibrational properties are determined in MPcules

DFT vibrational frequency analyses produce a set of frequencies, their predicted spectroscopic activities and intensities, and the vibrational normal modes associated with each frequency. From these individual components, we report predicted infrared spectra.

In DFT, the reported frequencies are reported as single numerical values, leading to IR spectra with infinitely thin peaks (so-called "stick spectra"). On the Materials Project Web site, we allow users to visualize the computed IR spectra with broadened peaks based on Gaussian and Lorentzian lineshapes.


# Legacy Data

Describing the data present in the original Molecule Explorer

The first molecular properties presented on the Materials Project were calculated as part of the Electrolyte Genome Project \[1,2], an effort through the Joint Center for Energy Storage Research\[3] to accelerate the design of next-generation battery electrolytes. By design, the Electrolyte Genome aimed to predict only the electrochemical and redox properties of molecules calculated using the adiabatic approximation (see [Redox and Electrochemical Properties](/methodology/molecules-methodology/redox-and-electrochemical-properties)). The properties of small molecules were calculated using the B3LYP exchange-correlation functional \[4] and the 6-31+G(d) basis set \[5-11] with a PCM implicit solvent model \[12, 13]. For molecules with more than 50 atoms, the geometries were optimized using the PBE functional \[14] with Grimme's empirical D3 correction \[15].

## References:

1. Qu, X., Jain, A., Rajput, N.N., Cheng, L., Zhang, Y., Ong, S.P., Brafman, M., Maginn, E., Curtiss, L.A. and Persson, K.A., 2015. The Electrolyte Genome project: A big data approach in battery materials discovery. *Computational Materials Science*, *103*, pp.56-67.
2. Cheng, L., Assary, R.S., Qu, X., Jain, A., Ong, S.P., Rajput, N.N., Persson, K. and Curtiss, L.A., 2015. Accelerating electrolyte discovery for energy storage with high-throughput screening. *The journal of physical chemistry letters*, *6*(2), pp.283-291.
3. Trahey, L., Brushett, F.R., Balsara, N.P., Ceder, G., Cheng, L., Chiang, Y.M., Hahn, N.T., Ingram, B.J., Minteer, S.D., Moore, J.S. and Mueller, K.T., 2020. Energy storage emerging: A perspective from the Joint Center for Energy Storage Research. *Proceedings of the National Academy of Sciences*, *117*(23), pp.12550-12557.
4. Becke, A.D., 1993. A new mixing of Hartree–Fock and local density‐functional theories. *The Journal of chemical physics*, *98*(2), pp.1372-1377.
5. Rassolov, V.A., Ratner, M.A., Pople, J.A., Redfern, P.C. and Curtiss, L.A., 2001. 6‐31G\* basis set for third‐row atoms. *Journal of Computational Chemistry*, *22*(9), pp.976-984.
6. Hehre, W\.J., Ditchfield, R. and Pople, J.A., 1972. Self—consistent molecular orbital methods. XII. Further extensions of Gaussian—type basis sets for use in molecular orbital studies of organic molecules. *The Journal of Chemical Physics*, *56*(5), pp.2257-2261.
7. Hariharan, P.C. and Pople, J.A., 1973. The influence of polarization functions on molecular orbital hydrogenation energies. *Theoretica chimica acta*, *28*, pp.213-222.
8. Gordon, M.S., Binkley, J.S., Pople, J.A., Pietro, W\.J. and Hehre, W\.J., 1982. Self-consistent molecular-orbital methods. 22. Small split-valence basis sets for second-row elements. *Journal of the American Chemical Society*, *104*(10), pp.2797-2803.
9. Francl, M.M., Pietro, W\.J., Hehre, W\.J., Binkley, J.S., Gordon, M.S., DeFrees, D.J. and Pople, J.A., 1982. Self‐consistent molecular orbital methods. XXIII. A polarization‐type basis set for second‐row elements. *The Journal of Chemical Physics*, *77*(7), pp.3654-3665.
10. Ditchfield, R.H.W\.J., Hehre, W\.J. and Pople, J.A., 1971. Self‐consistent molecular‐orbital methods. IX. An extended Gaussian‐type basis for molecular‐orbital studies of organic molecules. *The Journal of Chemical Physics*, *54*(2), pp.724-728.
11. Dill, J.D. and Pople, J.A., 1975. Self‐consistent molecular orbital methods. XV. Extended Gaussian‐type basis sets for lithium, beryllium, and boron. *The Journal of Chemical Physics*, *62*(7), pp.2921-2923.
12. Miertuš, S., Scrocco, E. and Tomasi, J., 1981. Electrostatic interaction of a solute with a continuum. A direct utilizaion of AB initio molecular potentials for the prevision of solvent effects. *Chemical Physics*, *55*(1), pp.117-129.
13. Mennucci, B., 2012. Polarizable continuum model. *Wiley Interdisciplinary Reviews: Computational Molecular Science*, *2*(3), pp.386-404.
14. Perdew, J.P., Burke, K. and Ernzerhof, M., 1996. Generalized gradient approximation made simple. *Physical review letters*, *77*(18), p.3865.
15. Grimme, S., Ehrlich, S. and Goerigk, L., 2011. Effect of the damping function in dispersion corrected density functional theory. *Journal of computational chemistry*, *32*(7), pp.1456-1465.


# MOF Methodology

Overview of methodology for metal-organic framework (MOF)-related calculations and analyses on the Materials Project (MP).


# Calculation Parameters

What VASP settings were used?


# DFT Parameters

Description of the density functional theory (DFT) parameters used in MOF calculation results displayed on the Materials Project (MP) website.

We use density functional theory (DFT) as implemented in the Vienna Ab Initio Simulation Package (VASP) 5.4.4. All calculations are carried out at 0 K and 0 atm. The plane-wave kinetic energy cutoff was set to 520 eV, which is 1.3 times the highest cutoff recommended among the PAW PBE pseudopotentials we use. Unless stated otherwise, we used a *k*-point mesh of 1000/(number of atoms per cell), computed and arranged using [Pymatgen](https://pymatgen.org/pymatgen.io.vasp.inputs.html#pymatgen.io.vasp.inputs.Kpoints.automatic_density). The geometries were considered converged when the net forces were all less than 0.03 eV/Å. Gaussian smearing of the band occupancies as applied with a smearing width of 0.01 eV. Symmetry considerations were disabled. In general, a high-spin magnetic initialization was applied with 5 µB *for d-*&#x62;lock elements (excluding Zn, Cd, Hg), *7* µB for *f*-block elements (excluding Lu, Lr), and no magnetic character for the remaining elements. A local minimum magnetic configuration was found in each case, although there may be a lower energy global minimum for systems with complex magnetic orderings.

For additional calculation details, refer to the VASP files made available on NOMAD.


# Density Functionals

Description of the density functional theory (DFT) functionals and level of theory used in MOF calculation results displayed on the Materials Project (MP) website.

In all cases, the geometries are DFT-optimized structures at the PBE-D3(BJ) level of theory, and all properties are derived from single-point (i.e. static) calculations on these PBE-D3(BJ) optimized structures. In general, most properties are presented at the PBE-D3(BJ) level of theory. However, certain properties (e.g. band gaps, partial charges) for select materials are also provided based on HLE17, HSE06\*, and HSE06 single-point calculations on the PBE-D3(BJ) optimized structures. Conventionally, these would be referred to as PBE-D3(BJ), HLE17//PBE-D3(BJ), HSE06\*//PBE-D3(BJ), and HSE06//PBE-D3(BJ), respectively. However, for brevity, we typically refer to them as PBE, HLE17, HSE06\*, and HSE06. The PBE functional is a generalized gradient approximation (GGA) functional, HLE17 is a high-local-exchange meta-GGA functional, HSE06 is a screened hybrid functional with 25% Hartree-Fock (HF) exchange, and HSE06\* is the same as HSE06 but with 10% HF exchange. For computational efficiency, the HLE17, HSE06\*, and HSE06 calculations were carried out with a *k*-point grid of 500/(number of atoms per cell).


# Pseudopotentials

For solid state MOF materials, the VASP 5.4 PBE projector-augmented wave (PAW) pseudopotentials were used to carry out the DFT calculations. In general, the [VASP-recommended](https://www.vasp.at/wiki/index.php/Available_PAW_potentials) PAW PBE potentials were adopted except for `Li`, `Eu_3`, `Yb_3`, and `W_sv`. The full list of pseudopotentials is shown below:

<table><thead><tr><th width="320.57142857142856">Element</th><th>VASP 5.4 Pseudopotentials</th></tr></thead><tbody><tr><td>Ag</td><td>PAW_PBE Ag 02Apr2005</td></tr><tr><td>Al</td><td>PAW_PBE Al 04Jan2001</td></tr><tr><td>As</td><td>PAW_PBE As 22Sep2009</td></tr><tr><td>Au</td><td>PAW_PBE Au 04Oct2007</td></tr><tr><td>B</td><td>PAW_PBE B 06Sep2000</td></tr><tr><td>Ba</td><td>PAW_PBE Ba_sv 06Sep2000</td></tr><tr><td>Be</td><td>PAW_PBE Be 06Sep2000</td></tr><tr><td>Bi</td><td>PAW_PBE Bi_d 06Sep2000</td></tr><tr><td>Br</td><td>PAW_PBE Br 06Sep2000</td></tr><tr><td>C</td><td>PAW_PBE C 08Apr2002</td></tr><tr><td>Ca</td><td>PAW_PBE Ca_sv 06Sep2000</td></tr><tr><td>Cd</td><td>PAW_PBE Cd 06Sep2000</td></tr><tr><td>Ce</td><td>PAW_PBE Ce 23Dec2003</td></tr><tr><td>Cl</td><td>PAW_PBE Cl 06Sep2000</td></tr><tr><td>Co</td><td>PAW_PBE Co 02Aug2007</td></tr><tr><td>Cr</td><td>PAW_PBE Cr_pv 02Aug2007</td></tr><tr><td>Cs</td><td>PAW_PBE Cs_sv 08Apr2002</td></tr><tr><td>Cu</td><td>PAW_PBE Cu 22Jun2005</td></tr><tr><td>Dy</td><td>PAW_PBE Dy_3 06Sep2000</td></tr><tr><td>Er</td><td>PAW_PBE Er_3 06Sep2000</td></tr><tr><td>Eu</td><td>PAW_PBE Eu_3 20Oct2008</td></tr><tr><td>F</td><td>PAW_PBE F 08Apr2002</td></tr><tr><td>Fe</td><td>PAW_PBE Fe 06Sep2000</td></tr><tr><td>Ga</td><td>PAW_PBE Ga_d 06Jul2010</td></tr><tr><td>Gd</td><td>PAW_PBE Gd_3 06Sep2000</td></tr><tr><td>Ge</td><td>PAW_PBE Ge_d 03Jul2007</td></tr><tr><td>H</td><td>PAW_PBE H 15Jun2001</td></tr><tr><td>Hf</td><td>PAW_PBE Hf_pv 06Sep2000</td></tr><tr><td>Hg</td><td>PAW_PBE Hg 06Sep2000</td></tr><tr><td>Ho</td><td>PAW_PBE Ho_3 06Sep2000</td></tr><tr><td>I</td><td>PAW_PBE I 08Apr2002</td></tr><tr><td>In</td><td>PAW_PBE In_d 06Sep2000</td></tr><tr><td>Ir</td><td>PAW_PBE Ir 06Sep2000</td></tr><tr><td>K</td><td>PAW_PBE K_sv 06Sep2000</td></tr><tr><td>La</td><td>PAW_PBE La 06Sep2000</td></tr><tr><td>Li</td><td>PAW_PBE Li 17Jan2003</td></tr><tr><td>Lu</td><td>PAW_PBE Lu_3 06Sep2000</td></tr><tr><td>Mg</td><td>PAW_PBE Mg 13Apr2007</td></tr><tr><td>Mn</td><td>PAW_PBE Mn_pv 02Aug2007</td></tr><tr><td>Mo</td><td>PAW_PBE Mo_sv 02Feb2006</td></tr><tr><td>N</td><td>PAW_PBE N 08Apr2002</td></tr><tr><td>Na</td><td>PAW_PBE Na_pv 19Sep2006</td></tr><tr><td>Nb</td><td>PAW_PBE Nb_sv 25May2007</td></tr><tr><td>Nd</td><td>PAW_PBE Nd_3 06Sep2000</td></tr><tr><td>Ni</td><td>PAW_PBE Ni 02Aug2007</td></tr><tr><td>Np</td><td>PAW_PBE Np 06Sep2000</td></tr><tr><td>O</td><td>PAW_PBE O 08Apr2002</td></tr><tr><td>P</td><td>PAW_PBE P 06Sep2000</td></tr><tr><td>Pb</td><td>PAW_PBE Pb_d 06Sep2000</td></tr><tr><td>Pd</td><td>PAW_PBE Pd 04Jan2005</td></tr><tr><td>Pr</td><td>PAW_PBE Pr_3 07Sep2000</td></tr><tr><td>Pt</td><td>PAW_PBE Pt 04Feb2005</td></tr><tr><td>Pu</td><td>PAW_PBE Pu 06Sep2000</td></tr><tr><td>Rb</td><td>PAW_PBE Rb_sv 06Sep2000</td></tr><tr><td>Re</td><td>PAW_PBE Re 17Jan2003</td></tr><tr><td>Rh</td><td>PAW_PBE Rh_pv 25Jan2005</td></tr><tr><td>Ru</td><td>PAW_PBE Ru_pv 28Jan2005</td></tr><tr><td>S</td><td>PAW_PBE S 06Sep2000</td></tr><tr><td>Sb</td><td>PAW_PBE Sb 06Sep2000</td></tr><tr><td>Sc</td><td>PAW_PBE Sc_sv 07Sep2000</td></tr><tr><td>Se</td><td>PAW_PBE Se 06Sep2000</td></tr><tr><td>Si</td><td>PAW_PBE Si 05Jan2001</td></tr><tr><td>Sm</td><td>PAW_PBE Sm_3 07Sep2000</td></tr><tr><td>Sn</td><td>PAW_PBE Sn_d 06Sep2000</td></tr><tr><td>Sr</td><td>PAW_PBE Sr_sv 07Sep2000</td></tr><tr><td>Tb</td><td>PAW_PBE Tb_3 06Sep2000</td></tr><tr><td>Tc</td><td>PAW_PBE Tc_pv 04Feb2005</td></tr><tr><td>Te</td><td>PAW_PBE Te 08Apr2002</td></tr><tr><td>Th</td><td>PAW_PBE Th 07Sep2000</td></tr><tr><td>Ti</td><td>PAW_PBE Ti_sv 26Sep2005</td></tr><tr><td>Tl</td><td>PAW_PBE Tl_d 06Sep2000</td></tr><tr><td>Tm</td><td>PAW_PBE Tm_3 20Jan2003</td></tr><tr><td>U</td><td>PAW_PBE U 06Sep2000</td></tr><tr><td>V</td><td>PAW_PBE V_pv 07Sep2000</td></tr><tr><td>W</td><td>PAW_PBE W_sv 04Sep2015</td></tr><tr><td>Y</td><td>PAW_PBE Y_sv 25May2007</td></tr><tr><td>Yb</td><td>PAW_PBE Yb_3 08Jul2013</td></tr><tr><td>Zn</td><td>PAW_PBE Zn 06Sep2000</td></tr><tr><td>Zr</td><td>PAW_PBE Zr_sv 04Jan2005</td></tr></tbody></table>


# DFT Workflow

How to run a density functional theory (DFT) workflow for calculating / optimizing MOFs.

If you wish to run a QMOF-compatible workflow, we currently recommend using [QuAcc](https://github.com/arosen93/quacc), which has a QMOF "recipe" available at `from quacc.recipes.vasp.qmof`.

First, install QuAcc via `pip install quacc[vasp]`. The QMOF workflow can be run via the following code-block after the setup process is completed:

```python
import covalent as ct
from ase.io import read
from quacc.recipes.vasp.qmof import qmof_relax_job

# Read a MOF CIF
mof = read("mymof.cif")

# Make a QMOF-compatible job with on-the-fly error handling
workflow = ct.lattice(qmof_relax_job)

# Dispatch the workflow to the Covalent server
# with the Atoms object as the input
dispatch_id = ct.dispatch(workflow)(mof)

# Fetch the result from the server, if present
result = ct.get_result(dispatch_id)
print(result)
```


# Explore and Search Apps

These apps are for exploring and searching the datasets available in Materials Project. This section provides an overview, tutorials, and FAQ for each of the [**Explore and Search apps**](https://materialsproject.org/apps) on the Materials Project (MP) website.

Most data in "Explorer" apps are generated directly by Materials Project, but some are contributed by third parties, such as the Catalysis Explorer by the Open Catalyst Project, and the MOF Explorer, by Andrew Rosen et al.

![](/files/GK72mZriZTFO5QZnjwaB)


# Materials Explorer


# Tutorial

## Basic search for a material in the MP database

#### 1. [Go to Materials Project - Materials Explorer](https://next-gen.materialsproject.org/materials?elements=Li%2C%20Fe%2C%20O)

#### 2. Type the search criteria such as the composition, chemical formula or mp-id in the search box or click the elements from the periodic table below the search box

![Step 2 screenshot](https://images.tango.us/public/screenshot_9751d19c-c814-4119-b795-9c9a6ea4d2d1.png?crop=focalpoint\&fit=crop\&fp-x=0.5174\&fp-y=0.3912\&fp-z=1.4250\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=2880%3A1424)

#### 3. Use the filters in the left to filter the search results

![Step 3 screenshot](https://images.tango.us/public/screenshot_ab946b2f-8dbc-4ea5-9479-dc8c45b02703.png?crop=focalpoint\&fit=crop\&fp-x=0.1819\&fp-y=0.1594\&fp-z=1.8750\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=2880%3A1424)

#### 4. Click on Search

![Step 4 screenshot](https://images.tango.us/public/screenshot_defbc69e-e9b6-4c42-95bc-150481fcac05.png?crop=focalpoint\&fit=crop\&fp-x=0.8214\&fp-y=0.2858\&fp-z=2.7011\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=2880%3A1424)

#### 5. Click on Columns to select what properties to show for the search results

![Step 5 screenshot](https://images.tango.us/public/screenshot_b8de8ea0-83f0-42fe-98e8-c2face11954b.png?crop=focalpoint\&fit=crop\&fp-x=0.9028\&fp-y=0.3631\&fp-z=1.3863\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=2880%3A1424)

#### 6. Click on the mp-id to go to the material page

![Step 6 screenshot](https://images.tango.us/public/screenshot_825bd6df-4f80-40ae-974c-d479896c36c8.png?crop=focalpoint\&fit=crop\&fp-x=0.3835\&fp-y=0.7275\&fp-z=2.9239\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=2880%3A1424)

#### 7. Use the right tool bar on the to change the visualization settings and export the structure file

![Step 7 screenshot](https://images.tango.us/public/screenshot_d09ab84e-29eb-4d4c-b3b3-66523077548d.png?crop=focalpoint\&fit=crop\&fp-x=0.4878\&fp-y=0.7008\&fp-z=1.4833\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=2880%3A1424)

#### 8. To download the structure, click "Export as"

![Step 8 screenshot](https://images.tango.us/public/screenshot_02e8b473-9815-4f92-9a1e-53c7793eccdf.png?crop=focalpoint\&fit=crop\&fp-x=0.6556\&fp-y=0.5639\&fp-z=2.8076\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=2880%3A1424)

#### 9. A summary of material properties is shown in the right

![Step 9 screenshot](https://images.tango.us/public/screenshot_ba101334-dc4b-40cc-a302-f9343335cfa7.png?crop=focalpoint\&fit=crop\&fp-x=0.8434\&fp-y=0.4719\&fp-z=1.2647\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=2880%3A1424)

#### 10. An auto-generated description of the material from generated using Robocrystallographer (<https://github.com/hackingmaterials/robocrystallographer>)

![Step 10 screenshot](https://images.tango.us/public/screenshot_080878a0-f87f-4a1b-b063-b6ec5a7332b6.png?crop=focalpoint\&fit=crop\&fp-x=0.8434\&fp-y=0.6819\&fp-z=2.1222\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=2880%3A1424)

#### 11. Click on Crystal Structure to look at the basic structure information

![Step 11 screenshot](https://images.tango.us/public/screenshot_906ae888-e5ce-4d55-a67b-9d9f10b54f44.png?crop=focalpoint\&fit=crop\&fp-x=0.1616\&fp-y=0.3343\&fp-z=1.9213\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=2880%3A1424)

#### 12. Click on Properties to look at the materials properties

See the Methodology section for how these properties were calculated

{% content-ref url="<https://github.com/materialsproject/public-docs/blob/main/apps/explore-and-search-apps/materials-explorer/broken-reference/README.md>" %}
<https://github.com/materialsproject/public-docs/blob/main/apps/explore-and-search-apps/materials-explorer/broken-reference/README.md>
{% endcontent-ref %}

![Step 12 screenshot](https://images.tango.us/public/screenshot_dc2cc851-b6c2-443a-aef2-5ada8711e559.png?crop=focalpoint\&fit=crop\&fp-x=0.1616\&fp-y=0.6208\&fp-z=1.5614\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=2880%3A1424)


# Molecules Explorer


# Tutorial

Visit [Molecules Explorer](https://next-gen.materialsproject.org/molecules);

1. Search for molecules, either by entering search criteria in the search box:

<figure><img src="/files/dOth8nv4b9c9Wtmqa1VB" alt=""><figcaption><p>Search box in the Materials Project Molecules Explorer</p></figcaption></figure>

or else apply filters using the box on the left:

<figure><img src="/files/C2038idlllCIRI2ffJe6" alt=""><figcaption><p>Users can apply filters to a query</p></figcaption></figure>

3\. Click "Search" button to show search results.

<figure><img src="/files/D6aGcQYZOyeKpduLi4tA" alt=""><figcaption><p>Search results, looking for molecules with formula C2 H4 and spin multiplicity 2</p></figcaption></figure>

4\. Clicking on a molecule ID will take you to the detail page. At the top of the page, a 3D molecular structure is shown, as well as basic properties like the point group, charge, and spin multiplicity:

<figure><img src="/files/f35LZjAMcL3cLRtiBdQp" alt=""><figcaption><p>Example molecule detail page for ethylene in the radical cation state.</p></figcaption></figure>

5\. In MPcules, properties may be calculated in different solvent environments. You can select which properties you want to see by selecting from the drop-down menu on the right:

<div data-full-width="false"><figure><img src="/files/VPsBTZh8k4Af5G1gLnBY" alt="" width="375"><figcaption><p>Properties will only be shown for the selected solvent environment (red box)</p></figcaption></figure></div>


# Legacy Data

1. Visit the legacy JCESR [Molecules Explorer](https://next-gen.materialsproject.org/jcesr);
2. Enter the search criteria in the search box (labeled in red), or select elements from the periodic table of elements:

![Molecules Explorer Search Page](/files/j7LTG1RMKvWVI9xKsxCy)

3\. Click "Search" button to show search results.

![Search results](/files/bVfVSIOc6FVbclVISSYo)

4\. The molecular information is shown within each entry, by clicking on the Molecule ID:

![Molecule information](/files/VIGoGY9wnF2Tz8qGiWg0)

5\. Users can refine the search result via Filter, located on the top left part of the search results page. The filter can be applied to either the composition, or the basic properties.

![Filter by formula / composition](/files/tF7JLB9oEsp78tdBmcQv)

![Filter by Basic Properties](/files/dZeeCy6X4MCxj46N12Sw)


# Battery Explorer

This section presents some basic information about the Battery Explorer app on MP and a short tutorial of how to use it.


# Background

## Components

### Search

The Battery Explorer app, just like the Materials Explorer app, provides a search bar where one can search by chemical formula (eg. "CoO2") or by chemical system (eg. "Fe-P-O"). The user can also click on the periodic table to add elements to the search.

### Advanced Options

On the left tab on the app, users can choose to filter query results by composition and working ion, as well as battery properties such as average voltage or capacity.

![](/files/IjutXQJ1zRbw6QbQnhQX)

![](/files/o3upvhVdFO8TM1f8Xw1N)

### Visualization Viewer

The battery material details page provides a visualization for the host material of the battery.

### Data Table

The search result data table provides info on each entry, including formula, volume change, capacity and energy, etc.

## Thermodynamic data


# Oxygen evolution reaction

A critical consideration in designing improved battery electrodes is structural stability at and slightly above operating temperatures. Oxygen evolution reactions (OERs) can lead to structural degradation of the electrode, reducing the number of cycles a potential electrode can withstand.

The MP API client has a feature to generate OER data for the intercalation electrode collection, and the analysis tools used there can be extended further to study electrode materials not in our database.\
\
**NB: the OER data in MP only includes thermodynamic contributions, and neglects kinetic factors.**

#### Methods

Following Ong *et al.*, we use the thermodynamic[ phase diagram](/methodology/materials-methodology/thermodynamic-stability/phase-diagrams-pds) to trace possible decomposition products, while permitting structural changes, as a function of the effective O<sub>2</sub> chemical potential *μ\*(T)*. To map *μ\*(T)* for gaseous O<sub>2</sub> to a temperature, we approximate the *PV* contribution to Gibbs energy as that of an ideal gas \[1]:

$$
\mu^\*(T) \approx \mu(T\_0, p\_0) + k\_B T\[1 - S(T)/k\_B + \ln(p/p\_0)]
$$

We use the NIST JANAF thermochemical tables for oxygen \[2], which provide entropies *S(T)* measured at *p*=0.1 MPa, and reference ensemble conditions at room temperature: *T*<sub>*0*</sub>=298.15 K and *p*<sub>*0*</sub> = 0.21 atm \[1]. Using a spline fit of *T(μ\*)*, we can invert this relationship reliably for a large range of temperatures.

#### Examples

For olivine FePO4 ([mp-19017](https://next-gen.materialsproject.org/materials/mp-19017)), the website shows OER mechanisms for all stable entries in the insertion electrodes entry for the corresponding electrode material, [mp-19017\_Li](https://next-gen.materialsproject.org/batteries/mp-19017_Li)

<figure><img src="/files/Ctb3Q18uuk1PRYzkCUw1" alt=""><figcaption></figcaption></figure>

You can retrieve the same data using the API client `mp_api` as follows:\\

```python
from mp_api.client import MPRester

with MPRester("your_api_key") as mpr:
    oxyevo = mpr.get_oxygen_evolution("mp-19017","Li")
```

The keys of `oxyevo` are the formulas of the stable entries in the electrode entry, and its values are `pandas`-friendly dicts of the OER thermodynamic data:

```python
import pandas as pd
print(pd.DataFrame(oxyevo["Fe4 P4 O16"]))
>>> mu                                reaction     evolution  temperature
0 -8.334987                     FePO4 -> FeP + 2 O2  8.000000e+00  1395.096762
1 -7.054396                     FePO4 -> FeP + 2 O2  8.000000e+00   925.094009
2 -7.054396               4 FePO4 -> 2 Fe2P2O7 + O2  1.000000e+00   925.094009
3 -6.761139               4 FePO4 -> 2 Fe2P2O7 + O2  1.000000e+00   812.674113
4 -6.761139  6 FePO4 -> Fe3(P2O7)2 + Fe3(PO4)2 + O2  6.666667e-01   812.674113
5 -4.947961  6 FePO4 -> Fe3(P2O7)2 + Fe3(PO4)2 + O2  6.666667e-01     0.000000
6 -4.947961                          FePO4 -> FePO4 -3.151621e-15     0.000000
```

#### References

\[1] S.P. Ong, A. Jain, G. Hautier, B. Kang, and G. Ceder, "Thermal stabilities of delithiated olivine MPO<sub>4</sub> (M = Fe, Mn) cathodes investigated using first principles calculations", *Electrochem. Commun.* 12, 427–430 (2010), <https://doi.org/10.1016/j.elecom.2010.01.010>

\[2] M.W. Chase, NIST-JANAF Thermochemical Tables, vol. 12, American Chemical\
Society, New York, 1998. <https://janaf.nist.gov/tables/O-029.html>


# Tutorial

In this section, we present several ways to navigate through the Battery Explorer.

The Battery Explorer app allows users to filter candidate battery materials using chemical formula/composition, as well as properties such as maximum volume change, average voltage, capacity, stability etc.

In each individual page for a battery material, the user can find information regarding the material such as calculated properties, voltage curve, oxygen evolution graph and a visulization of the host material.

#### 1. [Go to Materials Project - Battery Explorer](https://materialsproject.org/batteries)

#### 2. Search the chemical formula of interest

![Step 2 screenshot](https://images.tango.us/public/screenshot_74cfe1e7-c747-42b9-b5fc-629bd7e723fe.png?crop=focalpoint\&fit=crop\&fp-x=0.4817\&fp-y=0.3304\&fp-z=1.5096\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3584%3A1952)

#### 3. Choose the filter of choice under the "Composition" Tab on the left

![Step 3 screenshot](https://images.tango.us/public/screenshot_2326e8af-ca3e-47f4-a6df-e6f4703e76e3.png?crop=focalpoint\&fit=crop\&fp-x=0.2500\&fp-y=0.7331\&fp-z=2.0000\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3584%3A1952)

#### 4. Select the working ion of choice

![Step 4 screenshot](https://images.tango.us/public/screenshot_5b54acf7-c0a8-4eb9-93a9-46769ffdafc6.png?crop=focalpoint\&fit=crop\&fp-x=0.1473\&fp-y=0.6557\&fp-z=2.0235\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3584%3A1952)

#### 5. One can delete filters by clicking "x" next to the filter

![Step 5 screenshot](https://images.tango.us/public/screenshot_e72d3681-03b8-477c-a155-1a28f505c5d7.png?crop=focalpoint\&fit=crop\&fp-x=0.3958\&fp-y=0.3353\&fp-z=3.2286\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3584%3A1952)

#### 6. Try a different type of filtering requirement - chemical system

![Step 6 screenshot](https://images.tango.us/public/screenshot_0122b7af-19b8-4274-b2ed-cc523e6748fe.png?crop=focalpoint\&fit=crop\&fp-x=0.1339\&fp-y=0.6183\&fp-z=2.1394\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3584%3A1952)

#### 7. Under Battery Properties tab on the left, choose filter of choice

![Step 7 screenshot](https://images.tango.us/public/screenshot_c1c4154c-89d6-4904-9dbb-d1e78f77f1dc.png?crop=focalpoint\&fit=crop\&fp-x=0.1292\&fp-y=0.3263\&fp-z=3.0808\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3584%3A1952)

#### 8. Filter by average voltage

![Step 8 screenshot](https://images.tango.us/public/screenshot_26fc2101-b39e-454b-9f7c-cad0a08f9899.png?crop=focalpoint\&fit=crop\&fp-x=0.0711\&fp-y=0.3535\&fp-z=2.9252\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3584%3A1952)

#### 9. Filter by stability of the discharged state

![Step 9 screenshot](https://images.tango.us/public/screenshot_4d9c589f-3cd1-47af-8750-fb8b42872f44.png?crop=focalpoint\&fit=crop\&fp-x=0.1021\&fp-y=0.7428\&fp-z=3.3026\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3584%3A1952)

#### 10. Change the x-axis for the voltage curve

![Step 10 screenshot](https://images.tango.us/public/screenshot_159f7920-cc54-47cc-a945-8592ad02de67.png?crop=focalpoint\&fit=crop\&fp-x=0.5241\&fp-y=0.4708\&fp-z=2.0944\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3584%3A1952)

#### 11. Link to materials detail page for each voltage step

![Step 11 screenshot](https://images.tango.us/public/screenshot_168b0d07-76bb-4be0-b6f8-354f5551d213.png?crop=focalpoint\&fit=crop\&fp-x=0.5849\&fp-y=0.5279\&fp-z=1.9469\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3584%3A1952)

#### 12. Visualization of the host material

![Step 12 screenshot](https://images.tango.us/public/screenshot_1dcea469-a3d9-4fe5-abfa-085983bdac07.png?crop=focalpoint\&fit=crop\&fp-x=0.4693\&fp-y=0.5005\&fp-z=1.3603\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3584%3A1952)


# Synthesis Explorer

Search synthesis recipes extracted from literature sources by natural language processing.

Here are the articles in this section:

{% content-ref url="/pages/Y1VioA71CTkHX7GnaA4w" %}
[Background](/apps/explorer-apps/synthesis-explorer/background)
{% endcontent-ref %}

{% content-ref url="/pages/2su1SewndGm2Yt4MikCK" %}
[Tutorial](/apps/explorer-apps/synthesis-explorer/tutorial)
{% endcontent-ref %}

{% content-ref url="<https://github.com/materialsproject/public-docs/blob/main/apps/broken-reference/README.md>" %}
<https://github.com/materialsproject/public-docs/blob/main/apps/broken-reference/README.md>
{% endcontent-ref %}


# Background

The materials synthesis recipes came from scientific literature through text mining and natural language processing approaches\[1].

![Schematic representation of synthesis “recipes” extraction pipeline from reference 1](/files/sXTaZXsJovIks2Cnpbzw)

The synthesis recipes can be searched by the target material formula, precursor material formula, keywords (eg. ball-milled, impurities) and synthesis procedures (eg. synthesis type, performed operations, heating temperature etc.). Each entry gives the information about the target and precursors materials, the reaction equation, the synthesis procedure and the link to the source publication.

## References

1. Kononova, Olga, Haoyan Huo, Tanjin He, Ziqin Rong, Tiago Botari, Wenhao Sun, Vahe Tshitoyan, and Gerbrand Ceder. "Text-mined dataset of inorganic materials synthesis recipes." *Scientific data* 6, no. 1 (2019): 1-11.

## Related links

{% embed url="<https://www.materialsynthesis.org/>" %}
SynTERRA
{% endembed %}

{% embed url="<https://ceder.berkeley.edu/text-mined-synthesis/>" %}


# Tutorial

#### 1. [Go to Materials Project - Home](https://materialsproject.org/)

#### 2. Click on Apps

![Step 2 screenshot](https://images.tango.us/public/screenshot_7b05d0a8-abf4-4a4f-954e-60dec8cc6ca8.png?crop=focalpoint\&fit=crop\&fp-x=0.7214\&fp-y=0.0853\&fp-z=2.7560\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3318%3A1782)

#### 3. Click on Synthesis Explorer

![Step 3 screenshot](https://images.tango.us/public/screenshot_bf6d0f08-3d95-4b5d-bead-863694a89d61.png?crop=focalpoint\&fit=crop\&fp-x=0.6730\&fp-y=0.3608\&fp-z=2.4854\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3318%3A1782)

#### 4. Go to Search synthesis recipes

![Step 4 screenshot](https://images.tango.us/public/screenshot_9fc38a1a-1a4c-4274-9a03-eef69483a815.png?crop=focalpoint\&fit=crop\&fp-x=0.5151\&fp-y=0.3440\&fp-z=1.2916\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3318%3A1782)

#### 5. Type Target Formula or Keywords. We chose Li4Ti5O12.

![Step 5 screenshot](https://images.tango.us/public/screenshot_013fae73-caf5-497b-b8d6-1a0cfa15a63b.png?crop=focalpoint\&fit=crop\&fp-x=0.5238\&fp-y=0.3620\&fp-z=1.4760\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3318%3A1782)

#### 6. Click on Search

![Step 6 screenshot](https://images.tango.us/public/screenshot_d6615c42-4423-41dd-8150-d0791666d8fb.png?crop=focalpoint\&fit=crop\&fp-x=0.7789\&fp-y=0.3620\&fp-z=2.8081\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3318%3A1782)

#### 7. There are 194 recipes for our search. We can narrow this down with Filters.

![Step 7 screenshot](https://images.tango.us/public/screenshot_95421a72-f7a4-4f5d-88f3-3c37c4eea4f3.png?crop=focalpoint\&fit=crop\&fp-x=0.6356\&fp-y=0.5146\&fp-z=1.4000\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3318%3A1782)

#### 8. Go to Filters

![Step 8 screenshot](https://images.tango.us/public/screenshot_2f7103ca-f71c-4458-9f8b-3c6f83a8b376.png?crop=focalpoint\&fit=crop\&fp-x=0.1579\&fp-y=0.5553\&fp-z=1.8266\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3318%3A1782)

#### 9. Click on Materials and Keywords

![Step 9 screenshot](https://images.tango.us/public/screenshot_48a1b077-0233-4306-869e-6194e85ee738.png?crop=focalpoint\&fit=crop\&fp-x=0.1567\&fp-y=0.5592\&fp-z=1.9076\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3318%3A1782)

#### 10. We can add Precursor Material Formula and/or Keywords. We add TiO2 as a Precursor Material Formula.

![Step 10 screenshot](https://images.tango.us/public/screenshot_2e216935-610f-4318-98c3-bc8ab1d28d74.png?crop=focalpoint\&fit=crop\&fp-x=0.1447\&fp-y=0.7559\&fp-z=2.0797\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3318%3A1782)

#### 11. Now there are 160 synthesis recipes. We can filter further with Synthesis Procedures.

![Step 11 screenshot](https://images.tango.us/public/screenshot_e78dcd3c-7aab-449e-a42a-bb05440379dc.png?crop=focalpoint\&fit=crop\&fp-x=0.6356\&fp-y=0.5146\&fp-z=1.4000\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3318%3A1782)

#### 12. Click on Synthesis Procedures

![Step 12 screenshot](https://images.tango.us/public/screenshot_efac9176-cca0-4bee-9d34-b5239b52fc77.png?crop=focalpoint\&fit=crop\&fp-x=0.1591\&fp-y=0.8064\&fp-z=1.6334\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3318%3A1782)

#### 13. In Synthesis Procedures, we can choose various filters, such as Synthesis Type. Here, we chose Solid State Synthesis.

![Step 13 screenshot](https://images.tango.us/public/screenshot_831b4bfe-d921-4d19-b021-ea0413b8f695.png?crop=focalpoint\&fit=crop\&fp-x=0.1591\&fp-y=0.5724\&fp-z=1.9617\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3318%3A1782)

#### 14. We can also change variables like Heating Temperature and Heating Time.

![Step 14 screenshot](https://images.tango.us/public/screenshot_98a513ae-385d-46c2-a6d0-5f0bf54c29b1.png?crop=focalpoint\&fit=crop\&fp-x=0.2078\&fp-y=0.5196\&fp-z=3.1121\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3318%3A1782)

#### 15. Applying these filters brings our search down to 107 synthesis recipes. We can look through these or continue to apply filters as desired.

![Step 15 screenshot](https://images.tango.us/public/screenshot_e8b27b6c-3dce-4daa-bfdd-d80aa6db6d68.png?crop=focalpoint\&fit=crop\&fp-x=0.6356\&fp-y=0.0533\&fp-z=1.4000\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=3318%3A1782)

***

[*This workflow was created with Tango*](https://app.tango.us/app/workflow/b68aba90-4168-4e83-8b51-658c8e94f7ab?utm_source=markdown\&utm_medium=markdown\&utm_campaign=workflow%20export%20links)


# Catalysis Explorer


# Tutorial

Tutorial on using Catalysis Explorer

In this section, we will review how to use the Catalysis Explorer app of the Materials Project. The Catalysis Explorer allows for visualising structures with surface adsorbates and provides adsorption energies for those structures.

#### 1. [Go to Materials Project - Catalysis Explorer](https://next-gen.materialsproject.org/catalysis)

To begin, click the above link to go to the Catalysis Explorer app.

#### 2. Search by composition

One of the ways of searching for a particular surface is through the bulk formula, within the composition tab. For example, you could search for Ti2Pd3.

![](https://images.tango.us/public/screenshot_f9e37bb1-39f0-4495-abd4-1232ab1a79b3.png?crop=focalpoint\&fit=crop\&fp-x=0.1288\&fp-y=0.7378\&fp-z=2.6278\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=2756%3A1592)

#### 3. Search by Adsorbate

Choose a certain adsorbate based on the SMILES or IUPAC formula. For example, if you were interested in finding the adsorption energy for CH2, the adsorbate SMILES would be \*CH2 and the IUPAC formula would be C1 H2.

![](https://images.tango.us/public/screenshot_cd44256f-41f7-44e4-9a81-bae03b83ea9d.png?crop=focalpoint\&fit=crop\&fp-x=0.1916\&fp-y=0.7695\&fp-z=1.8098\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=2756%3A1592)

#### 5. Search by formula

In this tab, you can choose surfaces based on their formula, material ID corresponding to their bulk, miller indices of the surface (individually as h,k,l) and surface shifts.

![](https://images.tango.us/public/screenshot_15223f30-1847-496b-936b-f34f44d95e22.png?crop=focalpoint\&fit=crop\&fp-x=0.1916\&fp-y=1.0088\&fp-z=1.8098\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=2756%3A1592)

#### 6. Real example

Say we were interested in CH2\* on Ti2Pd3. Input the options in points 2 and 3 of this tutorial to find the following search results from the database (note that the exact options might change in the future).

![](https://images.tango.us/public/screenshot_cef7752e-30c9-4c25-9026-4f8b3234b019.png?crop=focalpoint\&fit=crop\&fp-x=0.3888\&fp-y=0.4271\&fp-z=2.7293\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=2756%3A1592)

#### 7. Visualize structure and adsorption energies

![](https://images.tango.us/public/screenshot_cabf646b-4181-4f5b-a707-ca01ef41a3ee.png?crop=focalpoint\&fit=crop\&fp-x=0.7083\&fp-y=0.6853\&fp-z=1.6566\&w=1200\&mark-w=0.2\&mark-pad=0\&mark64=aHR0cHM6Ly9pbWFnZXMudGFuZ28udXMvc3RhdGljL21hZGUtd2l0aC10YW5nby13YXRlcm1hcmsucG5n\&ar=2756%3A1592)


# MOF Explorer

Predicted properties for metal–organic frameworks (MOFs) and coordination polymers, derived from the QMOF Database.

### Background

MOFs are highly tunable materials composed of inorganic ions or clusters ("nodes") connected by organic ligands ("linkers") that yield a crystalline structure. To date, tens of thousands of MOFs have been experimentally synthesized, and virtually unlimited more can be hypothesized based on plausible node and linker building blocks.

The MOF Explorer (<https://materialsproject.org/mofs>) provides an interactive interface to the Quantum MOF (MOF) Database, which contains DFT-computed properties for \~20,000 MOFs and related MOF-like materials.


# Downloading the Data

How to download the data available on https\://materialsproject.org/mofs

### Downloading the QMOF Database

The recommended way of downloading much of the data underlying the QMOF Database is at the following Figshare repository: <https://doi.org/10.6084/m9.figshare.13147324>. The data on Figshare includes DFT-optimized geometries (in XYZ and CIF format) and several tabulated properties, such as energies, partial atomic charges (DDEC6, CM5, Bader), bond orders (DDEC6), atomic spin densities (DDEC6, Bader), magnetic moments, band gaps, and more. For reproducibility purposes, we recommend noting the version of the QMOF Database you have used. Note that a mirror of the QMOF Database made to be interoperable with the Materials Project is available on [MPContribs](https://contribs.materialsproject.org/projects/qmof), which can be queried with the [MPContribs API](https://contribs-api.materialsproject.org) if desired.

Additional files and properties beyond those hosted on Figshare (e.g. VASP inputs and outputs, density of states, charge densities) can be obtained from NOMAD and Globus, as described in more detail below.

### Downloading the VASP Files

#### NOMAD

All VASP input and output files are made available on NOMAD at the following datasets:

1. QMOF Database - PBE: <https://dx.doi.org/10.17172/NOMAD/2021.10.10-1>
2. QMOF Database - HLE17: <https://dx.doi.org/10.17172/NOMAD/2021.11.17-3>.
3. QMOF Database - HSE06\*: <https://dx.doi.org/10.17172/NOMAD/2021.11.17-2>.
4. QMOF Database - HSE06: <https://dx.doi.org/10.17172/NOMAD/2021.11.17-1>.

Querying NOMAD by `external_id` will allow you to search by the unique QMOF ID available on the MOF Explorer. Including a supplemental query of `datasets` will allow the user to specify one of the four datasets listed above for a specified level of theory. Links to the NOMAD files for a given material are available on each material's detail page. See the "Calculation Parameters" section of the documentation for a description of the different levels of theory.

Please note that there may be more entries on NOMAD than in the MOF Explorer. This is because structures are occasionally removed from the QMOF Database if any structural fidelity issues are identified, but entries cannot be deleted from NOMAD.

To download an entire NOMAD dataset, switch from the default "Entries" view to "Datasets".

#### Globus - Charge Densities

Due to their large filesizes, charge densities are made available via a [Globus Endpoint](https://app.globus.org/file-manager?origin_id=1083ea2f-87fa-48ea-8b34-e6bd1f5ae39a\&origin_path=%2F). First, set up a collection end-point, which can include your local machine or a compute cluster with Globus installed. Then choose a path in the collection in which to store the files. Once this is set up, select the folders and/or files you wish to download from the QMOF collection and choose "Transfer or Sync to..." to have Globus transfer the files to your specified location.


# Structure Details

Neat structures! Tell me a bit about them?


# QMOF IDs

What is a QMOF ID?

Each material in the QMOF Database is assigned a unique 7-digit QMOF ID that is associated with that material. All calculations associated with a given QMOF ID are for a given PBE-D3(BJ) optimized structure. Each QMOF ID represents a unique structure, as determined using Pymatgen's [StructureMatcher](https://pymatgen.org/pymatgen.analysis.structure_matcher.html#pymatgen.analysis.structure_matcher.StructureMatcher). As such, the primitive unit cells of any two structures are distinct after any relevant volume rescaling. Depending on your personal definition of a unique material, you may wish to further unique-ify the structures. For instance, MOFs with closed-pore and open-pore configurations would be considered unique, MOFs with different linker configurations would be considered unique, and so on.


# Structure Sources

Where did each of the initial structures come from?

Each material in the QMOF Database, and thereby the MOF Explorer, was taken from an existing dataset of MOF structures. Some of these datasets are dedicated to experimentally synthesized MOF structures, whereas others are hypothetical MOF structures (i.e. computationally constructed). Below, we outline the various datasets of MOF structures used in constructing the QMOF Database.

#### Cambridge Structural Database – MOF Subset

The [Cambridge Structural Database](https://www.ccdc.cam.ac.uk/structures) (CSD) contains experimentally derived crystal structures for over a million materials. Of the crystal structures published on the CSD, approximately 100,000 are included in what is referred to as the [CSD MOF Subset](https://doi.org/10.1021/acs.chemmater.7b00441). It should be noted that the definition of a MOF in the CSD MOF Subset is more inclusive than many other databases and includes non-porous materials that are arguably best described as coordination polymers, in addition to more conventional MOF structures.

In the QMOF Database, structures were taken directly from the CSD MOF Subset with free (i.e. unbound) solvent removed from the pores. [ConQuest](https://doi.org/10.1107/S0108768102003324) was used to download the structures, and we excluded materials that were flagged as having charge-balancing ions, any errors in the crystal structure, or disorder in the framework. Additionally, we excluded any structures that lacked carbon or hydrogen atoms, had atoms with close interatomic distances, had lone (i.e. unbonded) atoms, or had terminal oxo ligands on metals where such ligands are typically OH groups or water. Several scripts to carry out these fidelity checks can be found [here](https://github.com/arosen93/QMOF/blob/main/database_tools).

#### CoRE MOF Database

The [Computation-Ready, Experimental (CoRE) MOF Database](https://pubs.acs.org/doi/abs/10.1021/acs.jced.9b00835) contains experimentally derived crystal structures for \~14,000 porous, three-dimensional MOFs. The materials in the CoRE MOF Database were derived from the CSD but are not directly associated with the CSD MOF Subset, although many of the CoRE MOFs can be found in the CSD MOF Subset as well. Unlike the CSD MOF Subset, which provides as-reported crystal structures, a suite of automated and manual structural corrections were carried out during the construction of the CoRE MOF Database. As with any automated approach, not all of these structural corrections are perfect in their execution and can result in materials with misplaced atoms, under- and over-bonded atoms, charge imbalances, and similar structural fidelity issues that can be determinetal for DFT.

In the QMOF Database, we considered CoRE MOFs that were included in curated lists provided by [Chan and Manz](https://doi.org/10.1039/D0RA02498H) and [Kancharalapalli and coworkers](https://doi.org/10.1021/acs.jctc.0c01229) to increase the likelihood of having high-fidelity CoRE MOF structures. For consistency, the free solvent-removed (FSR) subset of the CoRE MOF Database was conisdered. We emphasize that there are many MOFs present in the CoRE MOF Database that we instead adopted from the CSD MOF Subset directly. As such, if a user is specifically interested in which MOFs in the QMOF Database are also present in the CoRE MOF Database, one should compare the CSD reference codes and/or MOFids for the materials in these two datasets.

#### Pyrene MOFs

Several experimentally characterized, pyrene-containing MOFs were taken from the work of [Kinik et al.](https://pubs.rsc.org/en/content/articlehtml/2021/cs/d0cs00424c) using the structures that were uploaded to the [Materials Cloud](https://doi.org/10.24435/materialscloud:z5-ct). No further modifications were made to these structures.

#### ToBaCCo

The [Topology-Based Crystal Constructor (ToBaCCo) code](https://github.com/tobacco-mofs/tobacco_3.0) can generate hypothetical MOFs from known inorganic and organic building blocks (and topologies). Here, the "ToBaCCo" dataset of MOFs specifically refers to those found in the [original ToBaCCo paper](https://doi.org/10.1021/acs.cgd.7b00848) by Colón, Gómez-Gualdrón, and Snurr. In the QMOF Database, MOFs with triangular Cu-containing nodes were selected from the ToBaCCo dataset, as found [here](https://github.com/snurr-group/tobacco_mofs_mc_0_node).

#### Anderson and Gómez-Gualdrón

The [Anderson and Gómez-Gualdrón dataset](https://aip.scitation.org/doi/full/10.1063/5.0048736) contains hypothetical MOFs constructed using ToBaCCo. In the QMOF Database, we selected Zr-containing MOFs from this dataset. We also expanded the dataset to include hypothetical Hf-containing MOfs by exchanging the Zr species for Hf.

#### Boyd & Woo

Hypothetical MOFs in the QMOF Database were also adopted from the work of [Boyd et al.](https://www.nature.com/articles/s41586-019-1798-7) using the dataset of structures uploaded to the Materials Cloud [here](https://doi.org/10.24435/materialscloud:2018.0016/v3). These MOFs were construced using the [TOBASCCO code](https://github.com/peteboyd/tobascco), as described in prior work by [Boyd and Woo](https://pubs.rsc.org/en/content/articlehtml/2016/ce/c6ce00407e). As a result, we refer to these hypothetical MOFs as coming from the Boyd & Woo dataset.

In the QMOF Database, we adopted MOFs from select families in the Boyd & Woo daaset and occasionally made modifications to several of these MOFs to diversify our collection. For instance, we occasionally exchanged the metals in the inorganic node, and we constructed Al rod MOFs by exchanging the metals in the pre-existing V rod MOFs and protonating the bridging oxo ligands. We still refer to these structures as being derived from the Boyd & Woo dataset even though custom modifications have been made.

#### Genomic MOF Database

Hypothetical MOFs from the [Genomic MOF (GMOF) database](https://doi.org/10.1039/C9TA01752F) made available [on Figshare](https://figshare.com/s/ec378d7315581e48f1e4) were included in the QMOF Database. These structures were adopted as-is without further modification.

#### Mail-Order MOF-5s

Hypothetical MOF-5 analogues were obtained from [prior work](https://pubs.acs.org/doi/abs/10.1021/jp401920y) by Haranczyk and colleagues. See [here](http://nanoporousmaterials.org/databases) for the dataset.

#### Hypothetical MOF-74s

Hypothetical Mg-MOF-74 analogues were obtained from [prior work](https://pubs.rsc.org/en/content/articlehtml/2016/sc/c6sc01477a) by Haranczyk and colleagues.


# Finding MOFs by Common Name

How do I find a MOF by its common name?

Frequently, one is interested in identifying a MOF with a specific common name (e.g. HKUST-1, MOF-5, MOF-74). While common names cannot directly be queried in the MOF Explorer, MOFid/MOFkey can be used to carry out such a query using the following general procedure:

1. Download the CIF of the desired MOF from the published literature (e.g. from the original source publication). Some common MOFs can be found [here](https://github.com/iRASPA/RASPA2/tree/master/structures/mofs/cif).
2. Calculate the MOF's unique MOFid or MOFkey using the web-based [ID Tool](https://snurr-group.github.io/web-mofid/) by simply uploading the structure and clicking submit. Please read the tips on the MOFid webpage carefully.
3. Copy down the MOFid and/or MOFkey information.
4. Query the MOF Explorer by SMILES (i.e. MOFid) or MOFkey. If there are multiple options, take the one you like. If multiple entries are returned in the MOF Explorer with the same reduced chemical formula, we generally recommend the structure with the lowest energy (per atom). This would represent the lowest energy conformer at the PBE-D3(BJ) level of theory.

There are other, slightly less comprehensive, ways of searching for a given MOF. For instance, you can search by DOI on the MOF Explorer, so if you know the DOI of the paper that reported the crystal structure of your MOF of interest, you can query by that. Additionally, if you know the CSD Refcode for a given MOF, you can query by that as well.


# Structural Fidelity

Some nuances about structures in the QMOF Database (and all MOF databases, in fact)

As described in the original [QMOF Database paper](https://doi.org/10.1016/j.matt.2021.02.015), the structural fidelity of MOF crystal structures is an incredibly challenging but important factor to consider when constructing DFT-based property databases. Many experimental MOF crystal structures have missing atoms (e.g. missing H atoms), under or overbonded atoms, unresolved disorder, charge-imbalances (e.g. missing or too many ions), and related issues. Similarly, some hypothetical MOF databases have building blocks with under or overbonded carbon atoms due to faulty functionalization routines. While significant effort was put into maximizing the structural fidelity of materials on the QMOF Database, we acknowledge that there are inevitably structures in the database that are not pristine.

If you find a material with poor structural fidelity, we ask you to [open an issue](https://github.com/arosen93/QMOF/issues) listing the QMOF IDs of any problematic structures along with an explanation of the structural error. While we are not in a position to correct structures at this time, they will be removed from the QMOF Database when identified by the community, and a new version of the database will be minted.


# Property Definitions


# SMILES, MOFid, and MOFkey

What are SMILES strings, a MOFid, and a MOFkey?

In prior work by [Bucior et al.](https://doi.org/10.1021/acs.cgd.9b01050), a pair of methods known as MOFid and MOFkey are described that can be used to assign a unique name for a given MOF. MOFid works by deconstructing a MOF into its node(s), linker(s), and topology. The nodes and linkers are represented as SMILES strings, the topology is determined using [Systre](http://gavrog.org), and any catenation is noted. These factors are combined into a single unique "MOFid". The MOFkey is simply a shorter, InChI-based hash of the MOFid. These methods are shown below for HKUST-1 (also known as Cu3(btc)2 and Cu-BTC):

![Example MOFid and MOFkey for the MOF with common name HKUST-1.](https://snurr-group.github.io/web-mofid/mofid.png)

The MOFid code is available [here](https://github.com/snurr-group/mofid) with a web-based version available [here](https://snurr-group.github.io/web-mofid).

The SMILES search on the MOF Explorer is a partial-match of the MOFid. As such, one can query by just the node, just the linker, or even a substructure of the linker. If the user wishes to supply both a node and linker query, they should be provided in the MOFid format (separated by a "." with the node(s) listed before the linker(s)).


# Pore Geometry

How were pore-based properties computed?

Pore-related properties were computed using [Zeo++](http://zeoplusplus.org) 0.3 with the high-accuracy flag (except in the rare cases where this failed, in which case the standard accuracy was used). These properties were computed using the PBE-D3(BJ) optimized structure.

The pore-limiting diameter is the smallest spherical diameter of void space that a guest species would need to traverse in order to diffuse through the material, whereas the largest cavity diameter is the largest spherical diameter that can fit within the void space of the material.




---

[Next Page](/llms-full.txt/1)

