ComputationalThermodynamics/MAGEMin

Deep upper mantle phases missing from MAGEMin 1.3.2

Closed this issue · 2 comments

Issue

Hi MAGEMin team,

I am calculating stable solutions for a dry upper mantle between 1–28 GPa and 773–2773 K. MAGEMin is apparently missing some important phase transitions in the lower upper mantle (e.g., wadsleyite, ringwoodite, perovskites, majorite ?).

I see that all of the necessary end members are included in the source code from tc-ds634, but I believe the EOS for many lower upper mantle minerals are missing in the current version of the program (MAGEMin 1.3.2 [06/06/2023]). Up to about 10 GPa the mineral assemblages are consistent with Perple_X, but above 10 GPa the calculations are completely different (compare figure and tables). Below is an example for PUM is from Sun & McDonough (1989).

Request

Is it possible to add the EOS for lower upper mantle phases?

I see that there are some python scripts for doing this, but I haven't looked at them carefully yet. I would be happy to work on this and submit a pull request after a little direction.

Thanks for the consideration!

Buchanan

Example for PUM

Mantle composition

SiO2 Al2O3 CaO MgO FeO K2O Na2O TiO2 O2 Cr2O3 H2O
PUM 44.90 4.44 3.54 37.71 8.03 0.029 0.36 0.20 0.01 0.38 0

Stable solutions

Figure 1: PT diagrams for Primitive Upper Mantle (Sun & McDonough, 1989) showing mineral assemblages predicted by (a) MAGEMin and (b) Perple_X. Greyscale represents the integer indexes of predicted mineral assemblages (see table below).

Density

Figure 2: PT diagrams for Primitive Upper Mantle (Sun & McDonough, 1989) showing density (greyscale in g/cm3) predicted by (a) MAGEMin and (b) Perple_X. Normalised differences and maximum difference gradients are shown in (c, d). Notice the inconsistent phase transitions above 10 GPa.

Stable solutions index

The indexes are generally ordered from low–high pressure conditions. This encoding corresponds to Figure 1 above.

Index Perple_X assemblage MAGEMin assemblage
1 cor cpx o opx ru sp cpx ol opx ru spn
2 cpx o opx ru sp cpx ol opx spn
3 cpx o opx sp cpx ol opx pl4T spn
4 cpx feldspar o opx sp cpx liq ol opx spn
5 cpx feldspar melt o opx sp cpx liq ol opx
6 cpx melt o opx sp liq ol opx
7 cpx melt o opx liq ol opx spn
8 melt o opx sp liq ol spn
9 melt o opx sp sp liq ol
10 melt o sp sp liq
11 melt o sp cpx g ol opx ru spn
12 melt sp cpx g ol opx spn
13 cor cpx gt o opx ru sp cpx g ol opx ru
14 cpx gt o opx ru sp cpx g ol opx
15 cpx gt o opx sp cpx g liq ol opx
16 cpx gt o opx ru cpx g ol
17 cpx gt o opx g liq ol opx
18 nan cpx g liq ol
19 cpx gt melt o opx sp cpx g ilm ol opx spn
20 cpx gt melt o opx liq opx
21 cpx gt o cpx g ilm ol opx
22 cpx gt melt o cpx_2 cpx_2 g ilm ol opx
23 gt melt o opx sp g liq opx
24 gt melt o opx cpx_2 cpx_2 g_2 g_2 ilm ol opx
25 melt opx sp cpx_2 cpx_2 g_2 g_2 ol opx
26 gt melt opx sp cpx_2 cpx_2 g ol opx
27 gt melt opx cpx_2 cpx_2 g ol stv
28 cpx gt hen o opx cpx g liq ol stv
29 cpx gt hen o cpx g liq stv
30 cpx cpx gt hen o cpx g ol stv
31 cpx cpx gt hen o wa cpx_2 cpx_2 g ol opx stv
32 cpx gt hen o wa cpx g ol opx stv
33 cpx gt iron o opx cpx g liq opx stv
34 cpx gt iron melt o opx cpx g liq ol opx stv
35 cpx cpx frw gt hen o wa cpx_2 cpx_2 g ol opx spn stv
36 cpx cpx frw gt hen hol o cpx liq ol opx stv
37 cpx gt hen o opx wa cpx liq opx stv
38 cpx gt o opx wa cpx liq ol opx pl4T spn
39 cpx cpx gt hen hol o cpx g liq ol opx_2 opx_2 stv
40 cpx gt hen hol o cpx g liq ol opx spn
41 cpx gt iron o opx wa cpx g ol opx_2 opx_2 stv
42 cpx gt hen iron o wa cpx g ol opx_2 opx_2
43 cpx gt hen iron o opx wa cpx_2 cpx_2 g ol opx_2 opx_2 spn stv
44 cpx frw gt hen hol o cpx_2 cpx_2 g ol opx_2 opx_2 stv
45 cpx gt hen hol iron o
46 cpx frw gt hen hol iron o
47 cpx cpx frw gt hol mwd stv
48 cpx cpx frw gt hen hol mwd
49 cpx frw gt hen hol mwd
50 cpx gt hen hol iron o wa
51 cpx cpx frw gt hol iron mwd stv
52 cpx frw gt hol mwd stv
53 cpx frw gt hen hol iron mwd
54 cpx frw gt hol iron mwd stv
55 cpx gt hen hol iron mwd wu
56 cpx gt hen hol iron mwd o
57 cpx gt hol iron mwd stv wu
58 cpx gt gt hen hol iron mwd wu
59 cpx gt hen hol iron o opx
60 cpx gt hol iron o opx
61 cpx cpx gt hol iron mwd stv wu
62 cpx gt iron o opx wu
63 cpx frw gt hol iron mwd nagt stv
64 cpx gt hen hol iron mwd opx wu
65 cpx gt hol iron mwd opx wu
66 cpx gt hol iron mwd o opx
67 cpx gt iron mwd o opx wa
68 cpx frw gt hol iron mrw nagt stv
69 cpx gt hol iron mwd nagt stv wu
70 cpx cpx gt hol iron mwd nagt stv wu
71 cpx gt iron mwd opx wa wu
72 cpx gt iron o opx wa wu
73 cpx gt hol iron mrw nagt stv wu
74 cpx gt hol mrw nagt stv wu
75 cpx gt iron mwd o opx wa wu
76 gt hol iron mwd nagt stv wu
77 gt hol iron mrw nagt stv wu
78 cpx gt hol iron mwd opx stv wu
79 gt hol mrw nagt stv wu
80 gt gt hol iron mrw nagt stv wu
81 cpx gt hol mrw nagt opx stv wu
82 cpv gt hol iron mrw nagt stv wu
83 cpv gt hol iron mwd nagt stv wu
84 cpv cpx gt iron mwd opx wa wu
85 cpv gt iron mwd opx wa wu
86 cpx gt gt hol mrw nagt opx stv wu
87 cpx gt hol iron maj mwd wu
88 cpx gt hol iron maj mwd opx wu
89 cpv cpx gt hol iron mwd opx wu
90 cpv gt hol iron mwd opx wu
91 cpv cpx gt hol iron maj mwd nagt wu
92 cpv cpx gt hol iron maj mwd wu
93 cpv gt hol iron maj mwd opx wu
94 gt hol mrw nagt opx stv wu
95 cpv gt hol iron maj mwd nagt wu
96 cpv gt hol mrw nagt stv wu
97 cpv gt hol mwd nagt stv wu
98 cpv gt hol maj mwd nagt wu
99 cpv gt hol mak mwd nagt wu
100 cpv cpx gt hol mrw nagt opx stv wu
101 cpv gt hol mrw nagt opx stv wu
102 cpv gt gt hol iron mrw nagt stv wu
103 cpv gt hol mak mrw nagt wu
104 cpv cpx esk gt hol mrw nagt opx stv wu
105 cpv cpx cpx esk hol mrw nagt opx stv wu
106 cpv cpx esk hol mrw nagt opx stv wu
107 cpv gt gt hol maj mwd nagt wu
108 cpv gt hol iron mak mrw nagt wu
109 cpv cpx esk hem hol mrw nagt opx stv wu
110 cpv cpx esk hem hol nagt opx per stv wu
111 cpv gt hol maj mrw nagt wu
112 cpv gt gt hol mak mrw nagt wu
113 cpv gt hol mpv mrw nagt wu
114 cpv gt gt hol mpv mrw nagt wu
115 cpv gt hol mpv mwd nagt wu
116 cpv gt hol mpv nagt per wu
117 cpv gt hol mak mrw nagt opx wu
118 cpv gt gt hol mak mrw nagt opx wu
119 cpv gt hol mpv mrw nagt opx wu
120 cpv cpx esk hem hol nacfb opx per stv wu
121 cpv gt hol mpv nagt opx per wu
122 cpv gt gt hol mpv mrw nagt opx wu
123 cpv gt gt hol mpv nagt per wu
124 cpv cpx gt hol nagt opx per stv wu
125 cpv cpx esk gt hol nagt opx per stv wu
126 cpv cpx gt hol mscf nagt opx stv wu
127 cpv cpx gt hol mpv nagt opx per wu
128 cpv cpx esk hol nagt opx per stv wu
129 cpv cpx esk hol mscf nagt opx stv wu
130 cpv cpx esk hol mpv nagt opx per wu
131 cpv cpx esk gt hol mpv nagt opx per wu
132 cpv cpx esk hol mpv mscf nagt opx wu
133 cpv gt hol mpv nacfb opx per wu
134 cpv cpx cpx esk hol nagt opx per stv wu
135 cpv cpx esk hol nacfb opx per stv wu
136 cpv cpx gt hol mpv nacfb opx per wu
137 cpv cpx esk hol mpv nacfb opx per wu
138 cpv cpx esk hol mscf nacfb opx stv wu
139 cpv cpx geik gt hol mpv nacfb opx per wu
140 cpv geik gt hol mpv nacfb opx per wu
141 cpv cpx esk hem hol mscf nacfb opx stv wu
142 cpv cpx esk hol mpv mscf nacfb opx wu
143 cpv cpx esk geik hol mpv nacfb opx per wu
144 cpv cpx esk hem hol mpv mscf nacfb opx wu
145 cpv cpx esk hem hol mpv nacfb opx per wu
146 cpv esk geik gt hol mpv nacfb opx per wu
147 cpv esk geik hem hol nacfb opx per stv wu
148 cpv esk geik hem hol mpv nacfb opx per wu
149 cpv esk geik hem hol mpv mscf nacfb opx wu
150 cpv esk geik hem hol mscf nacfb opx stv wu

Perplex build

I use hp634ver.dat with the following input.txt to build the Perple_X model with ./build < input.txt. The perplex_option.dat is only modified to set x_nodes and y_nodes to 32 128:

PUM
hp634ver.dat
perplex_option.dat
N
2
N
N
N
SiO2
Al2O3
CaO
MgO
FeO
K2O
Na2O
TiO2
O2
Cr2O3
H2O

5
N
2
773 2273
10000 280000
Y
44.90 4.44 3.54 37.71 8.03 0.029 0.36 0.20 0.01 0.38 0 82.4
N
Y
N
enL
fo8L
foTHL
faTL
fa8L
fbi
perL
anL
ctjL
qjL
hmL
hmWL
hmTHL
tiL
tiWL
tiTHL
hemL
ruL

Y
solution_model.dat
feldspar
Cpx(HGP)
melt(HGPH)
O(HGP)
Sp(HGP)
Gt(HGP)
Opx(HGP)

PUM

Hi Buchanan,

The igneous database (Holland et al., 2018) has been calibrated roughly from 700 to 2000°C and 0 to 5-6 GPa and do not take into account phase change deeper than this.

One of the main difference between Perple_X and MAGEMin is that we only provide the database as published (including corrective updates) and do not offer the possibility to add phases that were not included for the inversion, at least natively.

However, we are working on adding the Stixrude database that would work for these deeper conditions. It will take some time before the database is made public, though.

That being said, if you want to consider the deep mantle pure phases present in the ts34 database and hope for the best, this can be done on your branch/local version of the code. Note that the igneous database has not been inverted with these phases and the results may likely be wrong.

To add the pure phases for deeper conditions, you will have to change line 309 of the initialize.h file, add the pure phases you want to the list, then modify the counter of pure phases line 306 and 280. Then recompile. Again we cannot guarantee that the results will make sense.

Hope this helps,

Hi Nicolas,

Thanks for the clarification and suggestions.

For now I am mostly interested in achieving consistency between MGM and PPX, with less focus on accuracy of the predicted mineral assemblages, so I will try your suggestion and see how far it goes.

I will look forward to the Stixrude database and more future releases!

Best,

Buchanan