Update to elasticity data

Hello everyone,

As of today, we’ve expanded the available elastic data on MP by around 300-400 materials by including data which fails the filter criteria outlined in “Charting the complete elastic properties of inorganic crystalline compounds” (http://www.nature.com/articles/sdata20159). We’ve done this partially because many of the materials which have been submitted to our workflow infrastructure via requests for the predicted bulk and shear modulus fail the criteria.

In addition, materials whose elastic criteria do fail the filter criteria now have warnings which indicate which criteria are not met. For example, the elastic tensor for LiCoO2 (mp-24850) has an eigenvalue which is negative, which is indicated by the warning symbol in the upper right hand corner of the elastic properties field. In many cases, this corresponds to a physical “soft mode” which may represent mechanical instability. In other cases, the warnings may indicate that the calculation result is unphysical. I’ve included a few examples below to demonstrate how data that includes warnings can be filtered using either mpquery searches on the website or the REST API.

As always, we welcome any feedback or concerns you might have with respect to these changes. Feel free to voice those here.

Best,
Joey Montoya, MP Team

from pymatgen import MPRester
mpr = MPRester(YOUR_API_KEY_HERE)
# Get materials with no warning, i. e. those previously not filtered
elast = mpr.query(criteria={"elasticity.warnings":None, 
                                           "elasticity":{"$exists":True}}, 
                             properties=['elasticity'])

# Get materials without a specific warning message
msg = "One or more eigenvalues of the elastic tensor is negative"
elast = mpr.query(criteria={"elasticity.warnings":{"$ne":msg}, 
                            "elasticity":{"$exists":True}}, 
                  properties=['elasticity'])

# Get materials without multiple warning messages
msg1 = "One or more eigenvalues of the elastic tensor is negative"
msg2 = "Contains a rare earth element"
elast = mpr.query(criteria={"$and":[{"elasticity.warnings":{"$ne":msg1}},
                                   {"elasticity.warnings":{"$ne":msg2}}],
                            "elasticity":{"$exists":True}}, 
                  properties=['elasticity'])
1 Like