pypsbuilder 2.5.1__py3-none-any.whl
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.
- AUTHORS.md +9 -0
- CHANGELOG.md +215 -0
- CONTRIBUTING.md +73 -0
- pypsbuilder/__init__.py +29 -0
- pypsbuilder/images/__init__.py +0 -0
- pypsbuilder/images/ptbuilder.png +0 -0
- pypsbuilder/images/pxbuilder.png +0 -0
- pypsbuilder/images/pypsbuilder.png +0 -0
- pypsbuilder/images/txbuilder.png +0 -0
- pypsbuilder/psbuilders.py +5289 -0
- pypsbuilder/psclasses.py +1093 -0
- pypsbuilder/psexplorer.py +3494 -0
- pypsbuilder/tcapi.py +1681 -0
- pypsbuilder/tcinit.py +992 -0
- pypsbuilder/tests/__init__.py +0 -0
- pypsbuilder/tests/test_pclasses.py +279 -0
- pypsbuilder/ui/addinv.ui +113 -0
- pypsbuilder/ui/adduni.ui +119 -0
- pypsbuilder/ui/compile_ui.sh +9 -0
- pypsbuilder/ui/ptbuilder.ui +1265 -0
- pypsbuilder/ui/pxbuilder.ui +1245 -0
- pypsbuilder/ui/txbuilder.ui +1251 -0
- pypsbuilder/ui/uniguess.ui +85 -0
- pypsbuilder/ui_addinv.py +67 -0
- pypsbuilder/ui_adduni.py +67 -0
- pypsbuilder/ui_ptbuilder.py +934 -0
- pypsbuilder/ui_pxbuilder.py +920 -0
- pypsbuilder/ui_txbuilder.py +922 -0
- pypsbuilder/ui_uniguess.py +52 -0
- pypsbuilder-2.5.1.dist-info/AUTHORS.md +9 -0
- pypsbuilder-2.5.1.dist-info/LICENSE +22 -0
- pypsbuilder-2.5.1.dist-info/METADATA +95 -0
- pypsbuilder-2.5.1.dist-info/RECORD +35 -0
- pypsbuilder-2.5.1.dist-info/WHEEL +4 -0
- pypsbuilder-2.5.1.dist-info/entry_points.txt +10 -0
pypsbuilder/tcinit.py
ADDED
|
@@ -0,0 +1,992 @@
|
|
|
1
|
+
"""THERMOCALC API classes.
|
|
2
|
+
|
|
3
|
+
This module contain function to initialize working directory. It will
|
|
4
|
+
download the latest 3.5 version of THERMOCALC and appropriate dataset
|
|
5
|
+
and ax file according to user selection
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
# author: Ondrej Lexa
|
|
10
|
+
# website: https://github.com/ondrolexa/pypsbuilder
|
|
11
|
+
|
|
12
|
+
from pathlib import Path
|
|
13
|
+
import platform
|
|
14
|
+
from io import BytesIO
|
|
15
|
+
import shutil
|
|
16
|
+
from urllib.request import urlopen
|
|
17
|
+
from zipfile import ZipFile
|
|
18
|
+
import unicodedata
|
|
19
|
+
import string
|
|
20
|
+
|
|
21
|
+
# recent files
|
|
22
|
+
set_urls = {
|
|
23
|
+
"metapelite": "https://hpxeosandthermocalc.files.wordpress.com/2022/01/tc-thermoinput-metapelite-2022-01-23.zip",
|
|
24
|
+
"metabasite": "https://hpxeosandthermocalc.files.wordpress.com/2022/01/tc-thermoinput-metabasite-2022-01-30.zip",
|
|
25
|
+
"igneous": "https://hpxeosandthermocalc.files.wordpress.com/2022/01/tc-thermoinput-igneous-2022-01-23.zip",
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
exe_urls = {
|
|
29
|
+
"linux": "https://hpxeosandthermocalc.files.wordpress.com/2020/12/tc350beta-linux-bundle.zip",
|
|
30
|
+
"win": "https://hpxeosandthermocalc.files.wordpress.com/2020/12/tc350-win-bundle.zip",
|
|
31
|
+
"mac": "https://hpxeosandthermocalc.files.wordpress.com/2020/12/tc350beta-mac-bundle.zip",
|
|
32
|
+
"macasi": "https://hpxeosandthermocalc.files.wordpress.com/2020/12/tc350beta-macasi-bundle.zip",
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def tcprojinit():
|
|
37
|
+
cwd = Path.cwd()
|
|
38
|
+
dir_needed = True
|
|
39
|
+
while dir_needed:
|
|
40
|
+
dest_tmp = input(f"Enter project directory [{cwd}]: ")
|
|
41
|
+
if dest_tmp == "":
|
|
42
|
+
dest = cwd
|
|
43
|
+
else:
|
|
44
|
+
dest = Path(dest_tmp)
|
|
45
|
+
if dest.is_dir():
|
|
46
|
+
if not any(dest.iterdir()):
|
|
47
|
+
dir_needed = False
|
|
48
|
+
else:
|
|
49
|
+
print(f"ERROR: {dest} is not empty...")
|
|
50
|
+
else:
|
|
51
|
+
print(f"ERROR: {dest} is not valid directory...")
|
|
52
|
+
|
|
53
|
+
projname_needed = True
|
|
54
|
+
whitelist = f"_{string.ascii_letters}{string.digits}"
|
|
55
|
+
while projname_needed:
|
|
56
|
+
projname = input("Enter name of the project (max 8 chars) [project]: ")
|
|
57
|
+
if projname == "":
|
|
58
|
+
projname = "project"
|
|
59
|
+
# replace spaces
|
|
60
|
+
projname = projname.replace(" ", "_")
|
|
61
|
+
# keep only valid ascii chars
|
|
62
|
+
projname = (
|
|
63
|
+
unicodedata.normalize("NFKD", projname).encode("ASCII", "ignore").decode()
|
|
64
|
+
)
|
|
65
|
+
# keep only whitelisted chars
|
|
66
|
+
projname = "".join(c for c in projname if c in whitelist)
|
|
67
|
+
if len(projname) < 1:
|
|
68
|
+
print("ERROR: project name may not be empty")
|
|
69
|
+
elif len(projname) > 8:
|
|
70
|
+
print("ERROR: project name may not be longer than 8 characters")
|
|
71
|
+
else:
|
|
72
|
+
projname_needed = False
|
|
73
|
+
|
|
74
|
+
set_needed = True
|
|
75
|
+
sets = {1: "metapelite", 2: "metabasite", 3: "igneous"}
|
|
76
|
+
while set_needed:
|
|
77
|
+
print("Choose THEMOCALC input set")
|
|
78
|
+
for k in sets:
|
|
79
|
+
print(f" {k}. {sets[k]} set")
|
|
80
|
+
try:
|
|
81
|
+
n = input("Which set? [1]: ")
|
|
82
|
+
if n == "":
|
|
83
|
+
n = "1"
|
|
84
|
+
if int(n) in [1, 2, 3]:
|
|
85
|
+
set_needed = False
|
|
86
|
+
except ValueError:
|
|
87
|
+
print("ERROR: enter 1, 2 or 3")
|
|
88
|
+
tcset = sets[int(n)]
|
|
89
|
+
|
|
90
|
+
if tcset == "metapelite":
|
|
91
|
+
ds = "62"
|
|
92
|
+
systems = {1: "mp50MnNCKFMASHTO", 2: "mp50NCKFMASHTO", 3: "mp50KFMASH"}
|
|
93
|
+
system_needed = True
|
|
94
|
+
while system_needed:
|
|
95
|
+
print("Choose system for metapelite set")
|
|
96
|
+
for k in systems:
|
|
97
|
+
print(f" {k}. {systems[k]}")
|
|
98
|
+
try:
|
|
99
|
+
v = input("Which system? [1]: ")
|
|
100
|
+
if v == "":
|
|
101
|
+
v = "1"
|
|
102
|
+
if int(v) in [1, 2, 3]:
|
|
103
|
+
system_needed = False
|
|
104
|
+
except ValueError:
|
|
105
|
+
print("ERROR: enter 1, 2 or 3")
|
|
106
|
+
system = systems[int(v)]
|
|
107
|
+
guesses = metapelite_guesses[system]
|
|
108
|
+
elif tcset == "metabasite":
|
|
109
|
+
ds = "62"
|
|
110
|
+
system = "mb50NCKFMASHTO"
|
|
111
|
+
guesses = metabasite_guesses[system]
|
|
112
|
+
else:
|
|
113
|
+
ds = "633"
|
|
114
|
+
systems = {1: "ig50NCKFMASHTOCr", 2: "ig50NCKFMASTOCr"}
|
|
115
|
+
system_needed = True
|
|
116
|
+
while system_needed:
|
|
117
|
+
print("Choose system for igneous set")
|
|
118
|
+
for k in systems:
|
|
119
|
+
print(f" {k}. {systems[k]}")
|
|
120
|
+
try:
|
|
121
|
+
v = input("Which system? [1]: ")
|
|
122
|
+
if v == "":
|
|
123
|
+
v = "1"
|
|
124
|
+
if int(v) in [1, 2]:
|
|
125
|
+
system_needed = False
|
|
126
|
+
except ValueError:
|
|
127
|
+
print("ERROR: enter 1 or 2")
|
|
128
|
+
system = systems[int(v)]
|
|
129
|
+
guesses = igneous_guesses[system]
|
|
130
|
+
|
|
131
|
+
# create prefs file
|
|
132
|
+
with open(dest / "tc-prefs.txt", "w") as f:
|
|
133
|
+
content = string.Template(tcpref_tmpl).substitute(dataset=ds, project=projname)[
|
|
134
|
+
1:
|
|
135
|
+
]
|
|
136
|
+
f.write(content)
|
|
137
|
+
|
|
138
|
+
# download executable
|
|
139
|
+
comp = platform.system()
|
|
140
|
+
if comp == "Linux":
|
|
141
|
+
with urlopen(exe_urls["linux"]) as zip:
|
|
142
|
+
with ZipFile(BytesIO(zip.read())) as zfile:
|
|
143
|
+
source = zfile.open("tc350beta-linux-bundle/tc350beta")
|
|
144
|
+
target = open(dest / "tc350beta", "wb")
|
|
145
|
+
with source, target:
|
|
146
|
+
shutil.copyfileobj(source, target)
|
|
147
|
+
Path(dest / "tc350beta").chmod(33261)
|
|
148
|
+
elif comp == "Windows":
|
|
149
|
+
with urlopen(exe_urls["win"]) as zip:
|
|
150
|
+
with ZipFile(BytesIO(zip.read())) as zfile:
|
|
151
|
+
source = zfile.open("tc350-win-bundle/tc350beta.exe")
|
|
152
|
+
target = open(dest / "tc350beta.exe", "wb")
|
|
153
|
+
with source, target:
|
|
154
|
+
shutil.copyfileobj(source, target)
|
|
155
|
+
Path(dest / "tc350beta.exe").chmod(33261)
|
|
156
|
+
elif comp == "Darwin":
|
|
157
|
+
proc = platform.processor()
|
|
158
|
+
if proc == "x86_64":
|
|
159
|
+
with urlopen(exe_urls["mac"]) as zip:
|
|
160
|
+
with ZipFile(BytesIO(zip.read())) as zfile:
|
|
161
|
+
source = zfile.open("tc350beta-bundle/tc350beta")
|
|
162
|
+
target = open(dest / "tc350beta", "wb")
|
|
163
|
+
with source, target:
|
|
164
|
+
shutil.copyfileobj(source, target)
|
|
165
|
+
Path(dest / "tc350beta").chmod(33261)
|
|
166
|
+
elif proc == "arm":
|
|
167
|
+
with urlopen(exe_urls["macasi"]) as zip:
|
|
168
|
+
with ZipFile(BytesIO(zip.read())) as zfile:
|
|
169
|
+
source = zfile.open("tc350beta-macASi-bundle/tc350si")
|
|
170
|
+
target = open(dest / "tc350si", "wb")
|
|
171
|
+
with source, target:
|
|
172
|
+
shutil.copyfileobj(source, target)
|
|
173
|
+
Path(dest / "tc350si").chmod(33261)
|
|
174
|
+
else:
|
|
175
|
+
raise AttributeError(f"Unsupported MacOS {proc} processor")
|
|
176
|
+
else:
|
|
177
|
+
raise AttributeError(f"Unsupported {comp} platform")
|
|
178
|
+
|
|
179
|
+
# download set
|
|
180
|
+
tcset_url = set_urls[tcset]
|
|
181
|
+
prefix = tcset_url.split("/")[-1].split(".")[0]
|
|
182
|
+
with urlopen(tcset_url) as zip:
|
|
183
|
+
with ZipFile(BytesIO(zip.read())) as zfile:
|
|
184
|
+
with zfile.open(f"{prefix}/samecoding_and_starting_guesses.txt") as f:
|
|
185
|
+
scsg = f.readlines()
|
|
186
|
+
scsg = [s.decode("mac-roman") for s in scsg]
|
|
187
|
+
samecoding = "".join([ln for ln in scsg if ln.startswith("samecoding")])
|
|
188
|
+
source = zfile.open(f"{prefix}/tc-ds{ds}.txt")
|
|
189
|
+
target = open(dest / f"tc-ds{ds}.txt", "wb")
|
|
190
|
+
with source, target:
|
|
191
|
+
shutil.copyfileobj(source, target)
|
|
192
|
+
source = zfile.open(f"{prefix}/tc-{system}.txt")
|
|
193
|
+
target = open(dest / f"tc-{system}.txt", "wb")
|
|
194
|
+
with source, target:
|
|
195
|
+
shutil.copyfileobj(source, target)
|
|
196
|
+
|
|
197
|
+
# create project file
|
|
198
|
+
with open(dest / f"tc-{projname}.txt", "w") as f:
|
|
199
|
+
content = string.Template(tcprj_tmpl).substitute(
|
|
200
|
+
system=system, project=projname, samecoding=samecoding, guesses=guesses
|
|
201
|
+
)[1:]
|
|
202
|
+
f.write(content)
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
tcpref_tmpl = """
|
|
206
|
+
setpagewidth 700
|
|
207
|
+
dataset $dataset
|
|
208
|
+
scriptfile $project
|
|
209
|
+
calcmode 1
|
|
210
|
+
*
|
|
211
|
+
"""
|
|
212
|
+
|
|
213
|
+
metapelite_guesses = {
|
|
214
|
+
"mp50KFMASH": """
|
|
215
|
+
% --------------------------------------------------------
|
|
216
|
+
% Starting guesses in KFMASH
|
|
217
|
+
% for g liq mu bi opx sa cd st chl ctd sp1
|
|
218
|
+
% --------------------------------------------------------
|
|
219
|
+
|
|
220
|
+
xyzguess x(g) 0.828230
|
|
221
|
+
|
|
222
|
+
xyzguess q(liq) 0.361210
|
|
223
|
+
xyzguess fsp(liq) 0.298204
|
|
224
|
+
xyzguess ol(liq) 0.0452697
|
|
225
|
+
xyzguess x(liq) 0.811725
|
|
226
|
+
xyzguess h2o(liq) 0.273973
|
|
227
|
+
|
|
228
|
+
xyzguess x(mu) 0.424480
|
|
229
|
+
xyzguess y(mu) 0.855215 range 0.000 2.000
|
|
230
|
+
|
|
231
|
+
xyzguess x(bi) 0.515248
|
|
232
|
+
xyzguess y(bi) 0.181294
|
|
233
|
+
xyzguess Q(bi) 0.135847
|
|
234
|
+
|
|
235
|
+
xyzguess x(opx) 0.725005
|
|
236
|
+
xyzguess y(opx) 0.157290 range 0.000 2.000
|
|
237
|
+
xyzguess Q(opx) 0.258819
|
|
238
|
+
|
|
239
|
+
xyzguess x(sa) 0.1
|
|
240
|
+
xyzguess y(sa) 0.3
|
|
241
|
+
xyzguess Q(sa) 0.05 range -1 1
|
|
242
|
+
|
|
243
|
+
xyzguess x(cd) 0.529141
|
|
244
|
+
xyzguess h(cd) 0.259128
|
|
245
|
+
|
|
246
|
+
xyzguess x(st) 0.9
|
|
247
|
+
|
|
248
|
+
xyzguess x(chl) 0.412420
|
|
249
|
+
xyzguess y(chl) 0.610079
|
|
250
|
+
xyzguess QAl(chl) 0.389713 range -1.000 1.000
|
|
251
|
+
xyzguess Q1(chl) 0.0751369 range -1.000 1.000
|
|
252
|
+
xyzguess Q4(chl) 0.0641869 range -1.000 1.000
|
|
253
|
+
|
|
254
|
+
xyzguess x(ctd) 0.88
|
|
255
|
+
|
|
256
|
+
xyzguess x(sp1) 0.9
|
|
257
|
+
""",
|
|
258
|
+
"mp50NCKFMASHTO": """
|
|
259
|
+
% --------------------------------------------------------
|
|
260
|
+
% Starting guesses in NCKFMASHTO
|
|
261
|
+
% for g liq pl ksp ep ma mu pa bi opx sa cd st chl ctd sp mt ilmm hemm ilm hem mt1
|
|
262
|
+
% --------------------------------------------------------
|
|
263
|
+
|
|
264
|
+
xyzguess x(g) 0.833575
|
|
265
|
+
xyzguess z(g) 0.0735303
|
|
266
|
+
xyzguess f(g) 0.0524207
|
|
267
|
+
|
|
268
|
+
xyzguess q(L) 0.260829
|
|
269
|
+
xyzguess fsp(L) 0.332998
|
|
270
|
+
xyzguess na(L) 0.267890
|
|
271
|
+
xyzguess an(L) 0.0124108
|
|
272
|
+
xyzguess ol(L) 0.00460699
|
|
273
|
+
xyzguess x(L) 0.799969
|
|
274
|
+
xyzguess h2o(L) 0.376568
|
|
275
|
+
|
|
276
|
+
xyzguess ca(pl4tr) 0.410144
|
|
277
|
+
xyzguess k(pl4tr) 0.0182303
|
|
278
|
+
|
|
279
|
+
xyzguess na(k4tr) 0.159152
|
|
280
|
+
xyzguess ca(k4tr) 0.00450582
|
|
281
|
+
|
|
282
|
+
xyzguess f(ep) 0.379418
|
|
283
|
+
xyzguess Q(ep) 0.346850 range 0.000 0.500
|
|
284
|
+
|
|
285
|
+
xyzguess x(ma) 0.6
|
|
286
|
+
xyzguess y(ma) 0.96
|
|
287
|
+
xyzguess f(ma) 0.001
|
|
288
|
+
xyzguess n(ma) 0.05
|
|
289
|
+
xyzguess c(ma) 0.94
|
|
290
|
+
|
|
291
|
+
xyzguess x(mu) 0.501982
|
|
292
|
+
xyzguess y(mu) 0.839614
|
|
293
|
+
xyzguess f(mu) 0.0172093
|
|
294
|
+
xyzguess n(mu) 0.144000
|
|
295
|
+
xyzguess c(mu) 0.00179401
|
|
296
|
+
|
|
297
|
+
xyzguess x(pa) 0.501982
|
|
298
|
+
xyzguess y(pa) 0.998030
|
|
299
|
+
xyzguess f(pa) 0.00182412
|
|
300
|
+
xyzguess n(pa) 0.945628
|
|
301
|
+
xyzguess c(pa) 0.0116010
|
|
302
|
+
|
|
303
|
+
xyzguess x(bi) 0.698859
|
|
304
|
+
xyzguess y(bi) 0.268818
|
|
305
|
+
xyzguess f(bi) 0.158096
|
|
306
|
+
xyzguess t(bi) 0.0981352
|
|
307
|
+
xyzguess Q(bi) 0.0683120
|
|
308
|
+
|
|
309
|
+
xyzguess x(opx) 0.811609
|
|
310
|
+
xyzguess y(opx) 0.128377 range 0.000 2.000
|
|
311
|
+
xyzguess f(opx) 0.01
|
|
312
|
+
xyzguess c(opx) 0.01
|
|
313
|
+
xyzguess Q(opx) 0.216433
|
|
314
|
+
|
|
315
|
+
xyzguess x(sa) 0.1
|
|
316
|
+
xyzguess y(sa) 0.3
|
|
317
|
+
xyzguess f(sa) 0.05
|
|
318
|
+
xyzguess Q(sa) 0.05 range -1 1
|
|
319
|
+
|
|
320
|
+
xyzguess x(cd) 0.480790
|
|
321
|
+
xyzguess h(cd) 0.427693
|
|
322
|
+
|
|
323
|
+
xyzguess x(st) 0.88
|
|
324
|
+
xyzguess f(st) 0.05
|
|
325
|
+
xyzguess t(st) 0.04
|
|
326
|
+
|
|
327
|
+
xyzguess x(chl) 0.551609
|
|
328
|
+
xyzguess y(chl) 0.328449
|
|
329
|
+
xyzguess f(chl) 0.418479
|
|
330
|
+
xyzguess QAl(chl) 0.253018 range -1.000 1.000
|
|
331
|
+
xyzguess Q1(chl) 0.123137 range -1.000 1.000
|
|
332
|
+
xyzguess Q4(chl) 0.121632 range -1.000 1.000
|
|
333
|
+
|
|
334
|
+
xyzguess x(ctd) 0.990857
|
|
335
|
+
xyzguess f(ctd) 0.01
|
|
336
|
+
|
|
337
|
+
xyzguess x(sp) 0.6
|
|
338
|
+
xyzguess y(sp) 0.95
|
|
339
|
+
xyzguess z(sp) 0.01
|
|
340
|
+
|
|
341
|
+
xyzguess x(mt) 0.85
|
|
342
|
+
xyzguess y(mt) 0.05
|
|
343
|
+
xyzguess z(mt) 0.01
|
|
344
|
+
|
|
345
|
+
xyzguess i(ilmm) 0.890349
|
|
346
|
+
xyzguess g(ilmm) 0.0148847
|
|
347
|
+
xyzguess Q(ilmm) 0.828083 range -1.000 1.000
|
|
348
|
+
|
|
349
|
+
xyzguess i(hemm) 0.380640
|
|
350
|
+
xyzguess g(hemm) 0.00296953
|
|
351
|
+
xyzguess Q(hemm) -0.0102634 range -0.300 0.300
|
|
352
|
+
|
|
353
|
+
xyzguess x(ilm) 0.80
|
|
354
|
+
xyzguess Q(ilm) 0.8 range -0.99 0.99
|
|
355
|
+
|
|
356
|
+
xyzguess x(hem) 0.20
|
|
357
|
+
xyzguess Q(hem) 0.8 range -0.99 0.99
|
|
358
|
+
|
|
359
|
+
xyzguess x(mt1) 0.683170
|
|
360
|
+
xyzguess Q(mt1) 0.727847
|
|
361
|
+
""",
|
|
362
|
+
"mp50MnNCKFMASHTO": """
|
|
363
|
+
% --------------------------------------------------------
|
|
364
|
+
% Starting guesses in MnNCKFMASHTO
|
|
365
|
+
% for g liq pl ksp ep ma mu pa bi opx sa cd st chl ctd sp mt ilmm hemm ilm hem mt1
|
|
366
|
+
% --------------------------------------------------------
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
xyzguess x(g) 0.824169
|
|
370
|
+
xyzguess z(g) 0.0317199
|
|
371
|
+
xyzguess m(g) 0.118530
|
|
372
|
+
xyzguess f(g) 0.0260643
|
|
373
|
+
|
|
374
|
+
xyzguess q(L) 0.173460
|
|
375
|
+
xyzguess fsp(L) 0.311414
|
|
376
|
+
xyzguess na(L) 0.443405
|
|
377
|
+
xyzguess an(L) 0.00913561
|
|
378
|
+
xyzguess ol(L) 0.00192499
|
|
379
|
+
xyzguess x(L) 0.746571
|
|
380
|
+
xyzguess h2o(L) 0.485792
|
|
381
|
+
|
|
382
|
+
xyzguess ca(pl) 0.377110
|
|
383
|
+
xyzguess k(pl) 0.0370401
|
|
384
|
+
|
|
385
|
+
xyzguess na(ksp) 0.227897
|
|
386
|
+
xyzguess ca(ksp) 0.0114380
|
|
387
|
+
|
|
388
|
+
xyzguess f(ep) 0.379418
|
|
389
|
+
xyzguess Q(ep) 0.346850 range 0.000 0.500
|
|
390
|
+
|
|
391
|
+
xyzguess x(ma) 0.6
|
|
392
|
+
xyzguess y(ma) 0.96
|
|
393
|
+
xyzguess f(ma) 0.001
|
|
394
|
+
xyzguess n(ma) 0.05
|
|
395
|
+
xyzguess c(ma) 0.94
|
|
396
|
+
|
|
397
|
+
xyzguess x(mu) 0.501982
|
|
398
|
+
xyzguess y(mu) 0.839614
|
|
399
|
+
xyzguess f(mu) 0.0172093
|
|
400
|
+
xyzguess n(mu) 0.144000
|
|
401
|
+
xyzguess c(mu) 0.00179401
|
|
402
|
+
|
|
403
|
+
xyzguess x(pa) 0.501982
|
|
404
|
+
xyzguess y(pa) 0.998030
|
|
405
|
+
xyzguess f(pa) 0.00182412
|
|
406
|
+
xyzguess n(pa) 0.945628
|
|
407
|
+
xyzguess c(pa) 0.0116010
|
|
408
|
+
|
|
409
|
+
xyzguess x(bi) 0.607873
|
|
410
|
+
xyzguess m(bi) 0.00462747
|
|
411
|
+
xyzguess y(bi) 0.264120
|
|
412
|
+
xyzguess f(bi) 0.132141
|
|
413
|
+
xyzguess t(bi) 0.140166
|
|
414
|
+
xyzguess Q(bi) 0.0850578
|
|
415
|
+
|
|
416
|
+
xyzguess x(opx) 0.811609
|
|
417
|
+
xyzguess m(opx) 0.001
|
|
418
|
+
xyzguess y(opx) 0.128377 range 0.000 2.000
|
|
419
|
+
xyzguess f(opx) 0.01
|
|
420
|
+
xyzguess c(opx) 0.01
|
|
421
|
+
xyzguess Q(opx) 0.216433
|
|
422
|
+
|
|
423
|
+
xyzguess x(sa) 0.1
|
|
424
|
+
xyzguess y(sa) 0.3
|
|
425
|
+
xyzguess f(sa) 0.05
|
|
426
|
+
xyzguess Q(sa) 0.05 range -1 1
|
|
427
|
+
|
|
428
|
+
xyzguess x(cd) 0.407167
|
|
429
|
+
xyzguess m(cd) 0.0213095
|
|
430
|
+
xyzguess h(cd) 0.597164
|
|
431
|
+
|
|
432
|
+
xyzguess x(st) 0.88
|
|
433
|
+
xyzguess m(st) 0.02
|
|
434
|
+
xyzguess f(st) 0.05
|
|
435
|
+
xyzguess t(st) 0.04
|
|
436
|
+
|
|
437
|
+
xyzguess x(chl) 0.551609
|
|
438
|
+
xyzguess y(chl) 0.328449
|
|
439
|
+
xyzguess f(chl) 0.418479
|
|
440
|
+
xyzguess m(chl) 0.00762984
|
|
441
|
+
xyzguess QAl(chl) 0.253018 range -1.000 1.000
|
|
442
|
+
xyzguess Q1(chl) 0.123137 range -1.000 1.000
|
|
443
|
+
xyzguess Q4(chl) 0.121632 range -1.000 1.000
|
|
444
|
+
|
|
445
|
+
xyzguess x(ctd) 0.990857
|
|
446
|
+
xyzguess m(ctd) 0.001
|
|
447
|
+
xyzguess f(ctd) 0.01
|
|
448
|
+
|
|
449
|
+
xyzguess x(sp) 0.6
|
|
450
|
+
xyzguess y(sp) 0.95
|
|
451
|
+
xyzguess z(sp) 0.01
|
|
452
|
+
|
|
453
|
+
xyzguess x(mt) 0.85
|
|
454
|
+
xyzguess y(mt) 0.05
|
|
455
|
+
xyzguess z(mt) 0.01
|
|
456
|
+
|
|
457
|
+
xyzguess i(ilmm) 0.858568
|
|
458
|
+
xyzguess g(ilmm) 0.0294376
|
|
459
|
+
xyzguess m(ilmm) 0.0323075
|
|
460
|
+
xyzguess Q(ilmm) 0.691587 range -1.000 1.000
|
|
461
|
+
|
|
462
|
+
xyzguess i(hemm) 0.380640
|
|
463
|
+
xyzguess g(hemm) 0.00296953
|
|
464
|
+
xyzguess m(hemm) 0.0305831
|
|
465
|
+
xyzguess Q(hemm) -0.0102634 range -0.300 0.300
|
|
466
|
+
|
|
467
|
+
xyzguess x(ilm) 0.80
|
|
468
|
+
xyzguess Q(ilm) 0.8 range -0.99 0.99
|
|
469
|
+
|
|
470
|
+
xyzguess x(hem) 0.20
|
|
471
|
+
xyzguess Q(hem) 0.8 range -0.99 0.99
|
|
472
|
+
|
|
473
|
+
xyzguess x(mt1) 0.632160
|
|
474
|
+
xyzguess Q(mt1) 0.564334
|
|
475
|
+
""",
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
metabasite_guesses = {
|
|
479
|
+
"mb50NCKFMASHTO": """
|
|
480
|
+
% -------------------
|
|
481
|
+
xyzguess q(L) 0.151242
|
|
482
|
+
xyzguess fsp(L) 0.248743
|
|
483
|
+
xyzguess na(L) 0.807843
|
|
484
|
+
xyzguess wo(L) 0.0684231
|
|
485
|
+
xyzguess sil(L) 0.0655694
|
|
486
|
+
xyzguess ol(L) 0.0316206
|
|
487
|
+
xyzguess x(L) 0.768652
|
|
488
|
+
xyzguess yan(L) 0.0528953
|
|
489
|
+
% -------------------
|
|
490
|
+
xyzguess x(hb) 0.413657
|
|
491
|
+
xyzguess y(hb) 0.605749
|
|
492
|
+
xyzguess z(hb) 0.403086
|
|
493
|
+
xyzguess a(hb) 0.378213
|
|
494
|
+
xyzguess k(hb) 0.0242954
|
|
495
|
+
xyzguess c(hb) 0.587566
|
|
496
|
+
xyzguess f(hb) 0.0973952
|
|
497
|
+
xyzguess t(hb) 0.0102669
|
|
498
|
+
xyzguess Q1(hb) -0.0247639 range -1.000 1.000
|
|
499
|
+
xyzguess Q2(hb) 0.146095 range -1.000 1.000
|
|
500
|
+
% -------------------
|
|
501
|
+
xyzguess x(act) 0.326601
|
|
502
|
+
xyzguess y(act) 0.179241
|
|
503
|
+
xyzguess z(act) 0.235348
|
|
504
|
+
xyzguess a(act) 0.0871526
|
|
505
|
+
xyzguess k(act) 0.0294549
|
|
506
|
+
xyzguess c(act) 0.755176
|
|
507
|
+
xyzguess f(act) 0.0417267
|
|
508
|
+
xyzguess t(act) 0.00311795
|
|
509
|
+
xyzguess Q1(act) -0.0378596 range -1.000 1.000
|
|
510
|
+
xyzguess Q2(act) 0.0801985 range -1.000 1.000
|
|
511
|
+
% -------------------
|
|
512
|
+
xyzguess x(gl) 0.429246
|
|
513
|
+
xyzguess y(gl) 0.754475
|
|
514
|
+
xyzguess z(gl) 0.884454
|
|
515
|
+
xyzguess a(gl) 0.0919829
|
|
516
|
+
xyzguess k(gl) 0.0275627
|
|
517
|
+
xyzguess c(gl) 0.113398
|
|
518
|
+
xyzguess f(gl) 0.100787
|
|
519
|
+
xyzguess t(gl) 0.00965433
|
|
520
|
+
xyzguess Q1(gl) -0.00997847 range -1.000 1.000
|
|
521
|
+
xyzguess Q2(gl) 0.118435 range -1.000 1.000
|
|
522
|
+
% -------------------
|
|
523
|
+
xyzguess x(aug) 0.471978
|
|
524
|
+
xyzguess y(aug) 0.0971420
|
|
525
|
+
xyzguess f(aug) 0.102416
|
|
526
|
+
xyzguess z(aug) 0.832303
|
|
527
|
+
xyzguess j(aug) 0.0361891
|
|
528
|
+
xyzguess Qfm(aug) 0.523857 range 0.000 2.000
|
|
529
|
+
xyzguess Qal(aug) 0.0920156
|
|
530
|
+
% -------------------
|
|
531
|
+
xyzguess x(dio) 0.331989
|
|
532
|
+
xyzguess j(dio) 0.222852
|
|
533
|
+
xyzguess f(dio) 0.327043
|
|
534
|
+
xyzguess Q(dio) 0.0512517 range -0.500 0.500
|
|
535
|
+
xyzguess Qaf(dio) 0.0122242 range -0.500 0.500 % less than f j
|
|
536
|
+
xyzguess Qfm(dio) -0.118441 range -0.500 0.500
|
|
537
|
+
% -------------------
|
|
538
|
+
xyzguess x(o) 0.300730
|
|
539
|
+
xyzguess j(o) 0.461012
|
|
540
|
+
xyzguess f(o) 0.377487
|
|
541
|
+
xyzguess Q(o) 0.336513 range -0.500 0.500
|
|
542
|
+
xyzguess Qaf(o) 0.113305 range -0.500 0.500 % less than f j
|
|
543
|
+
xyzguess Qfm(o) -0.0578233 range -0.500 0.500
|
|
544
|
+
% -------------------
|
|
545
|
+
xyzguess x(jd) 0.45
|
|
546
|
+
xyzguess j(jd) 0.86
|
|
547
|
+
xyzguess f(jd) 0.01
|
|
548
|
+
xyzguess Q(jd) 0.04 range -0.500 0.500
|
|
549
|
+
xyzguess Qaf(jd) 0.001 range -0.500 0.500 % less than f j
|
|
550
|
+
xyzguess Qfm(jd) 0.1 range -0.500 0.500
|
|
551
|
+
% -------------------
|
|
552
|
+
xyzguess x(opx) 0.539535
|
|
553
|
+
xyzguess y(opx) 0.0502431
|
|
554
|
+
xyzguess f(opx) 0.0226851
|
|
555
|
+
xyzguess c(opx) 0.0486599
|
|
556
|
+
xyzguess Q(opx) 0.387159
|
|
557
|
+
% -------------------
|
|
558
|
+
xyzguess x(g) 0.790028
|
|
559
|
+
xyzguess z(g) 0.354536
|
|
560
|
+
xyzguess f(g) 0.0339621
|
|
561
|
+
% -------------------
|
|
562
|
+
xyzguess x(ol) 0.15
|
|
563
|
+
% -------------------
|
|
564
|
+
xyzguess na(k4tr) 0.1
|
|
565
|
+
xyzguess ca(k4tr) 0.004
|
|
566
|
+
% -------------------
|
|
567
|
+
xyzguess ca(pl4tr) 0.557700
|
|
568
|
+
xyzguess k(pl4tr) 0.00702782
|
|
569
|
+
% -------------------
|
|
570
|
+
xyzguess ca(abc) 0.001
|
|
571
|
+
% -------------------
|
|
572
|
+
xyzguess x(sp) 0.4
|
|
573
|
+
xyzguess y(sp) 0.95
|
|
574
|
+
xyzguess z(sp) 0.01
|
|
575
|
+
% -------------------
|
|
576
|
+
xyzguess x(mt) 0.85
|
|
577
|
+
xyzguess y(mt) 0.09
|
|
578
|
+
xyzguess z(mt) 0.14
|
|
579
|
+
% -------------------
|
|
580
|
+
xyzguess x(ilm) 0.846768
|
|
581
|
+
xyzguess Q(ilm) 0.72 range -0.990 0.990
|
|
582
|
+
% -------------------
|
|
583
|
+
xyzguess x(hem) 0.1
|
|
584
|
+
xyzguess Q(hem) 0.01 range -0.990 0.990
|
|
585
|
+
% -------------------
|
|
586
|
+
xyzguess i(ilmm) 0.843297
|
|
587
|
+
xyzguess g(ilmm) 0.0194365
|
|
588
|
+
xyzguess Q(ilmm) 0.771192 range -0.990 0.990
|
|
589
|
+
% -------------------
|
|
590
|
+
xyzguess i(hemm) 0.489714
|
|
591
|
+
xyzguess g(hemm) 0.0151609
|
|
592
|
+
xyzguess Q(hemm) 0.000215607 range -0.050 0.050
|
|
593
|
+
% -------------------
|
|
594
|
+
xyzguess f(ep) 0.189427
|
|
595
|
+
xyzguess Q(ep) 0.182107 range 0.000 0.500
|
|
596
|
+
% -------------------
|
|
597
|
+
xyzguess x(bi) 0.371956
|
|
598
|
+
xyzguess y(bi) 0.0260159
|
|
599
|
+
xyzguess f(bi) 0.0131769
|
|
600
|
+
xyzguess t(bi) 0.0519677
|
|
601
|
+
xyzguess Q(bi) 0.173733 range -1.0 1.0
|
|
602
|
+
% -------------------
|
|
603
|
+
xyzguess x(mu) 0.275719
|
|
604
|
+
xyzguess y(mu) 0.334730
|
|
605
|
+
xyzguess f(mu) 0.0164856
|
|
606
|
+
xyzguess n(mu) 0.00226622
|
|
607
|
+
xyzguess c(mu) 3.36760e-5
|
|
608
|
+
% -------------------
|
|
609
|
+
xyzguess x(chl) 0.275349
|
|
610
|
+
xyzguess y(chl) 0.451480
|
|
611
|
+
xyzguess f(chl) 0.123838
|
|
612
|
+
xyzguess QAl(chl) 0.424591 range -1.000 1.000
|
|
613
|
+
xyzguess Q1(chl) 0.0859470 range -1.000 1.000
|
|
614
|
+
xyzguess Q4(chl) 0.0245983 range -1.000 1.000
|
|
615
|
+
% -------------------
|
|
616
|
+
"""
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
igneous_guesses = {
|
|
620
|
+
"ig50NCKFMASHTOCr": """
|
|
621
|
+
% silicate melt, hydrous (NCKFMASHTOCr)
|
|
622
|
+
xyzguess wo(L) 0.107216
|
|
623
|
+
xyzguess sl(L) 0.0873506
|
|
624
|
+
xyzguess fo(L) 0.0142023
|
|
625
|
+
xyzguess fa(L) 0.0109878
|
|
626
|
+
xyzguess jd(L) 0.151907
|
|
627
|
+
xyzguess hm(L) 0.00154624
|
|
628
|
+
xyzguess ek(L) 9.81910e-6
|
|
629
|
+
xyzguess ti(L) 0.00413534
|
|
630
|
+
xyzguess kj(L) 0.0368694
|
|
631
|
+
xyzguess yct(L) 0.0885231
|
|
632
|
+
xyzguess h2o(L) 0.219727
|
|
633
|
+
|
|
634
|
+
% aqueous fluid with dissolved silicates
|
|
635
|
+
xyzguess wo(fl) 0.000103865
|
|
636
|
+
xyzguess sl(fl) 5.87807e-5
|
|
637
|
+
xyzguess fo(fl) 1.41812e-8
|
|
638
|
+
xyzguess fa(fl) 3.11791e-8
|
|
639
|
+
xyzguess jd(fl) 0.000862050
|
|
640
|
+
xyzguess hm(fl) 0.000159068
|
|
641
|
+
xyzguess ek(fl) 3.29610e-7
|
|
642
|
+
xyzguess ti(fl) 0.000162396
|
|
643
|
+
xyzguess kj(fl) 0.00562408
|
|
644
|
+
xyzguess h2o(fl) 0.985936
|
|
645
|
+
|
|
646
|
+
% plagioclase
|
|
647
|
+
xyzguess ca(pl4tr) 0.8
|
|
648
|
+
xyzguess k(pl4tr) 0.0116338
|
|
649
|
+
|
|
650
|
+
% olivine
|
|
651
|
+
xyzguess x(ol) 0.102434
|
|
652
|
+
xyzguess c(ol) 0.00275804
|
|
653
|
+
xyzguess Q(ol) 0.000156353
|
|
654
|
+
|
|
655
|
+
% orthopyroxene
|
|
656
|
+
xyzguess x(opx) 0.0956777
|
|
657
|
+
xyzguess y(opx) 0.182193 range 0.000 2.000
|
|
658
|
+
xyzguess c(opx) 0.0489271
|
|
659
|
+
xyzguess Q(opx) -0.0475598 range -1.000 1.000
|
|
660
|
+
xyzguess f(opx) 0.0177886
|
|
661
|
+
xyzguess t(opx) 0.00823030
|
|
662
|
+
xyzguess cr(opx) 0.0205952
|
|
663
|
+
xyzguess j(opx) 0.00906326
|
|
664
|
+
|
|
665
|
+
% clinopyroxene
|
|
666
|
+
xyzguess x(cpx) 0.0964208
|
|
667
|
+
xyzguess y(cpx) 0.0825558 range 0.000 2.000
|
|
668
|
+
xyzguess o(cpx) 0.219892
|
|
669
|
+
xyzguess n(cpx) 0.118338
|
|
670
|
+
xyzguess Q(cpx) -0.0282419 range -1.000 1.000
|
|
671
|
+
xyzguess f(cpx) 0.0209603
|
|
672
|
+
xyzguess cr(cpx) 0.0154784
|
|
673
|
+
xyzguess t(cpx) 0.0127859
|
|
674
|
+
xyzguess k(cpx) 0.00527429
|
|
675
|
+
|
|
676
|
+
% pigeonite
|
|
677
|
+
xyzguess x(pig) 0.124
|
|
678
|
+
xyzguess y(pig) 0.112 range 0.000 2.000
|
|
679
|
+
xyzguess o(pig) 0.888
|
|
680
|
+
xyzguess n(pig) 0.028
|
|
681
|
+
xyzguess Q(pig) -0.0115 range -1.000 1.000
|
|
682
|
+
xyzguess f(pig) 0.004
|
|
683
|
+
xyzguess cr(pig) 0.001
|
|
684
|
+
xyzguess t(pig) 0.148
|
|
685
|
+
xyzguess k(pig) 0.001
|
|
686
|
+
|
|
687
|
+
% spinel
|
|
688
|
+
xyzguess x(spn) 0.144990
|
|
689
|
+
xyzguess y(spn) 0.0139965
|
|
690
|
+
xyzguess c(spn) 0.0451070
|
|
691
|
+
xyzguess t(spn) 0.0110937
|
|
692
|
+
xyzguess Q1(spn) 0.503697
|
|
693
|
+
xyzguess Q2(spn) 0.0807768
|
|
694
|
+
xyzguess Q3(spn) 0.0218537
|
|
695
|
+
|
|
696
|
+
% K-feldspar
|
|
697
|
+
xyzguess na(k4tr) 0.1
|
|
698
|
+
xyzguess ca(k4tr) 0.004
|
|
699
|
+
|
|
700
|
+
% muscovite
|
|
701
|
+
xyzguess x(mu) 0.275719
|
|
702
|
+
xyzguess y(mu) 0.334730
|
|
703
|
+
xyzguess f(mu) 0.0164856
|
|
704
|
+
xyzguess n(mu) 0.00226622
|
|
705
|
+
xyzguess c(mu) 3.36760e-5
|
|
706
|
+
|
|
707
|
+
% biotite
|
|
708
|
+
xyzguess x(bi) 0.457528
|
|
709
|
+
xyzguess y(bi) 0.0772161
|
|
710
|
+
xyzguess f(bi) 0.0158764
|
|
711
|
+
xyzguess t(bi) 0.119336
|
|
712
|
+
xyzguess Q(bi) 0.228603
|
|
713
|
+
|
|
714
|
+
% garnet
|
|
715
|
+
xyzguess x(g) 0.455851
|
|
716
|
+
xyzguess c(g) 0.286243
|
|
717
|
+
xyzguess f(g) 0.00253871
|
|
718
|
+
xyzguess cr(g) 0.000841005
|
|
719
|
+
xyzguess t(g) 0.0113394
|
|
720
|
+
|
|
721
|
+
% epidote
|
|
722
|
+
xyzguess f(ep) 0.189427
|
|
723
|
+
xyzguess Q(ep) 0.182107 range 0.000 0.500
|
|
724
|
+
|
|
725
|
+
% cordierite
|
|
726
|
+
xyzguess x(cd) 0.3
|
|
727
|
+
xyzguess h(cd) 0.7
|
|
728
|
+
|
|
729
|
+
% Al-spinel
|
|
730
|
+
xyzguess x(spn) 0.14499
|
|
731
|
+
xyzguess y(spn) 0.01398
|
|
732
|
+
xyzguess c(spn) 0.04504
|
|
733
|
+
xyzguess t(spn) 0.01114
|
|
734
|
+
xyzguess Q1(spn) 0.50372 range -1 1
|
|
735
|
+
xyzguess Q2(spn) 0.08077 range -1 1
|
|
736
|
+
xyzguess Q3(spn) 0.02183 range -1 1
|
|
737
|
+
|
|
738
|
+
% Cr-spinel
|
|
739
|
+
xyzguess x(cm) 0.2
|
|
740
|
+
xyzguess y(cm) 0.1
|
|
741
|
+
xyzguess c(cm) 0.8
|
|
742
|
+
xyzguess t(cm) 0.05
|
|
743
|
+
xyzguess Q1(cm) 0.05 range -1 1
|
|
744
|
+
xyzguess Q2(cm) 0.05 range -1 1
|
|
745
|
+
xyzguess Q3(cm) 0.05 range -1 1
|
|
746
|
+
|
|
747
|
+
% magnetite
|
|
748
|
+
xyzguess x(mt) 0.8
|
|
749
|
+
xyzguess y(mt) 0.55
|
|
750
|
+
xyzguess c(mt) 0.2
|
|
751
|
+
xyzguess t(mt) 0.01
|
|
752
|
+
xyzguess Q1(mt) 0.33 range -1 1
|
|
753
|
+
xyzguess Q2(mt) 0.14 range -1 1
|
|
754
|
+
xyzguess Q3(mt) 0.25 range -1 1
|
|
755
|
+
|
|
756
|
+
% hornblende
|
|
757
|
+
xyzguess x(hb) 0.355436
|
|
758
|
+
xyzguess y(hb) 0.393748
|
|
759
|
+
xyzguess z(hb) 0.0255955
|
|
760
|
+
xyzguess a(hb) 0.476446
|
|
761
|
+
xyzguess k(hb) 0.0647451
|
|
762
|
+
xyzguess c(hb) 0.924162
|
|
763
|
+
xyzguess f(hb) 0.103286
|
|
764
|
+
xyzguess t(hb) 0.0360617
|
|
765
|
+
xyzguess Q1(hb) -0.0186478 range -1.000 1.000
|
|
766
|
+
xyzguess Q2(hb) 0.111970 range -1.000 1.000
|
|
767
|
+
|
|
768
|
+
% ilmenite
|
|
769
|
+
xyzguess x(ilm) 0.913364
|
|
770
|
+
xyzguess Q(ilm) 0.627896 range -0.990 0.990
|
|
771
|
+
|
|
772
|
+
% --------------------------------------------------------
|
|
773
|
+
""",
|
|
774
|
+
"ig50NCKFMASTOCr": """
|
|
775
|
+
% silicate melt, dry (NCKFMASTOCr)
|
|
776
|
+
xyzguess wo(L) 0.228033
|
|
777
|
+
xyzguess sl(L) 0.123908
|
|
778
|
+
xyzguess fo(L) 0.383275
|
|
779
|
+
xyzguess fa(L) 0.0784050
|
|
780
|
+
xyzguess jd(L) 0.0408634
|
|
781
|
+
xyzguess hm(L) 0.0156940
|
|
782
|
+
xyzguess ek(L) 0.0178215
|
|
783
|
+
xyzguess ti(L) 0.00817432
|
|
784
|
+
xyzguess kj(L) 0.00163650
|
|
785
|
+
xyzguess yct(L) 0.000695507
|
|
786
|
+
|
|
787
|
+
% aqueous fluid with dissolved silicates
|
|
788
|
+
xyzguess wo(fl) 0.000103865
|
|
789
|
+
xyzguess sl(fl) 5.87807e-5
|
|
790
|
+
xyzguess fo(fl) 1.41812e-8
|
|
791
|
+
xyzguess fa(fl) 3.11791e-8
|
|
792
|
+
xyzguess jd(fl) 0.000862050
|
|
793
|
+
xyzguess hm(fl) 0.000159068
|
|
794
|
+
xyzguess ek(fl) 3.29610e-7
|
|
795
|
+
xyzguess ti(fl) 0.000162396
|
|
796
|
+
xyzguess kj(fl) 0.00562408
|
|
797
|
+
xyzguess h2o(fl) 0.985936
|
|
798
|
+
|
|
799
|
+
% plagioclase
|
|
800
|
+
xyzguess ca(pl4tr) 0.8
|
|
801
|
+
xyzguess k(pl4tr) 0.0116338
|
|
802
|
+
|
|
803
|
+
% olivine
|
|
804
|
+
xyzguess x(ol) 0.102434
|
|
805
|
+
xyzguess c(ol) 0.00275804
|
|
806
|
+
xyzguess Q(ol) 0.000156353
|
|
807
|
+
|
|
808
|
+
% orthopyroxene
|
|
809
|
+
xyzguess x(opx) 0.0956777
|
|
810
|
+
xyzguess y(opx) 0.182193 range 0.000 2.000
|
|
811
|
+
xyzguess c(opx) 0.0489271
|
|
812
|
+
xyzguess Q(opx) -0.0475598 range -1.000 1.000
|
|
813
|
+
xyzguess f(opx) 0.0177886
|
|
814
|
+
xyzguess t(opx) 0.00823030
|
|
815
|
+
xyzguess cr(opx) 0.0205952
|
|
816
|
+
xyzguess j(opx) 0.00906326
|
|
817
|
+
|
|
818
|
+
% clinopyroxene
|
|
819
|
+
xyzguess x(cpx) 0.0964208
|
|
820
|
+
xyzguess y(cpx) 0.0825558 range 0.000 2.000
|
|
821
|
+
xyzguess o(cpx) 0.219892
|
|
822
|
+
xyzguess n(cpx) 0.118338
|
|
823
|
+
xyzguess Q(cpx) -0.0282419 range -1.000 1.000
|
|
824
|
+
xyzguess f(cpx) 0.0209603
|
|
825
|
+
xyzguess cr(cpx) 0.0154784
|
|
826
|
+
xyzguess t(cpx) 0.0127859
|
|
827
|
+
xyzguess k(cpx) 0.00527429
|
|
828
|
+
|
|
829
|
+
% pigeonite
|
|
830
|
+
xyzguess x(pig) 0.124
|
|
831
|
+
xyzguess y(pig) 0.112 range 0.000 2.000
|
|
832
|
+
xyzguess o(pig) 0.888
|
|
833
|
+
xyzguess n(pig) 0.028
|
|
834
|
+
xyzguess Q(pig) -0.0115 range -1.000 1.000
|
|
835
|
+
xyzguess f(pig) 0.004
|
|
836
|
+
xyzguess cr(pig) 0.001
|
|
837
|
+
xyzguess t(pig) 0.148
|
|
838
|
+
xyzguess k(pig) 0.001
|
|
839
|
+
|
|
840
|
+
% spinel
|
|
841
|
+
xyzguess x(spn) 0.144990
|
|
842
|
+
xyzguess y(spn) 0.0139965
|
|
843
|
+
xyzguess c(spn) 0.0451070
|
|
844
|
+
xyzguess t(spn) 0.0110937
|
|
845
|
+
xyzguess Q1(spn) 0.503697
|
|
846
|
+
xyzguess Q2(spn) 0.0807768
|
|
847
|
+
xyzguess Q3(spn) 0.0218537
|
|
848
|
+
|
|
849
|
+
% K-feldspar
|
|
850
|
+
xyzguess na(k4tr) 0.1
|
|
851
|
+
xyzguess ca(k4tr) 0.004
|
|
852
|
+
|
|
853
|
+
% muscovite
|
|
854
|
+
xyzguess x(mu) 0.275719
|
|
855
|
+
xyzguess y(mu) 0.334730
|
|
856
|
+
xyzguess f(mu) 0.0164856
|
|
857
|
+
xyzguess n(mu) 0.00226622
|
|
858
|
+
xyzguess c(mu) 3.36760e-5
|
|
859
|
+
|
|
860
|
+
% biotite
|
|
861
|
+
xyzguess x(bi) 0.457528
|
|
862
|
+
xyzguess y(bi) 0.0772161
|
|
863
|
+
xyzguess f(bi) 0.0158764
|
|
864
|
+
xyzguess t(bi) 0.119336
|
|
865
|
+
xyzguess Q(bi) 0.228603
|
|
866
|
+
|
|
867
|
+
% garnet
|
|
868
|
+
xyzguess x(g) 0.455851
|
|
869
|
+
xyzguess c(g) 0.286243
|
|
870
|
+
xyzguess f(g) 0.00253871
|
|
871
|
+
xyzguess cr(g) 0.000841005
|
|
872
|
+
xyzguess t(g) 0.0113394
|
|
873
|
+
|
|
874
|
+
% epidote
|
|
875
|
+
xyzguess f(ep) 0.189427
|
|
876
|
+
xyzguess Q(ep) 0.182107 range 0.000 0.500
|
|
877
|
+
|
|
878
|
+
% cordierite
|
|
879
|
+
xyzguess x(cd) 0.3
|
|
880
|
+
xyzguess h(cd) 0.7
|
|
881
|
+
|
|
882
|
+
% Al-spinel
|
|
883
|
+
xyzguess x(spn) 0.14499
|
|
884
|
+
xyzguess y(spn) 0.01398
|
|
885
|
+
xyzguess c(spn) 0.04504
|
|
886
|
+
xyzguess t(spn) 0.01114
|
|
887
|
+
xyzguess Q1(spn) 0.50372 range -1 1
|
|
888
|
+
xyzguess Q2(spn) 0.08077 range -1 1
|
|
889
|
+
xyzguess Q3(spn) 0.02183 range -1 1
|
|
890
|
+
|
|
891
|
+
% Cr-spinel
|
|
892
|
+
xyzguess x(cm) 0.2
|
|
893
|
+
xyzguess y(cm) 0.1
|
|
894
|
+
xyzguess c(cm) 0.8
|
|
895
|
+
xyzguess t(cm) 0.05
|
|
896
|
+
xyzguess Q1(cm) 0.05 range -1 1
|
|
897
|
+
xyzguess Q2(cm) 0.05 range -1 1
|
|
898
|
+
xyzguess Q3(cm) 0.05 range -1 1
|
|
899
|
+
|
|
900
|
+
% magnetite
|
|
901
|
+
xyzguess x(mt) 0.8
|
|
902
|
+
xyzguess y(mt) 0.55
|
|
903
|
+
xyzguess c(mt) 0.2
|
|
904
|
+
xyzguess t(mt) 0.01
|
|
905
|
+
xyzguess Q1(mt) 0.33 range -1 1
|
|
906
|
+
xyzguess Q2(mt) 0.14 range -1 1
|
|
907
|
+
xyzguess Q3(mt) 0.25 range -1 1
|
|
908
|
+
|
|
909
|
+
% hornblende
|
|
910
|
+
xyzguess x(hb) 0.355436
|
|
911
|
+
xyzguess y(hb) 0.393748
|
|
912
|
+
xyzguess z(hb) 0.0255955
|
|
913
|
+
xyzguess a(hb) 0.476446
|
|
914
|
+
xyzguess k(hb) 0.0647451
|
|
915
|
+
xyzguess c(hb) 0.924162
|
|
916
|
+
xyzguess f(hb) 0.103286
|
|
917
|
+
xyzguess t(hb) 0.0360617
|
|
918
|
+
xyzguess Q1(hb) -0.0186478 range -1.000 1.000
|
|
919
|
+
xyzguess Q2(hb) 0.111970 range -1.000 1.000
|
|
920
|
+
|
|
921
|
+
% ilmenite
|
|
922
|
+
xyzguess x(ilm) 0.913364
|
|
923
|
+
xyzguess Q(ilm) 0.627896 range -0.990 0.990
|
|
924
|
+
|
|
925
|
+
% --------------------------------------------------------
|
|
926
|
+
""",
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
tcprj_tmpl = """
|
|
930
|
+
% ==================================================================
|
|
931
|
+
% Scriptfile for $project
|
|
932
|
+
%
|
|
933
|
+
% Use "%" for commenting (nothing is read between % and the line ending).
|
|
934
|
+
% No lines are read after the "*" character.
|
|
935
|
+
% ==================================================================
|
|
936
|
+
|
|
937
|
+
axfile $system
|
|
938
|
+
|
|
939
|
+
autoexit
|
|
940
|
+
|
|
941
|
+
% ============
|
|
942
|
+
% which phases
|
|
943
|
+
% ============
|
|
944
|
+
|
|
945
|
+
inexcess no
|
|
946
|
+
omit no
|
|
947
|
+
tozero no
|
|
948
|
+
|
|
949
|
+
% ================
|
|
950
|
+
% which conditions
|
|
951
|
+
% ================
|
|
952
|
+
|
|
953
|
+
diagramPT 2 10 350 800
|
|
954
|
+
|
|
955
|
+
% ================
|
|
956
|
+
% psbuilder blocks
|
|
957
|
+
% ================
|
|
958
|
+
|
|
959
|
+
%{PSBCALC-BEGIN}
|
|
960
|
+
calcP 11 15 0.08
|
|
961
|
+
calcT 370 425
|
|
962
|
+
calctatp yes
|
|
963
|
+
with bi ab pa sph mu g ep
|
|
964
|
+
zeromodeisopleth ab
|
|
965
|
+
%{PSBCALC-END}
|
|
966
|
+
|
|
967
|
+
% =====================
|
|
968
|
+
% pseudosection-related
|
|
969
|
+
% =====================
|
|
970
|
+
|
|
971
|
+
pseudosection
|
|
972
|
+
|
|
973
|
+
%{PSBBULK-BEGIN}
|
|
974
|
+
bulk H2O SiO2 Al2O3 CaO MgO FeOt K2O Na2O TiO2 MnO O
|
|
975
|
+
bulk 100.00 71.13 11.61 1.39 4.65 5.78 2.68 1.99 0.67 0.10 0.01
|
|
976
|
+
%{PSBBULK-END}
|
|
977
|
+
|
|
978
|
+
% ============
|
|
979
|
+
% set up x-eos
|
|
980
|
+
% ============
|
|
981
|
+
$samecoding
|
|
982
|
+
|
|
983
|
+
% ==========================
|
|
984
|
+
% ptbuilder starting guesses
|
|
985
|
+
% ==========================
|
|
986
|
+
|
|
987
|
+
%{PSBGUESS-BEGIN}
|
|
988
|
+
%{PSBGUESS-END}
|
|
989
|
+
$guesses
|
|
990
|
+
|
|
991
|
+
*
|
|
992
|
+
"""
|