rtmf6 - Reactive Transport Modeling with MODFLOW 6 and PHREEQC 3

Coupling flow, transport, and chemical reactions

rtmf6 couples the models MODFLOW 6 and PHREEQC into a reactive groundwater transport model. It supports parallel computing both in transport and the reaction part.

Coupling the transport part - MODFLOW 6

The MODFLOW side is accessed with pymf6. It Modflowapi and xmipy that, in turn, uses ctypes to access bmi-python, which implements the Basic Model Interface (BMI).

Coupling the reaction part - PHREEQC

The PHREEQC is accessed with PhreeqPy that builds on PhreeqcRM.


This schematics shows how all these parts work together.

Architecture of rtmf6

rtmf6 is Open Source.



After create a MODFLOW 6 transport model, using a GUI tool or flopy, a preprocessing steps has to be applied. This steps clones the model by coping its input files into different sub-directories. This creates one model for each reaction component. Typically, the components O and H are explicitly model. Therefore, each will be represented by its own sub-directory. This figures shows the how ths preprocessing steps work.

Preprocessing a rtmf6 model


The model runs in parallel. Each transportmodel runs its own process, speeding up the execution time considerably. In addition, PhreeqcRM provides parallel execution of the chemical reaction computations.

Preprocessing a rtmf6 model

Status of rtmf6

rtmf6 is in its early stages. It is working for test models, but there are no larger cases yet. Currently, running a rtmf6 model requires some Python programming.

Please contact us for more information.