Numerical modelling of diffusion-limited mineral growth for geospeedometry applications
Abstract. Diffusion and crystal growth are common processes in nature and can be observed in rocks that have experienced high temperatures. Information about these processes is stored in the composition profiles of minerals. Diffusion can either occur within single crystals or across mineral interfaces. In the case of intercrystalline ion exchange, composition profiles across the interfaces are always discontinuous and may exhibit sharp compositional gradients. The compositional discontinuity and the associated gradients require an accurate treatment for the interface boundary condition. Here, we present a software package (MovingBoundaryMinerals.jl) that is openly available. In this package, we use an adaptive finite element method to describe the diffusion-couple equilibrium by taking into account the moving boundary separating the two phases. In addition, we utilize an adaptive grid approach to resolve the concentration gradients accurately at the interface region. This approach allows modelling a wide range of applications from mineral diffusion, simple ion exchange between diffusion couples, and diffusion-limited growth. The package has been tested versus variable available analytical solutions for diffusion and growth and several benchmark cases are presented. Finally, our package can be used to model concentration gradients in growing/dissolving/diffusing crystals in the framework of diffusion chronometry and geospeedometry. This approach can provide thermal/time constraints in various geologic phenomena.
The manuscript by A. Stroh et al. describes a Julia package for the numerical modelling of diffusion, crystal growth, and resorption. It is a fascinating piece of work, and I am convinced that the package could be useful to the community. I have run the package's tests in Julia, and it performs very well and reproduces the figures shown in the manuscript. Provided that the example files are used, I would say that the use of the code by others seems possible.
To improve the clarity of the text for a more general audience (e.g. potential users), the following suggestions could be implemented:
In geology, cation diffusion in minerals is often modelled using mass or mol fractions. However, if I am not mistaken, equation 1 is correct for concentrations, which are mass/volume or mol/volume. It is possible to use equation 1 with mass or mol fractions, assuming that the density of the mineral remains constant (which is unlikely to be the case for major elements in a single crystal, and even less so between a crystal and a melt, or an intergranular medium with aqueous fluids). This is something that needs to be clarified. In the current manuscript, the terms 'compositions' and 'concentrations' are used rather loosely, so it would be great if these were clarified at the beginning of the text. A concentration is always a quantity for a given volume. It is only in equation 19 that it becomes clear how the two cases are handled. This is something that is not always used correctly in the literature, and this work would benefit from clearly explaining the correct way to do it to potential users.Â
The title of the paper refers to 'geospeedometry applications'. Are there any plans to add inversion functions that would allow users to perform geospeedometry? Currently, the package appears capable of simulating diffusion in complex cases, but it is not yet ready for working with natural data and for example obtaining T-t trajectories. If the growing/resorption rate is unknown, a moving boundary model will seriously limit the possible applications of geospeedometry. I could be wrong, but including an example of a geospeedometry application using natural data would be beneficial for the readers. Alternatively, perhaps this term should be removed from the title.Â
Please note that I have added other minor suggestions in an annotated manuscript.Â
In conclusion, I would like to congratulate the authors on this excellent work, which features a wide variety of examples. I look forward to using this module in the future.
Pierre Lanari