rtmf6 provides a Python interface for coupling MODFLOW 6 groundwater flow simulations with PHREEQC reactive transport modeling.
- Seamless integration of MODFLOW 6 and PhreeqcRM
- Strives to support all MODFLOW 6 and PHREEQC feature
- Minimal coupling configuration
- Parallel execution of transport and geochemical calculations
- Support for complex geochemical reactions
- Powerful commandline interface (CLI)
rtmf6 creates a separate MODFLOW 6 model for each reactive model species.
Let's call these models component models.
rtmf6 manages all component models internally.
The user works with one model, even though internally 10, 20 or flow and
transport models exist.
All initial concentration and concentration at boundary conditions of MODFLOW 6
are defined as solutions numbers.
These solution numbers are the solution numbers in the PHREEQC input file.
Going with PhreeqRM conventions these files use the extension .pqi.
They are valid PHREEQC input files that provide all concentration data.
The user provides the spatial distribution of these solutions numbers with
MODFLOW 6.
rtmf6 uses this information and creates input files with concentrations for
all models.
All flow and transport models run in parallel by default. This means the MODFLOW calculation uses as many processes as the number species. Note that Oxygen and Hydrogen are also modeled, increasing the model number. Provided the computer has at least as many (perfomance) cores as processes start by rtmf6, all MODFLOW calculation will happen in parallel. In addition, the PHREEQC calculation can also be run parallel by specify the number of threads used for PhreeqcRM.
rtmf6 strives to use MODFLOW 6 and PHREEQC input files as much as possible, adding only the minium of rtmf6-specific configuration. This allows to use established tools for large parts of the preprocessing.
- Create you MODFLOW 6 transport model
- Create a TOML config file
- Define PHREEQC solutions for initial boundary conditions
- Assign solutions to MODFLOW 6 cells with native input file syntax
- Run
rtmf6
The documentation provides more details.