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

[FAQ] THE QUADRATIC MINIMIZATION ALGORITHM HAS FAILED TO CONVERGE-type errors

Started by Paula, May 26, 2020, 04:30:36 PM

Previous topic - Next topic

Paula

Although the algorithms used to calculate equilibria are powerful, there are numerous situations where they will fail to converge to a solution and a few situations where they will apparently converge to an incorrect solution. The strategies listed below are mostly paraphrased from the alphaMELTS 1.9 documentation, but as many of the users on this forum are using the graphical user interface (GUI), MELTS for Excel, or alphaMELTS 2 / alphaMELTS for MATLAB/Python (which doesn't have any documentation yet) I'm posting those parts that are relevant to all software versions:

Quote

  • Sometimes (pH)MELTS or rhyolite-MELTS does not converge. Try varying parameters or approaching the desired condition by smaller steps in the intensive variables; you may need to restart the software to give the algorithm a suitable starting solution again. For example, when doing isentropic melting calculations, it may help to reduce the size of the pressure decrement.

  • Often, the first calculation in a sequence is the hardest because the initial guess is so far from the true equilibrium. Try creeping up on the desired condition in smaller steps. Often it is best to start at or above the liquidus and lower the temperature to the desired point. For example, if you require a cold subsolidus start and the composition is neither peridotite nor basaltic then alphaMELTS' norm routine may choke if you try to reach those conditions in one step.

  • Another source of difficulty is fO2-buffered calculations, especially below the solidus. For sub-solidus starting conditions: try turning the oxygen buffer off, obtaining an equilibrium solution, and then turning the buffer back on (in alphaMELTS this is menu option 5). For other situations, experiment with running a single calculation with the buffer on and then turning it off for the main calculation. Occasionally the calculations are more stable with the buffer on than off (as well as generally being better at reproducing observed LLD).

  • It is possible that the minimization algorithm in alphamelts may become trapped in a local minimum and will converge to an incorrect solution. All the software mentioned above, except alphaMELTS 1.9, contains improved algorithms for detection of phase saturation from Ghiorso 2013 which should help alleviate this. Sometimes such false equilibria can be adverted by suppressing a competing phase. More often, problems occur because the relative stability of the pyroxenes is determined by quite small energy differences and the wrong pyroxene can appear and trap the calculation in a metastable state. If you suspect this has arisen, try manually increasing the temperature until the ââ,¬Ëœwrongââ,¬â,,¢ pyroxene disappears and then approaching the desired P, T condition from a different direction to the first attempt.

  • Another source of non-uniqueness and path dependence in calculations can be operating inside a two-liquid miscibility gap. The "Mode: multiple liquids" optionis available to deal with this situation (ALPHAMELTS_MULTIPLE_LIQUIDS for alphaMELTS 1.9), although the liquid solvi are not well calibrated and handling multiple liquids in a variety of situations such as fractional melting, trace element calculations, etc., can be complicated. We recommend the multiple liquids option only as a last resort when odd behavior is caused by not recognizing the metastability of the liquid.

Another problem that isn't discussed in the alphaMELTS documentation can be if a chemical component is almost exhausted. In particular rhyolite-MELTS seems to crash when MgO runs out, whereas the original MELTS model was less sensitive to this (presumably something to do with the adjustment of the properties of solid quartz in rhyolite-MELTS). The run can sometimes be recovered if you write out a .melts file, zero the problem component and then restart.

Paula