Mineral Database

pyrolite includes a limited mineral database which is useful for looking up endmember compositions.

import pandas as pd

from pyrolite.mineral.mindb import (
    get_mineral,
    get_mineral_group,
    list_formulae,
    list_groups,
    list_minerals,
)

pd.set_option("display.precision", 3)  # smaller outputs

From the database, you can get the list of its contents using a few utility functions:

['olivine', 'amphibole', 'epidote', 'pyroxene', 'garnet', 'mica', 'feldspar', 'spinel']
['majorite', 'taramite', 'hastingsite', 'winchite', 'ferrotschermakite', 'magnesioarfvedsonite', 'spinel', 'kosmochlor', 'polylithionite', 'eckermanite', 'anthopyllite', 'spessartine', 'liebenbergite', 'eastonite', 'diopside', 'katophorite', 'clinozoisite', 'spodumene', 'ferrorichterite', 'ferrokaersutite', 'tremolite', 'andradite', 'magnesioreibeckite', 'celadonite', 'aegirine', 'uvarovite', 'ferrosilite', 'jadeite', 'clintonite', 'tschermakite', 'glaucophane', 'trilithionite', 'forsterite', 'ferrokatophorite', 'ferroeckermanite', 'piemontite', 'esseneite', 'microcline', 'magnesiohornblende', 'chromoceladonite', 'manganiceladonite', 'almandine', 'magnesioferrite', 'namansilite', 'magnesiohastingsite', 'allanite', 'chromphyllite', 'ferropargasite', 'ferroaluminoceladonite', 'richterite', 'kaersutite', 'riebeckite', 'paragonite', 'ferroceladonite', 'fayalite', 'hedenbergite', 'chromite', 'magnetite', 'muscovite', 'margarite', 'pyrope', 'enstatite', 'morimotoite', 'siderophyllite', 'annite', 'tephroite', 'epidote', 'phlogopite', 'magnesiochromite', 'ferrohornblende', 'barroisite', 'albite', 'pargasite', 'arvedsonite', 'gedrite', 'edenite', 'anorthite', 'hercynite', 'ferroedenite', 'phengite', 'aluminoceladonite', 'johannsenite', 'grossular']
['Na(Na2)(Fe{2+}4Fe{3+})(Si8)O22(OH)2', 'K2(Fe{3+}2Fe{2+}2)(Si8)O20(OH)4', '(Na2)(Mg3Al2)(Si8)O22(OH)2', 'Mg3(MgSi)(SiO4)3', 'Fe2SiO4', 'MgCr{3+}2O4', 'K2(Al3Mg)(Si7Al)O20(OH)4', 'Ca3Cr2(SiO4)3', 'Na(Na2)(Fe4Al)(Si8)O22(OH)2', 'Ca2(Mg4Al2)(Si2Al6)O20(OH)4', 'Na(Ca2)(Fe4Ti)(Si6Al2)O22(OH)2', 'KAlSi3O8', 'Ca3(TiFe{2+})(SiO4)3', 'K2(Mg4)(Si4Al6)O20(OH)4', 'K2(Fe{2+}2Al2)(Si8)O20(OH)4', '(Ca2)(Fe4Al)(Si7Al)O22(OH)2', 'LiAlSi2O6', '(Ca2)(Mg5)(Si8)O22(OH)2', 'Na(NaCa)(Mg5)(Si8)O22(OH)2', 'NaFe{3+}Si2O6', 'K2(Mg2Al2)(Si8)O20(OH)4', 'NaCrSi2O6', 'K2(Fe{2+}4)(Si4Al6)O20(OH)4', 'K2(Cr{3+}4)(Si6Al2)O20(OH)4', 'Na(NaCa)(Mg4Al)(Si7Al)O22(OH)2', 'Na(Ca2)(Mg4Al)(Si6Al2)O22(OH)2', 'Mn2SiO4', 'NaAlSi2O6', 'NaAlSi3O8', 'CaMgSi2O6', '(NaCa)(Mg3Al2)(Si7Al)O22(OH)2', 'Ca2Al3(Si2O7)(SiO4)O(OH)', 'K2(Al3Li3)(Si6Al2)O20(OH)4', 'CaAlFe{3+}SiO6', 'K2(Fe{3+}2Mg2)(Si8)O20(OH)4', 'K2(Al2Li2)(Si8)O20(OH)4', 'Fe{2+}Cr{3+}2O4', 'K2(Fe{2+}6)(Si6Al2)O20(OH)4', 'CaFeSi2O6', 'MgFe{3+}2O4', 'Mg2SiO4', '(Mg2)(Mg3Al2)(Si6Al2)O22(OH)2', 'NaMn{3+}Si2O6', 'CaMnSi2O6', 'Na(Ca2)(Mg4Ti)(Si6Al2)O22(OH)2', 'Ca3Al2(SiO4)3', 'Ni1.5Mg0.5SiO4', 'Na(Na2)(Mg4Al)(Si8)O22(OH)2', 'Na(Ca2)(Fe4Al)(Si6Al2)O22(OH)2', 'Ca3Fe{3+}2(SiO4)3', 'K2(Al4)(Si6Al2)O20(OH)4', 'Na2(Al4)(Si6Al2)O20(OH)4', 'K2(Mn{3+}2Mg2)(Si8)O20(OH)4', 'Ca2Al2Mn{3+}(Si2O7)(SiO4)O(OH)', '(Na2)(Fe3Fe{3+}2)(Si8)O22(OH)2', 'Ca2(Al4)(Si4Al4)O20(OH)4', 'Na(Ca2)(Mg4Fe{3+})(Si6Al2)O22(OH)2', 'Fe{2+}Al2O4', 'Na(NaCa)(Fe4Al)(Si7Al)O22(OH)2', 'Fe{2+}Fe{3+}2O4', 'Na(NaCa)(Mg3Al2)(Si6Al2)O22(OH)2', 'MgAl2O4', 'Ca2Al2Fe{3+}(Si2O7)(SiO4)O(OH)', '(Mg2)(Mg5)(Si8)O22(OH)2', 'Na(Ca2)(Fe{2+}4Fe{3+})(Si6Al2)O22(OH)2', 'Na(Ca2)(Fe5)(Si7Al)O22(OH)2', 'Fe2Si2O6', 'K2(Mg6)(Si6Al2)O20(OH)4', 'Fe{2+}3Al2(SiO4)3', 'Mg3Al2(SiO4)3', 'CaAl2Si2O8', 'Na(NaCa)(Fe5)(Si8)O22(OH)2', '(Ca2)(Fe3Al2)(Si6Al2)O22(OH)2', 'Mn3Al2(SiO4)3', '(Na2)(Mg3Fe{3+}2)(Si8)O22(OH)2', 'Mg2Si2O6', '(Ca2)(Mg4Al)(Si7Al)O22(OH)2', 'Na(Ca2)(Mg5)(Si7Al)O22(OH)2', 'K2(Mg2Cr{3+}2)(Si8)O20(OH)4', '(Ca2)(Mg3Al2)(Si6Al2)O22(OH)2', '(NaCa)(Mg4Al)(Si8)O22(OH)2', 'CaCe{3+}Al2Fe{2+}(Si2O7)(SiO4)O(OH)', 'Na(Na2)(Mg4Fe{3+})(Si8)O22(OH)2']

You can also directly get the composition of specific minerals by name:

get_mineral("forsterite")
name       forsterite
group         olivine
formula       Mg2SiO4
Mg              0.346
Si                0.2
O               0.455
Fe                0.0
Mn                0.0
Ni                0.0
Ca                0.0
Al                0.0
Fe{3+}            0.0
Na                0.0
Mn{3+}            0.0
Cr                0.0
Li                0.0
Cr{3+}            0.0
Fe{2+}            0.0
K                 0.0
H                 0.0
Ti                0.0
Ce{3+}            0.0
dtype: object

If you want to get compositions for all minerals within a specific group, you can use get_mineral_group():

get_mineral_group("olivine")
name formula Mg Si O Fe Mn Ni
0 forsterite Mg2SiO4 0.346 0.200 0.455 0.000 0.000 0.000
1 fayalite Fe2SiO4 0.000 0.138 0.314 0.548 0.000 0.000
2 tephroite Mn2SiO4 0.000 0.139 0.317 0.000 0.544 0.000
3 liebenbergite Ni1.5Mg0.5SiO4 0.063 0.146 0.333 0.000 0.000 0.458


Total running time of the script: (0 minutes 0.018 seconds)