💧 IGW-NET · Quick Tutorial 29 of 31

Tutorial 29: MT3D Advection Solvers — Choosing the Right Engine

Extend Tutorial 5 by switching from the default Magnet Transport to MT3D-USGS, then compare advection solvers (MMOC, FDM, MOC, HMOC, ULTIMATE) to choose the right one for your plume.

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

This tutorial covers

  1. Overview — What is MT3D and Why Choose a Solver?
  2. Load the Flow Model and the Transport Submodel
  3. Enable the MT3D Solver
  4. Run the Simulation
  5. Compare Advection Solvers
  6. Choose a Solver for Your Problem
  7. What's Next

1Overview — What is MT3D and Why Choose a Solver?

This tutorial extends Tutorial 5 (Contaminant Transport) by showing how to switch the transport engine from the default MAGNET transport solver to MT3D-USGS, and how to choose among its advection solvers to get the plume behavior you need.

MT3D-USGS is the latest U.S. Geological Survey implementation of MT3D — the industry-standard solute transport simulator for groundwater. It solves the advection–dispersion–reaction (ADR) equation on the same grid as your MODFLOW/IGW flow solution. Released in 2016, it is available as a transport engine inside IGW-NET.

MT3D-USGS offers five advection solvers, each with different numerical characteristics. The choice matters: the same conceptual model can produce meaningfully different plume shapes depending on which solver handles advection (the flow-driven part of transport).

Regional flow model with nested submodel loaded in the MAGNET environment showing continuous and instantaneous sources plus monitoring and injection wells
Overview: a regional flow model with a nested contaminant-transport submodel loaded. The submodel contains a continuous source (green), an instantaneous source (red), a monitoring well, and an injection well. This tutorial is built on the same Fort Custer, Michigan setup used in Tutorial 5.
You should already have completed Tutorial 5 (Contaminant Transport) before starting this one. The submodel and boundary conditions from that tutorial are reused here.

The five advection solvers at a glance

SolverWhat it doesWhen to use it
MMOC (default)Backward-tracking Modified Method of CharacteristicsGood default — balances accuracy and stability; handles sharp fronts without excessive numerical dispersion.
FDMStandard finite-difference methodSimplest and fastest. Produces noticeable numerical dispersion (plumes look smoother/larger than they should).
MOCForward-tracking Method of CharacteristicsVery low numerical dispersion, but can be unstable at complex geometries. Use for clean, slow-moving plumes.
HMOCHybrid auto-switching MOC/MMOCLets MT3D pick MOC or MMOC per cell based on gradient. Often the best accuracy/robustness compromise.
ULTIMATEThird-order TVD schemeHighest accuracy for sharp fronts. Mass-conservative. Slightly slower; good for regulatory deliverables.

2Load the Flow Model and the Transport Submodel

Step 1 — Load the regional flow model

Follow the same loading procedure as Tutorial 1:

  • From the menu: Other ToolsLoadModelLocal Model File
  • Run the model to completion so the flow field is fully computed. Transport needs the flow solution.

Step 2 — Load the transport submodel with parent boundaries

As in Tutorial 5, load the nested submodel and enable Boundary Condition from Parent Model so that the submodel inherits heads from the regional run.

If the parent model hasn't finished solving, the submodel won't have valid boundary heads and MT3D will fail silently or produce zero-velocity results. Always let the parent simulation reach steady-state (or complete its transient loop) first.

3Enable the MT3D Solver

By default, IGW-NET uses its built-in Magnet Transport solver. To switch to MT3D-USGS, you need to open the Simulation Settings and change the transport engine.

Step 3 — Open Solver Options

  • Expand Conceptual Model Tools and click DomainAttr.
  • Switch to the Simulation Settings tab.
  • Click Solver Options to open the solver dialog (see Figure 2 below).

Step 4 — Select MT3D as the transport engine

  • In the Solver Options dialog, find the Transport section (at the bottom of the panel).
  • Select the MT3D radio button (instead of the default Magnet Transport).
  • Click Edit MT3D Solver to open the MT3D Solver dialog. Here you choose the Advection solver and set related parameters.
Screenshots showing DomainAttr, Simulation Settings, Solver Options, and MT3D Solver dialogs with Advection solver dropdown visible
Figure 2: How to enable the MT3D Solver. By default the backward-tracking MMOC method is used. The Advection solver dropdown in the MT3D Solver dialog lets you pick among MMOC, FDM, MOC, HMOC, and ULTIMATE.
Stability/Courant number: The default is 0.75 — meaning the solver will take sub-timesteps so that solute doesn't travel more than 0.75 cells per transport step. Lowering this improves accuracy for sharp fronts; raising it speeds things up at the cost of dispersion.

4Run the Simulation

Step 5 — Submit and watch the plume develop

  • Close the Solver Options dialog (click Save then Close).
  • Click Simulate under Simulation Tools.
  • The model solves flow first, then transport. You'll see concentration contours appear on the map as the plume migrates.
MT3D simulations take noticeably longer than Magnet Transport — especially for MOC and HMOC, which track virtual particles between cells. For a 1,500-day simulation on a 40×40 grid, expect tens of seconds to a few minutes depending on the solver.

Step 6 — View breakthrough curves

Click Analysis, then Display Charts. A window opens with breakthrough curves for each monitoring well in the submodel — concentration at the well vs. simulation time.

The breakthrough curve is your primary comparison tool. It shows:

  • Arrival time — when the plume first reaches the well
  • Peak concentration — the maximum observed value
  • Tailing — how long the plume lingers at the well

5Compare Advection Solvers

Now repeat the simulation with different advection solvers and see how the plume and breakthrough curve change.

Step 7 — Re-run with ULTIMATE or FDM

  • Reopen DomainAttrSimulation SettingsSolver OptionsEdit MT3D Solver.
  • Change the Advection solver dropdown to ULTIMATE (or FDM).
  • Save and re-simulate. Then re-open the breakthrough chart.
Four panels showing contaminant transport results with MMOC, ULTIMATE, and FDM advection solvers and the solver selection dropdown list
Figure 3: Contaminant transport results for the same model run with different advection solvers. Note the differences in plume shape and breakthrough-curve peak timing/amplitude between MMOC (top-right), ULTIMATE (bottom-left), and FDM (bottom-right).
What you're seeing:
  • MMOC and ULTIMATE produce similar sharp plume fronts. ULTIMATE is a bit more symmetric; MMOC shows slight asymmetry from the particle-tracking backbone.
  • FDM smears the plume — the front is notably more dispersed and the peak concentration at the monitoring well is lower. This is numerical dispersion, not physical: the solver is spreading mass that shouldn't be spreading.
  • If your observed breakthrough data shows a sharp peak, FDM will underfit it. Use MMOC, HMOC, or ULTIMATE instead.
Particle storage between timesteps: MOC and HMOC do not persist their tracked particles between timesteps when re-run from the IGW-NET interface. For plume-shape comparisons with these solvers, use large timesteps relative to grid size and groundwater velocity so that one transport step captures enough advection to be meaningful.

6Choose a Solver for Your Problem

There is no universally "best" solver — the right choice depends on the physics of your plume and the audience for your results.

Recommended defaults by use case

  • Screening-level analysis, quick iterationsMMOC (the MT3D default). Fast, stable, acceptable accuracy.
  • Regulatory submittal, final deliverableULTIMATE. Third-order TVD scheme; best mass balance; defensible results.
  • Sharp fronts with complex geometryHMOC. Auto-picks the best method per cell.
  • Simple, text-book problems where you want to visualize a textbook plumeMOC. Low numerical dispersion but can be finicky.
  • Rough scoping where you just need a reasonable concentration estimateFDM. Simple and fast, but accept that plumes will look larger/smoother than reality.
Good practice: once you have your model calibrated, run the final production simulation with two solvers (e.g., MMOC and ULTIMATE) and report both. If they agree, your result is robust. If they disagree significantly, it signals that numerical dispersion is affecting your answer and you need a finer grid or smaller Courant number.

Step 8 — Save and publish

  • Click Save Model to record your solver configuration.
  • Click Publish This Model if you want to share the model with collaborators through the MAGNET4WATER cloud.

7What's Next

Now that you know how to tune MT3D's advection solver, you can: