GEMS Development Team


GEM Software is developed since 1996 (since 2000 at PSI). Since March 2008, GEMS is developed jointly by the PSI team (D. Kulik, S. Dmytrieva, G. Kosakowski, S.Nichenko) and by the ETHZ team (G. Dan Miron, now at PSI LES; Allan Leal); T. Wagner (now at RWTH Aachen) actively used and improved GEMS since mid-2004; A.Gysi (Colorado School of Mines) is co-developing GEM2MT module and providing MINES TDB for modelling hydrothermal rock alteration and ore formation. 

Dmitrii A. Kulik,  team leader (Paul Scherrer Institut): responsible for theoretical and practical development of GEM IPM algorithm, its accuracy and phase stability criteria; general design of GEM-Selektor and GEMS3K codes, documentation, help, web pages; co-development of TSolMod class library of built-in models of mixing in phases-solutions; lead of Nanocem CemGEMS web app project; co-development of the GEMSFIT code and architect of the ThermoEcos framework.

Svitlana V. Dmytrieva  (now at Cosylab CH) wrote the database management, script interpreter, process simulator, GtDemo sampler and many other modules of Selektor-A code in 1991-1996. She re-wrote Selektor-A code from C into the GEM-Selektor code in C++ in 1996-2002. At present, she maintains and develops the GEM-Selektor GUI based on the Qt UI framework. She is also involved in optimization and improvement of GEMS3K and GEMSFIT codes.

George Dan Miron (Paul Scherrer Institut), since September 2012 main developer of  GEMSFITS codes and since 2020 leading the ThermoEcos project. In particular, the code functionality is extended to fitting not only interaction parameters of mixing in non-ideal phases, but also  thermodynamic properties of phase components,  as well as inverse titrations, thermobarometry and other applications. He is also the main force in developing ThermoHub database and its client libraries ThermoFun and ThermoMatch as a foundation for future versions of GEMS.

Alexander P. Gysi (Bureau of Geology and Mineral Resources, New Mexico Tech, USA), leading expert in geochemistry of hydrothermal ore deposits, thermodynamics of fluid-mineral equilibria, experiments and numerical modeling of hydrothermal fluid-rock interaction. He is a GEMS enthusiast, since 2012 contributing with tutorials, testing and applications of GEMS codes. He is providing MINES TDB as a plugin for GEM-Selektor for modelling hydrothermal rock alteration and ore formation. He also is co-developing the GEM2MT module for simple geochemical reactive transport simulations such as sequential reactors chain, box-flux chain, and 1-D column advection-dispersion-diffusion setups.

Allan M.M. Leal (ETHZ IG GEG), the author of novel,  robust and efficient equilibrium methods and reactive transport solvers implemented in the Reaktoro framework for modeling reactive chemical systems. He participates in developing the next-generation numerical kernel xGEMS for GEM Software, achieved by combining GEMS3K and Reaktoro codes with novel client libraries ThermoFun and ThermoSol.

Tres Thoenen (Paul Scherrer Institut) is an expert in geochemical modeling and thermodynamic databases, in particular, one of authors of Nagra-PSI 01/01 database. He maintains the default 'Kernel' Nagra-PSI default chemical thermodynamic data base distributed with the GEM-Selektor package.

Sergii Nichenko (Paul Scherrer Institut): works on thermodynamic modeling of nuclear materials, in particular complex mixed systems such as nuclear fuels and molten salts, as well as evaluation of thermophysical and thermodynamic properties by MD/MC(molecular dynamics - Monte Carlo) methods. He is developing ThermoSol - a new version of TSolMod library for activity models of phases-solutions. He is also maintaining the HERACLES thermodynamic database in GEM-Selektor format. This database for nuclear engineering applications is available as a GEMS3 default database plugin.

Thomas Wagner (now at IML RWTH Aachen), an expert in geochemistry of ore deposits and geochemical thermodynamics. His main interest lies in thermodynamically consistent implementation of complex non-ideal solution models for rock-forming minerals, fluids,and ore minerals, as well as in methods of T-P correction of thermodynamic data and in advanced applications of thermodynamic modeling in hydrothermal ore geochemistry. T.Wagner used to be a co-developer of GEM algorithms and GEM-Selektor code, and a leading developer of the TSolMod class library of built-in models of mixing in phases-solutions.

Georg Kosakowski (Paul Scherrer Institut), leading expert in hydrogeochemical mass transport modelling. He participates in development of GEMS3K code, especially its interface for data exchange within coupled reactive transport codes, in particular OpenGeoSys-GEMS. His contribution was crucial in dramatic improvement of stability and precision of GEMS3K.

Present Collaborators

Barbara Lothenbach (EMPA, Switzerland), leading expert in thermodynamic modeling of cement hydration and degradation. Maintains and distributes Cemdata - a thermodynamic database for cement systems in GEM-Selektor format. This database is available as a GEMS3 default database plugin at

Alina Yapparova (ETHZ IGP, Switzerland) develops and applies the coupled code CSMP++GEM, which uses the (parallelized) GEMS3K kernel code for simulations of 1-D and 2-D reactive transport in geothermal systems with water-rock interaction, boiling and condensation phenomena included. She is also interested in reactive transport modelling of hydrothermal dolomitization (the topic of her PhD thesis). 

Ravi A. Patel (PSI LES) is an expert in Lattice Boltzmann methods of reactive transport modelling at pore scale. He develops and maintains the Yantra open source code, recently coupled with PHREEQC and xGEMS (GEMS3K) chemical solvers. As Yantra is a Python code, together with Allan Leal and G. Dan Miron, he developed a Python interface for GEMS3K as part of the xGEMS code.

Past Collaborators 

Implementation of GEM-Selektor and GEMS3K codes would not have been possible without people who contributed much to development of the preceding Selektor-A code and thermodynamic database:

Frieder Enzmann (Geowissenschaften, JOGU Mainz, Germany): Improvement of the GEM2MTmodule of GEM-Selektor for 1-D coupled reactive transport simulations.

Sergey Churakov (Paul Scherrer Institute): Supplied the source C++ code ofChurakov-Gottschalk EoS for gas/fluid mixtures, adapted as part of the TSolMod library.

Urs Berner (Paul Scherrer Institut) is a leading expert in thermodynamic modeling of radionuclide solubility limits in cement, clay and other aquatic systems of relevance for radioactive waste management.  He is themain peer in testing new functionality of GEMS and defining roadmaps of its future development.

Natalila Shcherbina (now at Forschungszentrum Julich): expert in thermodynamic modeling of solid-gas systems related to nuclear materials. She started compiling the HERACLES thermodynamic database in GEM-Selektor format.

Konstantin V. Chudnenko (Institute of Geochemistry, Irkutsk, Russia) created earlier SELEKTOR codes for IBM/360 compatible mainframes and maintains the alternative Selektor-W code that use the same GEM IPM algorithms but have different format of thermodynamic database and text-based user's interface. He contributed a lot in incorporating the proprietary IPM modules into Selektor-A codes in 1990-1996, and upgrading it into a high-precision IPM-2 module of GEM-Selektor in 2000-2001.

Igor K. Karpov (Institute of Geochemistry, Irkutsk, Russia), creator of the convex programming GEM approach (theoretical development, algorithms, applications, scientific mentorship).  In early 1970s he initiated the development of SELEKTOR codes and promoted this technique over 30 years, leading the Laboratory for Physicochemical Modeling. Prof. Karpov passed away in March 2005; the Laboratory is headed by Prof. K.Chudnenko.

Andriy V. Rysin designed module window/page screen forms and many other GUI elements in Linux version of the GEM-Selektor code. In 2001-2002, he connected these windows and dialogs to the Qt UI Toolkit, ported GEMS to various platforms, designed an improved GraphDialog and other user-interface utilities.

Vasilii A. Sinitsyn (Kyiv State University, Ukraine) in 1990-1996 took part in in inplementation of modules for calculation of thermodynamic data and development of DComp and ReacDC formats in Selektor-A code. He also contributed to compilation of thermodynamic database and performed many modeling applications.

Matthias Gottschalk (GFZ Potsdam, Germany): Conversion of a chemical thermodynamic database for metamorphic minerals and fluids into GEM-Selektor format (in 2004-2005).

Ferdinand F. Hingerl (ETH Zurich and PSI, since August 2012 at ERE, Stanford University, USA) from 2008 to 2012 contributed in extending TSolMod and GEMS3K codes with Pitzer, Extended UNIQUAC, and rEUNIQUAC models for concentrated aqueous electrolytes over wide ranges of temperature and pressure (in association with the CCES GEOTHERM project). SInce 2010 until mid-2012 he has been develooping the GEMSFIT parameter fitting code for aqueous activity models.

Leonardo Hax Damiani (PSI LES), in his PhD project (2015-2018) investigated reactive transport by diffusion of charged aqueous species using Nernst-Planck equation and Donnan approach. Codes that he implements include coupling of GEMS3K and Reaktoro with FeniCS and applications to radionuclide and hydrogen transport in clays and clay rocks. 

Mykhailo .S. Khodorivski (Kyiv) has translated SUPCRT92 subroutines from fortran to C and built them into Selektor-A package in 1991-1993.

Yuri A. Shybetsky (Kyiv) in 1996-1997 has extended Selektor-A and its thermodynamic database  to isotopic systems and worked on analysis and propagation of the uncertainty of thermodynamic data.

Irina L. Kolyabina  (Institute of Environmental Geochemistry, Kyiv) in 1996-1999 worked on extension of the Selektor-A built-in thermodynamic database.

Tanya Peretyazhko (now in Houston, USA) helped us in 1997-1999 at SSE Technocentre, Kyiv to test and set up surface complexation models in GEM implementation and to compare them with LMA  (FITEQL3) results.



DK wishes to thank Prof. V.B.Koval, Prof. E.V. Sobotovich, Prof. V.V.Tokarevsky; Dr. M.S.Khodorivsky and Dr. V.A.Sinitsyn for the administrative help and support during his terms in Kyiv institutions (SSE Technocentre, Institute of Environmental Geochemistry). He thanks many colleagues and students for discussions and criticism related to earlier versions of GEM-Selektor codes.

Further, DK thanks Prof. Jan Harff (Institute for Baltic Sea Research, Warnemuende, Germany) for constructive support during his work there in 1992-1993 and 1998; to Prof. S.U.Aja (Brooklyn College of CUNY) for his support while hosting DK and VS during their NAS/NRC OCEE exchange visits in 1996-1997. Special thanks are to Prof. Michael Kersten (Johannes-Gutenberg University, Mainz) for quite productive collaboration since 1997 on many SSAS modeling topics, promotion of GEMS development, and purchase of the first Qt professional license.

DK and SD also acknowledge the friendly and constructive help from Drs. U.Berner, E.Curti, W.Hummel, T.Thoenen, and other people at LES PSI during research visits in Spring 1999, resulted in the development of PM2SEL utility program, and their continuous support of GEMS development since June 2000. Finally, we are grateful to Dr. V.A.Pokrovskii for sending us the SUPCRT92 program and to Prof. D.A.Sverjensky (Johns Hopkins University, Baltimor, USA) for providing the PRONSPREP97 code.

Parts of work on GEMS development have been indirectly supported since 1990 through a number of research grants from the Ukrainian Foundation for Basic Research, Ministry of Chornobyl (Ukraine), International Science Foundation, Deutsche Forschungsgemeinschaft, European Science Foundation, NAS/NRC OCEE Radioactive Waste Program, and other public non-commercial sources. Since June 2000,  development of GEMS code has been taken over by the Waste Management Laboratory of the Paul Scherrer Institute; constructive help of the Laboratory Heads, Dr. J.Hadermann and Dr. M.Bradbury, and partial financial support from Nagra are gratefully appreciated.

Last but not least, the Team is grateful to Dr. Gillian Gruen (focusTerra, ETH Zurich) for professional design of an exciting set of icons used in GEM-Selektor Graphical User Interface and on GEMS help and web pages.

GEMS Development Team acknowledges recent and on-going support that comes from various sources, among others:

Nagra (Swiss National Cooperative for the Disposal of Radioactive Waste), Wettingen;


GEOTHERM project of the Competence Center Environment and Sustainability of the ETH Domain (CCES) (2008-2012);

SKIN project of the European Atomic Energy Community's Seventh Framework Programme FP7 (2011-2013);

Fluid chemistry and fluid-rock interaction of Alpine veins, Central Alps (T.Wagner, SNF funded);

Internally-consistent thermodynamic data for fluid-rock equilibria: Development and applications (T.Wagner, ETHIIRA funded);

SNF Sinergia project "Stable phase composition in novel cementitious systems: C(-A)-S-H"

SNF Sinergia project "COTHERM - COmbined hydrological, geochemical and geophysical modelling of geotTHERMal systems"

SNF CASH-2 project (on-going).

History of Development

GEM-Selektor belongs to a SELEKTOR family of program codes that implement a convex programming approach to Gibbs energy minimization calculations of chemical thermodynamic equilibria, developed since 1974 in the laboratory of Prof. Igor K.Karpov at the A.P.Vinogradov Institute of Geochemistry, Irkutsk, Russia.

The first Selektor code (based on a combination of "steepest descent" and Newton minimization algorithms) for BESM-6 mainframes appeared in 1975. Since then, the code was used in many academic institutions in  the former USSR to solve chemical equilibrium problems in various scientific and applied fields. The modern IPM minimization algorithm has been developed by I.K.Karpov, V.A.Detkovskaya and K.V.Chudnenko in 1984-1988. At the same time, a Selektor-3 code has been re-written in PL/1 for IBM-360 compatible mainframes.

An interactive concept for Selektor implementation on PC was suggested by D.Kulik in 1990, when a collaboration between his group at the academic Institute of Geochemistry and Mineral Physics, Kyiv (Ukraine) and Prof. Karpov's laboratory (Irkutsk, Russia) was established. Since then (in 1991-1999), D.Kulik's group at the Environmental Radiogeochemistry Centre and the SSE Technocentre, Kyiv, Ukraine (S.Dmitrieva), collaborated in the development and application of SELEKTOR codes.

These activities became even more international since 1992, supported in part through several research grants (International Science Foundation, Deutsche Forschungsgemeinschaft, European Science Foundation, NAS/NRC OCEE Radioactive Waste Program) and scientific excahnge programs for D.A.Kulik (at Institute for Baltic Sea Research Warnemuende,Rostock; University of Bonn; J.Gutenberg University, Mainz, Germany; Brooklyn College of CUNY, USA; Paul Scherrer Institute, Switzerland).  Most of this support was aimed at development of geochemical modeling applications in marine- and environmental geochemistry; naturally, this work gave important feedback and ideas for improvement and further development of software and thermodynamic database. This work has also resulted in an extension of GEM  technique to surface complexation on mineral-water interfaces (Kulik, 2000, 2002, 2006), which has been implemented since 1995 in Selektor-A and GEMS version 1 codes.  

Since June 2000, the development of GEMS code has been taken over by the Waste Management Laboratory at the Paul Scherrer Institute (Switzerland) in continuing collaboration with Prof. Karpov's laboratory and SSE Technocentre, Kiev (S.Dmitrieva). in 2001, the GEM IPM module (numerical  "engine" of Selektor codes) has been upgraded into an IPM-2 module, yielding a 9 order of magnitude gain in the mass-balance precision of GEM technique, which made it possible to use GEM in most demanding geochemical applications involving trace elements and radionuclides. The IPM-2 module, together with an improved graphical user's interface powered by the Qt Toolkit, forms a basis of GEM-Selektor v.2-PSI program package. 

The first release of the GEMS-PSI version 2.0 code with built-in edition of NAGRA-PSI thermochemical database, oriented mainly to aquatic systems and applications in performance assessment in radioactive waste disposal, took place by the end of 2003 on this web site (

Since 2008, the GEM-Selektor code is developed jointly by the PSI LES and the ETHZ IGP teams. The emphasis of PSI team is in modeling applications of GEMS and GEMS3K (formerly GEMIPM2K) for scientific issues related to nuclear waste disposal. The emphasis of IGP team is in modeling applications of both codes in various areas of hydrothermal ore geochemistry and geothermal research. Conversely, this collaborative development is expected to lead to much broader acceptance of GEM-Selektor in geochemical research community. These efforts led to even more stable and precise GEM IPM algorithm, as well as introduction of the TSolMod class library and data interface for built-in models of mixing of phases-solutions. The present GEM-Selektor v.3 and GEMS3K codes comprise the outcome of these efforts.

Since 2013, after Prof. T.Wagner move to University of Helsinki (UH), Finland, GEM Software is developed jointly by PSI LES,  UH and ETHZ IGP teams. Later (in 2018), Prof. Wagner moved to RWTH Aachen (Germany).

Since 2012, Prof. A.P.Gysi (Colorado School of Mines) is actively promoting GEMS in hydrothermal geochemistry and ore formation application, in form of classes, MINES TDB and co-development of the GEM2MT module of GEM-Selektor. 

Last updated:  19.05.2019

 (c) 2003-2020  GEMS Development Team