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

Recent posts

#1
alphaMELTS for MATLAB/Python / Re: Suppressing liquid and cal...
Last post by lelkins - February 20, 2025, 07:28:52 PM
Aha, thanks! I'll play with the suppressing phase string to see what I can do, and I'll explore some of the other docstrings and options to see what else you have working so far. It will be useful to be able to do single melting trajectories for isentropic melting, and I think we can replicate the perl operations with this. I can share a notebook after I have set it up, if you like!

Otherwise, we're trying to replicate iterative methods to find the minerals and mineral modes that coexist with a specific liquid F at a given pressure, which is a bit tricky but I think should be possible to automate for easier calculations. We're basically looking for the T where F is within a specific threshold at a particular pressure for a lithology. I have a preliminary notebook that I think I can debug to avoid exceptions/cases that don't converge and basically work.

For what it's worth, we have found that the older garnet model works better for predicting garnet behavior more accurately for some lithologies at high pressure (so using pMELTS), like pyroxenites, and it might be useful to find a way to access that model as an option eventually. I don't have an easy way to automate this kind of iterative operation in perl, though that's really because I lack the coding knowledge.
#2
alphaMELTS 2 text-menu interface / Re: Question about Equilibrium...
Last post by liushanke - February 20, 2025, 06:04:01 PM
Hi Paula, thanks for your kind reply. I've received it.
#3
Hi Felix,

alphaMELTS corrects the melting point of rutile (see Borisov & Aranovich, 2020), which becomes important for mafic pyroxenites. As the error existed when all the liquid calibrations were done, fixing the pure rutile point can mean rutile appears where you are not expecting it (put another way the "phase absent" constraints on rutile at the time of calibration were too loose). If this is a problem just suppress it - it was virtually impossible to crystalize rutile before so you're not going to miss anything!

As you mention, rhyolite-MELTS adjusts quartz properties to better model the granite ternary minimum and in alphaMELTS we also adjust tridymite and cristobalite to model explosive silicic magmatism on Mars. It's described in the supplementary materials of Payré et al., 2022. You may get tridymite or cristobalite crystallizing where you do not expect it but in this case it is likely down to kinetics in the real system. Again if needed just suppress those phases.

Borisov, A., & Aranovich, L., 2020. Rutile solubility and TiO2 activity in silicate melts: An experimental study. Chemical Geology, 556, 119817. https://www.sciencedirect.com/science/article/pii/S0009254120303569

Payré, V., Siebach, K. L., Thorpe, M. T., Antoshechkina, P., & Rampe, E. B., 2022. Tridymite in a lacustrine mudstone in Gale Crater, Mars: Evidence for an explosive silicic eruption during the Hesperian. Earth and Planetary Science Letters, 594, 117694. https://www.sciencedirect.com/science/article/pii/S0012821X22003302

The feldspar in alphaMELTS was split into plagioclase and alkali-feldspar to simplify bookkeeping. That has a small effect on the modeled sanidine content but well within analytical uncertainty for EMP. If you want something even closer to the original feldspar model e.g. to model the granite ternary minimum, then suppress plagioclase.

The standard state volume of apatite was corrected in alphaMELTS recently, but the difference is negligible.

I believe those are the only model changes versus the ENKI/xMELTS codebase. There are many changes replacing Numerical Recipes code with Gnu Science Library etc. but they should not change the results. If I think of anything else I'll update the post.

Best wishes,
Paula
#4
alphaMELTS for MATLAB/Python / Re: Suppressing liquid and cal...
Last post by Paula - February 20, 2025, 08:16:46 AM
I haven't tried that particular example but you should be able to pass a "Suppress: liquid" string to setSystemProperties to turn off liquid and then a "Limit number: liquid 1" to turn it on again.

Garnet is the version with the corrected expressions, which I guess it what you mean by 'new', as that is what is in Mark Ghiorso's codebase. (Biotite on the other hand is the 'old' model, again to match Mark's codebase where possible.) Assumption was that if users need other models, including original MELTS, that they'll have to use alphaMELTS 1.X for backwards compatibility.

The methods should all have docstrings so you can do something like "help(meltsengine)". The possible inputs and outputs are described in the .py files - I don't think there's a more efficient way to examine those than opening the file.
#5
alphaMELTS 2 text-menu interface / Re: Question about Equilibrium...
Last post by Paula - February 20, 2025, 07:47:25 AM
It sounds like you have one or more "Mode: fractionate" line(s) in your .melts file. Just delete them all and you'll get perfectly equilibrium crystallization.
#6
easyMelts / Re: [EX] easyMelts version of ...
Last post by Paula - February 20, 2025, 07:43:37 AM
QFM P1 - the P stands for 'plus' and M for 'minus'.
#7
alphaMELTS for MATLAB/Python / Re: Suppressing liquid and cal...
Last post by lelkins - February 19, 2025, 06:55:39 AM
Follow up -- I know the python version may not have all of this functionality, which is of course okay. Is there possibly a way to specify the garnet calibration (new vs old) yet, though?
#8
Dear Paul and Paula,

I'm hoping to test the Rhyolite-MELTS family of compositions against some evolved experimental compositions from LEPR.
I've read Gualda+ 2012 (10.1093/petrology/egr080) and Ghiorso & Gualda 2015 (10.1007/s00410-015-1141-8) to get a handle on how Rhyolite-MELTS was calibrated for evolved compositions.
I have also had a look through the GitHub and GitLab change logs for alphaMELTS for relevant changes since these two papers were published. The only relevant change I can find is that the Tridymite and Cristabolite pure phase models have been adjusted (https://github.com/magmasource/alphaMELTS?tab=readme-ov-file). Could you give me more detail on these changes and any others that I might have missed?

Best wishes,

Felix Boschetty
#9
easyMelts / Re: [EX] easyMelts version of ...
Last post by liushanke - February 17, 2025, 04:47:45 PM
Hi, I have known the answer: "P" stands for "+" and "M" for "-". Sorry for interrupting the thread.
Quote from: liushanke on February 17, 2025, 12:05:35 AMHi everyone,

I'm using eastMelts and have a question regarding setting the oxygen fugacity. I need to constrain my simulation to QFM+1, but I'm unsure which option to choose from the "Oxygen Fugacity" tab.

I see several options related to QFM, such as QFM P1~P3 and QFM M1~M7. Which of these options corresponds most closely to QFM+1? I've checked the manual and done some online searching, but haven't been able to find a definitive answer.

Any help or clarification would be greatly appreciated!

Thanks,
Shanke
#10
alphaMELTS for MATLAB/Python / Suppressing liquid and calcula...
Last post by lelkins - February 17, 2025, 03:12:47 PM
Hi Paula! I'm doing some initial testing with alphaMELTS 2 for python, and I would like to do a similar adiabatic/isentropic decompression melting calculation to the old alphaMELTS approach, with a suppressed liquid phase to determine entropy for a given Tp and bulk composition, and then calculating a melting path with the liquid turned back on. So far, I haven't been able to figure out all the necessary commands for python functions and calculations from the available tutorials, though. I know the python versions have been in beta and might not have all of this set up, but I'm finding it hard to tell what functions are possible. Is there an example, or just a list of the python tools and where they are in the package? or maybe some tips on suppressing phases and defining entropy, to get started?

Thanks!