This example will demonstrate a simple yield analysis computation in ResSim for a single reservoir. The model consists of a single stream with one reservoir. The only inflow point is at the upstream junction. The yield analysis is concerned with the minimum flow at the junction, "downstream compute point". For ease of computation, null routing is used in the routing reaches.
The elevation-storage table for the pool is shown below. I have set the top of conservation pool at elevation 50 ft. This gives us a storage value of 200,000 acre-ft. I have set the top of the inactive pool at elevation 25 ft. This gives us a storage value of 100,000 acre-ft. So, the total conservation pool is 100,000 acre-ft.
There is one rule governing operation of the reservoir. This rule requires a minimum release of 20 cfs at the junction, "downstream compute point".
I select the demand rule as the minimum flow at the downstream location. Recall that it was set to 20 cfs. This will be the initial estimate for ResSim. The tolerance is set to 5 cfs. This will be explained in the results. The tolerance for the storage lower limit is 1000 acre-ft. This will also be covered in the results discussion.
For the yield analysis, I used the bisection method. The trial factor for the first iteration is 1. This means that it uses the value that is currently in the rule, which is 20 cfs. The simulated minimum storage is 200,000 acre-ft since it never leaves the top of conservation. There is enough inflow to hold top of conservation and supply the downstream demand. Since it does not get below 101,000 acre-ft (bottom of conservation plus storage tolerance of 1,000 acre-ft), it fails the storage convergence test.
For the next trial, the initial estimate of 20 cfs is doubled. We see that the simulated minimum storage is in the conservation pool since it is below 200,000 acre-ft. However, it is greater than 101,000 acre-ft so it fails the storage convergence test. We also notice that 80 cfs fails the storage convergence test, but it is much closer to the 101,000 storage convergence value.
ResSim then tries 160 cfs. This time it passes the convergence test. Notice, however, the date of the minimum storage value is 04April2012. This reaches the minimum value before the critical period ends. At this point, ResSim checks to see if it can meet the flow tolerance of 5 cfs for the remainder of the critical period. Basically, can it meet at least 155 cfs for the rest of the critical period. It is unable to do this so it fails the flow convergence test.
ResSim continues its test by using values between the previous test and 80 cfs since it knows that 80 cfs put the minimum pool above its storage target. ResSim discovers that using 85 cfs gives a minimum pool elevation on 15July2013. This is very close to the end of the critical period, however, it is unable to maintain 80 cfs for the remainder of the critical period. Finally, it tries 82.5 cfs, which passes both the storage convergence and the flow convergence tests.
Hello,
ReplyDeleteI have a problem to find Yield Analysis in the alternative editor. Can you help me please? Thank you
Hi Kevin,
ReplyDeleteThanks for the great post. You are by far the best resource online I have found for asking ResSim questions. I have a related question about water supply analysis in ResSim, which I hope you will be willing to help with.
I have built a model watershed with many reservoirs and a number of different water rights holders who make diversions. I would like to calculate the running total of water (in acre-feet) that each diversion consumes each water year. For example, User A may only divert 15,000 AF/year, and in dry years the model may show that even less is available. Because environmental flows are set as the highest priority rules, ResSim will automatically curtail diversions in dry conditions when water is not available.
I am interested in analyzing how yield varies year to year. And I need to ensure that users do not divert more water than they are entitled to. I have results that show diversions in CFS each timestep, but I would like to convert daily flow to volume diverted year-to-date as a running sum. (by August 1, how much water has User A diverted this water year?) I have considered two methods for achieving this: post-processing the .dss output in MS Excel or defining one or more state variables. Ultimately, I am analyzing yield volumes, not flow rates.
My question for you is basically: do you have a recommendation on the best way to build this calculation into my model? Is it possible to achieve within ResSim or will I need to post-process the results with other software to calculate these values? And are you aware of any other publicly available ResSim model that has tracked yearly diversions in AF that I might be able to look at as a template for my work? I am sure I am not the first person interested in using ResSim to analyze water rights availability but the user manual barely addresses this question.
Thank you again for your generosity in sharing your time to help modelers like me learn. Your work is greatly appreciated.
Best,
Frank
Frank, that is a good question. If the result of that calculation affects how the simulation progresses, then you would probably want to track that value using a state variable. This would allow you to convert the flow rate to a volume and keep track of a running sum. You could then have a rule (or rules) that is based on the value of the state variable. However, if you do not need it for the simulation, I tend to take the easiest path which is to use the dss file and post process the results of each diversion. For that, I would probably use Excel. Having ResSim compute that can cause a slower run time. Depending on the size of the model and the length of the simulation, that may or may not be much of an issue.
Delete