The original withdrawal/return boundary condition in EFDC+ moved water from an intake cell to a return cell faithfully, and it always returned the full withdrawn flow with the same amount of constituent. However, when facing use cases like a desalination plant or powerplant cooling discharge, there was no way to represent the consumptive removal of product water or the rise in temperature while discharge. Modelers were left prescribing a discharge salinity or temperature by a prescribed value, which defeats the purpose when the goal is to evaluate how ambient and discharge conditions feed back into one another.
What’s new
Discharge modifiers
The withdrawal/return boundary condition now accepts a signed discharge modifier that adjusts the flow leaving the return cell.
- Negative removes flow from the return cell. Volume leaves, constituent mass stays, so concentration goes up. This is the consumptive-use case: product water extracted, rejected salt left behind in the brine.
- Positive adds flow out of the return cell, which drives concentration down. This covers dilution water, blended outfalls, and supplemental return streams.
The dissolved constituent mass taken in at the intake is preserved in full, and EFDC+ recomputes the discharge concentration automatically from that conservation. You do not prescribe the brine concentration; the model derives it.
Constant constituent modifiers
Separately, you can apply a constant offset that adds to or subtracts from the discharge concentration on a per-constituent basis. The withdrawal concentration always remains the instantaneous ambient concentration at the intake cell, regardless of the modifier. For example, an intake drawing 30 ppt water with a +10 ppt salinity modifier discharges at 40 ppt if no other discharge modifiers were set.
Order of operations
When both a constituent modifier and a discharge flow modifier are specified, EFDC+ applies the constituent modifier first, then adjusts the resulting discharge concentration for the change in flow.
Demo
To verify the enhancement, we built a test case to show the discharge modifiers in action. The domain is two identical square basins, each 10 × 10 cells of 10 m × 10 m with 11 sigma layers. The two basins are separate except for a single withdrawal/return boundary condition connecting them. The plant intake draws from the left basin; the brine discharges to the right basin.
The initial water column depths are 11 m in the left basin and 1 m in the right basin, and salinity is a uniform 30 ppt everywhere. Intake is set at 1.1574 m³/s, equivalent to 10 m/day over the basin footprint, and the simulation runs for one day at a fixed 5-second time step.
Baseline, consumptive use disabled. The boundary condition acts as a pure transfer. Over one day the withdrawn volume moves from the left basin to the right, the water elevations effectively swap, and salinity stays pinned at 30 ppt in both basins. Water and salt move without artificial gain or loss.
With consumptive use set to half the intake. Setting the consumptive flow to 0.5787 m³/s, exactly half of the intake, leaves a brine discharge of 0.5787 m³/s. The analytical expectation is that the right basin receives half the withdrawn volume and the discharge salinity doubles from 30 ppt to 60 ppt. That is precisely what the model produces. The right basin ends the simulation at roughly 55 ppt as the 60 ppt brine mixes with the 30 ppt water already present.
Where it applies
The enhancement is already supporting active desalination siting and permitting work, where it provides the mechanism for representing plant intake and brine discharge together with any recirculation between them.
The feature applies anywhere a facility takes in water, consumes part of it, and returns the rest at altered quality: power plant cooling with evaporative loss, industrial process water, irrigation diversions with return flow, and municipal supply.
A companion post walking through the boundary condition setup in the EE interface is coming next.
Questions about applying this to your project? Get in touch with us!