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

Assimilation in Alphamelts

Started by balta, December 29, 2023, 02:51:23 PM

Previous topic - Next topic

balta

Hi Paula

I'm trying to work through how to do an assimilation calculation in Alphamelts 2. Eventually I'd like to figure out how to do this isentropically but I'm not quite there yet, and am running into an error that I need to understand how to overcome before I start fiddling with those settings.

I've worked through a couple of your workshop files on Assimilation, specifically from the 2022 Goldschmidt page.
https://magmasource.caltech.edu/gitlist/Workshops.git/tree/main/workshop_files/assimilation/

I was able to download and run the assimilation-test files where it assimilates some olivine, and am able to fiddle with the settings to see different amounts of assimilation, etc, those work and return what seem to be reasonable results.

What I would like to do is a more complicated assimilant, I'd like to be able to specify the mineralogy in more detail or ideally just give it a bulk composition that its assimilating at each step.

There are two larger MELTS files shared on that workshop that seem to imply this is possible, https://magmasource.caltech.edu/gitlist/Workshops.git/blob/main/workshop_files/assimilation/MORB-nofO2-isenthalp-assim_fo90.melts for example. This, however is where I run into problems - if I download these files and try them as raw input MELTS files for Alphamelts2, it triggers errors when I input them. For starters, If I tell it to read this file without any edits, it gives me the error "Error during input file read, offending record: assimilant: amphibole 0.00". From there, it starts giving errors and crashing if I try to tell it to run calculations.

If I fiddle with it by say, deleting the amphibole line, then it targets a different line with an error. I got errors on Tremolite, Feldspar, and Albite before I gave up with this method.

If I try to remove all the other assimilants other than the oxides, Alphamelts gave up and crashed on me rather than accepting the MELTS file (specifically it said there was an error with my phase_main_tbl.txt file on that crash).

I'm on an updated Mac, running Alphamelts2, I believe specifically version 2.2 so I'm ever so slightly out of date, I might try updating it next week but I don't think that's the issue right now.

I'm not sure what the error is here but I'd very much appreciate help trying to trace it - the goal would be to have a liquid composition and be able to add in a more complicated solid than just the olivine in an assimilation calculation, and eventually to do that while controlling the system entropy.

Thanks!

balta1701

How this browser was logged in under my old email address/account I don't know either, but adding a post here so that it goes to updated email address.

Paula

#2
Hi Brian,

The larger files were generated with easyMelts, and I suggest you play around with easyMelts to get a feel for how the interface for specifying an assimilant and the resulting .melts files are related.

There will be lines that you need to delete or edit for it to work in alphaMELTS. For example, amphibole is separated into clinoamphibole and orthoamphibole in alphaMELTS. Feldspar is separated into plagioclase and alkali-feldspar in alphaMELTS 2. If you delete the line for a particular solution phase then you need to delete the lines for the end members. If you delete only amphibole then tremolite will give issues; delete feldspar then albite will give issues etc. You should be able to delete most of the lines with a 0.0 - that's what isothermal test 1 did.

test 2 illustrates a small extension to the alphaMELTS code for reading in assimilation settings. In the GUI and easyMelts you specify the total mass of assimilated material and the number of increments to divide it into. In alphaMELTS 2 you can also optionally add the same mass of material at each iteration until the run stops for other reasons e.g. it reaches the final temperature. This more closely matches the behavior of alphaMELTS 1.X. The change in the .melts file is to put "Assimilant: Increments 0" (compare with putting '0' for number of iterations in the menu option 4).

Note that in each case "Assimilant mass:" refers to the mass of solid assimilant, which is made up of the mineral phases that you define phase and end member proportions for. The "Liquid mass:" line is for the liquid or bulk assimilant. The .melts output is a bit confusing, as the liquid mass line is early on in the file but the oxide wt% values that belong to the liquid or bulk assimilant are printed last (i.e. the lines at the bottom of the larger .melts files). If alphaMELTS was crashing it might have been a divide by zero error.

test 3 illustrates another extension in alphaMELTS 2 where phase mass proportions are given, in this case 100 wt% olivine (note that the line is "Assimilant: olivine mass 100.00", whereas in test 1 it is "Assimilant: olivine 100.00"). The oxide wt % values then refer to whatever the most recent "mass" line was. You can have multiple solid phases. This replaces the alphaMELTS 1.X assimilation option with separate .melts enrichment files for each mineral phase (see here).

For isothermal conditions bulk assimilation and liquid assimilation are the same and you can just use a "Liquid mass:" line and then make sure the oxide wt % lines come before any other phase mass lines. For isenthalpic or isentropic calculations, it will be the metastable liquid properties that are used to calculate the reference enthalpy or entropy of the assimilant respectively.

There will be an option to equilibrate the assimilant, which will be replacing the binary file assimilant from alphaMELTS 1.9. Instead of having to write out and read in binary files, though, the user will be able to simply swap the (already equilibrated) system and assimilant properties. It's not fully implemented yet, but it's coming soon. So watch this space!

Paula