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.