πŸ’§ IGW-NET Β· Quick Tutorial 30 of 31

Tutorial 30: Multi-Species Reactive Transport (MT3DMS Post-Analysis)

Simulate reactive transport with multiple interacting species using the MT3DMS post-analysis tool. Covers PCE β†’ TCE β†’ DCE β†’ VC chain decay, BTEX biodegradation templates, spatial feature overrides, and breakthrough curve analysis.

IGW-NET Tutorial 30 Prereq: MAGNET4WATER account, completed Tutorial 5 (Contaminant Transport) 8 sections

This tutorial covers

  1. Overview β€” What Is Multi-Species Reactive Transport?
  2. Build and Simulate the Base Groundwater Model
  3. Launch the Multi-Species Post-Analysis
  4. Choose Processes, Reactions, and Reaction Models
  5. Define Species β€” Three Use Cases
  6. Run the Simulation
  7. View Results
  8. What's Next

1Overview β€” What Is Multi-Species Reactive Transport?

This tutorial uses the Multiple Species Transport post-analysis tool to simulate reactive transport with multiple interacting solutes β€” parent-daughter chain decay, mixed aerobic/anaerobic biodegradation, sorption, and more.

Post-analysis workflow: Unlike Tutorial 29 which runs MT3D inside the main simulation loop, the Multi-Species tool runs after the groundwater flow simulation as a post-processor. It reuses the last-computed flow field and lets you iterate on reaction chemistry without re-solving flow.

What you can simulate

The tool supports several processes (how solutes move and partition):

  • Linear sorption β€” simple retardation factor or partitioning coefficient Kd
  • First-order sorption β€” concentration-dependent sorption kinetics
  • Dual-domain mass transfer β€” explicit mobile + immobile porosity (matrix diffusion)

and several chemical reactions:

  • First-order rate reactions β€” concentration-dependent decay or production
  • Zero-order reactions β€” simple independent decay or production
  • Monod kinetic reactions β€” kinetic biodegradation with half-saturation constant and biomass
  • First-order chain reactions β€” sequential parent-daughter decay (e.g., PCE β†’ TCE β†’ DCE β†’ VC)

Plus pre-built reaction models (templates equivalent to RT3D modules):

  • BTEX Instant Aerobic Decay (benzene/toluene/ethylbenzene/xylene)
  • BTEX Kinetic Decay with Multiple Electron Acceptors
  • PCE Sequential Decay (chlorinated solvent chain)
  • PCE/TCE Decay (aerobic/anaerobic)
  • Single-pair Instant EA/ED (electron acceptor / electron donor)
Before you start: you need a completed flow model with at least one transport step executed. The Multi-Species tool reads that flow field from memory.

2Build and Simulate the Base Groundwater Model

The post-analysis tool needs a working flow+transport model as its base. If you already have one from Tutorial 5 or Tutorial 29, skip ahead to Section 2.

Step 1.1 β€” Create the domain

Expand Conceptual Model Tools and use DrawDomain β†’ DomainRect to draw your model boundary.

DomainRect menu option highlighted with the model boundary drawn as a red rectangle on a map of Hastings Charter Township Michigan
Draw the model domain by clicking DomainRect and dragging a rectangle on the map.

Step 1.2 β€” Select MT3D as the transport engine

Open DomainAttr β†’ Simulation Settings β†’ Solver Options. In the Transport section (bottom of the panel), select MT3D.

Simulation Settings panel expanded to show Solver Options dialog with MT3D radio button selected instead of the default Magnet Transport
In Solver Options, select the MT3D radio button under Transport. This is what the Multi-Species post-analysis tool requires.

Step 1.3 β€” Create model zones, lines, wells

Add zones (using ZoneRect, ZonePoly, etc.), lines, and wells as needed.

Feature naming matters: the names you assign to zones, lines, and wells here will appear as spatial features in the Multi-Species dialog. You can apply different initial concentrations or reaction rates per feature. Name them meaningfully.
Zone creation menu with ZoneRect option highlighted and a red source-zone rectangle drawn inside the larger model domain
Add a source zone inside your domain using ZoneRect. You can later reference this zone by name when setting initial or boundary concentrations for individual species.

Step 1.4 β€” Add an instantaneous source concentration to a zone

Double-click your source zone, switch to Sources and Sinks Prescribed, check Source Concentration, select Instantaneous, and enter a value (e.g., 100 ppm).

Sources and Sinks Prescribed dialog with Source Concentration section expanded Instantaneous Constant 100 ppm selected
Activate Source Concentration, choose Instantaneous, and set the value. For a multi-species simulation with chain decay, this defines the starting plume of the parent species only.

Step 1.5 β€” Run the base simulation

Click Simulate. Let the model run to completion, or pause after at least one transport timestep.

Simulation Tools expanded showing SIMULATE button highlighted and the model domain visible
Click SIMULATE and wait for at least one transport timestep to complete before moving to the Multi-Species tool.
If you paused the simulation (rather than running to completion), do this before opening the Multi-Species tool:
  • Other Tools β†’ ResetModel
  • Other Tools β†’ LoadModel β†’ Last Model on Server
This restores the model state so the post-analysis tool can read the flow field.
Other Tools menu showing ResetModel and LoadModel > Last Model on Server options
Reset and reload the most recent model if you paused mid-simulation.

3Launch the Multi-Species Post-Analysis

Step 2.1 β€” Open the post-analysis tool

Expand Analysis Tools, click Analysis, then navigate to Post Analysis β†’ Multiple Species Transport.

Analysis Tools expanded with Post Analysis > Multiple Species Transport selected and the initial dialog showing Use Current Magnet Model and Results with an Apply button
Launch the Multi-Species tool from Analysis Tools β†’ Analysis β†’ Post Analysis. Click Apply to use the current model's flow field and results.
Transient flow caveat: if your groundwater flow model is transient, the post-analysis tool uses the flow field from the last executed timestep. This is a steady-state approximation for transport over the whole multi-species simulation. For transient-transport-on-transient-flow, you'll need to re-run for each flow snapshot β€” or run transport inside the main simulation loop with reaction models defined in the solver settings.

4Choose Processes, Reactions, and Reaction Models

After Apply, the dialog expands to show all transport options.

Multiple Species Transport dialog fully expanded showing Processes dropdown Chemical reactions dropdown Reaction models checkbox with BTEX Instant Aerobic Decay selected More options button and Build/Edit button
The main Multi-Species dialog. Three dropdowns control the chemistry: Processes (sorption type), Chemical reactions (decay kinetics), and Reaction models (pre-built templates).

Step 3.1 β€” Pick a process (transport mechanism)

From the Processes dropdown:

  • Linear sorption β€” applies a retardation factor uniformly to each mobile species
  • First-order sorption β€” allows kinetic partitioning with a rate constant
  • Dual-domain mass transfer β€” models both mobile and immobile porosity domains (useful for fractured media or stratified aquifers)

Step 3.2 β€” Pick a reaction type

From the Chemical reactions dropdown:

  • 1st-order rate reactions β€” concentration-proportional decay. Most common.
  • Zero-order reactions β€” constant-rate decay regardless of concentration.
  • Monod kinetic reactions β€” kinetic biodegradation with a half-saturation constant Km and biomass concentration.
  • 1st-order chain reactions β€” parent decays to daughter, daughter decays to granddaughter, etc. This is what you want for PCE β†’ TCE β†’ DCE β†’ VC.

Step 3.3 β€” (Optional) Pick a pre-built reaction model template

Check the Reaction models box to use a template instead of configuring species manually. Available templates:

  • BTEX Instant Aerobic Decay (≑ RT3D module 1)
  • BTEX Kinetic Decay with Multiple EAs (≑ RT3D module 3)
  • PCE Sequential Decay (≑ RT3D module 6) β€” pre-configured for the PCE chain
  • PCE/TCE Decay (aerobic/anaerobic) (≑ RT3D module 7 without Cl)
  • Single-pair Instant EA/ED β€” user-defined two-species electron acceptor/donor
Using a template locks the species names and their interactions (e.g., PCE Sequential Decay pre-sets yield coefficients of 0.792 PCE→TCE, 0.738 TCE→DCE, 0.644 DCE→VC — the stoichiometric mass ratios of a dechlorination chain). You still set initial concentrations and rate constants yourself.

Step 3.4 β€” Click Build/Edit to define species

Once processes and reactions are chosen, click Build/Edit to open the species editor.

5Define Species β€” Three Use Cases

The Build/Edit dialog handles three distinct setup patterns. Which one you see depends on the choices above.

Three side-by-side screenshots of the Multiple Species dialog showing Case 1 predefined PCE TCE DCE VC list with Edit and Save Reaction Data Case 2 empty Active list with Add new species button Case 3 empty list with Electron Donor Electron Acceptor fields
The Build/Edit dialog in its three modes. Case 1 (predefined template), Case 2 (user-defined species, no chain), Case 3 (user-defined species with chain/EA-ED reactions).

Case 1 β€” Using a predefined reaction template

If you chose a template (like PCE Sequential Decay), the species list is fixed: PCE, TCE, DCE, VC. You can edit each species' properties via Edit, but you can't rename, remove, or deactivate them. Chain yield coefficients are pre-filled.

Case 2 β€” No reaction model, no chain

If you selected a non-chain reaction type without a template, start with an empty Active list. Use Add new species to define each species one at a time. To temporarily remove a species from the simulation, select it and use the > button to move it to Inactive. The < button moves species back to Active. Remove deletes a species permanently.

Case 3 β€” User-defined chain or EA/ED reactions

If you selected a custom chain reaction or instant EA/ED, you must add at least two species (parent + daughter, or electron donor + acceptor). For chain reactions, parent species must be added before daughter species β€” the ordering defines the decay sequence.

Step 4.1 β€” Edit a species

Click Add new species or Edit to open the Species Input dialog.

Species Input dialog for PCE with Liquid Phase Mobile Domain tab active showing Default Values Molecular Diffusion Retardation Partitioning and Reactive Decay with First Order Decay coefficient 0.00168 1/day
The Species Input dialog has three tabs: Liquid Phase / Mobile Domain, Solid Phase / Immobile Domain, and Spatial Features. Set default values for initial and recharge concentration, molecular diffusion, retardation/partitioning, and reactive decay (rate coefficient or half-life).

Step 4.2 β€” Set per-feature values via Spatial Features

Switch to the Spatial Features tab to override default values in specific zones, polygons, or wells.

Species Input Spatial Features tab showing Feature dropdown set to TopLeftPoly_z and an Edit Props button
Pick a feature from the dropdown (the names come from zones/polygons you defined earlier) and click Edit Props.
Input for PCE TopLeftPoly_z dialog with Initial concentration checked and set to 100 ppm other checkboxes unchecked Save and Cancel buttons at bottom
The per-feature dialog lets you override only the values you want different. Here, PCE gets an initial concentration of 100 ppm inside the TopLeftPoly_z zone. Everywhere else, the default (0 ppm) applies.
Practical pattern for a chain reaction:
  1. Start with all four species (PCE, TCE, DCE, VC) having 0 everywhere (defaults).
  2. Use Spatial Features to set PCE initial concentration = 100 ppm inside your source zone.
  3. Leave TCE/DCE/VC at 0 β€” they'll appear only as products of the decay chain.
  4. Set first-order decay coefficients for each species (e.g., PCE: 0.00168/day). These control how fast parent decays to daughter.
  5. Save Reaction Data.

6Run the Simulation

Step 5.1 β€” Set simulation length and timestep

At the bottom of the Multi-Species dialog, set Simulation length and Timestep. The simulation is capped at 300 steps β€” if you need longer total time, increase the timestep rather than the step count.

Step 5.2 β€” Configure display options

  • Display in Realtime β€” "only while running" shows the current timestep only; "for all timesteps" shows the evolution as it simulates (slower but visually informative).
  • Display Species β€” check which species to show on the map. For a 4-species chain, checking all gives you overlaid plumes.
  • Display Layer β€” pick a model layer to visualize.
  • Draw Head β€” contours and vectors (default), or just contours / just vectors.
Multiple Species Transport dialog configured with Linear sorption 1st-order chain reactions Reaction models PCE Sequential Decay selected and Run Simulation button highlighted along with display options including Species PCE TCE DCE VC checkboxes and Display Layer 1 Draw Head contours and vectors
Configured Multi-Species dialog ready to run. This run uses linear sorption + 1st-order chain reactions + the PCE Sequential Decay template, with all four species displayed on layer 1.

Step 5.3 β€” Click Run Simulation

The map updates as the simulation advances. If Display in Realtime β†’ for all timesteps is selected, you'll see the parent plume shrinking and the daughter plumes growing behind it.

7View Results

After the simulation completes, the Multiple Species Results window opens with visualization controls.

Multiple Species Results window showing PCE plume rendered with a color ramp from 0 to 10.8 ppm overlaid on head contours and flow vectors with a red vertical line indicating a cross-section cut and Create cross section and Display cross section XS buttons
Results map at the final timestep (t = 1500 days, layer 2) showing the PCE plume contoured with a color ramp. The red vertical line is a cross-section cut drawn by clicking Create cross section and then clicking two points on the map.

Step 6.1 β€” Switch time, layer, and displayed species

At the top of the Results window:

  • Species to display β€” toggle checkboxes for each species. Only checked species contour on the map.
  • Time β€” pick any saved timestep to see the plume at that moment.
  • Layer β€” switch between model layers (layer 1 is often the water table).
  • Draw β€” contours + vectors, contours only, or vectors only for the background flow field.

Step 6.2 β€” Plot a vertical cross-section

Click Create cross section, then click two points on the map to define the cut line. Then click Display cross section (XS).

Cross-section display window showing concentration plume in elevation versus distance along column 10 ranging from 0 to about 14000 meters with the plume concentrated between 2000 and 5000 meters and between 190 and 260 meters elevation
The cross-section shows plume structure in the vertical dimension β€” where mass is concentrated with respect to layer depth. Useful for confirming that concentrations are where you expect them given recharge and boundary effects.

Step 6.3 β€” Get a breakthrough curve at a point

Click Get point breakthrough curve, then click a location on the map.

Multiple Species Results window with Get point breakthrough curve button highlighted
Click "Get point breakthrough curve" and then click any map location to extract time series of all species concentrations at that point.
Multiple Species Breakthrough Curve graph showing concentration in ppm versus time in days from 0 to 1500 with PCE TCE DCE VC curves PCE peaks at about 1.0 ppm at time 300 days declining sharply TCE peaks around 0.2 ppm DCE and VC much lower
Breakthrough curves for all species at the selected point (x=565307, y=232543, layer=2, row=12, col=14). The PCE parent declines from 1.0 ppm as it decays to TCE (cyan); TCE produced grows then decays to DCE (teal); and so on down the chain. VC (purple) barely registers at this location because it's both far from the source and late-stage in the chain.
What to look for in multi-species breakthrough curves:
  • Parent (PCE) peaks first, declines monotonically if there's no continuing source.
  • Each daughter peaks later, with the peak delayed by its parent's decay timescale.
  • If a daughter is more mobile than its parent (smaller retardation), its peak can actually arrive earlier at downgradient points.
  • Total mass summed across all species (scaled by molecular weights) must be conservative if all decays are fully accounted for.

8What's Next

Now that you've run a full multi-species reactive transport simulation, you can:

  • Build your own custom chain reactions (Use Case 3) for site-specific chemistries.
  • Explore BTEX Kinetic Decay with Multiple EAs to model hydrocarbon biodegradation with O2, NO3, Fe3+, and SO42- as sequential electron acceptors.
  • Combine this workflow with Monte Carlo Transport (Tutorial 17) to quantify uncertainty in chain-decay predictions from uncertain rate coefficients.
  • Compare results against the simpler single-species run in Tutorial 5 and Tutorial 29.

For the underlying science, consult the MT3D-USGS documentation and the original RT3D manual (Clement, 1997) for details on reaction module formulations.