Two-way coupling.
For water and for PFAS.
PFAS leached from the soil column loads the groundwater transport source term, and PFAS discharged with groundwater returns to the stream channels — both bound live through the MODFLOW 6 BMI/XMI interface, in the same daily loop as the water exchange. No WASP, no RT3D, no third-party water-quality model anywhere.
Mass balance preserved.
Across groundwater and surface water.
The obvious objection to any two-way exchange is that mass gets counted twice at the interface. It cannot here, because neither direction keeps its own ledger. Leaching is written into MODFLOW 6's own GWT source package, so the solver accounts for it in its mass budget; the return flux is read back as baseflow × node concentration — the same groundwater flow term MODFLOW 6 itself uses to remove that solute from the aquifer. One budget, both directions, nothing to drift.
Vadose zone simulated explicitly.
A column under every cell.
The usual shortcut is to represent the unsaturated zone as a lumped lag, or to skip it and let recharge arrive instantly. Neither happens here. Water and PFAS travel through an explicit unsaturated column beneath every active grid cell — MODFLOW 6's own UZF and UZT packages, kinematic-wave unsaturated flow with transport and retardation — before they ever reach the aquifer. At Wurtsmith that is 1,505 unsaturated columns, one per active cell. The breakthrough delay you see is computed physics, not a fitted lag.