When you create a reactive transport simulator with ChemPlugin, or if you repurpose an existing flow model as an RT model, your software is full-featured from the start.

With no need to laboriously add chemical features, you get a stable and capable software product beginning with release 1.0!

ChemPlugin's broad range of features include:


Create new clients quickly, easily, and reliably
Repurpose existing flow models as RT simulators
Chained, branching, and networked configurations
Continuum models in 1-D, 2-D, and 3-D
Rectilinear, radial, spherical, axisymmetric domains
Regular and adaptive gridding
Uniform or heterogeneous medium

Mass transport

Transport by advection, dispersion, and diffusion
Reactive and bioreactive transport
Dual porosity (stagnant zones)
Colloidal transport
Transient medium and fluid properties

Heat transfer

Advective and conductive heat transfer
Account for heat sources and sinks

Speciation in solution

Species’ concentrations and activity coefficients
Redox equilibrium and disequilibrium
Activity coefficients by Debye-Hückel, B-dot, Davies equations
Pitzer equations for activity coefficients in brines

Chemical state

Redox state
Mineral saturation
Gas fugacity
Redox disequilibrium energies
Compute charge imbalance
Electrical conductivity by USGS and APHA methods
Compute dissolved solids

Surface chemistry

Kd, Freundlich, and Langmuir sorption
Ion exchange
Two-layer surface complexation model


Mineral buffering
Buffered gas fugacity
Polythermal mixing and sliding temperature
Sliding pH, Eh, pe
Sliding activity and fugacity

Chemical kinetics

Kinetics of mineral precipitation and dissolution
Aqueous complexation and dissociation kinetics
Sorption and desorption kinetics
Kinetics of redox transformation
Enzymes and catalysts
Gas transfer kinetics
Combine equilibrium and kinetic reactions
Specify form of kinetic rate laws


Microbial catalysis and catabolism
Microbial growth and death
Thermodynamically consistent rate laws
Pure and mixed microbial communities
Evolution of microbial communities


Multithreaded for parallel execution
Call from C++, FORTRAN, Python, Perl, MATLAB
Both 32 bit and 64 bit versions included
Report factors limiting time steps
Retrieve any result from any instance
Feedback between client and objects