One analysis per row, first row = column names. Values in wt %, dot as decimal separator (49.16).
Oxide columns (any order, only the ones you have): SiO2, TiO2, Al2O3, Cr2O3, Fe2O3, FeO, MnO, NiO,
MgO, CaO, Na2O, K2O, P2O5, H2O, CO2. Names are not case-sensitive.
Iron: either FeO and Fe2O3, or total iron as FeOT (also FeO*, Fe2O3T) — not both in one row.
Total iron is split with the Fe3+/ΣFe ratio set above.
Descriptive columns are allowed and ignored in the calculation: label, sample, name, id, rock, locality,
source, reference, notes, total, … The label (or sample / name / id) column names the points.
Blank cell = not analysed. Negative or non-numeric values are rejected, with the line number.
Unused components (SrO, BaO, SO3, F, Cl, ZrO2 …) are accepted and excluded.
Any other unknown column (e.g. a typo such as Si02) stops the import unless “lenient import” is ticked.
Comma, semicolon or tab separated; text containing commas must be in "double quotes". Save from Excel as CSV UTF-8.
or paste / upload CSV with a header row
(label, SiO2, TiO2, …). Quoted fields, semicolon- or tab-separated files are fine.
Descriptive columns (rock, locality, total, …) are skipped; any other unknown column
stops the import so that a typo such as Si02 cannot silently drop an oxide.
My collection
Saved compositions stay in this browser only.
sampledatasetreference phases
Recomputed in your browser. Part A checks projected positions against
independent hand calculations from mineral stoichiometry; part B checks this engine's
CIPW norm and normative groups against the norms printed by Yoder & Tilley (1962,
Table 2). The same checks run in Python (python run_tests.py).