Monday 10 November 2008

Sometimes, it is worth trying “one more time”

A major component of my PhD project, if one measures by time invested in working on it, is the modeling of my samples using Perple_X. With this program one enters in the whole-rock composition of the sample, sets the list of which elements are being considered, and which minerals they can be combined to form, and what range of pressures and temperatures to use, and it goes through and calculates which combination of minerals, and what specific composition of each, should be stable at every combination of pressure and temperature within the range. Needless to say, most folk use a simplified data set—rather than considering every possible element and mineral in the world they limit the ingredient list to one which covers all of the major minerals in their sample. The list I, and many others using this technique, prefer is Na2O, MgO, Al2O3, K2O, CaO, TiO2, MnO, FeO, SiO2, and H2O. This is enough to predict most of the major minerals in “pelitic” schists (metamorphic rocks which used to be ordinary mud).

If one happens to be working with a rock wherein all of the minerals are homogeneous the use of this program to work out temperature and pressure at which it probably formed is very straight forward. Simply enter in the composition of the rock, let it do the calculations, look at the resultant graph, and find the place on the graph wherein the list of minerals predicted matches those actually present. However, it is rarely this easy. Many minerals, particularly garnet, are zoned. This means that their composition changes over time, becoming richer in some elements and poorer in others. In these cases what one reads off of the chart from the calculations is the combination of minerals present at that point in time when the first zoned mineral started to grow, and further calculations are needed to determine what the changes to the whole-rock composition will be as a result of the garnet growth locking some of the ingredients away in the center of the crystal.

One of the samples I’ve been working on has been a major source of frustration for me. It happens to come from the highest-grade metamorphic region in the state, and as a result some of the garnets present are up to 2 cm in diameter. Because of the sheer size of these grains and the significance of the location it was one of the first samples upon which I attempted the Perple_X calculations. Alas, it also turns out to be one of the most difficult samples to model, with a variety of different complications interacting to prevent me from getting good results.

When I mentioned above using the whole-rock composition of the sample for the calculations, I neglected to mention that there are some corrections one needs to make to the measured composition before using the numbers. One of these is to convert the reported Fe2O3 into FeO, since FeO is the form that is used for the calculations. The whole-rock analysis doesn’t actually have a way to distinguish between the two valence states of iron, so one has to make an educated guess as to how much is really Fe2+ and how much Fe3+. For my samples the “standard” correction was to assume that 90% of the iron measured was FeO. However, with this specific sample when the calculations were complete it turned out that given the starting ingredients the program thinks that it simply isn’t possible to form garnet with as much iron in the core as this sample has.

Another correction is to account for the element phosphorous, which is measured when doing the whole-rock analysis, but is not on the above list of ingredients the program considers. One of the most common minerals to contain phosphorous is apatite, which occurs in very tiny amounts in most pelitic schists. One of its other major ingredients is calcium. If one assumes that all of the phosphorous in the rock happens to be in the apatite, that would also mean that a proportional amount of calcium was tied up in the apatite and so unavailable for use in other minerals. Therefore another “standard” correction I’ve been doing is to subtract enough CaO from the whole rock-composition to account for the measured P2O5 being locked up in apatite. Alas, this sample is low enough in CaO that doing this correction results in problems with predicting the calcium content of the garnet.

Another factor with this sample which may be quite significant is that this sample contains tourmaline. Tourmaline is not one of the minerals normally included in the solution set used with Perple_X, in part because it is a very complex mineral in terms of its crystalline structure, and in part because it is one of the few "commonly" occurring minerals to contain the element boron, which is not normally included in the list of ingredients used in the calculations, since it isn’t included in very many minerals. However, reasonable early on in my project, when I was first encountering difficulties with modelling this sample, I stumbled upon a paper wherein they expanded the list of solution models for Perple_X to include B2O3 and the various end-members of tourmaline. So I e-mailed the authors, got a copy of their expanded solution set and gave it a try.

After many attempts doing various calculations for this sample, trying various combinations of “standard correction” for iron, trying again with the assumption that *all* of the iron measured was FeO, rather than just 90% of it, the “standard” correction for CaO, and again assuming that only 90% of the Ca needed to account for the phosphorous in apatite was present, and trying all of the above with and without the tourmaline present in the solution set I finally found a combination (more FeO and CaO than “standard” and consider tourmaline) that came the closest to predicting the composition of the core of this garnet. Not a perfect match, since it *still* thought that my sample has more iron in the core than is possible, but it was the best I could manage, and I’d already spent too much time trying to make this sample “work”. So I gave up and called it “good enough”, and attempted to do the next step with the calculations for garnet fractionation.

Alas, no mater what changes to pressure and temperature I set for the calculations, in every attempt the program decided that there wasn’t enough CaO—each time it would run out of that ingredient and crash long before predicting garnet with as much calcium as mine has in the rims (all of my garnets start out with only a little calcium in the cores, and increase towards the rims—sometimes it is as high as five times as much calcium in the rims than I the cores).

While it is, in theory, possible to work around that crash by starting the calculations over at the point just before it crashed, but removing CaO from the list of ingredients considered, attempts at this work-around didn’t succeed in predicting garnet which matches the other ingredients measured in my sample. Eventually I wrote a number of paragraphs explaining the manner in which this sample wasn’t working and moved on to other samples.

However, it always nagged on me that this particular sample, of all of them, didn’t “work”. During the past few weeks I’ve been doing repeat modelling for other samples which did “work” in that they predicted a reasonable match to the composition of garnet, but, unfortunately, also predicted the presence of paragonite, a mineral which does not actually occur in my samples. Since paragonite is a mica, and micas contain a component of H2O, one change which can be made to the calculations is to limit the amount of H2O available to the calculations. Doing this turned out to not only convince the program to quit suggesting paragonite; it also caused the “reasonable match” to the garnet composition to turn into an even closer match, which made me happier with the results I am getting.

Now that I’ve got so many different attempts for each sample, I decided to create a spreadsheet which chronicles for each sample which settings were used for each attempt, what temperature and pressure was predicted, what level of accuracy was achieved in matching the garnet composition, and how much of which other minerals are predicted to be present at those conditions. Looking at these results organized into a table in this manner showed me patterns in the results for different initial settings, which in turn helped me to decide which samples might also benefit from additional calculations, and which settings to use for those attempts.

Finally, this week, I got down to the point wherein I had usable results for everything, save for that one, high-grade sample with the large garnets. Remembering the frustrations I had trying to make this sample work back when I was just learning to use the program, I almost left it be. Did I *really* want to revisit that sample and court the same levels of annoyance when it didn’t work? However, I realized that if I *didn’t* try, I would always regret it—I had changed everything else with this sample, but never tried modifying the amount of H2O. In the interest of being complete, I had to make the time. Never mind that I was actually meant to “complete the thermodynamic modelling” stage of my project months ago, it had to be done.

So I sat down, opened the file, made the adjustments and set the program going. Whilst it did the calculations I prepared and named the new folders needed to keep the results organized and separate from all of the other calculations done for this sample, and got my drawing program set up to display the results. The calculations finished, and with some trepidation I begun the process of creating the various graphs to see the results. Lo and behold, for the first time ever, the program predicted that *is* possible to create garnet with that much iron in it! And, better yet, there is a point wherein the garnet is a near-perfect match for that measured in my garnet core. There was much rejoicing as I collected the data and added it to the appropriate spreadsheets. Yet, there was still a component of dread. Yes, I’ve managed to model the garnet core, but what about the garnet fraction calculations? Do I really want to try them and watch the program crash again when it runs out of CaO?

I must admit that I did wimp out the first evening—rather than trying the calculations straight away once everything was done for the core calculations, I called it a night, did my yoga and went to bed. It wasn’t until the next morning that I managed work up the courage needed to try the fractionation calculations. You can only imagine my joy when the first attempt not only didn’t run out of CaO, but actually got somewhat close to a decent match for my garnet rims. It took only two other attempts, one at a slightly steeper slope, and one in between the two, to come up with a good match. For the first time in the two years since I first obtained this program and started trying to model this sample, I finally have results for it! Better yet, this was the last sample to be complete for this region; I can now devote all of my energies into writing up the thesis, rather than doing calculations which should have been complete ages ago!

No comments: