Package: melts-cython-framework
MELTS for Excel Google App Engine ProjectMELTSis a software package designed to facilitate thermodynamic modeling of phase equilibria in magmatic systems. It provides the ability to compute equilibrium phase relations for igneous systems over the temperature range 500-2000 °C and the pressure range 0-4 GPa.This project contains source and configuration files for a Google App Engine implementation of the MELTS for Excel web services. The project is forked from xMelts, which contains the original Objective-C version that utilizes the BomBax webservice engine. That code is completely rewritten into Python, but still uses the underlying C-code MELTS engine. Cython is used to bridge Python and C. While the app is designed for Google App Engine, it may be implemented on any server that supports an internet connection, Python and a C compiler.The App maintains state by passing a session ID via browser cookies and/or XML I/O, which identifies the contact request and stores results in a datastore in Google Cloud. The store expires after 1 hour if subsequent requests from that session ID are not made. Expired session IDs are ignored. All input XML is obtained from webservice POST requests and that XML is verified against a schema. All output is delivered as XML. I/O XML schema are documented at the default service endpoint.Cloud DeploymentThe GitLab CI Yaml file in the source repository installs the App into Google Cloud using credentials specified in Settings->CI/CD->Variables.PyPI packageAn installable Python package (e.g.,pip install ...) is available athttps://pypi.org/project/melts-cython-framework/. The package installs as:pip install melts-cython-frameworkand requirs a C-compiler along with a Python 3.6+ installation. This package is deployed from the GitLab repository using the pipeline generated by the  GitLab CI Yaml file.Local Development/DeploymentThe following configuration commands should be executed in a terminal window.Install the Google Coud SDK,gcloud, if not already installed:curl https://sdk.cloud.google.com | bashand initialize the SDK against a Google Cloud project ID that has been previously established athttps://console.cloud.google.com.gcloud initInstall the Google Cloud Datastore Python API and the datastore emulatorPython API docs:https://googleapis.dev/python/datastore/latest/entities.htmlpip install google-cloud-datastore
gcloud components install cloud-datastore-emulatorExecute the following datastore emulator configuration commands(authentication docs:https://googleapis.dev/python/google-api-core/latest/auth.html)gcloud auth application-default login
gcloud auth login
gcloud beta emulators datastore start
(place in background)
(gcloud beta emulators datastore env-init)Clone the repository, navigate to the project root, and build and install the MELTS Python frameworkmake clean
make installEither, start the server for local (single-user) testing and debuggingpython main.pyOr, start agunicornweb server for production accessgunicorn -w 4 —-reload -b xxx.xxx.xxx.xxx:8080 -—timeout 5 main:appwherexxx.xxx.xxx.xxx is the IP address of the machine that will serve the requests (the machine the above command is executed on)-w n starts n worker threads (4 here) to process remote requests. Two workers per compute core is recommended--reload reloads workers if a failure occurs8080 is the port number that exposes the service--timeout n is the time a worker thread is allowed to respond to a particular request (in this case 5 seconds)and, main:app is the endpoint service (app) in the file main.pyTo monitor local datastore emulation execute this command in a separate terminal window:docker run -p 8080:8080 ghcr.io/remko/dsadmin:latest --project=pelagic-script-244221 --datastore-emulator-host=host.docker.internal:8081whereprojectpoints to the Google Cloud Project associated with yourauth loginaccount.There are four endpoints available for testing.Test the default service endpoint using a browser athttp://127.0.0.1:8080/which should retrieve a genrated HTML page with links to the webservice XML schema documentation.To test endpoints that retrieve XML data, open another terminal window and execute the followingcurlcommands:Get a list of oxides known to MELTScurl -X POST -H "Content-Type: text/xml" -i http://127.0.0.1:8080/Oxideswhich should return a list of oxides known to MELTS:HTTP/1.0 200 OK
Content-Type: application/xml; charset=utf-8
Content-Length: 388
Server: Werkzeug/1.0.1 Python/3.8.8
Date: Thu, 11 Nov 2021 17:00:16 GMT

<MELTSWSoxides><Oxide>SiO2</Oxide><Oxide>TiO2</Oxide><Oxide>Al2O3</Oxide><Oxide>Fe2O3</Oxide><Oxide>Cr2O3</Oxide><Oxide>FeO</Oxide><Oxide>MnO</Oxide><Oxide>MgO</Oxide><Oxide>NiO</Oxide><Oxide>CoO</Oxide><Oxide>CaO</Oxide><Oxide>Na2O</Oxide><Oxide>K2O</Oxide><Oxide>P2O5</Oxide><Oxide>H2O</Oxide><Oxide>CO2</Oxide><Oxide>SO3</Oxide><Oxide>Cl2O-1</Oxide><Oxide>F2O-1</Oxide></MELTSWSoxides>Get a list of phases known to MELTS for the modelType specified:curl -X POST -H "Content-Type: text/xml" -d 'MELTS_v1.0.x' -i http://127.0.0.1:8080/Phaseswhich should return a list of phases known to MELTS_v1.0.x (rhyolite-MELTS)HTTP/1.0 200 OK
Content-Type: application/xml; charset=utf-8
Content-Length: 931
Server: Werkzeug/1.0.1 Python/3.8.8
Date: Thu, 11 Nov 2021 17:04:48 GMT

<MELTSWSphases><Phase>olivine</Phase><Phase>fayalite</Phase><Phase>sphene</Phase><Phase>garnet</Phase><Phase>melilite</Phase><Phase>orthopyroxene</Phase><Phase>clinopyroxene</Phase><Phase>aegirine</Phase><Phase>aenigmatite</Phase><Phase>cummingtonite</Phase><Phase>amphibole</Phase><Phase>hornblende</Phase><Phase>biotite</Phase><Phase>muscovite</Phase><Phase>feldspar</Phase><Phase>quartz</Phase><Phase>tridymite</Phase><Phase>cristobalite</Phase><Phase>nepheline</Phase><Phase>kalsilite</Phase><Phase>leucite</Phase><Phase>corundum</Phase><Phase>sillimanite</Phase><Phase>rutile</Phase><Phase>perovskite</Phase><Phase>spinel</Phase><Phase>rhm-oxide</Phase><Phase>ortho-oxide</Phase><Phase>whitlockite</Phase><Phase>apatite</Phase><Phase>water</Phase><Phase>alloy-solid</Phase><Phase>alloy-liquid</Phase><Phase>olivine</Phase><Phase>fayalite</Phase><Phase>sphene</Phase><Phase>garnet</Phase><Phase>melilite</Phase></MELTSWSphases>Similarly,curl -X POST -H "Content-Type: text/xml" -d 'MELTS_v1.1.x' -i http://127.0.0.1:8080/Phasesgenerates a list of known phases for MELTS_v1.1.x,curl -X POST -H "Content-Type: text/xml" -d 'MELTS_v1.2.x' -i http://127.0.0.1:8080/Phasesgenerates a list of known phases for MELTS_v1.2.x, andcurl -X POST -H "Content-Type: text/xml" -d 'MELTS_v5.6.1' -i http://127.0.0.1:8080/Phasesgenerates a list of known phases for MELTS_v5.6.1 (pMELTS).Perform a MELTS calculation for a specified input composition at fixed T and P:TheTestendpoint specified here generates DEBUG printout to the terminal running the main app. SubstituteComputeforTestto eliminate this debuging informationcurl -X POST -H "Content-Type: text/xml" -d '<MELTSinput><initialize><modelSelection>MELTS_v1.2.x</modelSelection><SiO2>77.7</SiO2><TiO2>0.08</TiO2><Al2O3>12.5</Al2O3><Fe2O3>0.1924</Fe2O3><FeO>0.4869</FeO><MgO>0.03</MgO><CaO>0.43</CaO><Na2O>3.99</Na2O><K2O>4.89</K2O><H2O>5.47</H2O></initialize><calculationMode>equilibrate</calculationMode><title>MELTS Web Service called from Excel. [created 2014Apr23] (version 1.0.3)</title><sessionID></sessionID><constraints><setTP><initialT>757</initialT><initialP>1750</initialP><fo2Path>nno</fo2Path><fo2Offset>0</fo2Offset></setTP></constraints><suppressPhase>amphibole</suppressPhase><suppressPhase>leucite</suppressPhase><fractionationMode>fractionateNone</fractionationMode></MELTSinput>' -i http://127.0.0.1:8080/Testwhich will generate output like (note that the XML string is long and continues on one line):HTTP/1.0 200 OK
Content-Type: application/xml; charset=utf-8
Content-Length: 30742
Server: Werkzeug/1.0.1 Python/3.8.8
Date: Thu, 11 Nov 2021 00:53:30 GMT

<?xml version="1.0" encoding="UTF-8"?><MELTSoutput><status>Success: Equilibrate</status><sessionID>1636592010.112680.9746532025001503</sessionID><title>MELTS Web Service called from Excel. [created 2014Apr23] (version 1.0.3)</title><time>Wed Nov 10 16:53:30 2021</time><release>MELTS Web Services, MELTS v.1.2.x</release><buildDate>Nov  8 2021</buildDate><buildTime>13:34:31</buildTime><temperature>757.00000000000011369</temperature><pressure>1750</pressure><log_fO2>-14.84035917099451396</log_fO2><deltaHM>-5.1707207688200789164</deltaHM><deltaNNO>0</deltaNNO><deltaFMQ>0.40942629714119505024</deltaFMQ><deltaCOH>1.8933933165073035809</deltaCOH><deltaIW>4.7379540358200245009</deltaIW><liquid><mass>95.257878539150439678</mass><density>2.1684053000488523466</density><viscosity>5.9923403370279624269</viscosity><gibbsFreeEnergy>-1554251.1308688730933</gibbsFreeEnergy><enthalpy>-1300871.1365733931307</enthalpy><entropy>245.96417443622732435</entropy><volume>43.929923311386644968</volume><dvdt>0.0045999280015925087667</dvdt><dvdp>-0.00044198957092661072914</dvdp><d2vdt2>0</d2vdt2><d2vdtdp>7.3878782721609045846e-08</d2vdtdp><d2vdp2>5.5817298977780984587e-09</d2vdp2><heatCapacity>127.88288035137705378</heatCapacity><SiO2>74.341358532970559736</SiO2><TiO2>0.083982554752269206189</TiO2><Al2O3>10.88611714542891562</Al2O3><Fe2O3>0.21607004335321830513</Fe2O3><FeO>0.49845868783029528837</FeO><MgO>0.031493458032104112987</MgO><CaO>0.29280491120025436969</CaO><Na2O>3.1096193928343995871</Na2O><K2O>4.9738561246276438155</K2O><H2O>5.5662391489703306746</H2O></liquid><solid><name>feldspar</name><formula>K0.08Na0.85Ca0.07Al1.07Si2.93O8</formula><mass>10.345047699436058508</mass><density>2.562169247797019711</density><gibbsFreeEnergy>-168016.33122939470923</gibbsFreeEnergy><enthalpy>-145522.16198166285176</enthalpy><entropy>21.835819295958692976</entropy><volume>4.037612936120765994</volume><dvdt>0.00013041451146846285369</dvdt><dvdp>-7.459424660115498221e-06</dvdp><d2vdt2>-1.5680651273945810772e-07</d2vdt2><d2vdtdp>5.4296495658622212108e-10</d2vdtdp><d2vdp2>3.610457577397163922e-11</d2vdp2><heatCapacity>12.68528739053502008</heatCapacity><SiO2>66.543907619369150552</SiO2><Al2O3>20.590680815261102055</Al2O3><CaO>1.4604113748114235793</CaO><Na2O>9.9355997730193781337</Na2O><K2O>1.4694004175389612232</K2O><component><name>albite</name><formula>NaAlSi3O8</formula><moleFraction>0.84851623873020143307</moleFraction></component><component><name>anorthite</name><formula>CaAl2Si2O8</formula><moleFraction>0.068921078772056484918</moleFraction></component><component><name>sanidine</name><formula>KAlSi3O8</formula><moleFraction>0.082562682497742193033</moleFraction></component></solid><solid><name>fluid</name><formula>H2O1.00CO20.00</formula><mass>0.16771867227517700538</mass><density>0.41398884832569243786</density><gibbsFreeEnergy>-3667.8008291880564684</gibbsFreeEnergy><enthalpy>-2118.1634029211199959</enthalpy><entropy>1.5042832852176251102</entropy><volume>0.40512847858942740986</volume><dvdt>0.00068382079960127096011</dvdt><dvdp>-0.00017260896481820765217</dvdp><d2vdt2>8.4631419340172041256e-08</d2vdt2><d2vdtdp>-5.2005852520757845594e-07</d2vdtdp><d2vdp2>2.4927007813864158492e-07</d2vdp2><heatCapacity>0.68897982980606031767</heatCapacity><H2O>100</H2O><component><name>h2oduan</name><formula>H2O</formula><moleFraction>1</moleFraction></component><component><name>co2duan</name><formula>CO2</formula><moleFraction>0</moleFraction></component></solid><totalSolids><mass>10.51276637171123518</mass><density>2.3662791484786418472</density><gibbsFreeEnergy>-171684.13205858276342</gibbsFreeEnergy><enthalpy>-147640.32538458396448</enthalpy><entropy>23.340102581176317642</entropy><volume>4.4427414147101940145</volume><dvdt>0.00081423531106973373248</dvdt><dvdp>-0.00018006838947832315293</dvdp><d2vdt2>-7.2175093399286079694e-08</d2vdt2><d2vdtdp>-5.1951556025099213797e-07</d2vdtdp><d2vdp2>2.4930618271441561351e-07</d2vdp2><heatCapacity>13.374267220341080176</heatCapacity></totalSolids><system><mass>105.77064491086167664</mass><density>2.1865788355835369394</density><viscosity>6.1686280808412492505</viscosity><gibbsFreeEnergy>-1725935.2629274558276</gibbsFreeEnergy><enthalpy>-1448511.4619579771534</enthalpy><entropy>269.3042770174036491</entropy><volume>48.372664726096843424</volume><dvdt>43.930737546697713469</dvdt><dvdp>43.929743242997162156</dvdp><d2vdt2>43.929923239211554176</d2vdt2><d2vdtdp>43.929922791871085508</d2vdtdp><d2vdp2>43.929923560692827778</d2vdp2><heatCapacity>141.25714757171812153</heatCapacity></system><oxygen><moles>1.5456642644947953258</moles><mass>49.459401666716054535</mass><gibbsFreeEnergy>-352754.05785415176069</gibbsFreeEnergy><enthalpy>36713.579631822474767</enthalpy><entropy>378.06886131725883615</entropy><volume>132385.7755357689457</volume><dvdt>128.51116394289076084</dvdt><dvdp>-132385.7755357689457</dvdp><d2vdt2>0</d2vdt2><d2vdtdp>-128.51116394289076084</d2vdtdp><d2vdp2>264771.5510715378914</d2vdp2><heatCapacity>54.031508313935177057</heatCapacity></oxygen><potentialSolid><name>olivine</name><formula>(Ca0.00Mg1.00Fe''0.00Mn0.00Co0.00Ni0.00)2SiO4</formula><affinity>7579.1312451820931528</affinity><density>3.1440662472830926966</density><gibbsFreeEnergy>-5.4230202876351501464e+83</gibbsFreeEnergy><enthalpy>-4.7525493617563887443e+83</enthalpy><entropy>6.5084786281489260325e+79</entropy><volume>1.0363107332329559566e+79</volume><dvdt>4.2910806216235009185e+74</dvdt><dvdp>-7.9499911193997256282e+72</dvdp><d2vdt2>1.792330362851599423e+71</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>2.7319828057411014978e+67</d2vdp2><heatCapacity>4.0768209595892479772e+79</heatCapacity><SiO2>42.705932273864149806</SiO2><FeO>3.5685136644920424962e-76</FeO><MnO>-4.354352439886222311e-76</MnO><MgO>57.294067726135857299</MgO><NiO>-4.5858892230676042129e-76</NiO><CoO>-4.5995899150098373967e-76</CoO><CaO>1.7961988338484700512e-79</CaO><component><name>tephroite</name><formula>Mn2SiO4</formula><moleFraction>-1</moleFraction></component><component><name>fayalite</name><formula>Fe2SiO4</formula><moleFraction>0.8091593206278746564</moleFraction></component><component><name>co-olivine</name><formula>Co2SiO4</formula><moleFraction>-1</moleFraction></component><component><name>ni-olivine</name><formula>Ni2SiO4</formula><moleFraction>-0.99999999999999988898</moleFraction></component><component><name>monticellite</name><formula>CaMgSiO4</formula><moleFraction>0.0010435967939094979717</moleFraction></component><component><name>forsterite</name><formula>Mg2SiO4</formula><moleFraction>2.3158417847463239085e+77</moleFraction></component></potentialSolid><potentialSolid><name>fayalite</name><formula>Fe2SiO4</formula><affinity>9108.6775469835847616</affinity><density>4.3084842135945784491</density><gibbsFreeEnergy>-1712246.0826108332258</gibbsFreeEnergy><enthalpy>-1346921.4463664137293</enthalpy><entropy>354.6324673537052945</entropy><volume>47.296703410684727942</volume><dvdt>0.0015528307947007889515</dvdt><dvdp>-4.1211945089610977212e-05</dvdp><d2vdt2>3.1626099977907446008e-07</d2vdt2><d2vdtdp>-8.3935294182468328446e-09</d2vdtdp><d2vdp2>2.2276327509300604124e-10</d2vdp2><heatCapacity>188.80306934745576086</heatCapacity><SiO2>29.485305267373497884</SiO2><FeO>70.514694732626509222</FeO><component><name>fayalite</name><formula>Fe2SiO4</formula><moleFraction>1</moleFraction></component></potentialSolid><potentialSolid><name>sphene</name><formula>CaTiSiO5</formula><affinity>26897.596473163226619</affinity><density>3.4628322124270947135</density><gibbsFreeEnergy>-2810815.8750947774388</gibbsFreeEnergy><enthalpy>-2455258.4388061463833</enthalpy><entropy>345.15112972735136054</entropy><volume>56.619116368500002068</volume><dvdt>0.001402379999999999946</dvdt><dvdp>-3.2833500000000003362e-05</dvdp><d2vdt2>0</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>0</d2vdp2><heatCapacity>197.9257603423638443</heatCapacity><SiO2>30.645482945489366244</SiO2><TiO2>40.751699075549950635</TiO2><CaO>28.602817978960676015</CaO><component><name>sphene</name><formula>CaTiSiO5</formula><moleFraction>1</moleFraction></component></potentialSolid><potentialSolid><name>garnet</name><formula>(Ca0.06Fe''0.94Mg-0.0)3Al2Si3O12</formula><affinity>16038.279174851631979</affinity><density>4.2022376834114734123</density><gibbsFreeEnergy>-5073166.9336785133928</gibbsFreeEnergy><enthalpy>-4291936.595664572902</enthalpy><entropy>758.36561472983623844</entropy><volume>101.06248500401342483</volume><dvdt>0.0029410756273935611746</dvdt><dvdp>-5.5940741258933679284e-05</dvdp><d2vdt2>1.488115550226177773e-06</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>8.1455428790234609529e-11</d2vdp2><heatCapacity>432.39197148916929336</heatCapacity><SiO2>36.429620714298700079</SiO2><Al2O3>20.60666296045392798</Al2O3><FeO>40.839032348352311885</FeO><MgO>1.9734789331580166192e-308</MgO><CaO>2.1246839768950609439</CaO><component><name>almandine</name><formula>Fe3Al2Si3O12</formula><moleFraction>0.80467361730591602242</moleFraction></component><component><name>grossular</name><formula>Ca3Al2Si3O12</formula><moleFraction>0.053634015769271632668</moleFraction></component><component><name>pyrope</name><formula>Mg3Al2Si3O12</formula><moleFraction>6.9315341206167105426e-310</moleFraction></component></potentialSolid><potentialSolid><name>melilite</name><formula>Na0.00Ca2.00Al0.44Mg0.07Fe0.71Si1.78O7</formula><affinity>52142.519817109096039</affinity><density>3.117639262105719844</density><gibbsFreeEnergy>-3849564.5342419226654</gibbsFreeEnergy><enthalpy>-3283138.4230818878859</enthalpy><entropy>549.84818828329343887</entropy><volume>91.198481088691096375</volume><dvdt>0.0028836338045721853808</dvdt><dvdp>-7.3203179138586326608e-05</dvdp><d2vdt2>9.4250650739754747119e-07</d2vdt2><d2vdtdp>2.2694263156378066386e-317</d2vdtdp><d2vdp2>5.4541544011991649602e-11</d2vdp2><heatCapacity>295.13232099760455185</heatCapacity><SiO2>36.199620407333121364</SiO2><Al2O3>7.5828619161485102396</Al2O3><FeO>17.35127948136941356</FeO><MgO>0.90886621358362984502</MgO><CaO>37.957371981565316332</CaO><Na2O>1.5109759084320126578e-308</Na2O><component><name>akermanite</name><formula>Ca2MgSi2O7</formula><moleFraction>0.064115194807769004814</moleFraction></component><component><name>gehlenite</name><formula>Ca2Al2SiO7</formula><moleFraction>0.21145177544057200403</moleFraction></component><component><name>iron-akermanite</name><formula>Ca2FeSi2O7</formula><moleFraction>0.68665717209745003036</moleFraction></component><component><name>soda-melilite</name><formula>Na2Si3O7</formula><moleFraction>6.9314941775022545732e-310</moleFraction></component></potentialSolid><potentialSolid><name>orthopyroxene</name><formula>opx Na0.00Ca0.97Fe''-0.0Mg0.66Fe'''0.39Ti0.02Al0.43Si1.57O6</formula><affinity>7136.3917030187440105</affinity><density>3.3537909899844033923</density><gibbsFreeEnergy>-8444254.421733180061</gibbsFreeEnergy><enthalpy>-7321416.976698409766</enthalpy><entropy>1089.9747076006110547</entropy><volume>171.41513309363276107</volume><dvdt>0.0059357575037292057557</dvdt><dvdp>-0.00014373637332567071843</dvdp><d2vdt2>2.3387857782379923605e-06</d2vdt2><d2vdtdp>8.6315104769863390569e-25</d2vdtdp><d2vdp2>6.2959636348342847057e-10</d2vdp2><heatCapacity>636.97121670997307774</heatCapacity><SiO2>41.49330801895345644</SiO2><TiO2>0.72314557458329731254</TiO2><Al2O3>9.5849997496861085722</Al2O3><Fe2O3>13.729902497216519563</Fe2O3><FeO>-1.010696726001766077</FeO><MgO>11.611500941950932742</MgO><CaO>23.86783994361145389</CaO><component><name>diopside</name><formula>CaMgSi2O6</formula><moleFraction>1.4409120130395085546</moleFraction></component><component><name>clinoenstatite</name><formula>Mg2Si2O6</formula><moleFraction>0.081643765544061969175</moleFraction></component><component><name>hedenbergite</name><formula>CaFeSi2O6</formula><moleFraction>-0.080872524633844103392</moleFraction></component><component><name>alumino-buffonite</name><formula>CaTi0.5Mg0.5AlSiO6</formula><moleFraction>0.098189869630887313678</moleFraction></component><component><name>buffonite</name><formula>CaTi0.5Mg0.5FeSiO6</formula><moleFraction>0.0058741568265152574457</moleFraction></component><component><name>essenite</name><formula>CaFeAlSiO6</formula><moleFraction>0.98267643094134193849</moleFraction></component><component><name>jadeite</name><formula>NaAlSi2O6</formula><moleFraction>0</moleFraction></component></potentialSolid><potentialSolid><name>clinopyroxene</name><formula>cpx Na0.00Ca0.97Fe''-0.0Mg0.66Fe'''0.38Ti0.02Al0.41Si1.58O6</formula><affinity>7488.0011667207727442</affinity><density>3.3551056739978859511</density><gibbsFreeEnergy>-8678083.5045379046351</gibbsFreeEnergy><enthalpy>-7528479.5876581231132</enthalpy><entropy>1115.9577895255838484</entropy><volume>175.58390166526507414</volume><dvdt>0.0061187509852519503945</dvdt><dvdp>-0.00014765099067143221492</dvdp><d2vdt2>2.4144231395628537059e-06</d2vdt2><d2vdtdp>2.8680772617920914301e-27</d2vdtdp><d2vdp2>6.4541507202953518601e-10</d2vdp2><heatCapacity>652.74240889317457004</heatCapacity><SiO2>41.873317922865282981</SiO2><TiO2>0.79520882240876233915</TiO2><Al2O3>9.2312937553921852185</Al2O3><Fe2O3>13.208277426086272754</Fe2O3><FeO>-0.81430307939688251206</FeO><MgO>11.675634775865828985</MgO><CaO>24.03057037677853458</CaO><component><name>diopside</name><formula>CaMgSi2O6</formula><moleFraction>1.5118899057052779256</moleFraction></component><component><name>clinoenstatite</name><formula>Mg2Si2O6</formula><moleFraction>0.068014089492988899499</moleFraction></component><component><name>hedenbergite</name><formula>CaFeSi2O6</formula><moleFraction>-0.066768552949379722516</moleFraction></component><component><name>alumino-buffonite</name><formula>CaTi0.5Mg0.5AlSiO6</formula><moleFraction>0.10473713136846775351</moleFraction></component><component><name>buffonite</name><formula>CaTi0.5Mg0.5FeSiO6</formula><moleFraction>0.012526091829012726137</moleFraction></component><component><name>essenite</name><formula>CaFeAlSiO6</formula><moleFraction>0.96197733956445097281</moleFraction></component><component><name>jadeite</name><formula>NaAlSi2O6</formula><moleFraction>0</moleFraction></component></potentialSolid><potentialSolid><name>aegirine</name><formula>NaFeSi2O6</formula><affinity>142324.7343922778964</affinity><density>0.36096093566885945059</density><gibbsFreeEnergy>-2754290.7588493428193</gibbsFreeEnergy><enthalpy>-2299451.5739982943051</enthalpy><entropy>441.52714153380435391</entropy><volume>639.97000000000002728</volume><dvdt>0</dvdt><dvdp>0</dvdp><d2vdt2>0</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>0</d2vdp2><heatCapacity>250.70810879854303721</heatCapacity><SiO2>52.020099896901264458</SiO2><Fe2O3>34.564787293662405432</Fe2O3><Na2O>13.415112809436321228</Na2O><component><name>aegirine</name><formula>NaFeSi2O6</formula><moleFraction>1</moleFraction></component></potentialSolid><potentialSolid><name>aenigmatite</name><formula>Na2Fe5TiSi6O20</formula><affinity>53356.245067204814404</affinity><density>3.7699873985980936197</density><gibbsFreeEnergy>-9592507.641901794821</gibbsFreeEnergy><enthalpy>-7852964.1758291339502</enthalpy><entropy>1688.6312343568038159</entropy><volume>228.54600000000002069</volume><dvdt>0</dvdt><dvdp>0</dvdp><d2vdt2>0</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>0</d2vdp2><heatCapacity>881.91689549011994131</heatCapacity><SiO2>41.840679893032586278</SiO2><TiO2>9.273138225896678577</TiO2><FeO>41.692841333846637042</FeO><Na2O>7.1933405472240972145</Na2O><component><name>aenigmatite</name><formula>Na2Fe5TiSi6O20</formula><moleFraction>1</moleFraction></component></potentialSolid><potentialSolid><name>cummingtonite</name><formula>(Fe''0.00Mg1.00)7Si8O22(OH)2</formula><affinity>38578.273130620247684</affinity><density>2.901821284928485678</density><gibbsFreeEnergy>-4461510.1099180169404</gibbsFreeEnergy><enthalpy>-3896415.5357236228883</enthalpy><entropy>548.55562218550130638</entropy><volume>92.200056057828319922</volume><dvdt>0.0033663243728671733007</dvdt><dvdp>-0.00010279498751643591204</dvdp><d2vdt2>1.1348560227039594026e-06</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>0</d2vdp2><heatCapacity>339.96852024327318986</heatCapacity><SiO2>61.560174401181079418</SiO2><MgO>36.132611289356717066</MgO><H2O>2.307214309462201296</H2O><component><name>cummingtonite</name><formula>Mg7Si8O22(OH)2</formula><moleFraction>0.34264996808511383186</moleFraction></component><component><name>grunerite</name><formula>Fe7Si8O22(OH)2</formula><moleFraction>0</moleFraction></component></potentialSolid><potentialSolid><name>hornblende</name><formula>NaCa2Mg3.99Fe2+0.01Al1.00Fe3+0.00Al2Si6O22(OH)2</formula><affinity>59810.870715129334712</affinity><density>2.9949782704662619714</density><gibbsFreeEnergy>nan</gibbsFreeEnergy><enthalpy>nan</enthalpy><entropy>nan</entropy><volume>215.95239792378922061</volume><dvdt>0.0082029280786800311959</dvdt><dvdp>-0.00029193688854214688757</dvdp><d2vdt2>4.1611830116072696432e-06</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>1.4729888815518829277e-09</d2vdp2><heatCapacity>799.82146882916595132</heatCapacity><SiO2>43.116702924290990495</SiO2><Al2O3>18.291942402343185137</Al2O3><FeO>0.078337188503887766888</FeO><MgO>19.237772930577648367</MgO><CaO>13.414257579059707837</CaO><Na2O>3.7063585988664509152</Na2O><H2O>2.1546283763581262072</H2O><component><name>pargasite</name><formula>NaCa2Mg4AlAl2Si6O22(OH)2</formula><moleFraction>0.77178094048825129914</moleFraction></component><component><name>ferropargasite</name><formula>NaCa2Fe4AlAl2Si6O22(OH)2</formula><moleFraction>0.001763009628623676394</moleFraction></component><component><name>magnesiohastingsite</name><formula>NaCa2Mg4FeAl2Si6O22(OH)2</formula><moleFraction>0</moleFraction></component></potentialSolid><potentialSolid><name>biotite</name><formula>K(Fe''1.00Mg0.00)3AlSi3O10(OH)2</formula><affinity>20131.375346434655512</affinity><density>3.249930277627445907</density><gibbsFreeEnergy>-5329842.5235565872863</gibbsFreeEnergy><enthalpy>-4364056.2455128310248</enthalpy><entropy>937.52004857909651037</entropy><volume>144.78593588508152834</volume><dvdt>0.0048789444005018682907</dvdt><dvdp>-0.00024035140534224162714</dvdp><d2vdt2>0</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>0</d2vdp2><heatCapacity>521.51433507044623639</heatCapacity><SiO2>35.213234633935783791</SiO2><Al2O3>9.9593029466278135686</Al2O3><FeO>42.106575940858064655</FeO><K2O>9.2015341431802433192</K2O><H2O>3.5193523353980986634</H2O><component><name>annite</name><formula>KFe3Si3AlO10(OH)2</formula><moleFraction>0.91922977149440376898</moleFraction></component><component><name>phlogopite</name><formula>KMg3Si3AlO10(OH)2</formula><moleFraction>0</moleFraction></component></potentialSolid><potentialSolid><name>muscovite</name><formula>KAl2Si3AlO10(OH)2</formula><affinity>24291.121584265143611</affinity><density>2.7678601810788245885</density><gibbsFreeEnergy>-6476444.6749562164769</gibbsFreeEnergy><enthalpy>-5620377.7302846498787</enthalpy><entropy>831.01193483625377212</entropy><volume>143.90601184368736654</volume><dvdt>0.0047229484900000000269</dvdt><dvdp>-0.0002397573717982999942</dvdp><d2vdt2>0</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>1.2100732999999999556e-09</d2vdp2><heatCapacity>515.86818217857239688</heatCapacity><SiO2>45.2542295265627601</SiO2><Al2O3>38.397544516139241466</Al2O3><K2O>11.825336196484517615</K2O><H2O>4.5228897608134719377</H2O><component><name>muscovite</name><formula>KAl2Si3AlO10(OH)2</formula><moleFraction>1</moleFraction></component></potentialSolid><potentialSolid><name>quartz</name><formula>SiO2</formula><affinity>289.49326263437978923</affinity><density>2.5406983011149990581</density><gibbsFreeEnergy>-982126.45394465106074</gibbsFreeEnergy><enthalpy>-860256.27974386734422</enthalpy><entropy>118.30332883636721419</entropy><volume>23.648734670162010474</volume><dvdt>0</dvdt><dvdp>-2.928184692738000633e-05</dvdp><d2vdt2>0</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>3.3592380000000001099e-11</d2vdp2><heatCapacity>69.630602356070241399</heatCapacity><SiO2>100</SiO2><component><name>quartz</name><formula>SiO2</formula><moleFraction>1</moleFraction></component></potentialSolid><potentialSolid><name>tridymite</name><formula>SiO2</formula><affinity>2435.6401096405461431</affinity><density>2.1903286293800392492</density><gibbsFreeEnergy>-979980.30709764489438</gibbsFreeEnergy><enthalpy>-856358.57167525147088</enthalpy><entropy>120.00362609561071281</entropy><volume>27.4316370585022824</volume><dvdt>0.00013216972999999999808</dvdt><dvdp>-1.9896210128899998425e-05</dvdp><d2vdt2>0</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>2.044539000000000047e-10</d2vdp2><heatCapacity>70.632106188108579659</heatCapacity><SiO2>100</SiO2><component><name>tridymite</name><formula>SiO2</formula><moleFraction>1</moleFraction></component></potentialSolid><potentialSolid><name>cristobalite</name><formula>SiO2</formula><affinity>2500.149465067894198</affinity><density>2.1999498962482526565</density><gibbsFreeEnergy>-979915.79774221754633</gibbsFreeEnergy><enthalpy>-856003.37577358039562</enthalpy><entropy>120.28580494941233781</entropy><volume>27.311667462275607932</volume><dvdt>8.7059699999999989113e-05</dvdt><dvdp>-2.9501432960999999751e-05</dvdp><d2vdt2>0</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>3.0221100000000004341e-10</d2vdp2><heatCapacity>69.77804558183012773</heatCapacity><SiO2>100</SiO2><component><name>cristobalite</name><formula>SiO2</formula><moleFraction>1</moleFraction></component></potentialSolid><potentialSolid><name>nepheline</name><formula>neph Na0.04K3.95Ca0.00[]0.01Al3.99Si4.01O16</formula><affinity>40329.650202323282429</affinity><density>2.5313002197959697526</density><gibbsFreeEnergy>-9174427.767888866365</gibbsFreeEnergy><enthalpy>-7843581.2699366491288</enthalpy><entropy>1291.8958384237403152</entropy><volume>247.18467898345653566</volume><dvdt>0.015108321449141917311</dvdt><dvdp>-0.00049562929616468731891</dvdp><d2vdt2>9.9571369194453518349e-06</d2vdt2><d2vdtdp>9.1016097281298821564e-09</d2vdtdp><d2vdp2>2.4078384928296578256e-09</d2vdp2><heatCapacity>693.62072918052888326</heatCapacity><SiO2>38.139457468806597262</SiO2><Al2O3>32.208019571979143336</Al2O3><Na2O>0.20175980762641002042</Na2O><K2O>29.450763151587860733</K2O><component><name>na-nepheline</name><formula>Na4Al4Si4O16</formula><moleFraction>0.0031540762550949863821</moleFraction></component><component><name>k-nepheline</name><formula>K4Al4Si4O16</formula><moleFraction>0.97805929628881349558</moleFraction></component><component><name>vc-nepheline</name><formula>Na3Al3Si5O16</formula><moleFraction>0.0093734608432116308524</moleFraction></component><component><name>ca-nepheline</name><formula>CaNa2Al4Si4O16</formula><moleFraction>0</moleFraction></component></potentialSolid><potentialSolid><name>corundum</name><formula>Al2O3</formula><affinity>11528.370642236666754</affinity><density>3.917505814381032625</density><gibbsFreeEnergy>-1778689.214159975294</gibbsFreeEnergy><enthalpy>-1589465.0822674646042</enthalpy><entropy>183.68599902199747476</entropy><volume>26.027090917313650209</volume><dvdt>0.00072261330816000010971</dvdt><dvdp>-9.814745434999999987e-06</dvdp><d2vdt2>2.4137287999999996192e-07</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>1.9184999999999999536e-11</d2vdp2><heatCapacity>125.90192367180661392</heatCapacity><Al2O3>100</Al2O3><component><name>corundum</name><formula>Al2O3</formula><moleFraction>1</moleFraction></component></potentialSolid><potentialSolid><name>sillimanite</name><formula>Al2SiO5</formula><affinity>11433.606580409221351</affinity><density>3.224513190753354408</density><gibbsFreeEnergy>-2761199.9254291681573</gibbsFreeEnergy><enthalpy>-2451262.9769789176062</enthalpy><entropy>300.86584327549422824</entropy><volume>50.254277285850001533</volume><dvdt>0.00066926672999999996857</dvdt><dvdp>-3.7521989999999996821e-05</dvdp><d2vdt2>0</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>0</d2vdp2><heatCapacity>195.35519985755365724</heatCapacity><SiO2>37.07864170068702947</SiO2><Al2O3>62.92135829931297053</Al2O3><component><name>sillimanite</name><formula>Al2SiO5</formula><moleFraction>1</moleFraction></component></potentialSolid><potentialSolid><name>rutile</name><formula>TiO2</formula><affinity>10858.690792850218713</affinity><density>4.1668434996680909777</density><gibbsFreeEnergy>-1028982.6365359509364</gibbsFreeEnergy><enthalpy>-890460.8276075880276</enthalpy><entropy>134.46761047261361455</entropy><volume>19.174898218847026499</volume><dvdt>0.00052643073643199994865</dvdt><dvdp>-8.5058339017600011542e-06</dvdp><d2vdt2>5.7999475999999994981e-08</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>2.1981759999999999425e-11</d2vdp2><heatCapacity>75.024586070281429784</heatCapacity><TiO2>100</TiO2><component><name>rutile</name><formula>TiO2</formula><moleFraction>1</moleFraction></component></potentialSolid><potentialSolid><name>perovskite</name><formula>CaTiO3</formula><affinity>41076.980730806477368</affinity><density>4.0438410753583537982</density><gibbsFreeEnergy>-1814220.5436300120782</gibbsFreeEnergy><enthalpy>-1565233.1030539311469</enthalpy><entropy>241.70018014471773427</entropy><volume>33.625999999999997669</volume><dvdt>0</dvdt><dvdp>0</dvdp><d2vdt2>0</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>0</d2vdp2><heatCapacity>130.73898692558270795</heatCapacity><TiO2>58.758536294788399346</TiO2><CaO>41.24146370521160776</CaO><component><name>perovskite</name><formula>CaTiO3</formula><moleFraction>1</moleFraction></component></potentialSolid><potentialSolid><name>spinel</name><formula>Fe''0.21Mg0.79Fe'''0.38Al1.58Cr0.05Ti0.00O4</formula><affinity>2347.6561662182575674</affinity><density>3.8737869915323317471</density><gibbsFreeEnergy>-2163148.8047988335602</gibbsFreeEnergy><enthalpy>-1852542.7239671209827</enthalpy><entropy>301.51539176985164659</entropy><volume>40.162852667387987537</volume><dvdt>0.0012915154867950970948</dvdt><dvdp>-1.9486824187344321536e-05</dvdp><d2vdt2>5.3087791809156936149e-07</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>2.8419954524585720719e-11</d2vdp2><heatCapacity>178.55905430503142384</heatCapacity><Al2O3>49.918923097558817403</Al2O3><Fe2O3>18.710073636287383181</Fe2O3><Cr2O3>2.1869467013353580676</Cr2O3><FeO>9.4515439473498545908</FeO><MgO>19.732512617468596972</MgO><component><name>chromite</name><formula>FeCr2O4</formula><moleFraction>0.022386329970697019243</moleFraction></component><component><name>hercynite</name><formula>FeAl2O4</formula><moleFraction>0</moleFraction></component><component><name>magnetite</name><formula>Fe3O4</formula><moleFraction>0.18228548212846235055</moleFraction></component><component><name>spinel</name><formula>MgAl2O4</formula><moleFraction>0.76171098248213542359</moleFraction></component><component><name>ulvospinel</name><formula>Fe2TiO4</formula><moleFraction>0</moleFraction></component></potentialSolid><potentialSolid><name>rhm-oxide</name><formula>Mn0.06Fe''0.00Mg0.90Fe'''0.09Al0.00Ti0.96O3</formula><affinity>4779.437786784535092</affinity><density>3.9531443012033413709</density><gibbsFreeEnergy>-1427171.687593522016</gibbsFreeEnergy><enthalpy>-1226014.4649961174</enthalpy><entropy>195.26983701150760453</entropy><volume>26.772965101862524762</volume><dvdt>0.00080284292459480426519</dvdt><dvdp>-1.5036698989987208429e-05</dvdp><d2vdt2>1.4305724684225811744e-07</d2vdt2><d2vdtdp>1.2035157788272214824e-10</d2vdtdp><d2vdp2>6.2058235674926258398e-11</d2vdp2><heatCapacity>110.15712468715067018</heatCapacity><TiO2>61.757413350638323379</TiO2><Fe2O3>5.6886081143930500303</Fe2O3><MnO>3.2440347760839176594</MnO><MgO>29.309943758884710263</MgO><component><name>geikielite</name><formula>MgTiO3</formula><moleFraction>0.76966486984057747023</moleFraction></component><component><name>hematite</name><formula>Fe2O3</formula><moleFraction>0.037701745025539259992</moleFraction></component><component><name>ilmenite</name><formula>FeTiO3</formula><moleFraction>0</moleFraction></component><component><name>pyrophanite</name><formula>MnTiO3</formula><moleFraction>0.048400447169548478643</moleFraction></component><component><name>corundum</name><formula>Al2O3</formula><moleFraction>0</moleFraction></component></potentialSolid><potentialSolid><name>ortho-oxide</name><formula>Fe''0.01Mg0.00Fe'''1.98Ti1.01O5</formula><affinity>25368.11141322444746</affinity><density>4.3613531629354351793</density><gibbsFreeEnergy>-1419952.5353238880634</gibbsFreeEnergy><enthalpy>-1131667.1352471299469</enthalpy><entropy>279.84798337791397671</entropy><volume>38.755880918457030759</volume><dvdt>0</dvdt><dvdp>0</dvdp><d2vdt2>0</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>0</d2vdp2><heatCapacity>150.63605951048592146</heatCapacity><TiO2>33.66823460854457295</TiO2><Fe2O3>66.053047130131687936</Fe2O3><FeO>0.27871826132373916929</FeO><component><name>pseudobrookite</name><formula>Fe2TiO5</formula><moleFraction>0.69914623176827928042</moleFraction></component><component><name>ferropseudobrookite</name><formula>FeTi2O5</formula><moleFraction>0.0065572128372323569903</moleFraction></component><component><name>karrooite</name><formula>MgTi2O5</formula><moleFraction>0</moleFraction></component></potentialSolid><potentialSolid><name>alloy-solid</name><formula>solid Fe0.00Ni1.00</formula><affinity>66140.73553546750918</affinity><density>8.5923398323585633563</density><gibbsFreeEnergy>-7.2225944386702790971e-11</gibbsFreeEnergy><enthalpy>-5.5828675016300621792e-12</enthalpy><entropy>6.4692595141554847787e-14</entropy><volume>4.7361723189178825793e-309</volume><dvdt>2.501327756619959267e-313</dvdt><dvdp>-2.4874057070678645759e-315</dvdp><d2vdt2>0</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>0</d2vdp2><heatCapacity>2.1619932685798888403e-308</heatCapacity><Fe2O3>-272.00170328735214298</Fe2O3><FeO>244.7501277465576095</FeO><NiO>127.25157554079451927</NiO><component><name>Fe-metal</name><formula>Fe</formula><moleFraction>0</moleFraction></component><component><name>Ni-metal</name><formula>Ni</formula><moleFraction>6.9314941353691268009e-310</moleFraction></component></potentialSolid><potentialSolid><name>alloy-liquid</name><formula>liquid Fe0.00Ni1.00</formula><affinity>70745.11709904205054</affinity><density>8.5549210757165887742</density><gibbsFreeEnergy>-7.2889374619674995611e-11</gibbsFreeEnergy><enthalpy>-6.2552185653430569801e-12</enthalpy><entropy>6.4683935401962761771e-14</entropy><volume>4.756915518205023887e-309</volume><dvdt>5.647404646056447732e-313</dvdt><dvdp>-3.8482860110128361385e-315</dvdp><d2vdt2>2.8173302949063738187e-317</d2vdt2><d2vdtdp>0</d2vdtdp><d2vdp2>1.1363509854348670516e-320</d2vdp2><heatCapacity>2.6966216339174516907e-308</heatCapacity><Fe2O3>-272.00170328735208614</Fe2O3><FeO>244.75012774655758108</FeO><NiO>127.25157554079449085</NiO><component><name>Fe-liquid</name><formula>Fe</formula><moleFraction>0</moleFraction></component><component><name>Ni-liquid</name><formula>Ni</formula><moleFraction>6.9315341206090031185e-310</moleFraction></component></potentialSolid></MELTSoutput>