Obtaining elasticity predictions - bulk and shear modulus


#1

Hi, users and developers - Is there a way to obtain large dataset of the predicted bulk and shear modulus for compounds from the API obtained using the statistical learning framework mentioned in this paper - https://www.nature.com/articles/srep34256

I can see these values are mentioned under “Get predictions” when I open the materials project page for each material (whose elastic tensor is not available from DFT) but have they been incorporated into the API? Thanks.


#2

Hello,

Yes. The endpoint route for this is

/rest/v2/materials/{chemsys_formula_mid}/pred/elastic_moduli

where chemsys_formula_id is e.g. a chemical system (e.g., Li-Fe-O) or formula (e.g., Fe2O3) or materials_id (e.g., mp-1234); really, anything that pymatgen’s MPRester.parse_criteria can take as input, including wildcards.

With pymatgen, you can use the get_data method of an MPRester instance with “pred” (for property prediction) passed to the data_type parameter, e.g.

from pymatgen import MPRester

m = MPRester()
m.get_data("Fe2O3", data_type="pred", prop="elastic_moduli")

Note: obtaining predictions this way will not automatically vote for full elastic tensor calculations of the corresponding materials. For that, you should use the button on the material detail page or the voting dashboard linked to from there.

Best,
Donny


#3

Thanks, Donny for the informative example. I wanted to query for the elastic moduli of all Fe and O containing compounds. I could easily do this in pymatgen using example 5 shown on this repository: https://github.com/materialsproject/mapidoc

But using get_data() instead of query(), is there a way to query for all Fe and O containing compounds?

Best,
-Zeeshan


#4

Zeeshan-

I may not understand your question, but if I do, this should work:

mpr = MPRester('mykey')
data = mpr.get_data("Fe-O", data_type="pred", prop="elastic_moduli")

When I run it, I get 83 records back.

Hope that helps-
David


#5

Thanks, David and Donny for the solution. I wasn’t aware of the data_type=“pred” feature. It works perfectly and it would be useful to update the documentation https://materialsproject.org/docs/api about this.