You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@computron
Thank you for your great efforts to pymatgen.
We are now trying to estimate oxidation numbers for Ti4O7. Then, pymatgen gives us the following solution:
from pymatgen import Composition
comp = Composition("Ti4O7")
print(comp.oxi_state_guesses())
print(comp.add_charges_from_oxi_state_guesses().as_dict())
We are wondering how to resolve this inconsistency.
In my understanding, the estimation of oxidation numbers by pymatgen is based on "occurrence" written in the "pymatgen/analysis/icsd_bv.yaml",
c.f.,
occurrence:
Ti2+: 39
Ti3+: 119
Ti4+: 665
In the case of "Ti2+" + 3 * "Ti4+" the summation of the occurrence is 39 + 3 * 665 = 2034, while the case of 2 * "Ti3+" + 2 *"Ti4+" is 2 * 119 + 2 * 665 = 1568. Therefore, {'Ti2+': 1.0, 'Ti4+': 3.0, 'O2-': 7.0} is returned by pymatgen.
Anyway, which set of oxidation numbers should be used? Besides, how the "occurrence" in icsd_bv.yaml was calculated?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
@computron
Thank you for your great efforts to pymatgen.
We are now trying to estimate oxidation numbers for Ti4O7. Then, pymatgen gives us the following solution:
({'Ti': 3.5, 'O': -2.0},)
defaultdict(<class 'float'>, {'Ti2+': 1.0, 'Ti4+': 3.0, 'O2-': 7.0})
On the other hand, see mp-12205 of the MATERIALS PROJECT:
https://next-gen.materialsproject.org/materials/mp-12205?formula=Ti4O7
It is stated to be composed of Ti3+ and Ti4+.
We are wondering how to resolve this inconsistency.
In my understanding, the estimation of oxidation numbers by pymatgen is based on "occurrence" written in the "pymatgen/analysis/icsd_bv.yaml",
c.f.,
In the case of "Ti2+" + 3 * "Ti4+" the summation of the occurrence is 39 + 3 * 665 = 2034, while the case of 2 * "Ti3+" + 2 *"Ti4+" is 2 * 119 + 2 * 665 = 1568. Therefore, {'Ti2+': 1.0, 'Ti4+': 3.0, 'O2-': 7.0} is returned by pymatgen.
Anyway, which set of oxidation numbers should be used? Besides, how the "occurrence" in icsd_bv.yaml was calculated?
Any comments are welcome. Best regards.
Beta Was this translation helpful? Give feedback.
All reactions