WELCOME TO ENKI

ENabling Knowledge Integration

Modeling at the speed of thought...

WHAT IS ENKI?

ENKI is a flexible, collaborative ecosystem for thermodynamic modeling of geologic systems. ENKI is built upon the ThermoEngine package, an easy-to-use Python framework for using, comparing, and developing thermodynamic models. At the center of ThermoEngine is the MELTS family of models. The ENKI project is the brainchild of Mark Ghiorso and was first developed by Mark and an interdisciplinary team of colleagues in 2016. Since then, many tools and applications have been built on top of the ThermoEngine package and many more tools are in development. Click here to learn more about ENKI and ThermoEngine. To see current examples of ENKI's capabilities, check out our Gallery! ENKI is a work in progress, and more abilities-- including a User Guide-- will be released over the next several months. If you would like to stay informed about ENKI developments, please email Aaron Wolf at aswolf AT seti.org to be added to the mailing list.


HOW TO USE ENKI/THERMOENGINE

Currently, there are two ways to use ThermoEngine: via the ENKI portal (an online server/cluster) or via a locally-installable Python package.

Accessing ThermoEngine via the ENKI Portal
The ENKI portal was publicly launched in 2020 and provides access to ThermoEngine capabilities through an online web portal. New users need a GitLab account and should email Mark Ghiorso for server access. The portal can be accessed from the “SERVER” menu at the top of this page or by clicking HERE.

Accessing ThermoEngine as a Locally-Installable Package
More recently, ENKI developers have been working to create a lightweight version of the ThermoEngine package that can be directly installed on a user’s machine. This package is still a work in progress but will soon include all features of the server-based ThermoEngine. As new capabilities and models, such as MELTS 2.0, are developed, they will be added to the locally-installable ThermoEngine package. The new ThermoEngine package also provides lightweight access to online tools with no installation required (see Gallery for examples). Instructions for installing the ThermoEngine package locally can be accessed from the “DOCUMENTATION” menu at the top of this page or by clicking HERE. For more details about the locally installable version of ThermoEngine, see the July 2025 update below this section.

Which ThermoEngine Is Right For Me?


MAJOR ENKI/THERMOENGINE UPDATE: JULY 2025

Over the past years the ENKI development team has been building new infrastructure for open, reproducible, and flexible thermodynamic model building. This new toolkit will ultimately allow us to provide significant updates and recalibration of the MELTS model (and other related models), and provide a completely transparent and reproducible workflow.

At the heart of the ENKI infrastructure is the ThermoEngine Python package, which hosts phase models, equilibration routines, and coding modules for creating and calibrating new phases/models. However, to maintain existing MELTS features within ThermoEngine, we have been relying on large amounts of legacy code to run the original MELTS models. Making this legacy code work led to a complex installation process and was only ever compatible with linux or MacOS. In the past, we got around this by running the ENKI Community Server: a cloud-based solution that required no local installation.

Moving forward, our goal is to move away from the server-based structure and instead allow users to easily install and use ThermoEngine (and thus the MELTS models and equilibration routines) on their local machines. To this end, over the past year we have been working on removing all of the legacy code from the ThermoEngine codebase. We previewed this new version of ThermoEngine at the Goldschmidt 2025 meeting, and the table below summarises our roadmap:

Feature-complete, pip-installable version of ThermoEngine We are past the major technical hurdles, and we have the MELTS v1.0 and v1.2 liquid models working with the most frequently used mineral models. The rest of the models will be added over the coming months. Once the new version of ThermoEngine is complete we will submit a paper to the Journal of Open Source Software (JOSS).
User-friendly interfaces to MELTS calculations We have a new Python interface for MELTS calculations: MagmaForge. Right now this module supports batch and fractional crystallisation and will soon support batch and fractional melting (isobaric or isentropic). We have prototype graphical user interfaces (GUIs) which will be released soon.
Trace Element and Isotope Engine The ability to model trace element fractionation during melting and crystallisation (both batch and fractional) will be added to the MagmaForge interface soon.
Reinstantiation of missing MELTS-based calculation tools Due to changes in the ENKI cloud server infrastructure some online MELTS-based calculators are no longer available. These will soon be added to the ThermoEngine gallery page and will be able to be downloaded or run in the cloud.
Widen dependency compatibility Right now ThermoEngine is only compatible with Python v3.10 and specific versions of some of its dependencies. You may also notice that there are many deprecation warnings generated while running ThermoEngine. Once ThermoEngine is feature-complete we will widen the compatibility and fix the deprecation issues.
New MELTS v2.0 model A recalibrated version of the MELTS model which supports model uncertainty propagation is almost complete. A manuscript (and accompanying software release) will be submitted before the end of the year.
Integration of the Deep Earth Water (DEW) model Work is ongoing for DEW to be integrated into ThermoEngine as a native phase, this will enable DEW to be used with the full range of ENKI tools and utilities, as well as allowing DEW fluid equilibration with complex solid solution and silicate liquid phases.
New mineral solid-solution models We now have the infrastructure in place to rapidly reformulate and recalibrate the solid solution models in MELTS, and updates to all major solid solution phases are planned.
Addition of other families of models For model intercomparison we plan to add other families of thermodynamic models to ThermoEngine, using the coder code generation pipeline.

Want to try out the new version of ThermoEngine? First, set up a fresh conda environment with Python v3.10, then run “pip install thermoengine” (see instructions here). This should succeed on all common platforms. Feel free to ask for help with configuring conda during our weekly office hours. Please remember that this is a preview version for now- it is not yet feature complete.

The ENKI Community We are establishing a mailing list for ENKI-related news and a new Discord server for users to get help from each other and the ENKI developers. From Fall 2025 we will begin running weekly “office hours” to provide real-time user support. If you would like to be added to the mailing list, please contact Aaron Wolf at aswolf AT seti.org.

Get Involved If you think you can contribute to the ENKI project we would like to hear from you! This could be as simple as testing the ThermoEngine gallery examples for your own applications, working with us to develop new applications, or even collaborating on building new thermodynamic models.

Want to build on top of ThermoEngine? This is exactly what thermoengine is designed to be used for! But please note that you must follow the GNU Affero license when re-using the ThermoEngine code. Importantly, this includes making the source code for any modifications (including interfaces etc.) open source. If your application runs on a cloud-based portal, you must make the source code easily available through that service. Please reach out to the development team if you have questions about this. Please give credit to the ENKI project and the developers of the original models (via academic citations, linking to ENKI’s gitlab repos, or even consider inviting to work with us as collaborators). Together, we can grow the tools and community support needed to help everyone flourish!


NEWS AND ANNOUNCEMENTS

Website Updates. (June 13, 2025)

In advance of our Goldschmidt workshop, we are making changes to the website. If you are unable to locate content that was previously available on the website, please contact Suzanne Birner: birners AT berea.edu

ENKI Workshop at Goldschmidt 2025. (January 9, 2025)

Registration is now open for our workshop at the 2025 Goldschmidt Meeting. The 1-day workshop, 'Advances in thermodynamic modeling of volcanic processes using MELTS and the ENKI software ecosystem', will be held Sunday, July 6, 2025. This workshop will introduce users new and old to the ENKI thermodynamic modeling ecosystem and to the latest developments in modeling volcanic/magmatic processes near the surface and at depth. We will showcase a selection of ENKI’s suite of open-source thermodynamic modeling tools, with a focus on how ENKI’s thermoengine software package provides easy access to the entire suite of MELTS models. More information about the workshop can be found here. The deadline for workshop registration is May 21, 2025.

Upcoming developments: an easy-to-install ThermoEngine package. (December 13, 2024)

ENKI developers have been working diligently to create a version of the core ThermoEngine module that is easily installed as a standard, lightweight Python package on a user’s local machine. This package will be faster, easier to use, and require less storage space than any previous MELTS implementation. We also plan to host a workshop at Goldschmidt 2025 that will focus on the new ThermoEngine package, as well as other exciting developments, such as MELTS 2.0 and a new gallery of research and teaching tools. More workshop details coming soon!

ENKI development will soon be moved to a cloud-based production server; the original development server will be decommissioned on Nov 4, 2021. (October 13, 2021)

The ENKI development server will be decommissioned on November 4th, 2021. This server has been superseded by the Google Cloud-based ENKI production server, which will continue to provide community modeling resources and deliver free access to the ENKI software ecosystem. The development server is no longer capable of delivering the computing resources necessary to support the growing ENKI user community. If you have files on the development server that you wish to save, please log into your account prior to November 4, and download them for safekeeping. To continue using the ENKI modeling platform, please watch Accessing the ENKI software ecosystem on the ENKI Portal YouTube channel to learn how to make an account on the ENKI production server.

Accessing the ENKI software ecosystem (March 31, 2021)

Want to access the ENKI software ecosystem? This video shows you two simple ways.


Presentation: "Modeling magma storage: A data science perspective" (March 31, 2021)

If you missed the SZ4D MCS volcano workshop on Feb 23, 2021, here's the video to watch at your leisure. Mark S. Ghiorso discusses—from a data science perspective—issues related to model construction, interoperability, and publication. (Begins around 49:00.)


New cloud-based production server (February 27, 2020)

You may have noticed a new server in the ENKI SERVERS menu at the top of the website: the production server. This cloud-based resource runs the most stable version of ENKI. Use it for class work, workshops, routine calculations, or anything that does not require new and untested features or novel capabilities of ENKI.

The development server (formerly Compute Server) contains the latest code but is less stable than the production server and may contain bugs. Use the development server for situations in which some new feature needs to be alpha- or beta-tested.


Third ENKI user workshop (August 12, 2019)

Group photo from third ENKI user workshop, Breckenridge, Colorado

Group photo, user workshop 2019

Equilibrate module (August 3, 2019)

We have much to report, but for now we wanted to alert you that the equilibrate module in Thermoengine has been significantly improved.

The equilibrate module implements a Python interface to the Equilibrate and EquilState classes. It also implements a Python class called MELTSmodel that wraps the objective-C classes (EquilibrateUsingMELTSv102, EquilibrateUsingMELTSv110, EquilibrateUsingMELTSv120, EquilibrateUsingpMELTSv561, EquilibrateUsingMELTSwithDEW, and EquilibrateUsingStixrude).

The Equilibrate class provides methods to calculate an equilibrium phase assemblage given a list of Phase class instances. You can calculate equilibrium in closed thermodynamic systems under a variety of constraints:

You can also calculate equilibrium under constraints of fixed temperature and pressure in open thermodynamic systems by specifying one or more fixed elemental chemical potentials.

For details of the underlying theory and algorithms implemented in the Equilibrate class, see the notebooks in the PublicNotebooks/Equilibrate folder on the ENKI server.

See also Equilibrate package in the Thermoengine documentation.


ENKI Server Update (Feb 19, 2017)

The ENKI server is now running JupyterLab with a number of extensions that improve server performance. The server now has better access to the file system, including a public notebook folder, and has direct access to the ENKI-portal resources at GitLab. Jupyter notebooks work as before, but you may notice that some notebook commands are located in a different part of the user interface. For a tour of the interface, see the YouTube video, Intro to the ENKI Server.

 

About ENKI
Founders
User Projects
Workshops
Presentations