HEC-RAS
HEC-RAS (Hydrologic Engineering Center River Analysis System) is a hydraulic modeling software package developed by the United States Army Corps of Engineers' Hydrologic Engineering Center (HEC) for simulating water flow in rivers, streams, and channels.[1] It enables one-dimensional steady flow calculations, one- and two-dimensional unsteady flow simulations, sediment transport and mobile bed computations, stormwater pipe network modeling, and water temperature and quality analyses.[2] Originally released in 1995 as the first product of the USACE's NexGen Software Development Program, HEC-RAS succeeded the earlier HEC-2 program, which had been in use since the 1960s for steady-flow water surface profile computations.[3] The software incorporates advanced numerical methods, including the finite difference solution of the Saint-Venant equations for unsteady flow, and supports full network modeling of natural and constructed channels, including bridges, culverts, weirs, and dams.[4] Its graphical user interface facilitates data input, geometric preprocessing, and visualization of results such as water surface profiles, inundation maps, and velocity distributions.[2] Widely adopted by engineers, planners, and environmental scientists worldwide, HEC-RAS is applied in flood risk assessment, dam and levee design, habitat restoration, and regulatory compliance for floodplain management under programs like the U.S. National Flood Insurance Program.[4] The software is provided free of charge by the USACE and continuously updated, with versions incorporating enhancements like 2D modeling capabilities introduced in version 4.1 (2010) and ongoing developments for improved computational efficiency and integration with GIS tools.Introduction
Overview
HEC-RAS, or the Hydrologic Engineering Center's River Analysis System, is a hydraulic modeling software developed by the U.S. Army Corps of Engineers' Hydrologic Engineering Center (HEC) to simulate water flow in rivers, channels, and floodplains.[1] Designed for hydrologic and hydraulic analyses, it supports applications in river engineering, flood risk assessment, and water resource management by computing water surface profiles, flow rates, and related parameters.[4] The software's core components include a graphical user interface (GUI) for intuitive data entry, editing, and visualization; modular hydraulic analysis engines for various simulations; a data storage system using flat files, HEC-DSS, and HDF5 formats for project management; and tools for outputting results through graphs, tables, inundation maps, and reports.[4] HEC-RAS supports one-dimensional (1D) steady and unsteady flow modeling, as well as two-dimensional (2D) unsteady flow, along with extensions for sediment transport and water quality in natural or constructed channels, overbank areas, and full river networks.[1] The basic workflow in HEC-RAS involves setting up the geometric data for the river system and structures, inputting flow data such as hydrographs or boundary conditions, executing simulation plans through the analysis modules, and post-processing results for interpretation and reporting.[4] As the successor to the earlier HEC-2 program, which focused on steady flow water surface profiles, HEC-RAS expands capabilities to unsteady and multidimensional modeling while remaining freely available in the public domain for use by engineers and researchers worldwide.[5][6]History and Development
The Hydrologic Engineering Center (HEC) of the U.S. Army Corps of Engineers (USACE) initiated development of HEC-RAS in the early 1990s as part of the Next Generation software initiative to replace the legacy HEC-2 Water Surface Profiles program, which had been released in 1968 for steady-flow analysis.[7][8] This effort aimed to create a more integrated system for river hydraulics modeling, addressing limitations in HEC-2 such as its lack of graphical interface and limited capabilities beyond basic steady flow.[7] Version 1.0 of HEC-RAS was released in July 1995, introducing one-dimensional steady-flow computations with a basic graphical user interface (GUI) for Windows, including support for bridges, culverts, and mixed flow regimes.[9] The software is maintained and continuously updated by HEC, located in Davis, California, and distributed free of charge to support USACE civil works projects, academic research, and users worldwide, with technical support prioritized for USACE personnel.[10][1] Development was driven by the need to incorporate unsteady flow simulations, enhance user accessibility through intuitive interfaces, and add modules for sediment transport and water quality analysis to meet evolving regulatory requirements, such as those for floodplain management and environmental impact assessments.[7] Key milestones include the release of version 2.0 in 1997, which added unsteady flow capabilities; version 4.1 in 2010, introducing initial two-dimensional (2D) modeling using a diffusion wave approximation; and version 5.0 in 2016, enabling full 2D unsteady flow simulations for more comprehensive hydrodynamic analysis.[11][12] Subsequent versions, such as 6.0 released in 2021 and updates through 6.7 in 2025, along with the alpha release of HEC-RAS 2025 featuring a redesigned interface, continue to advance the software's capabilities.[13][14]Theoretical Basis
Governing Equations for 1D Modeling
The one-dimensional (1D) modeling in HEC-RAS simulates riverine hydraulics by discretizing the channel into cross-sections perpendicular to the flow direction, assuming flow is primarily aligned with the channel axis.[15] This approach computes water surface profiles and flow rates for both steady and unsteady conditions, relying on established hydraulic principles adapted for numerical solution.[15] For steady flow computations, HEC-RAS employs the energy equation to determine water surface elevations along the river reach. The governing equation balances total energy head between two cross-sections: H_1 = H_2 + h_e where H is the total energy head, defined as H = Z + Y + \alpha \frac{V^2}{2g}, with Z as the bed elevation, Y as the water depth, \alpha as the velocity weighting coefficient (typically 1.0 for uniform flow), V as the average velocity, and g as gravitational acceleration; h_e represents energy losses.[15] Energy losses include friction, calculated via the friction slope S_f using Manning's equation Q = \frac{1}{n} A R^{2/3} S_f^{1/2} (where Q is discharge, n is Manning's roughness coefficient, A is cross-sectional area, and R is hydraulic radius), and minor losses from expansions or contractions: h_e = L S_f + C \left( \alpha_2 \frac{V_2^2}{2g} - \alpha_1 \frac{V_1^2}{2g} \right) Here, L is the discharge-weighted reach length, and C is the contraction/expansion coefficient.[15] The equation is solved using the standard step method, which iteratively computes profiles in backwater (upstream from a known downstream condition) or forward water (downstream from a known upstream condition) directions, achieving convergence within a tolerance of 0.01 ft (or equivalent metric) via secant or bisection methods.[15] Unsteady flow modeling in HEC-RAS is based on the Saint-Venant equations, a set of coupled partial differential equations describing conservation of mass and momentum in open-channel flow. The continuity equation is: \frac{\partial A}{\partial t} + \frac{\partial Q}{\partial x} = q where A is the cross-sectional flow area, t is time, x is distance along the channel, and q is lateral inflow per unit length.[15] The momentum equation is: \frac{\partial Q}{\partial t} + \frac{\partial}{\partial x} \left( \frac{Q^2}{A} \right) + g A \frac{\partial h}{\partial x} = g A (S_0 - S_f) with h as water surface elevation, S_0 as bed slope, and S_f as friction slope.[15] These equations, originally derived by Barré de Saint-Venant in 1871 and adapted for numerical use by Robert L. Barkau in the UNET model (incorporated into HEC-RAS), account for dynamic wave propagation including inertia and pressure forces.[15] HEC-RAS offers approximations: full dynamic (complete Saint-Venant), diffusion wave (neglecting local acceleration and convective terms for slower waves), and kinematic wave (further neglecting pressure gradient for steep, rapid flows).[15] The unsteady equations are solved using an implicit finite difference scheme, specifically the four-point Preissmann box method, which discretizes the equations over space and time for unconditional stability when the weighting factor \theta \geq 0.5.[15] This implicit approach assembles a system of nonlinear equations solved iteratively via Newton-Raphson, with a skyline matrix solver for efficiency in network geometries.[15] For mixed flow regimes involving hydraulic jumps or steep slopes, a Local Partial Inertia (LPI) technique reduces inertia terms when the Froude number exceeds a threshold (default 1.0), enhancing numerical stability.[15] Key assumptions underlying 1D modeling include gradually varied flow (valid for slopes less than 1:10), hydrostatic pressure distribution across the depth, and cross-section-averaged velocities with no significant lateral or vertical variations.[15] The model presumes a horizontal water surface at each cross-section and negligible momentum exchange between the main channel and floodplains.[15] Boundary conditions define the computational domain: upstream boundaries typically use flow or stage hydrographs, while downstream options include stage hydrographs, rating curves, or normal depth (extrapolated using Manning's equation with a specified slope).[15] Interior boundaries handle junctions or lateral inflows, ensuring continuity across the network.[15]Governing Equations for 2D Modeling
The two-dimensional (2D) modeling capabilities in HEC-RAS are founded on the shallow water equations (SWE), which represent a depth-integrated form of the Navier-Stokes equations suitable for simulating free-surface flows in rivers, floodplains, and overbank areas. These equations capture the spatial distribution of flow velocities and water depths across a computational domain, enabling analysis of complex terrains where one-dimensional assumptions fail. The SWE consist of a continuity equation for mass conservation and two momentum equations for the x- and y-directions, assuming hydrostatic pressure distribution and neglecting vertical accelerations.[16] The continuity equation is given by: \frac{\partial h}{\partial t} + \frac{\partial (hu)}{\partial x} + \frac{\partial (hv)}{\partial y} = 0 where h is the water depth, u and v are the depth-averaged velocity components in the x- and y-directions, and t, x, y denote time and spatial coordinates, respectively. The momentum equation in the x-direction is: \frac{\partial (hu)}{\partial t} + \frac{\partial \left( hu^2 + \frac{1}{2} g h^2 \right)}{\partial x} + \frac{\partial (h u v)}{\partial y} = - g h \frac{\partial z_b}{\partial x} - \frac{\tau_{bx}}{\rho} with a similar form for the y-direction, replacing x-terms with y-equivalents. Here, g is gravitational acceleration, z_b is the bed elevation, \tau_{bx} is the bed shear stress in the x-direction, and \rho is fluid density. The bed shear stress is typically modeled using Manning's equation as \tau_{bx} = \rho g \frac{n^2 u \sqrt{u^2 + v^2}}{h^{4/3}}, where n is Manning's roughness coefficient; wind shear and Coriolis terms may also be included for specific applications. These full momentum equations account for inertial, pressure gradient, bed friction, and topographic forcing terms.[16] HEC-RAS provides multiple solution options for the SWE to balance computational efficiency and accuracy. The full momentum option solves the complete set of dynamic wave equations, including advection and local/unsteady acceleration terms, which is essential for simulating rapidly varying flows such as dam breaks or tidal propagations. In contrast, the diffusive wave approximation neglects inertial terms (advection and local acceleration), reducing the equations to a balance between pressure gradients and friction, suitable for subcritical flows in low-gradient floodplains where wave celerity is diffusion-dominated. Additionally, advanced wetting and drying schemes handle the transition between wet and dry cells in the domain, preventing numerical instabilities during inundation or recession phases.[16] Numerically, the equations are solved using a finite volume method on a discretized mesh, which conserves mass and momentum flux across cell faces. HEC-RAS supports both explicit and implicit time-stepping schemes: explicit methods (e.g., forward Euler) require adherence to the Courant-Friedrichs-Lewy (CFL) condition for stability, while implicit schemes (e.g., Crank-Nicolson) allow larger time steps at the cost of increased computational effort. Meshes can be structured (orthogonal grids for simpler geometries) or unstructured (polygonal cells with up to eight sides, including triangles and quadrilaterals for irregular terrains), with 2D flow areas comprising interconnected cells that can link to one-dimensional channel elements for hybrid modeling. Turbulence is incorporated via a constant or depth-varying eddy viscosity model, often using the Smagorinsky formulation \nu = C_s u_* h, where C_s is a tunable coefficient (typically 0.05–0.2), u_* is the friction velocity, and horizontal mixing coefficients adjust for subgrid-scale effects.[16] Despite their versatility, the 2D SWE in HEC-RAS rely on the hydrostatic assumption, which presumes negligible vertical velocity components and uniform pressure with depth, limiting applicability to flows with bed slopes gentler than 1:10 or Froude numbers below approximately 0.5. This excludes full three-dimensional effects, such as secondary circulations or strong vertical stratification, requiring coupling with specialized models for such scenarios.[16]Core Capabilities
Steady and Unsteady Flow Analysis
HEC-RAS implements steady flow analysis to compute water surface profiles along river reaches for specified steady discharges, utilizing the direct step method to solve the energy equation iteratively between cross sections. This approach accommodates subcritical, supercritical, and mixed flow regimes, automatically detecting and resolving hydraulic jumps where flow transitions from supercritical to subcritical conditions to maintain physical realism in the simulation. Users set up steady flow data by specifying the number of profiles (typically one per peak flow event), entering discharge values at upstream boundary cross sections, and defining downstream boundary conditions such as known water surface elevations or critical depth. The computation proceeds from upstream to downstream for subcritical flow or vice versa for supercritical flow, with tolerances adjustable (e.g., water surface elevation tolerance of 0.01 ft) to control accuracy and iteration limits (default 20 iterations).[17] In contrast, unsteady flow analysis in HEC-RAS simulates time-varying flow conditions through fully dynamic, one-dimensional or two-dimensional solutions of the Saint-Venant equations, enabling the routing of hydrographs over durations of hours to days. Key features include the incorporation of lateral inflows from tributaries, storage areas for off-channel volumes like lakes or floodplains, and unsteady processes such as levee or dam breaches to model failure scenarios. The computation interval, or time step, is user-specified and typically ranges from 1 to 60 seconds to ensure numerical stability, with the software automatically adjusting if needed based on the Courant condition. Setup involves entering time-series hydrograph data at boundaries, initial conditions (e.g., steady flow profiles), and options for hydrodynamic routing without diffusion wave approximation in full dynamic mode.[18] HEC-RAS supports flexible 1D, 2D, and hybrid modeling configurations for both steady and unsteady simulations, with 1D reaches primarily used for main channels defined by cross sections and 2D flow areas applied to complex floodplains represented by computational meshes. In hybrid setups, 1D channel models connect to 2D floodplain areas via lateral structures, which act as weirs or embankments to exchange flow (e.g., over levees), or direct connections where cross sections align with 2D boundaries for seamless transitions. Breaklines refine the 2D mesh along 1D connections, improving resolution at interfaces without altering the overall topology. These configurations allow steady flow profiles to be computed across mixed domains or unsteady hydrographs to propagate through channels into expansive 2D overbank areas.[19][20] Outputs from steady flow simulations include tabular and graphical representations of water surface elevations, flow depths, velocities, and channel conveyance at each cross section for every profile, along with longitudinal profile plots showing elevation changes along the reach. For unsteady flow, results encompass time-series data such as stage and flow hydrographs at cross sections or 2D cells, velocity vectors and magnitudes in 2D areas, and inundation maps derived from water surface grids at user-defined output intervals (e.g., every 1-60 minutes). These can be visualized in the HEC-RAS graphical interface or exported for further analysis, with 2D outputs particularly useful for mapping velocity fields and flow directions in floodplains.[21] Model calibration in HEC-RAS for both steady and unsteady flow focuses on adjusting Manning's n roughness coefficients and ineffective flow areas to match observed data, such as stage hydrographs at gages. Manning's n values are calibrated reach-by-reach, often varying by flow zone (e.g., low to high flow) using automated optimization that minimizes root mean square error against observed stages, with initial factors starting at 1.0 and iterations up to 50. Ineffective flow areas exclude portions of cross sections from active conveyance during low flows (e.g., overbanks near bridges), defined by station-elevation pairs that activate at higher stages; calibration refines these to align simulated water surfaces with measurements, ensuring accurate energy gradients without overestimating storage.[22][23]Sediment Transport Modeling
HEC-RAS provides capabilities for simulating sediment transport in both one-dimensional (1D) and two-dimensional (2D) modeling frameworks, enabling the prediction of erosion, deposition, and bed morphology changes in river systems.[24][25] In 1D sediment transport, the model supports total load computations, which include both bed load and suspended load, or bed load-only options, allowing users to select appropriate methods based on the sediment regime and study objectives.[24] These simulations couple with unsteady flow hydraulics to compute sediment capacity and mobile bed evolution over time.[24] For 1D modeling, sediment transport capacity is calculated using established empirical formulas, such as the Engelund-Hansen equation for total load, given byg_s = V^2 \sqrt{ \frac{\tau_b (\gamma_s - \gamma) d_{50}}{g (\gamma_s / \gamma - 1)} }
where g_s is the volumetric sediment transport rate per unit width, V is the average channel velocity, \tau_b is the bed shear stress, \gamma_s and \gamma are the unit weights of sediment and water, d_{50} is the median grain size, and g is gravitational acceleration.[26][24] Alternatively, the Meyer-Peter-Müller equation can be applied for bed load capacity, expressed as
q_b = 8 (\tau_* - \tau_{*c})^{3/2} \sqrt{(s-1) g d^3}
where q_b is the bed load transport rate, \tau_* and \tau_{*c} are the Shields parameters for actual and critical shear stress, s is the specific gravity of sediment, and d is the grain diameter.[27][24] Erosion occurs when computed shear stress exceeds the critical value for a given grain class, leading to bed lowering, while deposition happens when transport capacity falls below the incoming sediment supply, resulting in aggradation; these processes adjust cross-sectional geometry iteratively within quasi-unsteady or unsteady flow simulations.[24] In 2D sediment transport, HEC-RAS employs a comprehensive approach that includes full sediment transport modeling with advection-diffusion equations for suspended load and bed load contributions, solved on an unstructured mesh coupled to the 2D hydrodynamic flow field.[25] Bed evolution is governed by the Exner equation in two dimensions:
(1 - \lambda_p) \frac{\partial z_b}{\partial t} + \frac{\partial q_{sx}}{\partial x} + \frac{\partial q_{sy}}{\partial y} = 0
where \lambda_p is the porosity of the bed material, z_b is the bed elevation, t is time, and q_{sx}, q_{sy} are the components of the bed load flux vector.[25] This formulation accounts for spatial variations in transport, using the same transport capacity functions as in 1D (e.g., Engelund-Hansen or Meyer-Peter-Müller) but extended to vector directions based on flow velocities from the unsteady 2D flow solution.[25] Suspended load is routed via advection-diffusion, with concentration profiles often assuming Rouse distribution or exponential forms, and a load correction factor to adapt equilibrium assumptions to non-equilibrium conditions.[25] Both 1D and 2D modules support dredge and fill operations, where users specify volumes or rates of sediment removal or addition, applied as prisms, veneers, or elevation-based adjustments to simulate maintenance activities or structural changes.[24][25] Sediment sorting is handled for non-uniform mixtures, with up to 18 grain size classes ranging from cohesive fines to gravel, allowing differential transport and armoring effects.[24][25] Key inputs for sediment simulations include grain size distributions (defined by percentage finer curves or class fractions at cross-sections or cells), fall velocity for each class (computed via methods like Rubey, Van Rijn, or user-specified), and critical shear stress thresholds (static or dynamic, often calibrated per class using Shields criterion or empirical relations).[24][25] Outputs encompass bed change profiles or maps (e.g., elevation adjustments in feet or meters), cumulative sediment volumes eroded or deposited (in cubic yards or cubic meters), and time-series data on regime shifts such as degradation, aggradation, or stable conditions, visualized through profiles, stage hydrographs, or GIS layers in RAS Mapper.[24][25] These features rely on hydraulic outputs from unsteady flow analysis to drive shear stress and velocity fields.[24][25]