Structure and Terminology#

First, it may be helpful to go over the structure of the ThermoEngine package and its role in the ENKI ecosystem. The term ENKI refers to the overall thermodynamic modeling ecosystem and community, including all packages, modules, user projects, classroom resources, etc. ENKI and its constituent tools and projects are built around the ThermoEngine package, a Python package that provides open-source access to thermodynamic modeling tools, including phase data, equilibration routines, and modules for performing MELTS-style calculations.

Within the ThermoEngine package are several modules. For the average user, the most important modules to be familiar with are the MagmaForge module and the RockyChem module. For some users, the Phases module and the Equilibrate module may be useful as well.

  • The MagmaForge module provides functions for easily running MELTS-style calculations, such as a fractional crystallization path. It provides an easy-to-use interface for interacting with the underlying phase data and equilibration routines.

  • The RockyChem module provides functions for easily converting bulk compositions and phase compositions, e.g. from weight oxides to mole elements.

  • The Phases module provides access to a phase library, which contains the thermodynamic data for pure phases and both thermodynamic data and solution models for solution phases.

  • The Equilibrate module provides routines for free energy minimization, given a set of independent variables (such as T and P).

There are also more advanced modules, such as:

  • The Coder module allows for the creation of new phase models using symbolic algebra.

In this tutorial, we will first cover the MagmaForge module and its applications.