Wormhole Island

“What’s the best shape for a wormhole culvert?”

Some recent questions were posted on the HEC-RAS blog regarding the optimal shape of the SA/2D Area Connection alignment for a wormhole culvert – in particular, whether a “Z” shape or “S” shape would be preferable. My apologies in advance for the drawn-out response, but I’ve had this question come up a number of times in class and thought I’d post some of my whiteboard sketches along with some random thoughts on the topic:

“Z” or “S”?

If you draw a “Z” shape, the order in which the vertices are entered will determine the direction of flow (always oriented from left to right looking downstream in HEC-RAS). The following image shows four different ways to draw a “Z”-shaped connection along with the associated orientation of flow that will be assumed in HEC-RAS. In the case of a wormhole culvert, flow could enter the “wormhole” at any of the green arrows (or at any point along each of the adjacent faces) and exit along any of the faces indicated by the red arrows. Wormhole culvert inlets and outlets typically wouldn’t be located along the diagonal segment of the “Z”, but directional arrows are shown along those segments to illustrate how the orientation of flow is preserved along the entire shape:

(click on any of the images in this article to enlarge)

The relative locations of the culvert inlet and outlet are assigned by the chainage/stationing measured from Point #1 along each of the shapes. The screenshot of the culvert data editor below shows where the station values are entered. The upstream centerline station would be reflected in the location of the green inflow arrows in our sketch above, and the downstream centerline station would indicate the location of the red outflow arrows (measured from Point #1).

In general, a smooth “S” shape may be preferable to the “Z” shape in order to avoid mesh errors (shown in the geometric data editor as red dots) that can otherwise appear around the corners of the “Z” when you enforce the connection as a breakline. The “Z” shape is also notorious for causing discrepancies between the length of the terrain centerline and the length of the weir embankment (which tend to occur when the connection line can’t snap to a cell face.) Here is an example:

Because of these issues, I actually prefer to use an intermediate shape that looks like a block “S” or a number “2”. This helps to minimize the number of vertices while still avoiding mesh errors. The following image shows mirrored examples of the “Z” and the block “Z” shapes:

The pesky red dots tend to disappear with the two additional vertices. Limiting the shape to a simple block outline (as opposed to delineating a smooth “S” with an excessive number of vertices) makes it easier to adjust individual vertices later and replicate those changes in any associated GIS files. [I always like to define breaklines, connection lines, profile lines, and other geospatial data in CAD or GIS shapefiles outside of HEC-RAS so that the shapes will be recoverable and reproducible in other projects; another advantage of having everything defined as a shapefile is that your structures and other features can then be viewable as Map Layers in RAS Mapper.]

The shapes shown above would typically be used to move flow linearly from the inlet to the outlet along a culvert – with the diagonal part of the shape crossing the roadway – as shown here:

More Shapes

If, on the other hand, you are using a wormhole culvert to move flow to another area in your model, the shape you use will depend entirely on where you want the outflow to end up relative to the inflow. In my models I have had to move flow around in all directions in order to apply internal inflow boundary conditions. The connection alignments I have drawn have not just been in the shape of an “S” or a “Z”, but have also included straight lines, spirals, figure eights, and other shapes. I’ll illustrate a few examples below, with the alignment lines drawn from left to right looking downstream. The arrows indicate the direction of flow; inflow enters the culvert in the green cell at the centre of each grid and exits the culvert through the outlet located in the adjacent red cell:

As you can see, if you are merely shifting flow to the east (right), you can delineate the connection simply as a straight line; whereas, if you are moving flow to the south or to the southwest (to the lower left in the previous figure) you have a couple of more involved options to choose from. The matrix above shows simplified cases where flow is always northwards (both at the inlet and at the outlet); the inflow or outflow could obviously be oriented in any direction at all, in which case these shapes could be rotated, extended, or cut short. Again, although these shapes are shown schematically as curves, I would make the actual connection alignment with as few vertices as possible while still avoiding mesh errors.

Sometimes the length of the connection line is only a few metres (when I’m accounting for an actual culvert under a narrow roadway, for instance). In other cases the lines are a kilometre or more in length (like when I’m moving flow from an external 2D Flow Area boundary to an internal inflow location.) Keep in mind that the weir/embankment stationing will be limited to 500 points; so in general if you are trying to move flow over a large distance, you’ll want to go with the shortest possible path between the inlet and outlet that still manages to avoid mesh errors. Also keep in mind that you may need to make slight adjustments to your weir/embankment elevations – even if you have copied them straight from the terrain profile – in order to raise them above the level of the terrain in the cells adjacent to the connection line. This usually requires an adjustment of only a few millimeters and is hopefully a process that will be automated in future versions of HEC-RAS, but in the meantime, the longer the line, the more points you could potentially have to adjust manually – another argument for avoiding any unnecessary length in your connection line.

As we’ll see below, however, neither the length nor the alignment of the connection line should affect the hydraulic results, provided the flow orientation is maintained and wormhole culvert parameters have been coded in properly (the weir embankment elevations are flush with the terrain and you have selected “use normal 2D equation domain” in the connection data editor window, for instance). I’ll illustrate the concept with a 2D example below, but to really understand where wormhole culverts come from, we have to first go back to 1D.

A 1D model with a bridge/culvert requires bounding cross sections along the channel adjacent to the upstream and downstream bridge face. In this example, in which the bounding cross sections start at the same station and cover the same distance parallel to the bridge deck, both the upstream and downstream centerline stationing for the culvert would be identical; in this case, you would enter “50” for each value:

If the cross section stationing differs between the upstream and downstream bounding sections, however, the culvert centerline values can be adjusted accordingly. In the case below, for example, the upstream centerline station would be entered as “50” and the downstream station would be “25”:

The 25 meter difference in stationing does not affect the culvert hydraulics; only the length of the culvert itself figures into the balance. The stationing of the cross section is rather arbitrary, and we could just as well assign the starting station to be 1,000 rather than 0 for any of the cross sections in the above examples without any impact whatsoever on the hydraulics. The intention of allowing different stations for the upstream and downstream culvert centerline in a 1D model is not to move the culvert but to represent the actual, fixed location of the culvert against the arbitrary, adjustable cross section stationing – allowing flow to be kept in the correct portion of the channel. If you entered culvert centerline station values that ended up moving flow to another channel or branch in a 1D model, it would probably be the result of an unintentional coding error.

As we move into 2D, however, everything is georeferenced, and any difference between the upstream and downstream culvert centerline station values represents an actual shift in the flow path along the alignment. Because the current limitation of HEC-RAS is to connect culverts to the grid cells immediately adjacent to the connection line, using standard methods there would generally be no reason for the upstream and downstream culvert centerline station values to differ significantly. Using the concept of wormhole culverts, however, the difference in the numerical value of the station represents a deliberate shift in the inlet and outlet locations. I’ll illustrate that concept with the simplest of cases, in which we have a culvert that is oriented perpendicularly to a roadway alignment:

By differing the upstream and downstream culvert centerline stationing, we are still drawing from the hydraulic properties of the cells that touch the connection line, but we are essentially breaking the culvert in half and shifting the outlet to another location along the roadway alignment:

For a standard culvert, this wouldn’t be a realistic scenario. In the case of a wormhole culvert, however, instead of following an actual roadway alignment with our connection line, we are creating an imaginary, at-grade roadway that can wind its way anywhere throughout the model without affecting the two-dimensional flow in the surrounding computational mesh. Discharge through the culvert is still one-dimensional in nature; the hydraulic computations for a wormhole culvert use the assigned culvert length, inlet/outlet configuration, roughness, slope, and other properties to balance the headwater and tailwater levels at the grid cells immediately adjacent to the inlet and outlet stationing, but the distance between the inlet and outlet in the schematic view (measured along the connection line) is ignored entirely in the computations.

Wormhole Island

I’ll include an example to demonstrate that the alignment of the connection line does not affect the hydraulic results. This example uses the Brisbane River terrain that is outlined in Workshop #1 (available for download here if you want to try it for yourself with the same data set). Here is the basic setup, showing the 2D Flow Area in blue:

For this example, I’ve created an island within which I want to introduce an internal inflow hydrograph. In this case the Pac-Man method won’t help because I have 2D flow on all sides of the desired internal inflow location. Given the current limitations of HEC-RAS, any inflow boundary condition line I draw will automatically snap to the nearest points along the external 2D Flow Area perimeter, leaving no way to introduce flow inside the island. This is where wormhole culverts come to the rescue – Enter Wormhole Island!

[I have plenty of real examples where I have run up against this limitation, but most of those are proprietary to individual clients, so I’ve created my own example here using the publicly available ELVIS terrain data. With the original ELVIS topography, I could have actually used the Pac-Man method and sliced the external boundary along the ridge line shown in white below – avoiding any 2D flow paths – to get to the internal inflow location; I wanted to use an island for this example, though, so I made my own using terrain modification. To excavate a channel through the terrain, I cut a 1D cross section on each side of the ridge line as shown below, and then generated a new terrain surface using the interpolated channel between the cross sections; this allows the flow to split downstream of the inflow location, forming an island.]

As in our previous example for wormhole boundary conditions, I then created a dam against the external boundary of the 2D Flow Area using an SA/2D Area Connection, extending the line to the desired inflow location inside the island. It is important that the artificial dam is located far enough away from the area of interest to avoid affecting any other results. If you are trying to apply a specific hydrograph at the internal inflow location, it is also important that the dam is located close enough to the external boundary to keep the storage volume in the reservoir negligible relative to the inflow hydrograph. Here is the schematic plan view of the wormhole culvert alignment with breaklines enforced along each channel centerline:

For this case, I’ve made a massive culvert (20m in diameter) with an extremely short length (1m) so that culvert does not affect the hydrograph as it is transferred from the external boundary to the internal inflow location. I copied and pasted the terrain profile to the weir/embankment station/elevation table so that the weir essentially becomes just a line painted on the ground, with no hydraulic effect whatsoever. “Normal 2D Equation Domain” should be selected for this case instead of the weir equation, making the weir width irrelevant to the hydraulic computations. I then raised the embankment adjacent to the inflow location by deleting the intermediate station/elevation points from the table. This essentially forms a dam that prevents any flow from traveling downstream in this location, avoiding hydraulic impacts to the rest of my model. Wherever the connection line crosses a flow path, I have to be sure to follow the terrain at ground level to avoid obstructing the flow. Here is the weir/embankment alignment showing the relative location of the culvert inlet and outlet:

Once I run the unsteady flow plan and animate it in RAS Mapper, I can see the appearing at the center without affecting the hydraulics of the “moat” around Wormhole Island:

Although the connection is several kilometers long, the flow appears instantly at the internal inflow location as soon as the water surface elevation in the artificial reservoir reaches the invert elevation of the culvert inlet. [If this were a real project, I’d take it a bit further by moving the artificial reservoir further away so it doesn’t show up in the floodplain maps.] Here’s how the reservoir looks without the structures or boundary condition lines:

Now back to the whole point of this exercise, I wanted to demonstrate that the alignment of the SA/2D Area Connection (whether it’s a “Z”, “S”, or any other shape) is absolutely irrelevant to the hydraulics. To test the sensitivity, I added a few vertices to the line and moved them around to increase the length as shown here:

Here is the new weir/embankment profile, showing that we have added almost 700 metres to the connection length:

When I run it again, the plan view depth map in RAS Mapper looks identical to the previous run. Just to be sure, I added some profile lines to check the flow hydrographs in the inflow reservoir and in the internal tributary:

Here are the hydrographs in the reservoir and in the internal channel for both the original wormhole alignment and the extended alignment:


As shown in the hydrographs, the peak flow rates between the inlet and outlet match within less than 1%, and the time to peak is nearly identical, indicating that the wormhole culvert has not affected the inflow hydrology along its path. Likewise the hydrographs from the original alignment match those from the extended alignment, confirming that the length and the trajectory of the alignment are both irrelevant.

This illustrates why we call them “wormhole” culverts. In our case, flow has traveled several kilometers in no time at all!

I often find myself with a series of nodes at which I need to introduce inflows that have been generated by a hydrological model. These nodes are very rarely located conveniently along the external boundary of my 2D Flow Area! Whether the hydrographs are generated from the Rational Method, RORB, HMS, or any other rainfall-runoff approach, the wormhole method allows us to introduce inflow hydrographs wherever we want to place them, without having to adjust the boundary of the 2D Flow Area. Using multiple, interconnected 2D Flow Areas gets a bit more complicated but opens up a few other possibilities as well – I think I’ve rambled on enough for today, though, so I’ll have to cover that topic in a future post!

[Disclaimer: Although I have confirmed the hydrology for this particular case, I wouldn’t apply these findings to any other model without checking the results first. By comparing the original inflow hydrograph to time series that are extracted along key profile lines throughout the hydraulic model, you may find some issues that need resolving; if I needed to limit the peak flow attenuation or lag time in my model even further, for example, I could reduce the volume of the artificial storage reservoir by moving the SA/2D Area Connection alignment closer to the inflow boundary condition. I could also take it a bit further and tweak my timesteps or other parameters to reduce the instabilities that resulted in some of the minor oscillations apparent in the hydrographs; for the purpose of this example, however, I think we’ve sufficiently made the case for wormhole culverts!]


“What’s the best shape for a wormhole culvert?”


“Whatever you like, so long as you point the flow in the right direction!”

If you have any comments or questions, please feel free to e-mail me or contribute to the discussion on the HEC-RAS blog. Here are links to some of our previous articles covering wormhole culverts:

Krey Price
Surface Water Solutions

* Please join the newly created LinkedIn groups for dam break modelling and sediment transport modelling















2017 Training Dates

Register now for 2017 1D/2D flood modelling courses. Get a head start on a HEC-RAS 5.0 course by downloading our Introductory Workshop document. Who attends our courses?  What are they saying?

Links and Downloads

See our training and consulting flyer. Download the free HEC-RAS 5.0.3 software and manuals. Check out the updated 2016 ARR 2D Modelling Guidelines and these scary photos from recent floods in Australia.

Blogs and Forums

Click here to subscribe to our e-mail list and receive the latest HEC-RAS updates, such as our recent articles about wormhole culverts, terrain manipulation, internal boundaries, and 2D benchmarking results.