News:

alphaMELTS 2.3 standalone & for MATLAB/Python is now open source and available on GitHub (https://github.com/magmasource/alphaMELTS).
alphaMELTS 1.9 is available at the legacy download and information site.
For news of all MELTS software see the MELTS Facebook page.

Main Menu

Re: using alphaMELTS (fO2 buffer)

Started by zackg@berkeley.edu, June 26, 2014, 01:33:38 AM

Previous topic - Next topic

zackg@berkeley.edu

I'm also getting a hang on a bound check.  The CPU stays pinned at 100% for hours -- until I terminate the process.

I'm attaching the settings file: alphamelts_settings.txt, the composition file: input.melts(.txt), and the batch file: mybatch(.txt).

This is alphaMELTS 1.3 on a mac.

Thanks,

Zack

Paula

#1
Hi Zack,

It's actually hanging in the subsolidus fO2 routines, just after that. The bound check messages for nepheline are warnings that you can ignore, though may be an indicator that the program is beginning to struggle.

I'll look into the subsolidus fO2 problem a little more later. In the meantime, the easiest thing is to turn off the buffer, using menu option 5, after the first single calculation with option 3. If you turn on ALPHAMELTS_SAVE_ALL then one of the fO2 columns in System_main_tbl.txt will compare the current fO2 to the QFM-2 buffer and you will see that it does not wander by more than about half a log unit.

You can also try ALPHAMELTS_LIQUID_FO2, which automatically turns off the buffer once liquid is exhausted, but for your particular calculation the fO2 diverges from the buffer more at low-T than with turning off the buffer after one calculation. Another alternative is to try the GUI of rhyolite-MELTS, which automatically turns off the buffer when there is a problem like this. Unlike ALPHAMELTS_LIQUID_FO2, it does not turn the buffer back on because rhyolite-MELTS assumes that the path taken through P-T space is monotonic. I'll am incorporating rhyolite-MELTS code into the next version of alphaMELTS at the moment (see the Library tab on the alphaMELTS website) but need to find a way to handle fO2 along the more complicated P-T paths that alphaMELTS permits.

Some minor things... In alphaMELTS to get 'QFM-2' you actually have to enter:

Log fO2 Path: QFM
Log fO2 Delta: -2.0

Then you wouldn't need to turn the buffer on at the alphaMELTS menu; it will already be set. Note that to get the same effect in the rhyolite-MELTS GUI you would need:

Log fO2 Path: -2FMQ

You also don't need to set ALPHAMELTS_IMOPOSE_FO2. That variable is intended for modes with constraints, such as isentropic and isenthalpic, where the buffer will otherwise be turned off on execution with menu option 4. It doesn't do anything in isobaric mode. Liquid is on by default so you only need option 9 if you need to turn liquid off or back on (e.g. for a potential temperature calculation).

You only need subsolidus start if there is no liquid at all for the first calculation (and often not even then). In fact, it fails for this composition anyway so superliquidus start is easier. My batch file would look like this:

Quote
1
input.melts
3
1
5
0
4
0

with input.melts editted, as described above, and ALPHAMELTS_SAVE_ALL turned on the the settings file.

As I said, I'll look into the subsolidus fO2 bit more later and get back to you. In the meantime, I'm posting this as my laptop about to go to sleep!

Cheers,
Paula

zackg@berkeley.edu

Hi Paula,

Thank you!  That already helps a lot.  I am playing around with this (it takes a little time because in the end I run thousands of variations in composition and fugacity and it takes a little while...)

So unpinning the fO2 from the buffer seems to work, and it is computing to the end now.  However, I am also noticing that some of my calculations do vary by as much as 4 log units, depending on the composition and the fugacity position.  For example, here are a couple cherry picked lines from a composition with less Na2O and starting at FMQ-6 (at 1773.15 K).

System Thermodynamic Data:
Pressure Temperature mass F phi S H V Cp dVdP*10^6 dVdT*10^6 fO2(absolute) fO2-(QFM-6.0) rhol rhos viscosity aH2O chisqr
1.00 1423.15 99.468349 0.2350431969886683 0.292640 237.635493 -1107158.565938 30.894480 120.990351 -76.774465 1389.963727 -18.556 -3.672 2.585938 3.481772 3.824 0 0.000
1.00 1413.15 99.468349 0.1225311418949679 0.156026 234.338776 -1111834.299701 30.511465 118.824776 -54.641179 1283.239950 -18.875 -3.869 2.560186 3.389413 4.055 0 0.000
1.00 1403.15 99.468349 0.0315914378451120 0.041031 231.567553 -1115737.021794 30.208015 117.168140 -35.877004 1199.442079 -19.209 -4.080 2.535240 3.325193 4.289 0 0.000
1.00 1393.15 99.468349 0.0000000000000000 0.000000 230.077827 -1117821.784088 30.096251 116.546035 -29.127595 1168.537778 -13.511 1.743 0.000000 3.305008 4.353 0 0.000
1.00 1383.15 99.468349 0.0000000000000000 0.000000 229.236353 -1118989.871361 30.085555 116.433447 -29.132704 1164.828949 -13.631 1.750 0.000000 3.306183 4.353 0 0.000

So you can see that fO2-(QFM-6.0) actually has a discontinuity at 1393.15 K which (not coincidentally) is the point at which all the liquid is used up.

I'm not sure I understand this, actually.  I would guess that the point is that the liquid is acting as an oxygen reservoir, and as soon it is all crystallized, then there is less oxygen available to transport between the crystalline phases resulting in a drop in the fugacity?  Or am I over-interpreting this?

Thanks,

Zack

Paula

Hmm. Curious that the jump is approx 6 log units. I'm looking into this and your original query. In the meantime, I have split the topic into two so the PTpath and fO2 discussions are separated.

Paula

Paula

Hi Zack,

So the 6 log units thing was a red herring. I was a little concerned that there might be a problem with the printing of the fO2 values to the file (not the actual values used in the calculations). But it's all fine. The discontinuity must be real. What do the compositions of the coexisting solids look like there?

I made some small tweaks to the subsolidus fO2-buffering (strictly muO2-buffering) routine. It is now less likely to hang. It may still fail eventually but at least the program then returns cleanly to the menu. For your original calculation it manages a few more temperature steps, down to 1053.15 K. The temperature step of 10 oC is pretty large and it might be worth playing around with that to see if it will run further. But < 800 oC is probably about as low as we can reasonably expect the calculation to run anyway, as there are several phases in the assemblage that show order-disorder. The ordering calculations get increasingly difficult as the temperature drops, as does the fO2 buffering.

The new version (1.4) will be available in the next few days, with this bug fix and a couple of other minor changes. The main reason for this release, which won't affect you, is that we will have a 64-bit Windows version for the first time, as well as instructions for Windows 8 and an updated virtual machine.

Cheers,
Paula