News:

alphaMELTS 1.9 is available at the download and information site.
alphaMELTS 2 standalone & for MATLAB/Python are available on request
(see the Version 2 tab on the download site for more details).
For news of all MELTS software see the MELTS Facebook page.

Main Menu

Repeated quadratic minimization failures

Started by Kurt Hollocher, August 12, 2014, 08:16:45 AM

Previous topic - Next topic

Kurt Hollocher

I am returning to Alphamelts after a long hiatus (formerly as Phmelts).  This is my first post.  To introduce myself, I generally work on metamorphosed igneous rocks, currently in central Norway.  I am trying now to understand the relationships in a set of arc-related plutonic rocks in the Upper Allochthon of the Scandinavian Caledonides.

To start I have been attempting to do simple, low-pressure, isobaric fractional crystallization models from more or less basaltic starting compositions.  The MORB.melts example file works fine, but every one of several of my own files terminates after several tens of degrees cooling with the message:

THE QUADRATIC MINIMIZATION ALGORITHM HAS FAILED TO CONVERGE.
...Quadratic convergence failure. Aborting.
Failure in silmin
Not all calculations performed!

I have been using two computers, one Windows 7 and the other Windows 8.1, both 64-bit.  I installed the Strawberry Perl implementation.

Over many runs, with several different of my own .melts files, I have changed the starting compositions slightly, changed the starting temperatures and pressures slightly, changed the temperature increment to between 1 and 10 degrees C, set the fO2 buffer to none or NNO, suppressed phases, and changed some settings in the alphamelts_default_env.txt file, all with the same results.

I have also included trace elements, with K2O removed from the major element list and added instead as trace element K, as the manual recommended.  I have also removed all trace elements, with no K or K2O in the system.  The runs all terminated as above.

I have tried running files saved directly from Notepad, and after running file_format.command, with the same results.

I have also used menu options 13 and 14 to restart using binary or .melts restart files.  The former usually runs for one or two temperature increments and then terminates as above.  Using the restart .melts file the run terminates immediately at the first temperature increment.

I may be wrong, but I think I have tried everything advised manual section "What to do when (pH)MELTS misbehaves".

The *tbl.txt files that are saved look fine, with liquid and mineral compositions changing as expected from basic igneous petrology first principles, they just don't continue past the termination point.

Here is the ...env.txt file I have most recently used, and an example .melts file that doesn't succeed.

Any suggestions for the source of the run failures would be appreciated.  Thank you.

Kurt Hollocher
Geology Department
Union College
Schenectady, NY 12308 USA
hollochk@union.edu

13!Default values of environment variables
!Variables preceeded by '!' are 'unset' (i.e. 'false')

ALPHAMELTS_VERSION MELTS
!ALPHAMELTS_OLD_GARNET true
!ALPHAMELTS_OLD_SPINEL true
!ALPHAMELTS_OLD_BIOTITE true
!ALPHAMELTS_2_AMPH true
ALPHAMELTS_MODE isobaric
!ALPHAMELTS_PTPATH_FILE filename
ALPHAMELTS_DELTAP +0
ALPHAMELTS_DELTAT -3
ALPHAMELTS_MAXP +40000
ALPHAMELTS_MINP +100
ALPHAMELTS_MAXT +2000
ALPHAMELTS_MINT +1000
!ALPHAMELTS_ALTERNATIVE_FO2 true
!ALPHAMELTS_LIQUID_FO2 true
!ALPHAMELTS_IMPOSE_FO2 true
!ALPHAMELTS_FO2_PRESSURE_TERM true
!ALPHAMELTS_METASTABLE_ISOGRAD true
!ALPHAMELTS_CONTINUOUS_MELTING true
ALPHAMELTS_MINF 0.005
!ALPHAMELTS_MINPHI 0.002
!ALPHAMELTS_CONTINUOUS_RATIO float
!ALPHAMELTS_CONTINUOUS_VOLUME true
ALPHAMELTS_FRACTIONATE_SOLIDS true
ALPHAMELTS_MASSIN  0.001
ALPHAMELTS_FRACTIONATE_WATER true
ALPHAMELTS_MINW 0.001
!ALPHAMELTS_FRACTIONATE_TARGET true
!ALPHAMELTS_MGO_TARGET 7.13
!ALPHAMELTS_MGNUMBER_TARGET float
!ALPHAMELTS_ASSIMILATE true
!ALPHAMELTS_FLUX_MELTING true
!ALPHAMELTS_DRY_ITER_PATIENCE 100
ALPHAMELTS_DO_TRACE true
!ALPHAMELTS_DO_TRACE_H2O true
!ALPHAMELTS_HK_OL_TRACE_H2O true
!ALPHAMELTS_HK_PXGT_TRACE_H2O true
!ALPHAMELTS_2X_OPX_TRACE_H2O true
!ALPHAMELTS_TRACE_DEFAULT_DPTX true
!ALPHAMELTS_TRACE_NORMALIZATION integer
ALPHAMELTS_TRACE_INPUT_FILE gneiss_trace.txt
!ALPHAMELTS_TRACE_USELIQFEMG true
!ALPHAMELTS_MULTIPLE_LIQUIDS true
!ALPHAMELTS_FRACTIONATE_SECOND_LIQUID true
!ALPHAMELTS_FOCUS true
!ALPHAMELTS_FOCUS_FACTOR float
!ALPHAMELTS_V20_BIN_FILE true
ALPHAMELTS_CELSIUS_OUTPUT true
!ALPHAMELTS_SAVE_ALL true
!ALPHAMELTS_SKIP_FAILURE true
!ALPHAMELTS_INTEGRATE_FILE filename


Title: Mafic Lensvik source 1 low pressure crystallization
Initial Composition: SiO2 47.75
Initial Composition: TiO2 1.82
Initial Composition: Al2O3 14.96
Initial Composition: Fe2O3 2.09
Initial Composition: FeO 10.65
Initial Composition: MnO 0.19
Initial Composition: MgO 8.24
Initial Composition: CaO 10.57
Initial Composition: Na2O 3.01
Initial Composition: P2O5 0.19
Initial Composition: H2O 0.5
Initial Mass: 100.0
Initial Temperature: 1250.0
Final Temperature: 800.0
Initial Pressure: 2000.0
Final Pressure: 2000.0
Increment Pressure: 0.0
Initial Entropy: 260.0
Log fO2 Path: None
Log fO2 Delta: 0.0
Mode: Fractionate Solids

In some runs I have tried to suppress unlikely phases:
Suppress: melilite
Suppress: cummingtonite
Suppress: orthoamphibole
Suppress: nepheline
Suppress: kalsilite
Suppress: leucite
Suppress: ortho-oxide
Suppress: alloy-solid
Suppress: alloy-liquid
Suppress: aenigmatite
Suppress: tridymite
Suppress: cristobalite
Suppress: corundum
Suppress: perovskite
Suppress: whitlockite

Paula

Hi Kurt,

Welcome! Sounds like you were trying all the right kinds of things. If you also remove MnO from the major elements it should work. Put Mn in the trace elements instead, if you like. Like K2O, MnO is calibrated in the MELTS liquid but there are not many solid phases that include it. So this can cause problems in the equilibration routines.

There's a list of the end-members included in each solid-solution phase here; Mn appears only in tephroite and pyrophanite. For the example you posted, the clue that led to MnO was that MELTS kept trying to add olivine back into the assemblage (below 1130 oC) but it never stayed put...

Cheers,
Paula

Kurt Hollocher

Paula,

Sorry, I forgot to mention that I had also removed MnO (converted to FeO).  Removing MnO changes slightly the termination point, but otherwise doesn't seem to help.  Here is the -MnO version of the same .melts file:

Title: Mafic Lensvik source 1 low pressure crystallization
Initial Composition: SiO2 47.75
Initial Composition: TiO2 1.82
Initial Composition: Al2O3 14.96
Initial Composition: Fe2O3 2.12
Initial Composition: FeO 10.81
Initial Composition: MgO 8.24
Initial Composition: CaO 10.57
Initial Composition: Na2O 3.01
Initial Composition: P2O5 0.19
Initial Composition: H2O 0.5
Initial Mass: 100.0
Initial Temperature: 1250.0
Final Temperature: 800.0
Initial Pressure: 2000.0
Final Pressure: 2000.0
Increment Pressure: 0.0
Initial Entropy: 260.0
Log fO2 Path: None
Log fO2 Delta: 0.0
Mode: Fractionate Solids

It terminates at 1115 degrees C, using a temperature increment of -5 degrees from 1250 (above the liquidus).  This might be the point at which olivine is lost.  I notice that all of my failed runs have two clinopyroxenes, which is mentioned in the manual as potentially a problem for convergence.  I have also tried runs at up to 6 kbar, which I think should suppress pigeonite, and the runs terminate the same way.

Kurt

Paula

Oh, I see. I put the Mn as trace and it worked. I haven't had a chance to try this .melts file yet. Will get back to you later.

Paula

asimow

#4
Hi Kurt,

Paula realized your question had been sitting around for some time unanswered, so she asked me to take a look at it. I found a workaround that will compute your whole liquid line of descent. I am not quite sure WHY it works, but it works. Do this:

  • In your settings file, un-comment ALPHAMELTS_SAVE_ALL. This will allow you string together multiple calls to menu option (4) and concatenate all the output.
  • Start your job as usual. It will run down to a last successful solution at 1103 oC, then fail to converge at 1100 oC and return you to the menu. But you are not quite dead ... the program is still running, the bulk composition residual after the 1103 oC step is still resident in memory.
  • Use menu option 2 to lower the temperature to 1050 oC; leave the pressure at 2000 oC.
  • Use menu option 3 for a single equilibration. For me, it works, but of course it gives me lots of solids, too much for a reasonable fractional crystallization step. But that is OK, because menu option 3 does not include the fractionation part ... the bulk composition is still the same.
  • Use menu option 2 again to raise the temperature back to 1100 oC; leave the pressure at 2000 oC.
  • This time when you execute, option 4, at least for me, you get a good solution at 1100 oC and continue down to the next crash, at 1085 oC.
  • This one is even easier to deal with. All I did was say menu option 2, but leave the T and P unchanged (!), and then option 4 again. I got good solutions at 1085, 1082, and 1079 oC and another failure at 1076 oC.
  • This time I lowered the temperature to 1026 oC and got a good solution with option 3.
  • Now, this is the magic part. I came back to 1076 oC and got a good solution with option 3 first, because I again called option 4 and it ran all the way down to 1000 oC. If I skip that single equilibration at 1076 oC, then I get more crashes. Don't know why.
  • Now you're done, except that your output files contain three gratuitous lines (the 1050 in between 1103 and 1100, and the 1026 and first 1076 in between 1079 and the second 1076) that you need to delete to get a smooth fractional crystallization path.

Try that!

-- P