specmicp/c4c7e54e6efadev
dev vs master
Commit | Author | Details | Committed | ||||
---|---|---|---|---|---|---|---|
20ed7ad3d222 | georget | Fix compilation error, gcc 10 | Mar 18 2021 | ||||
8b102abefb55 | georget | WARNING !!! change test so that it passes, must check gibbs energy meaning in db | Feb 20 2019 | ||||
1592b0829d3c | georget | minor: some licence date updates | Feb 20 2019 | ||||
90ccaf2babd5 | georget | specmicp:minor disable solid solution if not solid phases to solve | Feb 20 2019 | ||||
4a35a1990d56 | georget | specmicp:solver add automatic initialization from simplex solver | Feb 20 2019 | ||||
e9102bb3ab1c | georget | common:simplex improve degeneracy/cycling, to improve further | Feb 20 2019 | ||||
58ce56c41f2e | georget | specmicp:solid solution add print/config for solid solutions | Feb 20 2019 | ||||
216e8152182b | georget | database:add simple Gibbs energy of formation | Feb 20 2019 | ||||
1c9a23f4c72c | georget | specmicp_common: add simplex solver | Feb 4 2019 | ||||
edc711bc7dfd | georget | database: add_molar_masses for elements | Jan 28 2019 |
README.md
SpecMiCP
Overview
SpecMiCP is a speciation solver to find the equilibrium state of a chemical system. The system is based on a mixed complementarity formulation of the equilibrium condition for minerals.
For a mineral with volume fraction Sm, the equilibrium condition is :
Sm >= 0, -log(IAPm/K) >= 0, -Sm*log(IAPm/K) = 0
where IAPm is the ion activity product and K the equilibrium constant. This condition is reformulated using [C-function][1] and the system is solved using a semismooth method.
Modules
SpecMiCP is not (yet) a program but a set of libraries that can be used to solve specific problems.
The following modules are already available :
- database : manage the database, parse it from a file, swap the basis, select the correct species, ...
- micpsolver : Solve a Mixed Complementarity problem
- odeint : integration methods for the solving ordinary differential equations (for problem involving kinetics for example)
- specmicp : *core* of the library, set the system, solve it, solve a reaction path model, ...
- reactmicp : the reactive transport solver
- data : contains two example of database in JSON format. 'specmicp_database.js' is just an example, mainly for the tests. 'cemdata_specmicp.js' is a partial translation of the [CEMDATA07][2] database.
The micpsolver and odeint modules can be use independantly.
Examples of use are provided in the examples directory.
About
SpecMiCP is developped by F. Georget (fabieng aT princeton DoT edu). It is part of my PhD work. The purpose of the PhD is to develop a reactive transport model to model the coupling between hydration, drying and carbonation in cement paste.
References : F. Georget, J. H. Prévost, and R. J. Vanderbei. A speciation solver for cement paste modeling and the semismooth Newton method . Cement and Concrete Research, 68(0):139--147, 2015.
[1] Finite-Dimensional Variational Inequalities and Complementarity Problems, Facchinei and Pang, Springer, 2003