Can fit internally consistent input parameters of chemical thermodynamic models against the experimental data
Is
coupled with the GEMS3K code for
Gibbs Energy Minimization calculation of equilibrium states
Allows for bound, (non-)linear (in-)equality constrained minimization of weighted squared residuals
Written in C/C++, available with source code, completely parallelizable on HPC architectures
Provides tools for statistical analysis with thorough evaluation of the fitted parameters uncertainty
Results
of fitting and statistics can be visualized and printed in various
graphical formats using the graphical shell
Download | Tests/Examples | Development Team |
GEMSFITS software collection consists of: gemsfit2 and gfshell2 codes, both coupled with the GEMS3K solver of geochemical equilibria and with the TSolMod library of >25 models of mixing in multi-component phases.
gemsfit2
code performs bound,
linear and non-linear (in-)equality constrained optimization of input
parameters of chemical thermodynamic models against the experimental
data from the NoSQL database, which guarantees that open source,
state-of-the-art technology is used for data management. The code uses
parts of its early prototype GEMSFIT (Hingerl et al., 2014).
gemsfit2 uses a robust open-source library NLopt
for nonlinear optimization, providing easy selection between several
algorithms (global, local, gradient-based). Statistical evaluation of
results is performed by calculating summary statistics, sensitivities
of measured data and parameters, correlation coefficients, and
confidence intervals using Monte Carlo simulations. Computation time
can be
reduced by means of parallelization of computation-intensive parts of
the code with the Open Multi Processing (OMP).
gfshell2 code is a GUI (graphical user interface) Qt-based
shell that allows the user easily create a project for parameter
fitting; import from csv files and manage the experimental data base
records in JSON format; create, modify,
and save the fitting task specifications (in JSON) to project database,
and export them into gemsfit2 input files; run the gemsfit2
fitting task, import the results and display then in spreadsheet and
graphical (Qwt) forms, then store the task results in the NoSQL project
database.
In a single GEMSFITS project, any number of fitting tasks (variants)
can be created, edited (in JSON format) and stored in database, each
with its own setup. Multiple parameters can be fitted simultaneously
against selected experimental properties, along with several options
for data weighting, parameter bounds and constraints, and statistical
methods.
Due to the flexibility of NoSQL database, which does not need a
priori knowledge of the data structure, any experimental data can be
kept, describing various experimental properties such as: composition
of chemical system in each sample, measured phase compositions of
samples (e.g. solubility data), measured phase properties (e.g.
density), system volume, temperature and pressure, osmotic
coefficients, activities/fugacities of components, integral properties
of mixing, etc.
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. doi.
Hingerl, F.F., Kosakowski, G., Wagner, T., Kulik, D. A., Driesner, T. (2014). GEMSFIT: a generic fitting tool for geochemical activity models. Computational Geosciences 18, 227-242. doi.