WMD-group/SMACT

is it possible to use SMACT to detect valid intermetallic compounds?

Closed this issue · 4 comments

Intermetallic compounds are formed from electropositive and electronegative metals which chemically bond to form compounds with a specific composition and crystalline structure.
Famous intermetallic compounds are CuZn, Cu31Sn. SbSn.

However, in Smact oxidation states definition files, https://github.com/WMD-group/SMACT/blob/master/smact/data/oxidation_states.txt all metals only have positive states while wikipedia shows the negative states of metal elements https://en.wikipedia.org/wiki/Template:List_of_oxidation_states_of_the_elements
e.g. Cu: Cu +1 +2 +3 +4 (Smact)
Cu: 29 | copper | Cu |   |   |   | −2 |   | 0 | +1 | +2 | +3 | +4 |   (wiki)

Can we add the -2 to the oxidation table of smact so that it can detect the charge neutrality of these intermetallics?

maybe it is a good idea to introduce another oxidation table as the wiki link above.
and then we can use it as Element("Cu").oxidation_states_complete

hope it can be added to the new version of SMACT

also I have difficulty to figure out how these 3 intermetallic can be charge neutral?
Cu3Al False
MgCu2 False
MgZn2 False
i used all the possible metal negative states in wiki and cannot make it zero.
https://en.wikipedia.org/wiki/Template:List_of_oxidation_states_of_the_elements

Hello,
We can include a new table of oxidation states from that wikipedia source in a new version of SMACT.

For a detailed discussion of oxidation states, I would refer to this paper Angew. Chem Int. Ed. 2015, 54, 4716-4726

For intermetallic compounds, the ultimate choice of the oxidation state zero at all atoms is best if needed in redox chemistry.

So for the intermetallics where it might not be possible to determine charge neutrality, it'd be best to consider that all the metal elements have oxidation states of zero.

There are three oxidation states sets available in SMACT at the moment: "default", "icsd" and "pauling", and you can use whichever set in the smact_filter. @AntObi - maybe one idea would be to extend this function so the user can supply their own oxidation state set in the format of a .txt file, like the current sets (e.g. the ICSD set here) to give a bit more flexibility?

@usccolumbia, It is worth mentioning that in the ICSD oxidation state set, there are many negative oxidation states for metals. Cu2- is not one of them though and not likely to be the formal oxidation state in the compounds you mention. Following the link to the original reference given on the wikipedia article, I'm not convinced that this would be a stable oxidation state in solid compounds. (If you do a search for all compounds in the ICSD containing Cu2- there are zero results.)

This is one example of why I would be reluctant to ever use the wikipedia set in SMACT. If we really need to add it, it should come with a loud warning!

import smact
Fe = smact.Element('Fe')

print(f'The default oxidation states for Fe are {Fe.oxidation_states}')
print(f' The oxidation states for Fe based on Wikipedia are {Fe.oxidation_states_wiki}')

Output:

The default oxidation states for Fe are [-2, -1, 1, 2, 3, 4, 5, 6]
The oxidation states for Fe based on Wikipedia are [-4, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7]

  • They are also accessible from the smact_filter function which will display a warning if shown.

Closing this issue now that these oxidation states are accessible in SMACT.

@AntObi That is really helpful. Thanks for your nice work.