6
$\begingroup$

Background

Let's say I want information (e.g. bulk modulus or space group) on an element or chemical compound that isn't available via e.g. ElementData[], LatticeData[], or ChemicalData[].

Examples

ChemicalData["FeO2"]

ChemicalData::notent: "FeO2" is not a known entity, class, or tag for ChemicalData. Use ChemicalData[] for a list of entities.

ChemicalData["Fe3C"]
Missing["NotAvailable"]

Question

How can I go about programmatically obtaining this information? API suggestions are welcome.

$\endgroup$
6
$\begingroup$

Materials Project

The Materials Project contains an extensive amount of materials property data and has an API which can be accessed in Mathematica via a RESTful API workflow.

See the MaterialProperties package on my GitHub page for an implementation of this.

Example Usage

Space Group Properties of Iron Carbide

MaterialProperties["Fe3C", "spacegroup"]

<|"symprec" -> 0.1, "source" -> "spglib", "symbol" -> "Pnma", "number" -> 62, "point_group" -> "mmm", "crystal_system" -> "orthorhombic", "hall" -> "-P 2ac 2n"|>

Space Group Number of Iron Carbide

MaterialProperties["Fe3C", "spacegroup", "number"]
62

K Voigt

See Elasticity Calculations for some properties and units

MaterialProperties["Fe3C", "elasticity", "K_Voigt"] (*GPa*)
224.
| improve this answer | |
$\endgroup$
3
$\begingroup$

An alternative to ChemicalData[] that still uses the Mathematica built-in database.

element=Entity["Chemical","IronCarbide"];
entityProperties=EntityValue[element,"Properties"];
entityValues=EntityValue[element,entityProperties];
Select[entityValues,!MissingQ[#]&];
propertyValues=Select[{entityProperties,entityValues}\[Transpose],!MissingQ[#[[2]]]&];
propertyValues//TableForm

enter image description here

Unfortunately, you may still not find the properties you're looking for using this way, so you can use the API package as above.

| improve this answer | |
$\endgroup$
2
$\begingroup$

You can get partial results using the WolframAlpha function. Either

WolframAlpha["iron carbide"]

or

WolframAlpha["chemical compound Fe3C"]

produce enter image description here

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.