pyrolite 0.0.14__zip
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/__init__.py +10 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/__pycache__/__init__.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/__pycache__/_version.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/__pycache__/alteration.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/__pycache__/classification.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/__pycache__/compositions.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/__pycache__/geochem.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/__pycache__/melts.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/__pycache__/norm.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/__pycache__/normalisation.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/__pycache__/plot.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/_version.py +21 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/alteration.py +66 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/classification.py +222 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/comp/__init__.py +9 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/comp/__pycache__/__init__.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/comp/__pycache__/aggregate.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/comp/__pycache__/codata.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/comp/__pycache__/impute.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/comp/__pycache__/renorm.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/comp/aggregate.py +391 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/comp/codata.py +266 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/comp/impute.py +82 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/comp/renorm.py +40 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/compositions.py +524 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/georoc/GEOROC_CFB_Dataset_List.csv +42 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/georoc/GEOROC_Convergent_Dataset_List.csv +42 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/georoc/GEOROC_OBFB_Dataset_List.csv +5 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/georoc/GEOROC_OIB_Dataset_List.csv +49 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/georoc/GEOROC_OceanicPlateau_Dataset_List.csv +18 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/georoc/contents.json +1 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/melts/__pycache__/env.cpython-35.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/melts/__pycache__/env.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/melts/env.py +1063 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.Ba.modelfield +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.Bs.modelfield +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.F.modelfield +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.O1.modelfield +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.O2.modelfield +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.O3.modelfield +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.Pc.modelfield +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.Ph.modelfield +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.R.modelfield +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.S1.modelfield +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.S2.modelfield +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.S3.modelfield +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.T1.modelfield +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.T2.modelfield +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.U1.modelfield +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.U2.modelfield +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.U3.modelfield +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.modelfields +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.nan.modelfield +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS/TAS.none.modelfield +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/TAS.clsf.gz +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/aphanitic.clsf.gz +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/gabbroic.clsf.gz +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/peralkalinity.clsf.gz +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/phaneritic.clsf.gz +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/models/ultramafic.clsf.gz +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/refcomp/CH_PalmeONeill2014.csv +95 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/refcomp/DDMM_WorkmanHart2005.csv +105 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/refcomp/DMM_WorkmanHart2005.csv +105 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/refcomp/DM_SaltersStrake2004.csv +95 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/refcomp/EDMM_WorkmanHart2005.csv +105 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/refcomp/PM_PalmeONeill2014.csv +95 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/data/timescale/geotimescale_spans.csv +180 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/geochem.py +821 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/melts.py +92 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/mineral/__init__.py +10 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/mineral/__pycache__/__init__.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/mineral/__pycache__/db.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/mineral/__pycache__/ions.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/mineral/__pycache__/mineral.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/mineral/__pycache__/sites.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/mineral/db.py +88 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/mineral/ions.py +78 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/mineral/mineral.py +587 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/mineral/sites.py +134 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/norm.py +224 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/normalisation.py +204 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/plot.py +514 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/__init__.py +13 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/__pycache__/__init__.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/__pycache__/database.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/__pycache__/env.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/__pycache__/general.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/__pycache__/georoc.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/__pycache__/math.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/__pycache__/melts.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/__pycache__/multip.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/__pycache__/multiprocessing.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/__pycache__/pd.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/__pycache__/plot.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/__pycache__/skl.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/__pycache__/spatial.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/__pycache__/text.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/__pycache__/time.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/__pycache__/wfs.cpython-36.pyc +0 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/database.py +88 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/env.py +81 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/general.py +266 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/georoc.py +444 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/math.py +371 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/melts.py +397 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/multip.py +29 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/multiprocessing.py +29 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/pd.py +214 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/plot.py +345 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/skl.py +847 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/spatial.py +91 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/text.py +207 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/time.py +224 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite/util/wfs.py +10 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite-0.0.14-py3.6.egg-info/PKG-INFO +61 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite-0.0.14-py3.6.egg-info/SOURCES.txt +83 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite-0.0.14-py3.6.egg-info/dependency_links.txt +1 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite-0.0.14-py3.6.egg-info/requires.txt +47 -0
- ProgramData/Anaconda3_64/Lib/site-packages/pyrolite-0.0.14-py3.6.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,1063 @@
|
|
|
1
|
+
from pyrolite.util.text import normalise_whitespace, to_width
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
def mvar(**kwargs):
|
|
6
|
+
"""A data dictonary specifying MELTS environment variables."""
|
|
7
|
+
d = dict(
|
|
8
|
+
validate=None,
|
|
9
|
+
desc=None,
|
|
10
|
+
type=None,
|
|
11
|
+
units=None,
|
|
12
|
+
set=True,
|
|
13
|
+
default=None,
|
|
14
|
+
overridden_by=None,
|
|
15
|
+
dependent_on=None,
|
|
16
|
+
priorty=0,
|
|
17
|
+
)
|
|
18
|
+
d.update(kwargs)
|
|
19
|
+
return d
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def description(text, width=69):
|
|
23
|
+
return to_width(normalise_whitespace(text), width=width)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def filepath_validator(path):
|
|
27
|
+
"""Validator for file paths."""
|
|
28
|
+
if isinstance(path, str):
|
|
29
|
+
path = Path(path)
|
|
30
|
+
return path.exists() and path.isfile()
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def dirpath_validator(path):
|
|
34
|
+
"""Validator for directory paths."""
|
|
35
|
+
if isinstance(path, str):
|
|
36
|
+
path = Path(path)
|
|
37
|
+
return path.exists() and path.isdir()
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def numeric_validator(value):
|
|
41
|
+
"""Validator for numeric values."""
|
|
42
|
+
return isinstance(float(value), float) or isinstance(int(value), int)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def typecast(type, item):
|
|
46
|
+
"""Typecasts argument input for lambda functions."""
|
|
47
|
+
|
|
48
|
+
if isinstance(item, list):
|
|
49
|
+
# Return each of the function items as Typecast
|
|
50
|
+
# equivalents
|
|
51
|
+
return [lambda x: f(type(x)) if callable(f) else f for f in item]
|
|
52
|
+
else:
|
|
53
|
+
return lambda x: item(type(x))
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
## The following is directly form the alphaMELTS Documentation v1.8
|
|
57
|
+
## Written by Paula Antoshechkina and Paul Asimow October 13, 2017
|
|
58
|
+
MELTS_environment_variables = { # Solution Models
|
|
59
|
+
"VERSION": mvar(
|
|
60
|
+
default="pMELTS",
|
|
61
|
+
validate=lambda x: x in ["MELTS", "pMELTS"],
|
|
62
|
+
desc=description(
|
|
63
|
+
"""Set to choose the liquid thermodynamic model.
|
|
64
|
+
pMELTS is only recommended for peridotite bulk
|
|
65
|
+
compositions between 1 and 4 GPa. If doing pHMELTS
|
|
66
|
+
calculations then use ‘pMELTS’ for melting and
|
|
67
|
+
‘MELTS’ for low-pressure crystallization."""
|
|
68
|
+
),
|
|
69
|
+
),
|
|
70
|
+
"OLD_GARNET": mvar(
|
|
71
|
+
set=False,
|
|
72
|
+
type=bool,
|
|
73
|
+
desc=description(
|
|
74
|
+
"""Uses the old, incorrect, garnet model. When set,
|
|
75
|
+
the behavior will resemble that of all GUI
|
|
76
|
+
versions of MELTS released before 2005 (including
|
|
77
|
+
Java MELTS) and the default behavior of
|
|
78
|
+
Adiabat_1ph versions 1.4 – 2.X. When unset,
|
|
79
|
+
will behave as if ADIABAT_FIX_GARNET was set in
|
|
80
|
+
older (pre-3.0) versions of Adiabat_1ph."""
|
|
81
|
+
),
|
|
82
|
+
),
|
|
83
|
+
"OLD_SPINEL": mvar(
|
|
84
|
+
set=False,
|
|
85
|
+
type=bool,
|
|
86
|
+
desc=description(
|
|
87
|
+
"""Use the spinel model from Sack and
|
|
88
|
+
Ghiorso [1991], with perfectly ideal
|
|
89
|
+
mixing of volumes. When set, gives the
|
|
90
|
+
same behavior as Java MELTS and
|
|
91
|
+
earlier (pre-3.0) versions of
|
|
92
|
+
Adiabat_1ph. When unset, uses the
|
|
93
|
+
spinel volume model as formulated in
|
|
94
|
+
Ghiorso and Sack [1991]."""
|
|
95
|
+
),
|
|
96
|
+
),
|
|
97
|
+
"OLD_BIOTITE": mvar(
|
|
98
|
+
set=False,
|
|
99
|
+
type=bool,
|
|
100
|
+
desc=description(
|
|
101
|
+
"""Uses the biotite model from Sack and Ghiorso
|
|
102
|
+
[1989] instead of the default alphaMELTS one.
|
|
103
|
+
When set, the program uses the same code as
|
|
104
|
+
GUI versions of MELTS (2005-present). The
|
|
105
|
+
behavior may differ slightly from earlier GUI
|
|
106
|
+
versions of MELTS as a small error was fixed."""
|
|
107
|
+
),
|
|
108
|
+
),
|
|
109
|
+
"2_AMPH": mvar(
|
|
110
|
+
set=False,
|
|
111
|
+
type=bool,
|
|
112
|
+
desc=description(
|
|
113
|
+
"""Uses separate orthoamphibole and clinoamphibole
|
|
114
|
+
phases. When set, gives the same behavior as Java
|
|
115
|
+
MELTS and Corba MELTS applets, and earlier versions
|
|
116
|
+
of Adiabat_1ph (which inherited its code from the
|
|
117
|
+
Java MELTS branch). When unset, will use a single
|
|
118
|
+
cummingtonite-grunerite-tremolite solution and deduce
|
|
119
|
+
the amphibole structure from the energetics."""
|
|
120
|
+
),
|
|
121
|
+
),
|
|
122
|
+
"NO_CHLORITE": mvar(
|
|
123
|
+
set=False,
|
|
124
|
+
type=bool,
|
|
125
|
+
desc=description(
|
|
126
|
+
"""As of version 1.6, the chlorite model of
|
|
127
|
+
Hunziker [2003] is included in alphaMELTS
|
|
128
|
+
(see Smith et al. [2007]). To reproduce previous
|
|
129
|
+
results for bulk compositions that may stabilize
|
|
130
|
+
chlorite, add a ‘Suppress: chlorite’ line to the
|
|
131
|
+
melts_file or set this variable."""
|
|
132
|
+
),
|
|
133
|
+
),
|
|
134
|
+
# P-T Path and fO2 control
|
|
135
|
+
"MODE": mvar(
|
|
136
|
+
validate=lambda x: x
|
|
137
|
+
in [
|
|
138
|
+
"geothermal",
|
|
139
|
+
"isenthalpic",
|
|
140
|
+
"isentropic",
|
|
141
|
+
"isobaric",
|
|
142
|
+
"isochoric",
|
|
143
|
+
"isothermal",
|
|
144
|
+
"ptfile",
|
|
145
|
+
"ptgrid",
|
|
146
|
+
"tpgrid",
|
|
147
|
+
],
|
|
148
|
+
default="isentropic",
|
|
149
|
+
desc=description(
|
|
150
|
+
"""Sets the calculation mode. This variable is case
|
|
151
|
+
insensitive. ‘PTfile’ (‘PTPath’ is also accepted
|
|
152
|
+
for backwards compatibility) reads in P and T from
|
|
153
|
+
a file; see below. ‘PTgrid’ and ‘TPgrid’ perform
|
|
154
|
+
calculations on a grid bounded by the starting T
|
|
155
|
+
and ALPHAMELTS_MINT/MAXT, and by the starting P and
|
|
156
|
+
ALPHAMELTS_MINP/MAXP. For ‘PTgrid’ the T-loop is
|
|
157
|
+
inside the P-loop, whereas ‘TPgrid’ is the other
|
|
158
|
+
way round; in either case the (superliquidus or
|
|
159
|
+
subsolidus) starting solution migrates with the
|
|
160
|
+
outer loop. Generally, unless liquid is suppressed,
|
|
161
|
+
‘PTgrid’ with ALPHAMELTS_DELTAT < 0 will be the
|
|
162
|
+
easiest combination. For other modes, there are
|
|
163
|
+
various ways to initialize P, T and / or reference
|
|
164
|
+
entropy, enthalpy or volume, and the thermodynamic
|
|
165
|
+
path is set using ALPHAMELTS_DELTAP and / or
|
|
166
|
+
ALPHAMELTS_DELTAT."""
|
|
167
|
+
),
|
|
168
|
+
),
|
|
169
|
+
"PTPATH_FILE": mvar(
|
|
170
|
+
set=False,
|
|
171
|
+
validate=filepath_validator,
|
|
172
|
+
desc=description(
|
|
173
|
+
"""Gives the name of the ptpath_file, which is a simple
|
|
174
|
+
space delimited text file with one ‘P_value T_value’
|
|
175
|
+
pair per line. If ALPHAMELTS_DELTAP and
|
|
176
|
+
ALPHAMELTS_DELTAT are both zero the user will be asked
|
|
177
|
+
for a maximum number of iterations to perform."""
|
|
178
|
+
),
|
|
179
|
+
),
|
|
180
|
+
"DELTAP": mvar(
|
|
181
|
+
validate=numeric_validator,
|
|
182
|
+
type=float,
|
|
183
|
+
default=1000.0,
|
|
184
|
+
units="bars",
|
|
185
|
+
desc=description(
|
|
186
|
+
"""This sets the pressure increment for isentropic,
|
|
187
|
+
isothermal, geothermal or phase diagram mode.
|
|
188
|
+
This is a signed number; i.e., a positive value steps
|
|
189
|
+
upwards in P, negative steps down. If using a ptpath_file,
|
|
190
|
+
a non-zero ALPHAMELTS_DELTAP means the whole will be read
|
|
191
|
+
in and executed. Setting ALPHAMELTS_DELTAP to zero, with a
|
|
192
|
+
non-zero value for ALPHAMELTS_DELTAT, means that phase
|
|
193
|
+
diagram mode will step in temperature instead of pressure
|
|
194
|
+
(except for liquid)."""
|
|
195
|
+
),
|
|
196
|
+
),
|
|
197
|
+
"DELTAT": mvar(
|
|
198
|
+
validate=numeric_validator,
|
|
199
|
+
default=10.0,
|
|
200
|
+
type=float,
|
|
201
|
+
units="Degrees Celsius",
|
|
202
|
+
desc=description(
|
|
203
|
+
"""This sets the temperature increment for isobaric,
|
|
204
|
+
isochoric, geothermal or phase diagram mode. This is a
|
|
205
|
+
signed number; i.e., a positive value steps upwards in T,
|
|
206
|
+
negative steps down. If using a ptpath_file, a non-zero
|
|
207
|
+
ALPHAMELTS_DELTAT means the whole will be read in and
|
|
208
|
+
executed. For phase diagram mode to step in temperature
|
|
209
|
+
ALPHAMELTS_DELTAP must be set to zero."""
|
|
210
|
+
),
|
|
211
|
+
),
|
|
212
|
+
"MAXP": mvar(
|
|
213
|
+
validate=numeric_validator,
|
|
214
|
+
type=float,
|
|
215
|
+
default=lambda env: [30000, 40000][env["VERSION"] != "MELTS"],
|
|
216
|
+
dependent_on=["VERSION"],
|
|
217
|
+
units="bars",
|
|
218
|
+
desc=description(
|
|
219
|
+
"""Sets the maximum pressure the program will go to on
|
|
220
|
+
execution."""
|
|
221
|
+
),
|
|
222
|
+
),
|
|
223
|
+
"MINP": mvar(
|
|
224
|
+
validate=numeric_validator,
|
|
225
|
+
type=float,
|
|
226
|
+
default=lambda env: [1, 10000][env["VERSION"] != "MELTS"],
|
|
227
|
+
dependent_on=["VERSION"],
|
|
228
|
+
units="bars",
|
|
229
|
+
desc=description(
|
|
230
|
+
"""Sets the minimum pressure the program will go to on
|
|
231
|
+
execution."""
|
|
232
|
+
),
|
|
233
|
+
),
|
|
234
|
+
"MAXT": mvar(
|
|
235
|
+
validate=numeric_validator,
|
|
236
|
+
type=float,
|
|
237
|
+
default=2000,
|
|
238
|
+
units="Degrees Celsius",
|
|
239
|
+
desc=description(
|
|
240
|
+
"""Sets the maximum temperature the program will go to on
|
|
241
|
+
execution."""
|
|
242
|
+
),
|
|
243
|
+
),
|
|
244
|
+
"MINT": mvar(
|
|
245
|
+
validate=numeric_validator,
|
|
246
|
+
type=float,
|
|
247
|
+
default=0,
|
|
248
|
+
units="Degrees Celsius",
|
|
249
|
+
desc=description(
|
|
250
|
+
"""Sets the minimum temperature the program will go to on
|
|
251
|
+
execution."""
|
|
252
|
+
),
|
|
253
|
+
),
|
|
254
|
+
"ALTERNATIVE_FO2": mvar(
|
|
255
|
+
set=False,
|
|
256
|
+
type=bool,
|
|
257
|
+
desc=description(
|
|
258
|
+
"""Normally, the parameterization of Kress and
|
|
259
|
+
Carmichael [1991] is used to calculate fO2 in the
|
|
260
|
+
liquid. If conditions are subsolidus or liquid is
|
|
261
|
+
suppressed then the approach detailed in Asimow and
|
|
262
|
+
Ghiorso [1998] is used to construct an appropriate
|
|
263
|
+
redox reaction to solve for fO2 of the bulk
|
|
264
|
+
assemblage. If this environment variable is set,
|
|
265
|
+
however, then the method of Asimow and Ghiorso
|
|
266
|
+
[1998] is used to calculate fO2 regardless of
|
|
267
|
+
whether liquid is present and so, in theory, allows
|
|
268
|
+
for a smoother transition across the solidus. """
|
|
269
|
+
),
|
|
270
|
+
),
|
|
271
|
+
"LIQUID_FO2": mvar(
|
|
272
|
+
set=False,
|
|
273
|
+
type=bool,
|
|
274
|
+
overridden_by=["LIQUID_FO2"],
|
|
275
|
+
desc=description(
|
|
276
|
+
"""The method of Asimow and Ghiorso
|
|
277
|
+
[1998] is computationally more involved than the
|
|
278
|
+
parameterization of Kress and Carmichael [1991] and it
|
|
279
|
+
is not uncommon for fO2 calculations to be successful
|
|
280
|
+
with liquid present but fail subsolidus. It is possible
|
|
281
|
+
to turn off the fO2 buffer manually (option 5).
|
|
282
|
+
Alternatively, if this environment variable is set then
|
|
283
|
+
the fO2 buffer, as formulated in Kress and Carmichael
|
|
284
|
+
[1991], will only be imposed when liquid is present.
|
|
285
|
+
Note that setting this variable does not change the
|
|
286
|
+
fO2 buffer setting (e.g. ‘FMQ’); the program just ignores
|
|
287
|
+
the flag if no liquid is around."""
|
|
288
|
+
),
|
|
289
|
+
),
|
|
290
|
+
"IMPOSE_FO2": mvar(
|
|
291
|
+
set=False,
|
|
292
|
+
type=bool,
|
|
293
|
+
desc=description(
|
|
294
|
+
"""Normally, for isentropic, isenthalpic and isochoric
|
|
295
|
+
modes any fO2 buffer will be switched off on execution
|
|
296
|
+
once the reference entropy, enthalpy or volume has been
|
|
297
|
+
set (usually after the first calculation or before if set
|
|
298
|
+
manually). If this environment variable is set then the
|
|
299
|
+
program will alternate between (1) an unbuffered
|
|
300
|
+
isenthalpic / isentropic / isochoric step and (2) an
|
|
301
|
+
isobaric / isothermal fO2 buffered step. Overall this
|
|
302
|
+
approximates an isenthalpic, isentropic or isochoric
|
|
303
|
+
path with a desired fO2 buffer."""
|
|
304
|
+
),
|
|
305
|
+
),
|
|
306
|
+
"FO2_PRESSURE_TERM": mvar(
|
|
307
|
+
set=False,
|
|
308
|
+
type=bool,
|
|
309
|
+
desc=description(
|
|
310
|
+
"""In most versions of MELTS, including Corba
|
|
311
|
+
MELTS and alphaMELTS, by default, reference fO2
|
|
312
|
+
buffers in the system Fe-Si-O are calculated from
|
|
313
|
+
the equations given in Myers and Eugster [1983].
|
|
314
|
+
In the standalone GUI version of MELTS a pressure
|
|
315
|
+
term is added to the fayalite-magnetite-quartz
|
|
316
|
+
buffer (FMQ) to give:
|
|
317
|
+
|
|
318
|
+
log(fO2) = − 24441.9/T + 0.110 (P − 1)/T + 8.290
|
|
319
|
+
|
|
320
|
+
When this environment variable is set then
|
|
321
|
+
alphaMELTS uses the equation as shown whereas by
|
|
322
|
+
default the second term is omitted. Inclusion of
|
|
323
|
+
the pressure term can have subtle effects on the
|
|
324
|
+
stability of certain phases such as pyroxenes.
|
|
325
|
+
Note that in Kessel et al. [2001] the coefficient
|
|
326
|
+
on the pressure term is 0.05, rather than 0.110;
|
|
327
|
+
the value of 0.110 was chosen by Ghiorso to
|
|
328
|
+
maintain consistency with Berman [1988]."""
|
|
329
|
+
),
|
|
330
|
+
),
|
|
331
|
+
# Open vs closed system
|
|
332
|
+
"CONTINUOUS_MELTING": mvar(
|
|
333
|
+
set=False,
|
|
334
|
+
type=bool,
|
|
335
|
+
desc=description(
|
|
336
|
+
"""By default, batch melting equations are used.
|
|
337
|
+
Setting this environment variable will change the
|
|
338
|
+
melting mode to continuous or fractional, where
|
|
339
|
+
melt is extracted after each equilibrium. Set
|
|
340
|
+
ALPHAMELTS_MINF to 0 for perfect fractional
|
|
341
|
+
melting. In practice though, the program will
|
|
342
|
+
run more smoothly if ALPHAMELTS_MINF is slightly
|
|
343
|
+
greater than 0. See the next four environment
|
|
344
|
+
variables’ entries for more details."""
|
|
345
|
+
),
|
|
346
|
+
),
|
|
347
|
+
"MINF": mvar(
|
|
348
|
+
default=0.005,
|
|
349
|
+
type=float,
|
|
350
|
+
validator=typecast(
|
|
351
|
+
float, [numeric_validator, lambda x: (x >= 0.0) & (x < 1.0)]
|
|
352
|
+
),
|
|
353
|
+
overridden_by=["MINPHI"],
|
|
354
|
+
desc=description(
|
|
355
|
+
"""If ALPHAMELTS_CONTINUOUS_MELTING is set, then by default a
|
|
356
|
+
fixed melt fraction, by mass, marks the threshold above which
|
|
357
|
+
melt is extracted. This variable is used to change the amount
|
|
358
|
+
of melt retained. If the current melt fraction is less than
|
|
359
|
+
ALPHAMELTS_MINF then all the melt will be retained until the
|
|
360
|
+
next step, otherwise the amount of melt removed (approximately
|
|
361
|
+
F - ALPHAMELTS_MINF) will be adjusted so such that the melt
|
|
362
|
+
fraction is exactly ALPHAMELTS_MINF after extraction."""
|
|
363
|
+
),
|
|
364
|
+
),
|
|
365
|
+
"MINPHI": mvar(
|
|
366
|
+
set=False,
|
|
367
|
+
type=float,
|
|
368
|
+
validator=typecast(
|
|
369
|
+
float, [numeric_validator, lambda x: (x >= 0.0) & (x < 1.0)]
|
|
370
|
+
),
|
|
371
|
+
overridden_by=["CONTINUOUS_RATIO"],
|
|
372
|
+
desc=description(
|
|
373
|
+
"""If ALPHAMELTS_CONTINUOUS_MELTING is set, then set this
|
|
374
|
+
environment variable controls the retained melt fraction,
|
|
375
|
+
by volume i.e. the ‘residual porosity’. If the current melt
|
|
376
|
+
fraction is less than ALPHAMELTS_MINPHI then all the melt
|
|
377
|
+
will be retained until the next step, otherwise the amount
|
|
378
|
+
of melt removed (approximately phi - ALPHAMELTS_MINPHI) will
|
|
379
|
+
be adjusted so that the melt fraction, by volume, is exactly
|
|
380
|
+
ALPHAMELTS_MINPHI after extraction."""
|
|
381
|
+
),
|
|
382
|
+
),
|
|
383
|
+
"CONTINUOUS_RATIO": mvar(
|
|
384
|
+
set=False,
|
|
385
|
+
type=float,
|
|
386
|
+
validator=typecast(
|
|
387
|
+
float, [numeric_validator, lambda x: (x >= 0.0) & (x < 1.0)]
|
|
388
|
+
),
|
|
389
|
+
overridden_by=["CONTINUOUS_VOLUME"],
|
|
390
|
+
desc=description(
|
|
391
|
+
"""This implements another alternative definition
|
|
392
|
+
of continuous melting. Instead of extracting all
|
|
393
|
+
liquid above a fixed mass or volume fraction, this
|
|
394
|
+
option, if set, causes the program to multiply the
|
|
395
|
+
liquid mass by a fixed ratio."""
|
|
396
|
+
),
|
|
397
|
+
),
|
|
398
|
+
"CONTINUOUS_VOLUME": mvar(
|
|
399
|
+
set=False,
|
|
400
|
+
type=float,
|
|
401
|
+
desc=description(
|
|
402
|
+
""""This option, if set, extracts the required
|
|
403
|
+
amount of melt to retain a constant total volume.
|
|
404
|
+
This reference volume is set the first time
|
|
405
|
+
melting occurs and is equal to the solid volume
|
|
406
|
+
plus whatever melt volume is retained according
|
|
407
|
+
to the ALPHAMELTS_MINPHI variable (or a default
|
|
408
|
+
value of 0.002 if that is unset). Only for
|
|
409
|
+
isobaric or isothermal calculations. Note that
|
|
410
|
+
this is not an ‘isochoric’ calculation as far
|
|
411
|
+
as alphaMELTS is concerned because melting is
|
|
412
|
+
still allowed to cause expansion; this option
|
|
413
|
+
only controls how much melt must be extracted
|
|
414
|
+
to return to the original volume and, if
|
|
415
|
+
necessary, also adjusts pressure (for isothermal
|
|
416
|
+
calculations) or temperature (for isobaric
|
|
417
|
+
calculations) to maintain equilibrium."""
|
|
418
|
+
),
|
|
419
|
+
),
|
|
420
|
+
"FRACTIONATE_SOLIDS": mvar(
|
|
421
|
+
set=False,
|
|
422
|
+
type=bool,
|
|
423
|
+
desc=description(
|
|
424
|
+
"""To turn on fractional crystallization of all
|
|
425
|
+
solid phases, set this option to true (does not
|
|
426
|
+
include water, see below). Do not use this
|
|
427
|
+
option if you wish to selectively fractionate
|
|
428
|
+
just a few phases; instead put ‘Fractionate:
|
|
429
|
+
phase’ lines in you melts_file (see the ‘MELTS
|
|
430
|
+
file’ section) or adjust individual phase
|
|
431
|
+
settings with menu option 8."""
|
|
432
|
+
),
|
|
433
|
+
),
|
|
434
|
+
"MASSIN": mvar(
|
|
435
|
+
default=0.001,
|
|
436
|
+
type=float,
|
|
437
|
+
validator=typecast(
|
|
438
|
+
float, [numeric_validator, lambda x: (x >= 0.0) & (x < 1.0)]
|
|
439
|
+
),
|
|
440
|
+
overridden_by=["MINW"],
|
|
441
|
+
desc=description(
|
|
442
|
+
"""Set to the mass in grams of each solid phase that is
|
|
443
|
+
retained during fractional crystallization. An increased
|
|
444
|
+
value may help to stabilize the calculation. A smaller value
|
|
445
|
+
can also be used, but a minimum of 10-6 grams is recommended.
|
|
446
|
+
nce the phase is no longer in the equilibrium assemblage it
|
|
447
|
+
will be completely exhausted, regardless of the
|
|
448
|
+
ALPHAMELTS_MASSIN value."""
|
|
449
|
+
),
|
|
450
|
+
),
|
|
451
|
+
"FRACTIONATE_WATER": mvar(
|
|
452
|
+
set=False,
|
|
453
|
+
type=bool,
|
|
454
|
+
desc=description(
|
|
455
|
+
"""To remove free water at each calculation stage
|
|
456
|
+
in an analogous way to how melt is removed during
|
|
457
|
+
continuous melting, set this variable true. (Note
|
|
458
|
+
that, in MELTS and pMELTS, water is treated like
|
|
459
|
+
a ‘solid’, in the sense that it is not melt, so
|
|
460
|
+
you can achieve the same effect by putting a
|
|
461
|
+
‘Fractionate: water’ line in your melts_file.
|
|
462
|
+
However, water is treated differently from the
|
|
463
|
+
other mineral phases in that it may be extracted
|
|
464
|
+
during melting or crystallization.)"""
|
|
465
|
+
),
|
|
466
|
+
),
|
|
467
|
+
"MINW": mvar(
|
|
468
|
+
set=False,
|
|
469
|
+
type=float,
|
|
470
|
+
validator=typecast(
|
|
471
|
+
float, [numeric_validator, lambda x: (x >= 0.0) & (x < 1.0)]
|
|
472
|
+
),
|
|
473
|
+
desc=description(
|
|
474
|
+
"""Set to the proportion of retained water, relative to the
|
|
475
|
+
total system mass. Works in a similar way, for water, as
|
|
476
|
+
ALPHAMELTS_MINF does for melt; may be set to exactly zero. If
|
|
477
|
+
not set then fractionation of water is treated in a similar way
|
|
478
|
+
to fractionation of a solid phase i.e. a nominal mass of 10-4
|
|
479
|
+
grams is retained at each stage to stabilize the calculation;
|
|
480
|
+
the smaller mass of water retained, compared to other solid
|
|
481
|
+
phases, reflects its significantly lower molecular mass."""
|
|
482
|
+
),
|
|
483
|
+
),
|
|
484
|
+
"FRACTIONATE_TARGET": mvar(
|
|
485
|
+
set=False,
|
|
486
|
+
type=float,
|
|
487
|
+
desc=description(
|
|
488
|
+
"""During normal forward fractional
|
|
489
|
+
crystallization a (negative) increment is added
|
|
490
|
+
to the temperature at each step,
|
|
491
|
+
ALPHAMELTS_DELTAT, and the run is terminated when
|
|
492
|
+
the temperature goes below ALPHAMELTS_MINT. If
|
|
493
|
+
this environment variable is set then forward or
|
|
494
|
+
backward fractionation is performed so that the
|
|
495
|
+
MgO content (in wt %) or the Mg# (in mol %) hits
|
|
496
|
+
a particular target; see the next two entries.
|
|
497
|
+
When option 3 is called alphaMELTS will perform
|
|
498
|
+
a single calculation for the current P-T
|
|
499
|
+
conditions, in the normal way. When option 4 is
|
|
500
|
+
used it will first try to find the liquidus
|
|
501
|
+
instead and use that to decide whether forward
|
|
502
|
+
or backwards fractionation is required to move
|
|
503
|
+
the liquid towards the target composition.
|
|
504
|
+
For forward fractionation, temperature will be
|
|
505
|
+
reduced, by an amount equal to the absolute value
|
|
506
|
+
of ALPHAMELTS_DELTAT, each time. For backwards
|
|
507
|
+
fractionation the program will step down (by the
|
|
508
|
+
same temperature increment) until one or more
|
|
509
|
+
‘allowed’ solid phases join the assemblage. The
|
|
510
|
+
‘allowed’ solid phases are any MgO-brearing
|
|
511
|
+
phases that have been ‘allowed’ by setting
|
|
512
|
+
ALPHAMELTS_FRACTIONATE_SOLIDS or by having
|
|
513
|
+
‘Fractionate:’ lines in the melts_file. The
|
|
514
|
+
routine then assimilates these phases before
|
|
515
|
+
searching for the new liquidus. For H2O-rich
|
|
516
|
+
compositions, the liquidus temperature will be
|
|
517
|
+
for a melt composition that is water-saturated,
|
|
518
|
+
but not oversaturated enough to exsolve vapor (it
|
|
519
|
+
may also help to buffer aH2O).
|
|
520
|
+
Output will be written each time the new liquidus
|
|
521
|
+
is found. Forward- or backward-fractionated trace
|
|
522
|
+
element compostions will be calculated if
|
|
523
|
+
ALPHAMELTS_DO_TRACE is on. Execution continues
|
|
524
|
+
until the target MgO or Mg# is reached or just
|
|
525
|
+
passed; therefore, the smaller ALPHAMELTS_DELTAT
|
|
526
|
+
is, the closer the liquid composition will be to
|
|
527
|
+
the target. In the limit as the step size tends
|
|
528
|
+
to zero a liquid composition that is on, say,
|
|
529
|
+
the plagioclase + clinopyroxene cotectic would
|
|
530
|
+
be expected to stay on the cotectic as back
|
|
531
|
+
fractionation proceeds (at least until a thermal
|
|
532
|
+
divide is encountered); in practice one or other
|
|
533
|
+
solid phase may occasionally be dropped from the
|
|
534
|
+
assemblage. For complicated peritectic
|
|
535
|
+
relationships the ‘Amoeba’ routine (menu option
|
|
536
|
+
17) is more useful for constraining a plausible,
|
|
537
|
+
but still non-unique, parental melt."""
|
|
538
|
+
),
|
|
539
|
+
),
|
|
540
|
+
"MGO_TARGET": mvar(
|
|
541
|
+
default=8.0,
|
|
542
|
+
type=float,
|
|
543
|
+
validator=typecast(
|
|
544
|
+
float, [lambda x: isinstance(x, float), lambda x: (x > 0.0) & (x < 100.0)]
|
|
545
|
+
),
|
|
546
|
+
overridden_by=["MGNUMBER_TARGET"],
|
|
547
|
+
desc=description(
|
|
548
|
+
"""Sets the target MgO content of the liquid for forward
|
|
549
|
+
or backward fractionation to the value in wt %. When
|
|
550
|
+
using ‘Amoeba’ (menu option 17) the value of
|
|
551
|
+
ALPHAMELTS_MGO_TARGET is used to set the MgO of the
|
|
552
|
+
parental liquid composition and the target MgO content
|
|
553
|
+
for the evolved liquid composition is taken from the
|
|
554
|
+
melts_file(s). Once ‘Amoeba’ is finished, reading in
|
|
555
|
+
another melts_file will revert to using
|
|
556
|
+
ALPHAMELTS_MGO_TARGET as the stop point for forward or
|
|
557
|
+
backward fractional crystallization."""
|
|
558
|
+
),
|
|
559
|
+
),
|
|
560
|
+
"MGNUMBER_TARGET": mvar(
|
|
561
|
+
set=False,
|
|
562
|
+
type=float,
|
|
563
|
+
validator=typecast(
|
|
564
|
+
float, [lambda x: isinstance(x, float), lambda x: (x > 0.0) & (x < 100.0)]
|
|
565
|
+
),
|
|
566
|
+
desc=description(
|
|
567
|
+
"""Sets the target Mg# of the liquid for forward or
|
|
568
|
+
backward fractionation to the value in mol %. When
|
|
569
|
+
using ‘Amoeba’ the value of
|
|
570
|
+
ALPHAMELTS_MGNUMBER_TARGET is used in a comparable
|
|
571
|
+
way to ALPHAMELTS MGO_TARGET above."""
|
|
572
|
+
),
|
|
573
|
+
),
|
|
574
|
+
"ASSIMILATE": mvar(
|
|
575
|
+
set=False,
|
|
576
|
+
type=bool,
|
|
577
|
+
desc=description(
|
|
578
|
+
"""This environment variable causes a user-defined mass
|
|
579
|
+
of a second bulk composition to be added after each
|
|
580
|
+
calculation stage (see ‘Bulk composition’). It is
|
|
581
|
+
intended for calculations at specified P-T conditions
|
|
582
|
+
(e.g. isobaric, isothermal or PTpath modes) or for
|
|
583
|
+
heat-balanced assimilation in isenthalpic mode. It also
|
|
584
|
+
works for isentropic or isochoric constraints under
|
|
585
|
+
certain circumstances but these options are under
|
|
586
|
+
development and, as yet, untested. Melt may be extracted
|
|
587
|
+
or solid phases fractionated simultaneously.
|
|
588
|
+
On execution, if the mode is isothermal or
|
|
589
|
+
ALPHAMELTS_DELTAT is zero and the mode is isobaric or
|
|
590
|
+
ALPHAMELTS_DELTAP is zero then you will be asked the
|
|
591
|
+
number of iterations you wish to perform. The program
|
|
592
|
+
will then request the file type / number of files and the
|
|
593
|
+
name(s) before the first equilibration9. The assimilant
|
|
594
|
+
bulk composition may be fixed by a single enrichment_file
|
|
595
|
+
or binary restart_file, or by providing separate
|
|
596
|
+
enrichment_files for each mineral phase in the
|
|
597
|
+
assimilant. For separate enrichment_files, phase
|
|
598
|
+
compositions are given in wt% oxides and it is up to the
|
|
599
|
+
user to ensure the solid compositions are close to
|
|
600
|
+
stoichiometric in the appropriate pure phase or solid
|
|
601
|
+
solution model (see the forum for a list of mineral phase
|
|
602
|
+
end members). Trace element concentrations should be the
|
|
603
|
+
bulk assimilant values rather than individual mineral
|
|
604
|
+
ones. A single liquid composition can be input instead
|
|
605
|
+
of, or in addition to, mineral compositions.
|
|
606
|
+
Alternatively, multiple enrichment_files can be requested
|
|
607
|
+
so that the assimilant bulk composition can be changed
|
|
608
|
+
for each iteration. To use multiple enrichment_files in
|
|
609
|
+
this way, see the ‘Table file’ section for the filename
|
|
610
|
+
format. The program assumes that the indices are reset
|
|
611
|
+
each time option 4 is called.
|
|
612
|
+
You can enter the mass of assimilant to be added at each
|
|
613
|
+
subsequent stage or, for melts_file(s) only, take the
|
|
614
|
+
value(s) from the ‘Initial Mass:’ line(s). If the mass of
|
|
615
|
+
assimilant is specified for separate mineral melts_files
|
|
616
|
+
then the value entered is the total mass and the
|
|
617
|
+
‘Initial Mass:’ lines will be used to determine the
|
|
618
|
+
proportions of the mineral phases. Major and, if
|
|
619
|
+
appropriate, trace elements will be mixed (to mix trace
|
|
620
|
+
elements only use ALPHAMELTS_FLUX_MELTING). If trace
|
|
621
|
+
element calculations are switched on, the
|
|
622
|
+
enrichment_file(s) must contain the same trace elements
|
|
623
|
+
as the melts_file. For separate mineral files, the trace
|
|
624
|
+
elements can be included in each mineral file, to avoid
|
|
625
|
+
read errors, but only the vales from the first
|
|
626
|
+
enrichment_file will be used. If running in isothermal
|
|
627
|
+
mode, or the like, then the P, T and fO2 buffer from the
|
|
628
|
+
assimilant file will be ignored and set to the current
|
|
629
|
+
values, regardless of the input file type. For
|
|
630
|
+
isenthalpic mode: please set ALPHAMELTS_DELTAP to zero,
|
|
631
|
+
for reasons given in ‘Thermodynamic Path’, and
|
|
632
|
+
ALPHAMELTS_DELTAT to zero so that the number of
|
|
633
|
+
iterations can be controlled. We suggest you set
|
|
634
|
+
ALPHAMELTS_SAVE_ALL so that you can gradually build up
|
|
635
|
+
the number of iterations. In this mode, if you use a
|
|
636
|
+
single text enrichment_file (or files) for the assimilant
|
|
637
|
+
then the program will try to find a thermodynamically
|
|
638
|
+
equilibrated state, using a superliquidus start. If you
|
|
639
|
+
use separate mineral phase enrichment_files the
|
|
640
|
+
enthalphy of each phase is calculated at temperature
|
|
641
|
+
given in the first enrichment_file, without
|
|
642
|
+
re-equilibration; this is similar to the GUI
|
|
643
|
+
assimilation routines. If you use a binary assimilant
|
|
644
|
+
file then it will use the previously calculated starting
|
|
645
|
+
conditions but the pressure in the file must match the
|
|
646
|
+
current pressure (or the temperatures must match for
|
|
647
|
+
isochoric mode). If this is not the case an error message
|
|
648
|
+
will be printed; either (a) redo the restart_file for the
|
|
649
|
+
correct conditions or (b) use menu option 2 to set the
|
|
650
|
+
current values to those used to generate the restart_file
|
|
651
|
+
and then call option 4 again."""
|
|
652
|
+
),
|
|
653
|
+
),
|
|
654
|
+
"FLUX_MELTING": mvar(
|
|
655
|
+
set=False,
|
|
656
|
+
type=bool,
|
|
657
|
+
desc=description(
|
|
658
|
+
"""This variable causes a user-defined proportion of a
|
|
659
|
+
second composition, trace elements only, to be mixed
|
|
660
|
+
in after each calculation stage (see ‘Bulk
|
|
661
|
+
composition’). If used in conjunction with
|
|
662
|
+
ALPHAMELTS_CONTINUOUS_MELTING and
|
|
663
|
+
ALPHAMELTS_DO_TRACE_H2O it can simulate flux melting by
|
|
664
|
+
a hydrous fluid (to simulate fluxing by a metasomatic
|
|
665
|
+
melt use ALPHAMELTS_ASSIMILATE instead). We suggest you
|
|
666
|
+
set ALPHAMELTS_SAVE_ALL so that you can gradually build
|
|
667
|
+
up the number of iterations, e.g. until the system
|
|
668
|
+
achieves steady state, by repeated calling of the
|
|
669
|
+
‘execute’ menu option. Execution is essentially the
|
|
670
|
+
same as for ALPHAMELTS_ASSIMILATE but for trace
|
|
671
|
+
elements only. As the mass of the enriching
|
|
672
|
+
composition is not necessarily defined, the user is
|
|
673
|
+
asked instead for the mass proportion of the new
|
|
674
|
+
composition to add (similar to ‘Source Mixer’ in menu
|
|
675
|
+
option 12). Alternatively, for melts_files(s), the
|
|
676
|
+
‘Initial Mass:’ lines may be used; in which case the
|
|
677
|
+
old and new compositions are mixed in the ratio
|
|
678
|
+
old_mass:new_mass. Note that, as major elements are not
|
|
679
|
+
mixed, the total system mass (i.e. old_mass) will be
|
|
680
|
+
unaffected."""
|
|
681
|
+
),
|
|
682
|
+
),
|
|
683
|
+
"DRY_ITER_PATIENCE": mvar(
|
|
684
|
+
default=100,
|
|
685
|
+
type=int,
|
|
686
|
+
validator=typecast(
|
|
687
|
+
int, [lambda x: isinstance(x, int), lambda x: (x >= 0) & (x <= 100)]
|
|
688
|
+
),
|
|
689
|
+
desc=description(
|
|
690
|
+
"""If simulating flux melting or assimilation,
|
|
691
|
+
this is the maximum number of consecutive
|
|
692
|
+
iterations that alphaMELTS will run without any
|
|
693
|
+
melting occurring before it will give up and
|
|
694
|
+
return to the menu."""
|
|
695
|
+
),
|
|
696
|
+
),
|
|
697
|
+
# pHMELTS and Trace Elements
|
|
698
|
+
"DO_TRACE": mvar(
|
|
699
|
+
set=False,
|
|
700
|
+
type=bool,
|
|
701
|
+
desc=description(
|
|
702
|
+
"""Implements attached trace element partitioning function
|
|
703
|
+
for those elements listed in the melts_file."""
|
|
704
|
+
),
|
|
705
|
+
),
|
|
706
|
+
"DO_TRACE_H2O": mvar(
|
|
707
|
+
set=False,
|
|
708
|
+
type=bool,
|
|
709
|
+
desc=description(
|
|
710
|
+
"""For the case where water is to be treated as a trace
|
|
711
|
+
element this option adds an iteration on the H2O
|
|
712
|
+
content, as described in Asimow, et al. [2004]."""
|
|
713
|
+
),
|
|
714
|
+
),
|
|
715
|
+
"HK_OL_TRACE_H2O": mvar(
|
|
716
|
+
set=False,
|
|
717
|
+
type=bool,
|
|
718
|
+
desc=description(
|
|
719
|
+
"""By default the Mosenfelder, et al. [2005] model
|
|
720
|
+
for water solubility in olivine is used. This
|
|
721
|
+
environment variable uses the Hirth and Kohlstedt
|
|
722
|
+
[1996] model instead, which gives lower solubility
|
|
723
|
+
and consequently lower partition coefficients."""
|
|
724
|
+
),
|
|
725
|
+
),
|
|
726
|
+
"HK_PXGT_TRACE_H2O": mvar(
|
|
727
|
+
default="mineral-melt",
|
|
728
|
+
type=bool,
|
|
729
|
+
validator=lambda x: x in ["mineral-melt", "mineral-mineral"],
|
|
730
|
+
desc=description(
|
|
731
|
+
"""If the Mosenfelder, et al. [2005] model for
|
|
732
|
+
water solubility in olivine is used then by
|
|
733
|
+
default the mineral-melt partition coefficients
|
|
734
|
+
for water with orthopyroxene, clinopyroxene and
|
|
735
|
+
garnet are still those of Hirth and Kohlstedt
|
|
736
|
+
[1996]. Setting this variable to ‘mineral-mineral’
|
|
737
|
+
means the solubility of water in opx, cpx and
|
|
738
|
+
garnet are linked to the newer water solubility
|
|
739
|
+
in olivine model, which is equivalent to
|
|
740
|
+
preserving the mineral-mineral water partition
|
|
741
|
+
coefficients of Hirth and Kohlstedt [1996].
|
|
742
|
+
Setting it to ‘mineral-melt’ retains the default
|
|
743
|
+
behavior."""
|
|
744
|
+
),
|
|
745
|
+
),
|
|
746
|
+
"2X_OPX_TRACE_H2O": mvar(
|
|
747
|
+
set=False,
|
|
748
|
+
type=bool,
|
|
749
|
+
desc=description(
|
|
750
|
+
"""By default the solubility of water in
|
|
751
|
+
clinopyroxene is twice that in orthopyroxene,
|
|
752
|
+
based on the results of Hirth and Kohlstedt [1996].
|
|
753
|
+
If this variable is set then the solubility of
|
|
754
|
+
water in opx is scaled up by to be equal to the
|
|
755
|
+
cpx value, consistent with the observations of
|
|
756
|
+
Hauri et al. [2006]. This option can be used
|
|
757
|
+
regardless of whether the Mosenfelder, et al.
|
|
758
|
+
[2005] or Hirth and Kohlstedt [1996] models are
|
|
759
|
+
being used for olivine or opx, cpx and garnet. For
|
|
760
|
+
example, if either ALPHAMELTS_HK_OL_TRACE_H2O or
|
|
761
|
+
ALPHAMELTS_HK_PXGT_TRACE_H2O is set then the
|
|
762
|
+
mineral-mineral partition coefficients will be
|
|
763
|
+
those from Table 1 of Hirth and Kohlstedt [1996],
|
|
764
|
+
except that olivine-opx value of 0.2 will be
|
|
765
|
+
replaced by 0.1."""
|
|
766
|
+
),
|
|
767
|
+
),
|
|
768
|
+
"TRACE_DEFAULT_DPTX": mvar(
|
|
769
|
+
set=False,
|
|
770
|
+
type=bool,
|
|
771
|
+
desc=description(
|
|
772
|
+
"""By default all partition coefficients used in
|
|
773
|
+
trace element calculations are constant. If
|
|
774
|
+
ALPHAMELTS_TRACE_VARIABLE_D is set then D =
|
|
775
|
+
D(P,T,X) are calculated for elements and phases
|
|
776
|
+
in Table 1. Constant partition coefficients will
|
|
777
|
+
be used for all other elements / phases. This
|
|
778
|
+
list may be modified in the trace_data_file, as
|
|
779
|
+
previously explained."""
|
|
780
|
+
),
|
|
781
|
+
),
|
|
782
|
+
"TS_TRACE_NORMALIZATION": mvar(
|
|
783
|
+
set=False,
|
|
784
|
+
type=int,
|
|
785
|
+
validator=typecast(
|
|
786
|
+
int, [lambda x: isinstance(x, int), lambda x: (x >= 1) & (x <= 4)]
|
|
787
|
+
),
|
|
788
|
+
desc=description(
|
|
789
|
+
"""If set, this chooses one of four
|
|
790
|
+
compositions to normalize trace elements to
|
|
791
|
+
(if any):
|
|
792
|
+
1. PM Sun and McDonough [1989];
|
|
793
|
+
2. DMM Workman and Hart [2005];
|
|
794
|
+
3. PM McKenzie and O'Nions [1991; 1995];
|
|
795
|
+
4. DM of McKenzie and O'Nions [1991; 1995].
|
|
796
|
+
Sample input files showing concentrations for
|
|
797
|
+
each of the idealized source compositions
|
|
798
|
+
above are provided as illustrations; note
|
|
799
|
+
that some elements (i.e. Ni, Cr, and Mn)
|
|
800
|
+
appear as major and trace elements because
|
|
801
|
+
their inclusion in the liquid calibration
|
|
802
|
+
differs between MELTS and pMELTS. Isotopes
|
|
803
|
+
are normalized to the ‘non-isotope’ abundance
|
|
804
|
+
(see the ‘MELTS file’ section). This option
|
|
805
|
+
is useful if the source composition given in
|
|
806
|
+
the melts_file is different from the four
|
|
807
|
+
options above. If you wish to normalize to
|
|
808
|
+
the source in the melts_file the simplest
|
|
809
|
+
thing is to provide the list of elements with
|
|
810
|
+
‘1.0’ for each of the abundances (except
|
|
811
|
+
isotopes)."""
|
|
812
|
+
),
|
|
813
|
+
),
|
|
814
|
+
"TRACE_INPUT_FILE": mvar(
|
|
815
|
+
set=False,
|
|
816
|
+
desc=description(
|
|
817
|
+
"""Gives the name of the trace_data_file, which may
|
|
818
|
+
be used to change partition coefficients, determine
|
|
819
|
+
whether variable partition coefficients are
|
|
820
|
+
calculated and with which parameters, as described
|
|
821
|
+
above."""
|
|
822
|
+
),
|
|
823
|
+
),
|
|
824
|
+
"TRACE_USELIQFEMG": mvar(
|
|
825
|
+
set=False,
|
|
826
|
+
type=bool,
|
|
827
|
+
desc=description(
|
|
828
|
+
"""By default the Mg# of the melt, needed to
|
|
829
|
+
estimate D(P,T,X) for clinopyroxene, is estimated
|
|
830
|
+
from the clinopyroxene composition using Equation
|
|
831
|
+
35 from Wood and Blundy [1997]). If this
|
|
832
|
+
environment variable is set then the Mg# of the
|
|
833
|
+
melt is taken directly from the (pH)MELTS
|
|
834
|
+
calculated liquid composition. If no liquid is
|
|
835
|
+
present then the program will revert to the default
|
|
836
|
+
behavior and use the clinopyroxene composition."""
|
|
837
|
+
),
|
|
838
|
+
),
|
|
839
|
+
# Input options
|
|
840
|
+
"ALPHAMELTS_ADIABAT_BIN_FILE": mvar(
|
|
841
|
+
set=False,
|
|
842
|
+
desc=description(
|
|
843
|
+
"""Unavoidable changes within the
|
|
844
|
+
programs mean that binary restart_files
|
|
845
|
+
created with version 2.0+ of Adiabat_1ph
|
|
846
|
+
will not read into alphaMELTS. Once you
|
|
847
|
+
have read in the file, if you
|
|
848
|
+
immediately save it again it will be
|
|
849
|
+
updated to Adiabat_1ph 3.0 format.
|
|
850
|
+
Adiabat_1ph 3.0 format is compatible
|
|
851
|
+
with alphaMELTS 1.0+ so unset this
|
|
852
|
+
environment variable for subsequent
|
|
853
|
+
runs. For more details see
|
|
854
|
+
ADIABAT_V20_BIN_FILE in the
|
|
855
|
+
Adiabat_1ph 3 documentation."""
|
|
856
|
+
),
|
|
857
|
+
),
|
|
858
|
+
# Output options
|
|
859
|
+
"CELSIUS_OUTPUT": mvar(
|
|
860
|
+
set=False,
|
|
861
|
+
type=bool,
|
|
862
|
+
desc=description(
|
|
863
|
+
"""By default, temperature input to alphaMELTS is in
|
|
864
|
+
°C, whereas temperature output is in Kelvin. When
|
|
865
|
+
this environment variable is set, text file and
|
|
866
|
+
screen output is also in °C."""
|
|
867
|
+
),
|
|
868
|
+
),
|
|
869
|
+
"SAVE_ALL": mvar(
|
|
870
|
+
set=False,
|
|
871
|
+
type=bool,
|
|
872
|
+
desc=description(
|
|
873
|
+
"""By default, the main output file is only written for
|
|
874
|
+
calculations made in the most recent call to menu option 4.
|
|
875
|
+
If this variable is set then results from all calculations
|
|
876
|
+
are saved and output. This provides a simple way to record
|
|
877
|
+
single calculations (menu option 3) or to build up results
|
|
878
|
+
from multiple iterations or multiple melts_files. Note that
|
|
879
|
+
even if the appropriate environment variables are set, no
|
|
880
|
+
solid or liquid fractionation will occur until menu option
|
|
881
|
+
4 is run. If using ‘Amoeba’ (menu option 17) the
|
|
882
|
+
ALPHAMELTS_SAVE_ALL function will be temporarily switched
|
|
883
|
+
off (so that iterations of the search algorithm are not
|
|
884
|
+
saved); when it is finished a single calculation (menu
|
|
885
|
+
option 3) may be used to write output for the best-fit
|
|
886
|
+
parental melt."""
|
|
887
|
+
),
|
|
888
|
+
),
|
|
889
|
+
"SKIP_FAILURE": mvar(
|
|
890
|
+
set=False,
|
|
891
|
+
type=bool,
|
|
892
|
+
desc=description(
|
|
893
|
+
"""Normally failure of the minimization routines means
|
|
894
|
+
that the alphamelts executable must be restarted to
|
|
895
|
+
clear the memory. If this environment variable is set
|
|
896
|
+
then a copy of the thermodynamic state is made each
|
|
897
|
+
time a successful calculation is made. If the next
|
|
898
|
+
calculation fails, this last good state (or the bulk
|
|
899
|
+
composition and starting conditions from the
|
|
900
|
+
melts_file, if it is the first calculation) is used
|
|
901
|
+
for subsequent attempts. This may be useful if you are
|
|
902
|
+
very close to a reaction when the algorithms may have
|
|
903
|
+
trouble deciding whether to add a phase to the
|
|
904
|
+
assemblage and need to overstep just slightly. It is
|
|
905
|
+
also helpful when trying out starting solutions using
|
|
906
|
+
options 2 and 3. If ALPHAMELTS_SAVE_ALL is also set,
|
|
907
|
+
the last good state will also be written to the output
|
|
908
|
+
files as a placeholder; it should be obvious that this
|
|
909
|
+
represents a skipped failure as all values, including
|
|
910
|
+
pressure and temperature, will be identical to the
|
|
911
|
+
previous output.."""
|
|
912
|
+
),
|
|
913
|
+
),
|
|
914
|
+
"FAILED_ITER_PATIENCE": mvar(
|
|
915
|
+
default=10,
|
|
916
|
+
type=int,
|
|
917
|
+
validator=typecast(
|
|
918
|
+
int, [lambda x: isinstance(x, int), lambda x: (x >= 0) & (x <= 10)]
|
|
919
|
+
),
|
|
920
|
+
desc=description(
|
|
921
|
+
"""If the minimization routines do not recover
|
|
922
|
+
in the next few iterations then one drawback of
|
|
923
|
+
ALPHAMELTS_SKIP_FAILURE is that it can lead to
|
|
924
|
+
infinite loops of failure or, if triggered
|
|
925
|
+
repeatedly, eventually to a segmentation fault.
|
|
926
|
+
If ALPHAMELTS_SKIP_FAILURE is set, this
|
|
927
|
+
variable is the maximum number of consecutive
|
|
928
|
+
failed iterations that alphaMELTS will run
|
|
929
|
+
before a clean return to the menu where
|
|
930
|
+
parameters, such as the choice of fO2 buffer,
|
|
931
|
+
can be adjusted or alphaMELTS completely
|
|
932
|
+
restarted. If running in PTgrid or TPgrid
|
|
933
|
+
modes, it will be the maximum number of failed
|
|
934
|
+
iterations before alpahMELTS moves to the next
|
|
935
|
+
internal loop (T-loop or P-loop
|
|
936
|
+
respectively)."""
|
|
937
|
+
),
|
|
938
|
+
),
|
|
939
|
+
"INTEGRATE_FILE": mvar(
|
|
940
|
+
set=False,
|
|
941
|
+
type=bool,
|
|
942
|
+
desc=description(
|
|
943
|
+
"""Normally the integrated_output_file can be written
|
|
944
|
+
immediately after execution finishes, but if
|
|
945
|
+
alphamelts tends to crash before the menu option 16
|
|
946
|
+
can be called then memory contents will be lost. As a
|
|
947
|
+
precaution, ALPHAMELTS_INTEGRATE_FILE should be set
|
|
948
|
+
to record details of the packets of melt extracted
|
|
949
|
+
during melting to a file. If run_alphamelts.command
|
|
950
|
+
is restarted with the same settings and menu option
|
|
951
|
+
16 is called before execution then the resulting file
|
|
952
|
+
will be used as input for the melt integration. Note
|
|
953
|
+
that ALPHAMELTS_INTEGRATE_FILE is not the
|
|
954
|
+
integrated_output_file itself but an intermediate
|
|
955
|
+
file that may be used in its generation."""
|
|
956
|
+
),
|
|
957
|
+
),
|
|
958
|
+
"LATENT_HEAT": mvar(
|
|
959
|
+
set=False,
|
|
960
|
+
type=bool,
|
|
961
|
+
desc=description(
|
|
962
|
+
"""Normally text file output is done just after
|
|
963
|
+
equilibration and before any fractionation. If
|
|
964
|
+
ALPHAMELTS_LATENT_HEAT to set to ‘true’ alphamelts will
|
|
965
|
+
also output the state just after fractionation and just
|
|
966
|
+
before the next equilibration (when the temperature has
|
|
967
|
+
been lowered and the system cooled but not allowed to
|
|
968
|
+
crystallise any more yet). This gives a simple way to
|
|
969
|
+
calculate the latent heat of crystallization, without
|
|
970
|
+
having to do the cooling adjustment described in Ghiorso
|
|
971
|
+
[1997]. Note that, for the same MORB composition, the
|
|
972
|
+
results will differ from Figure 5 of Ghiorso [1997].
|
|
973
|
+
This apparent discrepancy is due to changes in the MELTS
|
|
974
|
+
software since it was first released and not to
|
|
975
|
+
differences in how the variation in latent heat is
|
|
976
|
+
accessed."""
|
|
977
|
+
),
|
|
978
|
+
),
|
|
979
|
+
"QUICK_OUTPUT": mvar(
|
|
980
|
+
set=False,
|
|
981
|
+
type=bool,
|
|
982
|
+
desc=description(
|
|
983
|
+
"""If this environment variable is set then
|
|
984
|
+
equilibrated thermodynamic states from previous
|
|
985
|
+
calculations are not saved, except as required for
|
|
986
|
+
ALPHAMELTS_SKIP_FAILURE etc. For calculations
|
|
987
|
+
comprising a large number of iterations, such as those
|
|
988
|
+
on a closely spaced P-T grid, setting this variable can
|
|
989
|
+
significantly reduce memory usage and therefore
|
|
990
|
+
increase computational speed as the calculation
|
|
991
|
+
proceeds. Reporting of fO2 will be affected slightly.
|
|
992
|
+
The Phase_mass_tbl.txt and Phase_vol_tbl.txt files will
|
|
993
|
+
not be written, which will cause
|
|
994
|
+
run_alphamelts.command to issue a warning about not
|
|
995
|
+
being able to find these files; the warning can be
|
|
996
|
+
safely ignored."""
|
|
997
|
+
),
|
|
998
|
+
),
|
|
999
|
+
# Others
|
|
1000
|
+
"MULTIPLE_LIQUIDS": mvar(
|
|
1001
|
+
set=False,
|
|
1002
|
+
type=bool,
|
|
1003
|
+
desc=description(
|
|
1004
|
+
"""This turns on exsolution of immiscible liquids. The
|
|
1005
|
+
solvi are not very well determined, and we do not
|
|
1006
|
+
recommend serious use of this feature, but in some
|
|
1007
|
+
cases operation inside an unrecognized two-liquid field
|
|
1008
|
+
can lead to path-dependent non-unique equilibria. This
|
|
1009
|
+
option should not be used if trace element calculations
|
|
1010
|
+
are enabled."""
|
|
1011
|
+
),
|
|
1012
|
+
),
|
|
1013
|
+
"FRACTIONATE_SECOND_LIQUID": mvar(
|
|
1014
|
+
set=False,
|
|
1015
|
+
type=bool,
|
|
1016
|
+
desc=description(
|
|
1017
|
+
"""When running with
|
|
1018
|
+
ALPHAMELTS_MULTIPLE_LIQUIDS set, treat all
|
|
1019
|
+
liquids except the first as fractionating
|
|
1020
|
+
phases and remove them from the system
|
|
1021
|
+
after each equilibration."""
|
|
1022
|
+
),
|
|
1023
|
+
),
|
|
1024
|
+
"FOCUS": mvar(
|
|
1025
|
+
set=False,
|
|
1026
|
+
type=bool,
|
|
1027
|
+
desc=description(
|
|
1028
|
+
"""Option to do the focusing calculation described in Asimow
|
|
1029
|
+
and Stolper [1999]. It works by multiplying the mass of liquid
|
|
1030
|
+
in system by a fixed factor after each equilibration."""
|
|
1031
|
+
),
|
|
1032
|
+
),
|
|
1033
|
+
"FOCUS_FACTOR": mvar(
|
|
1034
|
+
set=False,
|
|
1035
|
+
type=float,
|
|
1036
|
+
validator=typecast(float, numeric_validator),
|
|
1037
|
+
desc=description(
|
|
1038
|
+
"""When ALPHAMELTS_FOCUS is set, this determines the
|
|
1039
|
+
multiplication factor for the mass of liquid. Usually
|
|
1040
|
+
it will be a number slightly greater than unity, like
|
|
1041
|
+
the 100th root of 2. If ALPHAMELTS_FOCUS is set without
|
|
1042
|
+
a value in ALPHAMELTS_FOCUS_FACTOR the focusing
|
|
1043
|
+
calculation loop will be ignored."""
|
|
1044
|
+
),
|
|
1045
|
+
),
|
|
1046
|
+
"INTEGRATE_PHI": mvar(
|
|
1047
|
+
set=False,
|
|
1048
|
+
type=bool,
|
|
1049
|
+
desc=description(
|
|
1050
|
+
"""Normally, packets of extracted melt are saved in
|
|
1051
|
+
memory (and, optionally, written out to the
|
|
1052
|
+
ALPHAMELTS_INTEGRATE_FILE ‘crash’ file, described
|
|
1053
|
+
above) by mass i.e. in terms of dF. If this variable
|
|
1054
|
+
is set then the packets of extracted melt will be
|
|
1055
|
+
saved by volume i.e. in terms of dPhi. As the full
|
|
1056
|
+
pressure integral (calculation of crustal thickness
|
|
1057
|
+
etc.) is not strictly correct for increments in Phi,
|
|
1058
|
+
that option will not be offered. However, the
|
|
1059
|
+
opportunity to interpolate for equal increments of
|
|
1060
|
+
melt fraction by volume will be available."""
|
|
1061
|
+
),
|
|
1062
|
+
),
|
|
1063
|
+
}
|