Pages

Friday, October 22, 2010

Some useful debugging tools

Written by Chris Goodell, P.E., D. WRE | WEST Consultants
Copyright © RASModel.com. 2010. All rights reserved.

Recently I’ve had some real difficult models to set up and run. Some real beasts. And some of these take hours to run. As you can imagine, when one of these models is crashing, strategies for effectively diagnosing and fixing errors become very important. You don’t want to “chase” problems in models with 2 hour run times. You’ll never get your model stable. You need to be able to diagnose the problem and come up with a confident fix, while minimizing the time spent running the model to “try out” possible fixes.

Here’s a real useful tool that has recently been added to HEC-RAS.

image

In the Runtime Computational Options, you have the option to “disregard” Lateral Structures, Storage Area Connections, Breaches, and Pumps in the computations. Let’s say you turn off lateral structures, rerun your model and it runs fine.

image

Then you know that there is a problem with one or more of your lateral structures. Simple diagnosing tool-but very effective.



Also, I’ve been using the Computation Level Output a lot. By checking this box on the Unsteady Flow Analysis window, you are able to look at some select output parameters at every computational time step interval. These parameters include water surface elevation, flow, and lateral inflow. You can view two types of plots: a spatial plot and a time series plot, by going to the “View” menu item on the main RAS window.

image

The first two are very useful, and at a computation interval level, can show you things that just won’t show up on the detailed output profile plots. However, the ability to monitor lateral inflow, graphically, and at the computation interval level, is a powerful way to determine when and how much discharge is entering a given reach laterally (via lateral structures from other reaches or storage areas).

image This is a common source of errors that can lead to instabilities in complex HEC-RAS models, and aside from this plot, I don’t know of another way to graphically see this.

Thursday, August 19, 2010

How to use a Storage Area to define a Reservoir.

Written by Chris Goodell, P.E., D. WRE | WEST Consultants
Copyright © RASModel.com. 2010. All rights reserved.

It’s a little confusing, and not really directly covered in the manuals anywhere. But I get this question a lot. “How do use a Storage Area to define my reservoir in RAS?” First of all, make sure using a Storage Area and level pool routing is an appropriate way to model your reservoir. This is even more important if you are modeling a dam breach on this reservoir. Check this post first to make sure it’s okay.

Once you’re happy with the level pool assumption, draw in (or import)your downstream reach in the geometric editor. Then add in your cross sections. Next, place your inline structure (dam) at the upstream end of the reach. You’ll need to place two dummy cross sections upstream of your inline structure (and downstream of your storage area). These can be copies of the cross section downstream of the dam, but should be as close as possible to the upstream toe of the dam and close enough to each other to minimize the associated volume (relative to the reservoir’s total volume). Next draw (or import) your storage area upstream of the inline structure and it’s two dummy cross sections. It’s not uncommon to have the two cross sections reside within the storage area’s boundaries. That’s okay and it doesn’t affect the computations either way.

To make RAS recognize the connection between the upper dummy cross section and the storage area, you have to “move” the upper end point of the reach inside the storage area. To do this, go to Edit…Move Object, in the main geometry window.

image

Once in “move” mode, click and drag the upstream end point inside the storage area. RAS should then automatically recognize the connection. Make sure to uncheck “Move Object” in the menu once you’re finished. It should look something like this when done:image

Make sure you provide some outlet flow, or your dam will overtop at the beginning of the simulation. This can be done by coding in gates, or by providing pilot flow. If you’re providing pilot flow, you must enter in an “Internal R.S. Initial Stage” for one of the dummy cross sections to set up your starting pool elevation. This is set in the Options menu item in the Unsteady Flow Editor.

image

Wednesday, August 18, 2010

Stability Issues with Storage Areas

Written by Chris Goodell, P.E., D. WRE | WEST Consultants
Copyright © RASModel.com. 2010. All rights reserved.

Storage Areas in unsteady RAS are notoriously stable. That’s why we like to use them. Get the water out of the 1-d St. Venant unstable environment, into the 0-d stable continuity environment. However, I recently discovered a problem with storage areas that could cause your model to go unstable, or at least chug along slowly at max iterations.

Storage Areas in RAS are defined solely by a storage-elevation curve. That’s another reason we like them…they’re easy to code in. A typical storage-elevation curve looks like this:

image

Notice how is rises fairly quickly in stage from its minimum elevation then starts to level off as the added volume per ft of stage becomes larger and larger.

Now, if you have a storage volume curve that rises too quickly, it could pose problems.

image

Because the storage area is handled with the continuity equation, this is typically not an issue by itself. However, when these storage areas are connected with a reach (and they typically are) in the “quickly rising” range of elevations (here in the example between elevations 4388 and 4393), then we might violate my number one rule of unsteady flow RAS modeling-Changes should happen gradually-changes in discharge, changes in stage, changes in flow area, etc. etc ,whatever. In this case we are changing the stage in the storage area which is causing a quick change in flow over the connecting lateral structure and a quick change in stage in the adjacent cross section(s).

Solution: Looking at this steeply rising storage area curve , we can guess that the quickly rising portion of the curve might represent some small ditches or creeks, or even some small pits within the storage area. Is it critical to represent these features in the model, especially if we’re most interested in the high flow portion of the simulation? Also, will it make that much difference to remove these features? Probably not. We should keep the invert or minimum elevation point, incase any connecting cross sections have inverts at that elevation, but if we remove the 2nd and 3rd points from the curve, it doesn’t drastically change the look of the curve, and it just might stabilize this area.

image

How to spot this problem: While you’re running your model, if it gets caught on maximum iterations at a storage area, or if it bounces between a storage area and an adjacent part of a reach, then this could be the problem. Also, if you’re maxing on iterations at a cross section or range of cross sections that is adjacent to a lateral structure, and the elevation of the reported error suggests you are overtopping that lateral structure, make sure that the connecting storage area doesn’t have a steeply rising storage elevation curve.

Here’s an example:

Maximum iterations of 20 at: RS WSEL ERROR

03JAN2010 09:50:38 River Upper 34454.76 4423.88 0.055

03JAN2010 09:51:00 River Upper 34602.8* 4424.34 0.027

03JAN2010 09:51:08 River Upper 34602.8* 4424.39 0.048

03JAN2010 09:51:23 SA Area47 4392.44 0.052

03JAN2010 09:51:30 River Upper 34602.8* 4424.34 0.026

03JAN2010 09:51:38 River Upper 34602.8* 4424.39 0.047

03JAN2010 09:51:53 SA Area47 4392.66 0.058

03JAN2010 09:52:00 River Upper 34454.76 4423.93 0.028

03JAN2010 09:52:08 River Upper 34602.8* 4424.39 0.048

03JAN2010 09:52:23 SA Area47 4392.91 0.065

03JAN2010 09:52:30 River Upper 34454.76 4423.93 0.027

03JAN2010 09:52:38 River Upper 34602.8* 4424.40 0.048

03JAN2010 09:52:53 SA Area47 4393.19 0.073

03JAN2010 09:53:00 River Upper 34454.76 4423.94 0.030

03JAN2010 09:53:08 River Upper 34602.8* 4424.40 0.050

03JAN2010 09:53:23 SA Area47 4393.50 0.080

03JAN2010 09:53:30 SA Area47 4393.58 0.083

03JAN2010 09:53:38 River Upper 34602.8* 4424.40 0.051

03JAN2010 09:53:53 River Upper 34602.8* 4424.38 0.022

03JAN2010 09:54:00 River Upper 34454.76 4423.94 0.023

03JAN2010 09:54:08 River Upper 34602.8* 4424.41 0.050

03JAN2010 09:54:30 River Upper 34454.76 4423.96 0.037

Notice how the errors are bouncing between Storage Area 47 and a specific part of the reach “River Upper”. If we check storage area 47, sure enough, its storage elevation curve rises very quickly, and could probably be adjusted to removed the stability issue in the range of stages shown in the computation message log (about 4392 to 4393 ft).

image

Tuesday, July 13, 2010

Cross Section Points Filter

Written by Chris Goodell, P.E., D. WRE | WEST Consultants
Copyright © RASModel.com. 2010. All rights reserved.

Now that a lot of us use GIS to generate our cross sections, this is becoming a much more “used” feature in RAS: The Cross Section Points Filter. RAS allows a maximum of 500 station-elevation points in any given cross section. It is very common for one or more cross sections cut in GIS to come in with a LOT of station elevation points. And then, if you interpolate cross sections (interpolated cross sections have more-or-less double the station elevation points as their bounding sections) you’ll have even more points. Exceeding 500 points in a cross section is very easy to do.

RAS offers a few ways to filter out points. There is the “Near and Co-linear” filter. This allows you to specify a tolerance for points that are very close to each other, and points that are in a straight, or nearly straight line. RAS will then remove points that are within the tolerance level (i.e., if you have three points in a perfectly straight line, there is no need to include the middle point in your geometry-unless it happens to be a bank station or n-value break point, in which case RAS will preserve it).

However, my preference normally is to use the “Minimum Area Change” option. RAS will remove points sequentially in an effort to minimize the area change of the cross section. You, as the user, simply specify the number of points you want RAS to filter to, and all the work is done for you. This is a much more convenient way to filter points-and much faster, but be aware that you have a lot less control over how the points are filtered. If you have a lot more than 500 points to begin with, it is a good idea to compare the “before” and “after” cross sections to make sure the new cross section preserves the true geometry. In my experience RAS does a great job at filtering using the Minimize Area Change option.

If RAS tells me there are a lot of cross sections that need to be filtered, I’ll use the “Multiple Locations” tab to get them all done at once. Select all the cross sections in your geometry (even the ones that don’t exceed 500 points) and RAS will only filter the cross sections that need filtering.

image

Thursday, June 24, 2010

Contraction and Expansion Losses for Unsteady Flow

Written by Chris Goodell, P.E., D. WRE | WEST Consultants
Copyright © RASModel.com. 2010. All rights reserved.

Since unsteady flow was introduced in HEC-RAS years ago, the contraction and expansion loss coefficients were not used, because losses due to contraction and expansion were automatically approximated in the conservation of momentum equation. Since steady flow RAS does not use the momentum equation for backwater computations, we had to approximate the contraction and expansion losses using those loss coefficients that you see for every cross section in the cross section editor. When switching to unsteady flow, you could leave those coefficients in every cross section; RAS just won’t use them.

image

In the latest version of RAS (version 4.1), the release notes indicate that RAS may not be capturing all of the C&E losses in unsteady flow, particularly at sharp contractions and expansion. And therefore, unsteady contraction and expansion loss coefficients can now be used.

From the 4.1 Release notes:, “In general, contraction and expansion losses are not used in unsteady flow, and therefore the default coefficients are 0.0. Forces due to contractions and expansions are handled in the momentum equation through pressure force differences. However, because HEC-RAS is a one-dimensional unsteady flow model, the one-dimensional momentum equation does not always capture all of the forces action on the flow field at a sharp contraction and/or expansion zone. In order to better approximate the forces acting on the water, and the resulting water surface elevation, at a contraction and/or expansion, the user can enter empirical contraction and expansion coefficients for unsteady flow modeling. These coefficients will be multiplied by a change in velocity head, just like in steady flow modeling, but the resulting energy loss gets converted to an equivalent force for placement into the momentum equation.”

Notice that there is a new table for entering unsteady flow contraction and expansion losses.

image

So the obvious question is, “what values do we use for unsteady flow contraction and expansion coefficients?” Are they the same as their steady flow counterparts? Also, when do we want to use them?

Any suggestions out there???

Thursday, April 29, 2010

Probabilistic Methods for Dam Breach Modeling

Written by Chris Goodell, P.E., D. WRE | WEST Consultants
Copyright © RASModel.com. 2010. All rights reserved.

I would appreciate any feedback from you all on this topic. It's something I've been thinking about for a while now. My biggest concern with the current practice of dam breach modeling is the overwhelming uncertainty associated with dam breach parameters. Not only the ultimate breach shape and development time, but things like the initiation mechanism of the breach, the discharge coefficients (both weir and orifice), and the progression rate. The deterministic approach we use leaves a bit to be desired in my opinion. Sensitivity analyses have shown that the breach outflow hydrograph can easily vary by 100% or more, based on the set of parameters used. I've been considering ways to generate a breach outflow hydrograph based on probabilistic methods. The idea being instead of providing our "best conservative guess" for the breach hydrograph, we can produce a 95% (or whatever percent) conditional non-exceedance hydrograph based on both overall peak discharge and also timing. Meaning, this is the dam breach hydrograph that will not be exceeded in peak value 95% of the time, given a dam failure for a given failure mechanism (overtopping or piping). This is done by assigning probablity distribution functions to each breach parameter, then run a Monte Carlo simulation using random assignments (within the minimum and maximum bounds and following the prescribed distribution function) for each breach parameter. Then we can plug the resulting 95% hydrograph (or the associated set of breach parameters to create that hydrograph) into our HEC-RAS unsteady flow model and resume our deterministic approach. At least we have taken the deterministic selection of breach parameters out of the analysis. I suppose at some time, the entire model could be approached with probabilistic methods, but first things first. In fact, HEC is currently working on implementing Monte Carlo simulation capabilities into HEC-RAS for a future release.

I wonder if any state Dam Safety office is ready for this type of analysis for preparing inundation maps for emergency action plans. I think it makes more sense.

Tuesday, March 30, 2010

Dynamic versus Level Pool Reservoir Drawdown for Dam Breach Modeling

Written by Chris Goodell, P.E., D. WRE | WEST Consultants
Copyright © RASModel.com. 2010. All rights reserved.

This is a summary from a paper (Goodell,Christopher;Wahlin, Brian. “Dynamic and Level Pool Reservoir Drawdown: A Practical Comparison for Dam Breach Modeling.” 33rd IAHR Congress Proceedings, Vancouver Canada, 2009) on level pool versus dynamic reservoir drawdown for dam breach modeling. In RAS you can define your reservoir with a series of cross sections (which uses dynamic routing) or a storage area (which uses level pool routing). Dynamic routing is generally assumed to be more accurate, but the size and shape of a reservoir can sometimes make level pool reservoir adequate.

A key component to dam breach modeling is the reservoir drawdown. This has a significant impact on the magnitude and shape of the breach outflow hydrograph, and ultimately the extent of flood inundation in the downstream reach. Drawdown of the reservoir can be modeled with the precise and physically correct dynamic routing method, which uses the full St. Venant equations of Conservation of Mass and Conservation of Momentum. However, this requires detailed bathymetric data for the reservoir, which is frequently very difficult and expensive to obtain for existing reservoirs. Furthermore, dynamic routing is complex and prone to numeric instabilities. A level pool drawdown is a more simplistic, numerically stable approach that can be used successfully under certain circumstances and requires only a simple stage-storage curve for the reservoir.

Two primary characteristics emerge as indicators of a given reservoir’s ability to be described by a level pool analysis. The Compactness Factor, Fc, is simply the ratio of the dam height (H) to the reservoir length (L). The longer and shallower the reservoir, the lower the Compactness Factor and the more the reservoir acts like a river during its drawdown. Thus dynamic routing would be more appropriate in this situation. Short, relatively deep reservoirs are more compact, have a larger Fc value, and can be adequately described using a level pool analysis.

The Translation Factor, Ft, describes the relationship between the speed of the breach development and the ability of the reservoir to supply water to replace the water leaving through the breach. The easier the reservoir can deliver water to the breach, the more it can be described by a level pool analysis. Fast breach developments and long reservoirs are more appropriate to be modeled by dynamic routing. The Translation Factor is computed as:

Ft = ct/L

Where: c = shallow water wave celerity =clip_image002.

d = representative reservoir depth.

and t = time.

A third parameter can be used to help graphically display the results of the various simulations. The Drawdown Number, Dn, is defined as the product of the Translation Factor and the Compactness Factor.

clip_image002




It becomes apparent that for high Drawdown Numbers, the level pool analysis produces results very close to dynamic routing. By enveloping the data points, a 5% threshold Drawdown Number is shown to be 0.41. That means that a reservoir with a Drawdown Number of 0.41 or greater will produce peak outflow results within 5% of a dynamic routing simulation. The 10% threshold Drawdown Number of 0.24 is also indicated on the plot.

You can see the full paper in the referenced proceedings. Also, the Hbox software has an automated utility for determining the appropriateness of level pool reservoir drawdown based on thd Drawdown Number analysis.