ENKI users are working on a variety of interesting projects!

Jenna Adams

Jenna Adams

Traditionally, calibrating new crystalline solution activity-composition models, an essential component to phase equilibria calculations in the MELTS family of phase equilibria codes, has been an extremely tedious and time-consuming process. In collaboration with co-PI Aaron Wolf, my ENKI-related work focuses on using Jupyter notebooks to create an automated system that aims to make calibrating new thermodynamic activity-composition solution models much easier and more accessible to the many model users in the earth and planetary science community. My particular motivation for doing this is that my research endeavors to better understand the genesis of ocean island lavas and involves rigorous use of thermodynamic, phase equilibria models, like MELTS and MCS (Magma Chamber Simulator). Garnet-rich lithologies in the source regions of ocean island lavas likely play an important role in controlling major and trace element signatures we see in oceanic island ("hotspot") lavas. The current activity-composition model for multi-component garnet consists of only three components. Thus, in order to adequately model the geochemical consequences of garnet-rich lithologies in ocean island source regions, a new 7-component thermodynamic model for activity-composition relations in the garnet solid-solution has been created with help from my advisor Frank Spera and ENKI PI Aaron Wolf. This model will be calibrated using the new calibration Jupyter notebook discussed above, and will ultimately be incorporated into MELTS. Once the "machinery" is set up to make activity-composition models relatively easy to implement, additional critically important solid solution models will be updated as well, such as the addition of a Cr-component in clinopyroxene.

ENKI user

Paula Antoshechkina

MAGMA@Caltech: I have not used ENKI extensively, but rather I am developing software and thermodynamic models that fit between the cutting edge tools available on the ENKI portal and more traditional MELTS software (the rhyolite-MELTS / pMELTS graphical user interface, MELTS for Excel, the "Supplemental Calculator" applet etc.). Together with Paul Asimow, I am responsible for alphaMELTS - a text-based interface to the MELTS family of algorithms - and related resources on the MAGMA@Caltech website. Current work includes:

  • Development, maintenance and support for alphaMELTS series 1 and 2, including bug-fixes, implementing user requested features, and tutoring at alphaMELTS workshops.
  • Maintenance and support of the Linux version of graphical user interface (GUI) to rhyolite-MELTS and pMELTS.
  • Software support for all versions of MELTS, on all platforms, via a forum with over 1300 registered users, and as co-administrator of a Facebook page with over 500 followers.

alphaMELTS 2 is a complete rewrite of the alphaMELTS software, based on the latest ENKI-hosted code (see the alphaMELTS branch of xMELTS). Executables, libraries and wrappers are (or will be) available for Windows, MacOS and Linux. Interfaces that are intended to help users convert existing alphaMELTS scripts or MATLAB code, and provide a path to tools on the ENKI portal, include:

  • The original alphaMELTS text-menu interface, updated and expanded to make it easier to move calculations to and from other interfaces, such as the GUI, MATLAB and Python versions.
  • A high-level feature-rich library of alphaMELTS functions (libalphaMELTS; written in C), and a low-level thread-safe library of alphaMELTS functions (libpHMELTS; written in C++).
  • MELTS for MATLAB, a user-friendly set of class-based wrappers to libalphaMELTS, for equilibration or "Supplemental Calculator"-like calculations, and much more.
  • A 'sister' version of MELTS for MATLAB, using the same class hierarchy (or as close as possible), that will be written in Python; this is intended for offline calculations and/or for users coming from the alphaMELTS executable or MATLAB interface.
  • A port of VAPORS to the libraries and executables, that will similarly complement the ENKI version of VAPORS (see below), being developed by Cayman Unterborn (with Denton Ebel and others).

Calibration of solid and liquid solution properties: ENKI is in the process of implementing a flexible model calibration infrastructure, allowing users to create thermodynamic models tailored to their own needs and interests. In the meantime, I am working on three less ambitious calibration efforts; each directly interfaces with a MySQL database (nicknamed Leprechaun), which is adapted from traceDs / LEPR to include volume data, and limited metadata related to confidence in the experimental data. The new models may be useful in their own right or, eventually, as building blocks for user-calibrated models within the ENKI framework:

  • Using a Bayesian approach to calibration of the equation of state of a ten end-member garnet model (with Aaron Wolf and others).
  • Preliminary addition of a CO2 component to the pMELTS system, comparable to rhyolite-MELTS 1.1.0 (with Oliver Shorttle and others).
  • Compiling data for a more extensive calibration of amphibole solid solution properties (with Paul Asimow and others).

Trace Elements: The ability to simultaneously calculate trace element abundances is a key feature of alphaMELTS, and indeed the pHMELTS model relies on feedback between the thermodynamic engine and the trace element engine (strictly "trace species", as "H2O" is included). MELTS is written in C but uses a code layout inspired by object-oriented languages (see the GitLab code base). I am currently rewriting the trace element engine in alphaMELTS, which was previously a tracked-on module, to use a similar code layout; this should be easily portable to other languages, such as such as C++ and Objective C, allowing it to be incorporated into ENKI. Specific features will include:

  • Adding the pHMELTS thermodynamic model, which accounts for partitioning of H2O into nominally anhydrous minerals like olivine and orthopyroxene, to alphaMELTS 2 (with Paul Asimow).
  • Encoded calculation of partition coefficients, D(P,T,X), using the lattice strain model; this functionality will also be available as a standalone calculator independent of MELTS (with Jon Blundy).
  • An option to use MELTS-calculated values to extend the range of mineral phases and ions for which D's may be calculated, and hooks so that users can define their own functions for calculation of D(P,T,X).
  • Setting up a mirror of the traceDs / LEPR database; upgrading it to use the latest PhP and security features; minor bug-fixes and new features for the user interface (with Mark Ghiorso).
  • Migration of the calibration data of Ghiorso & Gualda (2015) to the updated database; currently only about half the dataset is viewable from the traceDs / LEPR web interface.
  • Adding export and import features to traceDs and alphaMELTS 2 so that partition coefficients downloaded from traceDs may be easily assessed and employed in alphaMELTS.
ENKI user

Florence Bégué

See MagmaSat+ project below, undertaken jointly with Kayla Iacovino.

ENKI user

Suzanne Birner

I have been using the ENKI portal primarily to incorporate the MELTS spinel activity model into geochemical models I developed during my PhD at Stanford University. I am particularly interested in the oxygen fugacity of mantle rocks, and the calculation of this parameter depends strongly on the determination of magnetite activity in the spinel phase. Prior to the existence of ENKI, this calculation could only be done on a web applet, which made running large numbers of samples prohibitively time-consuming. With ENKI, I have written a Jupyter notebook that performs the calculations quickly with very little user effort. Another bonus is that I can then easily incorporate these calculations directly into other models I develop. For instance, I am currently working on a model that predicts the evolution of recorded oxygen fugacity during melt-rock interaction processes beneath mid-ocean ridges.

Having just finished my first year as an assistant professor at Berea College, I have also spent time thinking about how to use ENKI as a teaching tool, particularly within the context of an undergraduate petrology class. I would like to develop activities using the ENKI framework that could then be posted to educational compendium websites such as SERC/NAGT.

ENKI user

Grayson Boyer

My goal is to produce free software tools for ENKI that others will find useful!

I use ENKI extensively in my research with Everett Shock's group (GEOPIG), evaluating energetic costs of biomolecule synthesis in microbial communities in the context of surrounding water geochemistry. To this end, I have developed a variety of Jupyter notebook tools for automating calculation of water sample properties (Batch_EQ3), wrangling large datasets and visualizing trends (db_searcher), and estimating and plotting properties of membrane lipids (PolarLipidZC). I am currently optimizing notebook tools for deriving aqueous thermodynamic properties of organic molecules by scraping structural properties from online databases.

I also maintain the slop16 thermodynamic database available on the ENKI GitLab.

ENKI user

Juliane Dannberg

Integration of computational thermodynamics into ASPECT

My goal is to interface the freely available CIG modeling software ASPECT with the high-performance, custom libraries of thermodynamic modeling software under development by PI Spiegelman in order to make large-scale, 3D computations of coupled geodynamic/thermodynamic models available to a wide range of users.

Lynne Elkins

Lynne Elkins

Designing notebooks for uranium-series disequilibria in partial melts

My goal is to use the ENKI platform and Jupyter notebooks to produce functional, forward melting models for U-series disequilibrium calculations. Uranium-series disequilibrium measurements are the only direct, empirical evidence we have for the timing of chemical processes like mantle magma generation, but complex melting models are required to understand and interpret how such measured disequilibria may have formed. Beyond traditional batch or fractional melting, it is necessary to consider the time-dependent processes of melt generation and magma transport themselves. Models used to calculate and predict U-series isotopic disequilibria in partial melts either must be simplified to allow for analytical solutions, potentially removing much of the complexity that may be important during melting, or they need to be solved numerically. Numerical calculators for the full range of such calculations (from chemical equilibrium to disequilibrium during melting and melt transport), however, are no longer publicly available, if they ever were. The level of computer modeling and programming expertise required to effectively create such calculators may be further limiting many researchers’ ability to use such sophisticated models to interpret their own data or to consistently reproduce interpretive methods.

Currently, we are creating and testing Jupyter notebooks that can calculate U-series in partial melts for pure equilibrium and pure disequilibrium transport models, and we expect to further write and test a model that allows for intermediate scenarios (that is, a “near-fractional” dynamic melting model). Ultimately, we hope to generate a modular notebook generator that is integrated into the ENKI platform and that permits users to select from several U-series modeling methods, allowing them to solve a range of problems of interest to the geochemical and petrologic community.

ENKI user

Kayla Iacovino

MagmaSat+ in the ENKI framework

The calculation of volatile solubilities and equilibrium fluid compositions are important for understanding magma storage, differentiation, and degassing processes. Volatile saturation pressures are commonly used to interpret melt inclusion data and give insights into crustal magmatic storage pressures (and depths).

Currently, volatile solubility calculation is built into the ENKI Equilibrate package, but its potential as a volatile-focused tool has not yet been fully exploited. Saturation conditions and dissolved and exsolved volatile concentrations can be calculated very simply within the currently implemented framework of MELTS, which relies upon the volatile solubility model of MagmaSat. Using this as a foundation, Florence Bégué and Kayla Iacovino are working to create a versatile mixed volatile (H2O-CO2) solubility tool capable of producing outputs relevant to volatile solubility and degassing processes. MagmaSat+ will have advanced plotting capabilities and extensibility such that the solubility model can be easily implemented into any other Python code. Early features will include:

  1. The ability to plot H2O-CO2 saturation curves at a given temperature for a range of pressures;
  2. A user-friendly interface using Jupyter widgets for inputting magma composition and necessary thermodynamic parameters;
  3. Ability to compute saturation pressures and fluid compositions for multiple samples at once, read in from a user-supplied Excel or CSV file.

Currently, these implementations are being created in standalone Jupyter notebooks. The goal of the MagmaSat+ project is the creation of one Jupyter notebook that contains all functionality of the currently separate notebooks. Ideally, widgets at the top of this notebook would allow the user to choose the calculation(s) they wish to use.

Yitong Lyu

Yitong Lyu

The project I'm working on for ENKI aims to set up a Jupyter notebook that runs adiabatic melting by pMELTS. Users are able to edit this notebook to change the bulk composition of the rock that's melting, to change the mantel initial temperature, to switch between equilibrium melting and near-fractional melting, and to calculate partition coefficient values for U, Th, Ra and Pa for different minerals that have constant bulk partition coefficients. The outputs will be sent to an Excel file that has columns for pressure, degree of melting, mineral modes for all the major minerals and calculated bulk partition coefficients for each element.
Robert Myhill

Robert Myhill

Semi-automatic thermodynamic model generation and manipulation

I am currently developing tools to allow users to generate and manipulate complex thermodynamic datasets with minimal user input. Many aspects of this work take advantage of new Python modules implementing aspects of polytope algebra (pycddlib), automatic differentiation (autograd) and parallelised affine-invariant Markov Chain Monte Carlo (emcee).

Coupling thermodynamics and geodynamic software

Geodynamic modelling of processes such as melting and reaction have traditionally been hindered by imprecise and computationally expensive thermodynamic calculations. The advent of new sampling techniques coupled with the ability to output precise thermodynamic data using ENKI holds the promise of making realistic simulations tractable for the first time.

Meng Tian

Meng Tian

My past research and current interest straddle computational thermodynamics and fluid dynamics, unified under a central theme on Earth’s deep carbon transport. The motion of deep carbon is governed by fluid mechanics, whereas the chemical interactions occurring along transport pathways are dictated by thermodynamics. Putting thermodynamics and fluid dynamics into a consistent framework is still a computational challenge, and the growing ENKI project provides the toolkit to tackle this challenge and address the questions regarding Earth’s deep carbon transport.

I am also motivated by ENKI to study the coupling between thermodynamics and intra-crystalline deformation. As diffusion is driven by gradient of chemical potentials which are stress-dependent, heterogeneous stress distribution within mineral crystals will be coupled with element diffusion. Armed with the improved accessibility of thermodynamic data in ENKI, I plan to develop a Jupyter notebook that can simulate coupled deformation and diffusion based on the ENKI Thermoengine.

Cayman unterborn

Cayman Unterborn

My goal is to recreate and redesign the VAPORS condensation sequence code of Denton Ebel and co-authors for the ENKI database. VAPORS performs phase equilibria calculations between hot nebular gas and condensing solids for low pressures (<1 bar). These calculations provide us with information as to the stability of various elements at different points in a protoplanetary disk which can then be fed into planet formation models to determine the degree of mixing in the disk itself as a consequence of planet formation. As VAPORS was originally designed to use the MELTS algorithm, it is a natural extension to recreate the VAPORS code in the ENKI framework and provide it as an open-source code for the first time. This work is in conjunction with the ASU NExSS grant, PI Steve Desch.