specmicp/6d08d8744732chloride
chloride vs master
Commit | Author | Details | Committed | ||||
---|---|---|---|---|---|---|---|
0ae6488a886f | georget | chlorides:example update example | Oct 19 2018 | ||||
943fd2fe5ed6 | georget | specmicp:minor adds some asserts in AdimSolver | Oct 19 2018 | ||||
d7edfae72c6f | georget | chloride:eqstagger turn off solver non ideality while perturbating solution | Oct 19 2018 | ||||
3fb34b127383 | georget | mesh: add custom nodes coordinates mesh (+conf) | Oct 5 2018 | ||||
4527ae1e21e8 | georget | reactmicp:chloride small improvements - running simmulation | Sep 28 2018 | ||||
fff28f19ecc4 | georget | reactant_box: add access to surface model | Sep 28 2018 | ||||
fd6b77ea4c99 | georget | specmicp: add fixed saturation constraints | Sep 26 2018 | ||||
2fd28b1ba0e4 | georget | bugfix: pow10 was a glibc nonposix extension | Sep 23 2018 | ||||
8a188c3d283a | georget | specmicp:extractor: add effective saturation index functions | Sep 23 2018 | ||||
4b72db0089fc | georget | reactmicp: chloride Perturbation of adim solution only solves aqueous species | Sep 13 2018 |
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 number of moles "nl", the equilibrium condition is :
nl >= 0, 1-(IAP/K) >= 0, nl*(1-(IAP/K) = 0
where IAP 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, ...
- 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 tests. In particular, files in tests/specmicps/ show some reaction paths modeling and a kinetic example.
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.
[1] Finite-Dimensional Variational Inequalities and Complementarity Problems, Facchinei and Pang, Springer, 2003