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. <still under construction> Publications:
|