EFDC+

Hydrodynamics

What EFDC+ adds to the legacy EFDC code

Convention: [EFDC+] marks a capability not present in the legacy EPA/GVC code.

EFDC was originally developed by Dr. John Hamrick at the Virginia Institute of Marine Science in 1992 and later maintained by Tetra Tech with U.S. EPA support. The public-domain version has not been actively advanced since around 2010 and remains the baseline commonly referred to as “EFDC.” Sandia National Laboratories later developed SNL-EFDC, adding SEDZLJ sediment transport and marine hydrokinetics modules, but it has not been updated since 2013. DSI’s EFDC+ incorporates and further develops these capabilities, extending SEDZLJ to toxics transport and marine hydrokinetics to Sigma-Zed layering.

DSI has been developing the code continuously since 1998. Every capability on this page marked [EFDC+] was added after the legacy code stopped being maintained. DSI publishes minor releases monthly and major releases twice a year, all backward compatible.

EFDC+ development timeline from 1990 to 2030 across hydrodynamics and transport, eutrophication, sediment transport, chemical fate, and generic constituent modules.

Figure 1 - EFDC code history

EFDC+ development timeline from 1990 to 2030 across hydrodynamics and transport, eutrophication, sediment transport, chemical fate, and generic constituent modules.

What EFDC+ Adds to Hydrodynamics

CapabilityLegacy EFDC (EPA/GVC)EFDC+
Vertical layeringSigma stretchSigma plus three Sigma-Zed configurations
Vertical turbulenceMellor-YamadaMellor-Yamada with four parameter sets, plus the full GOTM closure suite
Parallel computingSingle-threadedOpenMP threading and MPI domain decomposition, hybrid
MemoryFixed arrays, recompile per modelDynamic allocation — one executable for every model
Wind wavesNot availableInternal wind-wave sub-model and SWAN linkage
Wind dragOne relationshipFive options, including COARE 3.6 and ECMWF
Surface heat exchangeOne approachThree methods, plus ice formation and melt
Open boundariesReflectiveTwo anti-reflection radiation types
Hydraulic structuresRating curvesSix rating-curve types plus equation-based culverts, weirs, sluice gates, and orifices with operating rules
Momentum sourcesNonePropeller wash and marine hydrokinetics

Governing Equations

Conceptual diagram of the EFDC+ water column showing wind shear, surface heat exchange, waves, sigma layering, three-dimensional velocity components, bottom shear, and groundwater exchange.

Figure 2 - Hydrodynamics conceptual framework

Conceptual diagram of the EFDC+ water column showing wind shear, surface heat exchange, waves, sigma layering, three-dimensional velocity components, bottom shear, and groundwater exchange.

The foundation is shared with the original code, and EFDC’s formulation is well tested and defensible.

EFDC+ applies conservation of mass, momentum, and energy, with two established simplifications. The hydrostatic assumption treats pressure at any point as the weight of water above it, valid because these waterbodies are kilometers across and meters deep, and it is what makes large domains affordable. The Boussinesq approximation treats density as constant except in the buoyancy term, which is what captures stratification, salt wedges, thermal plumes, and density currents.

Horizontally the grid is curvilinear and orthogonal, so cells follow shorelines and channels. Vertically the water column uses a stretching transformation that moves with the free surface.

Density comes from the UNESCO (1981) equation of state. [EFDC+] EFDC+ adds a correction for suspended sediment, using the concentration and specific gravity of every sediment class, as a result sediment-driven density currents are represented, not assumed away.

The momentum equations carry Coriolis, curvature accelerations, turbulent stresses, a vegetation resistance term, and [EFDC+] general momentum source and sink terms, which is what allows the propeller wash and marine hydrokinetics modules to feed the flow solution.

Numerical Solution and Speed

The solution splits into an external mode for depth-averaged flow and the water surface, the fast part, driven by surface gravity waves, solved semi-implicitly to permit larger time steps, and an internal mode for how velocity varies layer to layer. Separating them means the model isn’t forced to keep pace with its fastest process.

[EFDC+] Parallel computing: The legacy code is single-threaded. EFDC+ has been multi-threaded with OpenMP since 2008 and added MPI domain decomposition in 2020, and the two work together. On an 800,000-cell Chesapeake Bay benchmark, the hybrid approach reached roughly 24× the single-core speed on 96 cores. Decomposition doesn’t change results: one, two, and sixteen subdomains produce matching water surface elevation and salinity.

[EFDC+] Dynamic memory allocation: Legacy EFDC sizes its arrays at compile time through EFDC.PAR, meaning that each new model requires the executable to be recompiled. Because the compiled executable does not perform array-bound checks, a model may run to completion even when memory has been corrupted, potentially producing incorrect results without any warning. EFDC+ eliminates this limitation by using dynamic memory allocation. A single executable can run models of any size, eliminating the class of silent errors associated with fixed array sizes.

[EFDC+] Kinetic time stepping: Transport is solved on the hydrodynamic time step, but kinetic processes evolve far more slowly, so they can be integrated over a user-specified kinetic time step. You can refine the hydrodynamic time step for stability without multiplying the cost of the kinetic solution.

[EFDC+] ULTIMATE-QUICKEST advective transport, new in EEMS 12.5: Legacy EFDC moves constituents with first-order upwind differencing. It is robust, but its truncation error shows up as artificial diffusion (a plume that spreads because of the numerics rather than the flow) and the anti-diffusion correction that compensates costs runtime while still allowing overshoots. EFDC+ adds the QUICKEST scheme with the ULTIMATE limiter (Leonard, 1979, 1991): quadratic upstream interpolation gives third-order accuracy in space and time, while the limiter keeps sharp concentration fronts free of unphysical overshoot. Because accuracy is inherent rather than bolted on as a correction pass, the more accurate scheme is also the faster one, in the Lake Mendota eutrophication model example, advective transport fell from 5.14 to 2.03 hours and total runtime was reduced by more than 30%.

Turbulence Closure

Vertical mixing uses the Mellor and Yamada (1982) second-moment closure as modified by Galperin et al. (1988), [EFDC+] with four selectable parameter sets: Mellor and Yamada (1982), Galperin et al. (1988), Kantha and Clayson (1994), and Kantha (2003).

[EFDC+] GOTM closures, new in EEMS 12: You can now build models using turbulence closures from the General Ocean Turbulence Model, the same package underlying FVCOM, TELEMAC, and GETM. This brings k-ε and the generic length scale approach of Umlauf and Burchard (2003) into EFDC+, alongside second-order models. Presets let you select a closure and have the input file generated with sensible defaults, or you can configure parameters and boundary conditions directly. No other EFDC version offers this.

Horizontal mixing uses the Smagorinsky (1963) subgrid closure, with [EFDC+] spatially varying coefficients, which reduces numerical diffusion error in grids spanning a wide range of cell sizes.

Density Effects — Salinity and Temperature

Variations in salinity often impact estuarine stratification more than variations in temperature. In hundreds of studies, EFDC+ has been shown to successfully predict the response of rivers and estuaries to ocean salinity changes related to seasonal variation in freshwater inflow and human activities such as harbor and ship channel deepening.

Salinity and temperature are transported by the same advection-diffusion framework as every other constituent and feed directly back into the density field, closing the loop between stratification and circulation. Because the model is coupled rather than externally linked, a stratification response appears in the flow solution on the same time step that produced it.

Temperature can optionally be excluded where density is salinity-dominated or simulated in full detail. [EFDC+] Where legacy EFDC offers a single surface heat exchange approach, EFDC+ offers three including full heat balance, the CE-QUAL-W2 equilibrium temperature method, and COARE 3.6 together with solar radiation attenuation, bed heat exchange, and ice formation and melt, none of which the legacy code simulates.

Vertical Layering — Sigma-Zed

[EFDC+] Sigma coordinates suffer a well-documented horizontal pressure gradient error over steep bathymetry, and they force shallow cells to carry as many layers as deep ones.

DSI developed Sigma-Zed (SGZ), which lets the layer count vary cell by cell with water depth while matching layer faces between adjacent cells. It reduces pressure gradient error, improves stratification, and runs faster than a comparable sigma model because shallow cells no longer carry layers they don’t need. Three configurations are available: specified bottom, uniform layering, and specified thickness from top.

Dam with mountains