Skip to content

GEM Software (GEMS)

Currently, GEM Software includes three code packages and a default thermodynamic database:

  • GEM-Selektor v.3 (GEMS3): the interactive code package for geochemical modeling by Gibbs energy minimisation;

  • GEMS3K: the standalone code for solving for geochemical equilibria;

  • GEMSFITS: the generic parameter optimisation code coupled with GEMS3K;

  • GEMS TDB: the default chemical thermodynamic database of GEM-Selektor package.

GEM-Selektor is a code package for interactive thermodynamic modeling of heterogeneous aqueous and non-aqueous chemical systems, especially those involving metastability and dispersity of mineral phases, solid solution - aqueous solution equilbria, and adsorption/ion exchange. Includes a built-in PSI-Nagra Chemical Thermodynamic Database 12/07 in both thermochemical and reaction formats, and an advanced multi-widget GUI (graphical user interface) with a context-sensitive help system. Enhanced with the Cemdata thermodynamic database, GEM-Selektor is widely used in the cement-chemistry community since 2007, where it is promoted by Prof. Barbara Lothenbach (Empa) and her colleagues, who also maintain and provide the Cemdata TDB.

GEMS3K is a standalone C++ code implementing the efficient numerical kernel of the GEM-Selektor v.3 package. The code includes the TSolMod library of built-in phase models of non-ideal mixing, relevant to a wide range of applications in chemistry, in particular, for cement chemical engineering. The GEMS3K code can be downloaded and coupled to other codes such as reactive mass transport simulators, parameter optimisers, or the CemGEMS back-end, where it is used via a common C++/Python interface of xGEMS. Input files (in key-value text format) for GEMS3K can be exported per mouse-click from the GEM-Selektor v.3 GUI, or prepared manually using any simple ASCII text editor. The runtime data exchange within the coupled code can be implemented in computer memory using TNode API.

GEMSFITS consists of the code and GUI for GEM input parameter optimization and inverse modelling. It can efficiently fit multiple parameters of thermodynamic models against various kinds of the experimental data. GEMSFITS uses the NLopt code package (MIT), and is coupled with the GEMS3K code for calculation of equilibrium states. GEMSFITS also provides various tools for statistical analysis, up to the Monte-Carlo evaluation of confidence intervals of fitted parameters. Results of fitting and calculation of statistics can be visualized and exported in various tabular and graphic formats.

GEMS TDB is included to ensure broad applicability of GEM-Selektor and GEMS3K codes. The default TDB includes the PSI-Nagra chemical thermodynamic database converted into GEMS DComp/ReacDC formats. It also includes the SUPCRT92 (Slop98.dat) dataset imported into GEMS DComp format. Third-party TDB plugins for specific applications can be downloaded separately and added to GEM-Selektor installation folder at any time. For instance, the Cemdata18 plugin database is of relevance for CemGEMS applications. In the GEM-Selektor code, thermodynamic data is automatically corrected for temperature and pressure of interest. Thermodynamic data for wide T,P ranges can be exported into GEMS3K I/O files and, thus into coupled reactive transport codes, as also has been done for the CemGEMS back-end.


  • Kulik, D.A., Wagner, T., Dmytrieva, S.V., Kosakowski, G., Hingerl, F.F., Chudnenko, K.V., Berner, U. (2013). GEM-Selektor geochemical modeling package: revised algorithm and GEMS3K numerical kernel for coupled simulation codes. Computational Geosciences 17, 1-24.
  • Miron, G.D., Kulik, D.A., Dmytrieva, S.V., Wagner, T. (2015): GEMSFITS: Code package for optimization of geochemical model parameters and inverse modeling. Applied Geochemistry 55, 28-45.
  • Wagner, T., Kulik, D.A., Hingerl, F.F., Dmytrieva, S.V. (2012). GEM-Selektor geochemical modeling package: TSolMod library and data interface for multicomponent phase models. Canadian Mineralogist 50, 1173-1195.