Skip to main content
Log in

Determining P–T paths from garnet zoning using a brute-force computational method

  • Original Paper
  • Published:
Contributions to Mineralogy and Petrology Aims and scope Submit manuscript

Abstract

Reconstructing metamorphic pressure–temperature (PT) paths through petrographic textures, mineral assemblages, and compositions is fundamental to the understanding of orogenesis. We present a new method to derive the PT path of a rock from mineral zoning. Using Perple_X (Connolly in Earth Planet Sci Lett 236(1–2):524–541, 2005) and a Matlab script, we forward model garnet zoning, parageneses, and mineral modes for an arbitrary set of possible PT paths, and then compare the calculated results to mineral modes, textures, and zoning preserved in rocks. The best-fit PT path is determined by comparing the calculated zoning to the measured zoning using the sum of squares. The results indicate that combining Mg#, Ca, and Mn zoning in garnet with mineral modes can yield precise constraints on the PT path of a rock.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6

Similar content being viewed by others

References

  • Caddick MJ, Konopasek J, Thompson AB (2010) Preservation of garnet growth zoning and the duration of prograde metamorphism. J Petrol 51(11):2327–2347. doi:10.1093/petrology/egq059

    Article  Google Scholar 

  • Chapman AD, Luffi PI, Saleeby JB, Petersen S (2011) Metamorphic evolution, partial melting and rapid exhumation above an ancient flat slab: insights from the San Emigdio Schist, southern California. J Metamorph Geol 29(6):601–626. doi:10.1111/j.1525-1314.2011.00932.x

    Article  Google Scholar 

  • Connolly JAD (2005) Computation of phase equilibria by linear programming: a tool for geodynamic modeling and its application to subduction zone decarbonation. Earth Planet Sci Lett 236(1–2):524–541. doi:10.1016/j.epsl.2005.04.033

    Article  Google Scholar 

  • De Capitani C, Brown TH (1987) The computation of chemical-equilibrium in complex-systems containing nonideal solutions. Geochim Cosmochim Ac 51(10):2639–2652. doi:10.1016/0016-7037(87)90145-1

    Article  Google Scholar 

  • Florence FP, Spear FS (1991) Effects of diffusional modification of garnet growth zoning on P–T path calculations. Contrib Miner Petr 107(4):487–500. doi:10.1007/Bf00310683

    Article  Google Scholar 

  • Florence FP, Spear FS (1993) Influences of reaction history and chemical diffusion on P–T calculations for staurolite schists from the Littleton formation Northwestern New-Hampshire. Am Miner 78(3–4):345–359

    Google Scholar 

  • Gaidies F, de Capitani C, Abart R (2008) THERIA_G: a software program to numerically model prograde garnet growth. Contrib Miner Petr 155(5):657–671. doi:10.1007/s00410-007-0263-z

    Article  Google Scholar 

  • Hollister LS (1966) Garnet zoning: an interpretation based on rayleigh fractionation model. Science 154(3757):1647–1651

    Article  Google Scholar 

  • Konrad-Schmolke M, O’Brien PJ, de Capitani C, Carswell DA (2008) Garnet growth at high- and ultra-high pressure conditions and the effect of element fractionation on mineral modes and composition. Lithos 103(3–4):309–332

    Article  Google Scholar 

  • Lovera OM (1992) Computer-programs to model Ar-40/Ar-39 diffusion data from multidomain samples. Comput Geosci 18(7):789–813

    Article  Google Scholar 

  • Powell R, Holland TJB (1988) An internally consistent dataset with uncertainties and correlations. 3. applications to geobarometry, worked examples and a computer-program. J Metamorph Geol 6(2):173–204. doi:10.1111/j.1525-1314.1988.tb00415.x

    Article  Google Scholar 

  • Schmidt J, Hacker BR, Ratschbacher L, Stübner K, Stearns M, Kylander-Clark A, Cottle JM, Alexander A, Webb G, Gehrels G, Minaev V (2011) Cenozoic deep crust in the Pamir. Earth Planet Sci Lett 312(3–4):411–421. doi:10.1016/j.epsl.2011.10.034

    Article  Google Scholar 

  • Spear FS, Selverstone J (1983) Quantitative P–T paths from zoned minerals: theory and tectonic applications. Contrib Miner Petr 83(3–4):348–357

    Article  Google Scholar 

  • Stowell HH, Tinkham DK (2003) Integration of phase equilibria modelling and garnet Sm-Nd chronology for construction of P–T-t paths: examples from the cordilleran coast plutonic complex, USA. Geol Soc Spec Publ 220:119–145

    Article  Google Scholar 

  • Vance D, Mahar E (1998) Pressure–temperature paths from P–T pseudosections and zoned garnets: potential, limitations and examples from the Zanskar Himalaya NW India. Contrib Miner Petr 132(3):225–245. doi:10.1007/s004100050419

    Article  Google Scholar 

  • Zuluaga CA, Stowell HH, Tinkham DK (2005) The effect of zoned garnet on metapelite pseudosection topology and calculated metamorphic P–T paths. Am Miner 90(10):1619–1628. doi:10.2138/Am.2005.1741

    Article  Google Scholar 

Download references

Acknowledgments

This study was funded by National Science Foundation EAR-0838269 and EAR-0911485 and the University of California, Santa Barbara.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to J. C. Vrijmoed.

Additional information

Communicated by M. W. Schmidt.

Electronic supplementary material

Below is the link to the electronic supplementary material.

Supplementary material 1 (PDF 10142 kb)

Appendix

Appendix

Overview

The figures and calculations in this work were produced by a series of Matlab scripts provided in the Supplement. Pseudosections, fractionation calculations, and plots are each produced using a separate script.

The calculation scripts read all the user input from a single input file in Matlab format. This input file consists of 4 sections. The first is a general section used in the two main scripts (pseudosection and fractionation calculations). In the last section, the mineral zoning data are provided. The plotting scripts read input from a separate plotting input file.

The fractionation calculations are executed by running a main script, “brute_fraccalc” that calls Perple_X executables (Vertex and Werami). These files should all be on the Matlab path; it is easiest to have them together in one folder. After the calculations have finished, a data file containing the input parameters and results is produced.

To plot the results, run a second Matlab script, “brute_fracplot.” Two composite figures are produced by this script: the first contains contour plots of the sum of squares of the fits (see main text) and the corresponding profiles as shown in Figs. 3, 4, 5, and 6. The second contains a contour plot of the total sum of the squares of all components and the profiles from the first figure.

After this second figure has been produced, the best-fit PT path can be selected interactively by hovering the mouse over the contour diagram showing the results of the sum of squares of the fits. Simultaneously, the zoning corresponding to the PT path is indicated in blue or any other user-defined color. This allows to determine which PT path fits the zoning profiles best—in the opinion of the user—rather than calculating the absolute minimum in the contour diagram. After the desired PT path has been identified, a left click with the mouse freezes this choice in the figure. After hitting a key to continue either a new figure is produced in which another PT path can be chosen, or the program ends and the two figures are combined into one like Fig. 3, 4, 5, and 6 and written in eps format. The eps figure can be opened and edited in vector drawing programs (e.g., Adobe Illustrator).

How to run the Matlab code

Before running the code, make sure all files are in one folder. The example user input files that are provided show the format of the files.

  1. 1.

    Open Matlab.

  2. 2.

    Open the file “user_input.m” in the Matlab editor window

  3. 3.

    Depending on your version of Matlab, you may need to push the green Run button (or F5) and click “change folder.” This specifies the folder where Matlab looks to find files. By default, it starts in the Matlab folder. Specifying the folder can also be achieved by navigating to the right folder in the Matlab command window.

  4. 4.

    Change the input parameters in the file user_input.m (see below for details). The first time you run the program, you can use the default values provided. The user_input.m file can be saved with a different name by appending it after ‘user_input’ (for example: user_input_SAMPLE_NAME.m).

  5. 5.

    Do the same for the plot_input.m file. Leave the file name unchanged.

  6. 6.

    Open a Matlab command window and type “brute_fraccalc” to start the fractionation calculations. This opens a navigation window to locate the user_input.m file. After selecting the file, it runs the main script for the fractionation calculations. Alternatively, the user input file can be provided as string argument to the brute_fraccalc function (e.g., brute_fraccalc (“user_input.m”)). This allows for batch processing of multiple user input files by calling the function from MATLAB scripts. Execution of this script should normally take 3–5 min for the input parameters provided in the example (10 × 10 grid and 10 × fractionating). When execution is finished, the message “Elapsed time is … seconds” will appear. To reduce execution time, simpler chemistry, fewer solution models, grid points, or fractionation steps can be specified.

  7. 7.

    Type “brute_fracplot” or “brute_fracplot (‘user_input_FILENAME.m’)” to plot the results. This opens a navigation window to locate the user_input.m file. Execution of this script should normally take <1 min. Two figures will be displayed. Figure 1 contains contour plots of the sum of squares and the corresponding zoning profiles. Figure 2 contains a contour plot in which all zonation data are summed to see the combined fit. In this figure, the profiles of each composition are shown as well. In Fig. 2, you can hover with the mouse over the contour plot (upper left) that contains the sum of the fits. The compositional profile corresponding to the PT path at the mouse pointer is highlighted in each profile plot. This way, you can decide which is the best PT path. Ideally, this should correspond to the areas in the contour plot where the sum of squares is lowest (i.e., where the fit is best). However, it may be for example that your Mn data have larger errors and you want to give more weight to the other compositional profiles. Once the best PT path is selected, click once with the left mouse button to save the corresponding profiles and figures combined in an eps file. If the fit is not satisfactory even taking into account uncertainties, the fractionation calculations can be restarted using different input parameters: different solution models, large or smaller number of fractionation steps, etc.

  8. 8.

    Type “pseccalc,” to create a pseudosection, in a PostScript, e.g., filename.ps, file that can be opened in the usual ways. Execution of this script should normally take about the same time as Perple_X needs to calculate this pseudosection. This can vary from 1 min to several hours depending on the selected solution models.

  9. 9.

    Type “psecplot” to create a pseudosection similar to those presented in Fig. 2; execution of this script should normally take <1 min. When finished, a file with a name like “SAMPLE_pssect.eps” will have been created. These files can be opened with software that can read.eps files.

The typical way to proceed is to execute “pseccalc” and “psecplot” until a satisfactory pseudosection for the starting composition is reached. For example, if it is known that garnet started to grow in a certain PT region, the user has to make sure that this field is present as a starting condition. Any PT path starting outside this field has to be rejected based on the petrographic observations. Additionally, it can be checked whether the input solution models are appropriate for the rock type of interest. Then, “brute_fraccalc” and “brute_fracplot” are executed until a satisfactory PT path is found.

Format of the user_input.m file

The “clear” command on the first line of the file clears the Matlab memory.

General

  • bfile: Identifier for the run that will be included in the names of all files created by the codes

  • data_base: File name of the thermodynamic database to be used in the calculations. Currently, only “hp04ver.dat” is provided. Other databases can be downloaded from http://www.perplex.ethz.ch/.

  • solution_file: File name of the solution model database to be used in the calculations. The provided solution_model.dat file can be modified to the user’s needs.

  • comp: List of components in capitals. H2O needs to be the first component in the list (if calculations with H2O are to be performed).

  • wt_perc: Bulk-rock percentages of the components in comp. Either wt% or mol% can be used (see wt_mol below).

  • ssol: Names of Perple_X solution models to be used.

  • ssol_user: Abbreviations for the solution model names. This is for convenience in plots and displays and can be edited as the user wishes (in contrast to the ssol above which have to be the names of solution models in Perple_X).

  • ex_phs: List of phases to be excluded by Perple_X.

  • wt_mol: If set to “y” the wt_perc numbers are used as mol%. Use “n” for wt%.

  • mac_OS: For usage on Macintosh OS set to 1.

Pseudosection

  • Tmin, Tmax, Pmin, Pmax: Extent of the pseudosection in PT space

  • satphs: Set to “y” if a saturated phase is desired; otherwise set to “n.” If the system is H2O saturated, H2O is not included in the comp and wt_perc list (similar to Perple_X).

  • sphase: Name of the saturated phase.

  • nx, ny: Number of x and y nodes for the output pseudosection (used by the Perple_X code Werami). The default numbers of 200 are a compromise between calculation time and pseudosection definition.

Fractionation

  • Tpeak, Ppeak: Peak PT for the mineral/rock to be modeled (as obtained from thermobarometry, for example).

  • Tstart, Pstart, Tend, Pend: Define the limits of the starting PT points for the PT path search.

  • frac_phs: Phases to be fractionated. This currently works only for garnet and H2O.

  • nPT: Number of fractionation steps along the PT path. The default number, 10, is a compromise between calculation time and accuracy. Increasing the number of fractionation steps will ultimately converge with Rayleigh fractionation (Hollister 1966). Numbers below 50 are advised.

  • nPTgrid: Number of grid points in P and T for the starting PT points grid. The default number, 10—meaning a 100 point, 10 × 10 grid in PT space—is a compromise between calculation time and accuracy. Numbers between 10 and 30 are advised.

  • data_head: Name of the data in the columns of prof_data. The order of the names should be corresponding to the order of the columns in prof_data below. Use “Mg#” magnesium number, “X_{sp}” for spessartine mole fraction and “X_{gr}” for grossular mole fraction.

  • prof_data: Zoning profile data. Provide the spatial data, Mg#, spessartine, and grossular mole fraction in columns corresponding to the names in data_head above.

Format of the plot_input.m file

  • best_sumSvec: Maximum sum of squares value considered to be a good fit; there must be three values that correspond to the properties in the order: Mg#, Xsp, and Xgr. Calculated zoning with sum of squares less than this value is plotted with black lines, and starting PT conditions producing such paths are outlined by white lines in Figs. 4, 5, and 6. This may need some iteration as the results are initially unknown when plotted for the first time. Values of ~0.1 are reasonable starting guesses. (A warning message appears if none of the profiles falls within the limits of these numbers.)

  • wt_fac: Weighting factors for the three properties. This allows the user to decide how to weight the results of fractionation calculations. The default values of 1 result in the calculation:

    $$\begin{aligned} & 1*\surd({\text{Mg}}\# _{{{\text{actual}}}} - {\text{Mg}}\# _{{{\text{calculated}}}} )^{2} /n + 1*\surd({\text{Mg}}\# _{{{\text{actual}}}} - {\text{Mg}}\# _{{{\text{calculated}}}} )^{2} /n + \\ & \quad 1*\surd({\text{Mg}}\# _{{{\text{actual}}}} - {\text{Mg}}\# _{{{\text{calculated}}}} )^{2} /n \\ \end{aligned}$$

    where n is number of sample points along the profile.

  • user_linestyle: Symbols to define linestyle of the user-determined best-fit profiles. It is possible to define more than one, separated by a comma, to choose multiple best-fit profiles. Use “-” for solid line, “–” for dashed line, “..” for stippled line. See “LineStyle” property in Matlab.

  • user_linecolor: Color of the lines of user-determined best-fit profiles needs to correspond to user_linestyle definition above. See “Color” property in Matlab (for example b = blue,r = red,g = green,k = black,w = white).

  • my_label: The label of the user-determined best-fit profiles, to be shown in the legend and on contour plots in eps figure output.

  • fig_leg: A number controlling in which of the profile figures to show the legend, counting from top to bottom.

  • n_contour: Number of contour levels for all contour plots in the figures.

  • phs_contour: Phases to be contoured in the pseudosection. A maximum of two phases are allowed. The first phase will be plotted as colored interpolated contours, and the second will be plotted as black contours labeled with modal vol %. This is valuable for assessing that the starting point of PT paths matches any petrographic constraints (i.e., mineral inclusions) rock in question. Also, it reduces the clutter of mineral abbreviations in the different phase stability fields.

  • ex_field_size: Determines size below which the assemblage fields in the pseudosection are not shown and depends on the resolution of pseudosection (see nx,ny above).

  • ass_plot_size: Determines size below which assemblage fields are indicated with number. Legend is output in text file “SAMPLE_ass_legend.txt.”

  • phs_mode_cont: Defines which contour level is shown for the first phase of phs_contour. Default is 0, corresponding to the mineral-in line.

  • phs_mode2_cont: Controls which contour levels to show in black for second phase defined in phs_contour.

  • ass_font_size: Fontsize of assemblage labels shown on the pseudosection.

  • peak_symbol_style: Symbol style for plotting the peak PT estimate in the pseudosection diagram (for example:. = dot, * = star, + = cross). Use color symbology as in user_linecolor.

  • peak_symbol_size: Defines the size of the symbol for the peak PT estimate shown in the pseudosection.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Vrijmoed, J.C., Hacker, B.R. Determining P–T paths from garnet zoning using a brute-force computational method. Contrib Mineral Petrol 167, 997 (2014). https://doi.org/10.1007/s00410-014-0997-3

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s00410-014-0997-3

Keywords

Navigation