Example #2 MODFLOW This example is the simple "OBLEO" aquifer problem. Figure 1 is a plan view map of the hydrologic setting of the OBLEO aquifer. The aquifer is an unconfined aquifer with a single well P-1. The aquifer is bounded to the North and South by mountains, and the East and West by two large lakes. The water elevation in each lake is 0.0 meters above some datum, while the ground elevation at the well is 100.0 meters above the same datum. Zenith Foothills Lake Alpha (z=0.0m) P-1 (z=100.m) Lake Omega (z=0.0m) 1100 km Nadir Mountains Figure 1. Obleo Aquifer Setting Rainfall records indicate that recharge to the subsurface is approximately 250 mm/yr. The aquifer is homogeneous and isotropic with a hydraulic conductivity of K=100m/day, and a specific yield S = 0.25. The example constructs a computer model to help determine the safe yield of the aquifer - assume minimum permissible saturated thickness is 500 m and that the aquifer is 1000 m thick. The OBLEO water board would like to exploit the aquifer, they would like to know (for a 30 year planning period): a) What is the maximum rate P-1 that can be used so that the saturated thickness is never less than 500m? b) How much of the pumped water is induced recharge from the two lakes? (Why would this question be of interest?) A model is one tool that can help answer these questions. Typically one uses some semblance of the following steps: Conceptual model - Translate the real system into a simplified system that can be represented in a computer (or analog) model. Mathematical model – Convert the conceptual model to a set of governing equations, boundary and initial conditions. Numerical model – Computer program implementing some numerical methods to obtain solutions to the mathematical model, or good approximations. The steps of mathematical and numerical modeling are “implicit” if the tool is MODFLOW. One will be using a diffusion equation with spatially varying material properties (transmissivity, storativity), with a prescribed set of initial conditions and boundary conditions. MODFLOW “solves” the mathematical model using a blockcentered finite-difference approximation to the governing equation and various different linear equation solvers. The time-difference model used is either fully-implicit or alternating-direction implicit. Data encoding - This step is where the analyst translates the conceptual model into data streams (input files) for the computer program to process. Generally the analyst must supply geometry, material properties, forcing terms (wells, recharge, etc.), and boundary conditions. The program will generate approximations at different times of heads in the aquifer layers, and cell-to-cell flow terms (using Darcy’s law). Solution - Typically the input files need several iterations of manipulation until one is asking the correct questions (of the model) and the output makes sense. Expect initial program runs to fail from input that is incorrect, inconsistent, or just plain wrong. Generally the “solution” will be an array of heads in each model layer, and possibly fluxes at specific locations. Usually a graphical tool is used to render the arrays into something straightforward to understand. Interpretation - This step is where the model results are interpreted as answers to the questions that we built the model for in the first place. This is where we would include “What-if …?” scenarios and their results. The engineer also uses this step to make recommendations or design decisions. Conceptual Model The obleo aquifer is a single unconfined, homogeneous, isotropic aquifer with hydraulic conductivity K= 36,500m/yr and a specific yield of S = 0.25. The aquifer is rectangular with dimensions 1100km x 1100km in the horizontal direction and 0.1km in the vertical. Flow is assumed to be essentially horizontal so that the Dupuit assumptions can be used. The Zenith Foothills to the North are conceptualized as a no-flow boundary as are the Nadir Mountains to the South. Lake Alpha to the east and Lake Omega to the West are conceptualized as constant head boundaries. A single well, P-1 is planned for the Obleo Aquifer. P-1 is located at the geographic center of the aquifer, equidistant from all four boundaries. Mathematical Model The solution domain can be expressed as: D = { (x,y) | 0 <x<1300m, The boundaries can be expressed as: 0<y<1100m } G1 = { (x,y) | x=0; G2 = { (x,y) | 0<x,1300m; G3 = { (x,y) | x=1300m; G4 = { (x,y) | 0<x<1300m; 0<y<1100m y=1100m 0<y<1100m y=0 } } } } The head in the aquifer is governed by the following diffusion equation: ∂h div (Kh grad(h) ) = S ∂t + q - r q- pumping; r- recharge subject to the following boundary conditions: h(x,y,t) = H(left) on G1 ∂h -K∂y (x,y,t) = 0 on G2 h(x,y,t) = H(right) on G3 ∂h -K∂y (x,y,t) = 0 on G4 h(x,y,0) = f(x,y) on D (Fixed head) (No-Flow) (Fixed head) (No-Flow) (Initial condition) Numerical Model The solution to the mathematical model will be obtained using the Finite-Difference Method. The numerical implementation will be using the USGS-MODFLOW code. Row 1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 2 -1 1 1 1 1 1 1 1 1 1 1 1 -1 3 -1 1 1 1 1 1 1 1 1 1 1 1 -1 4 -1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 10 -1 1 1 1 1 1 1 1 1 1 1 1 -1 11 -1 1 1 1 1 1 1 1 1 1 1 1 -1 1 2 Column 3 12 13 Figure 2. Boundary-array diagram The Obleo aquifer is modeled using the Dupuit assumptions as a single aquifer layer. The horizontal resolution is 1km x 1km; the vertical resolution is 0.1 km. Flow is assumed to be essentially horizontal. Figure 2 is a plan-view diagram of the aquifer with the constant head (-1), no-flow (0), and computational cells (1) indicated. This diagram is the boundary array that will be required by the program. Each cell is 1000 meters x 1000 meters. Figure 3 depicts the vertical resolution of the model. The “aquifer” is 1 km thick. Boundary heads at the two lakes are 900 meters above the bottom of the aquifer, but the lake is the datum, thus the bottom is located 900 meters below the lake. z=+100 m z=0.0 m z=-900m Figure 3. Vertical conceptual model and datum The MODFLOW packages that are used include: BASIC + BLOCK CENTERED FLOW (always) RECHARGE + WELLS SIP (or SSOR ...) The data stream will be located in the following set of DATA FILES, that correspond to the different packages. FOR001 <--- BASIC FOR011 <--- BCF FOR012 <--- WELLS FOR018 <--- RECHARGE FOR019 <--- SIP The version of MODFLOW used assumes FORMATTED data sets. Initial conditions - Because we really don't know the initial conditions, we will run the model once without any pumping to obtain an equilibrium solution. This solution will represent our initial condition for the "what-if" modeling. An alternative is to run the model “steady state” first and save the output for subsequent modeling. Either method should result in identical output, but the transient to equilibrium is sometimes easier. Figure 4 illustrates the concept. We simulate for 30 years “pre-development” then for 30 more years to evaluate the pumping impact. We select different pumping rates until we can satisfy the draw down requirement then report this simulation as the “design” case. Figure 4. Concept of transient to equilibrium ,then apply stress. Data files are built using a text editor - examples are shown below: Data Encoding FOR001 <--- BASIC CE6361 OBLEO AQUIFER EXAMPLE PROBLEM <= first two lines are notes to ourselves! 1 LAYER, 11 ROWS, 13 COLUMNS, UNCONFINED 1 11 13 2 5 <= layers, row, column, periods, time unit. 11 12 0 0 0 0 0 18 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 <= modules 0 0 <= memory handling 1 1(20i3) 3 IBOUND- 1 <=boundary array -1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 -1 100. <= head at no flow cells, use unusual number. 1 1.(10f10.0) 3 SHEAD- 1 <=initial head array 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 30. 30. 0. 1 1 0. 1. 1. <= st. period length, time step multiplier, time step length FOR011 <--- BCF 0 1 11 0 <= some flags <= simulation type (transient) 1.00 (10G10.3) 0 TRPY- 0 0 DELR1.00 0 1.00 1.00 1.00 1.00 DELC1.00 0 1.00 1.00 1.00 1.00 1.00 11 1.E3 1.00 1.00 1.E3 1.00 (10G10.3) 1.00 1.00 (10g10.3) 1.00 1.00 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 11 1.E3 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 11 1.00 -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. (10G10.3) 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 (10G10.3) 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 (10G10.3) -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. 1.00 1.00 11 1.00 1.00 11 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. 1.00 1.00 1.00 1.00 0.250 0.250 SF1- 1 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 3.65 3.65 HYDCON3.65 1 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 3.65 -900. -900. BOT- 1 -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. 0 3 3 3 -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. -900. FOR012 <--- WELLS 1 1 1 1 1 0 6 7 0.000 6 7 -1.E9 FOR018 <--- RECHARGE 1 0 18 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 1.00 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 18 1.00 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0 0 (10G10.3) 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 (10G10.3) 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 3 RECH- 0 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 RECH- 0 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 0.250 3 FOR019 <--- SIP 50 1. 5 1.E-07 MXITER NPARM 0 .001 1 ACCL,ERR,IPCALC,WSEED These “files” are not expected to work the first attempt. Essentially we build the model to be sure the program reads the files correctly (even if the data are incorrect), then iteratively correct the input data until we are modeling the situation of interest. The biggest issues will be adjustments to the FOR019 file to get convergence with reasonable accuracy, changing the predevelopment period length, and move the output from pre-development into the starting head array. The analyst keeps tracks of these changes in a simulation log and it is best to change only one thing at a time. A log of the changes to the model is illustrated below: Simulation Number run1 run2 run3 run 4 run 5 Remarks files read OK, but supplied template is missing two columns. geometry OK, model fails to converge. solution converges, but not sure if year 0 is equilibrium. Year 0 and Year 30 heads are same; run3 changes verified. Year 0 and Year 30 heads are different (no pumping) run 6 Year 0 and Year 30 heads are same. run 7 Set P1 = 3,650 cu.m./year (about 2,000 gpm) Set P1 = 36,500 cu.m./year (about 20,000 gpm) Set P1 = 365,000 cu.m./year (about 200,000 gpm) Set P1 = 3,650,000 cu.m./year (about 2,000,000 gpm) run 8 run 9 run 10 run 11 Set P1 = 36,500,000 cu.m./year (about 20,000,000 gpm) run 12 Set P1 = 43,100,000 Suggested Changes Add data in FOR001,FOR011,FOR018 to get model into 11X13 Adjust FOR019 – increase MAXITER to 200. Set P1=0 in second stress period (no pumping). Set FOR018 recharge to small value. Set Starting heads to 900, year 0 and year 30 solution should match. Set FOR018 recharge to specified value. Year 0 is not an equilibrium solution. Use Year 30 heads as start heads, and start simulation at –240 years. Model is ready for pump evaluation. Year 0 solution is an equlibrium state. Save this output file as Case0 – it will be part of appendix. Drawdown is undetectable. Drawdown is about 1 meter in well cell. Drawdown is about 5 meters in well cell. Drawdown is about 44 meters in well cell. Head is 980 meters (> 500 meters). Drawdown is about 412 meters in well cell. Head is 588 meters (> 500 meters); we are close to our “safeyield” criterion. Head in well cell is 509 meters cu.m./year (>500 meters). Save this output file as Case 1. COMPUTER OUTPUT: (after graphical post-processing) Running the program produces pages of output. In the absence of a contouring tool one can take the output, superimpose a grid and manually contour the output or use graphical post-processing. Modern versions of MODFLOW handle a lot of this for the analyst. Figure 5 is an example of hand-drawn contour maps using the output displayed in Figure 6. Figure 7 is the same array in Figure 6 rendered using a graphics tool (in this case EXCEL). Figure 5. Hand-drawn contour map using MODFLOW output (circa 1991). Figure 6. Std. MODFLOW output file (used to draw Figure 5 and 7). 100 -100 -300 -500 -700 9 1 -900 7 5 3 5 13 11 9 1 Figure 7. Rendering of head array after 30 years of pumping. Note bottom of plot is bottom of aquifer. The contour plots are useful for answering where (and when) the aquifer fails to meet the minimum saturated thickness requirement (which in this example will always be at the well cell). One could also use Darcy’s law and hand calculations to determine the amount of water flowing into the aquifer from the lakes (how?). Instead of making this calculation by-hand, the model also computer cell-by-cell flow terms and a water balance summary. Figure 8 is an excerpt from the standard output file that shows this summary. Figure 8. Water balance summary. Typically we would present plots of Case00 (The pre-development condition) and Case01 (the “management solution”). Figure 9 is a perspective (3D) rendering of the predevelopment condition. The water table is mounded because of the uniform recharge (this result is easily predicted with an analytical solution – review course notes for the solution). Figure 10 is the same array rendered as a contour map (using EXCEL which is not the best contouring tool – the contour intervals are indicated by different colors/shading). 10500 1060-1100 1060-1100 1020-1060 9500 980-1020 8500 980-1020 940-980 7500 940-980 900-940 6500 860-900 1020-1060 900-940 860-900 820-860 5500 780-820 4500 780-820 740-780 3500 740-780 2500 700-740 700-740 660-700 12500 11500 9500 500-540 10500 8500 7500 6500 5500 540-580 4500 500 3500 580-620 2500 1500 500 620-660 1500 10500 8500 6500 4500 2500 12500 500 8500 10500 4500 6500 500 2500 1100 1060 1020 980 940 900 860 820 780 740 700 660 620 580 540 500 820-860 660-700 620-660 580-620 540-580 500-540 Figure 9. Predevelopment Perspective Plot. Figure 10. Pre-development contour map. 10500 1060-1100 1060-1100 9500 1020-1060 1020-1060 980-1020 8500 980-1020 940-980 7500 940-980 900-940 6500 860-900 5500 820-860 900-940 860-900 820-860 780-820 4500 780-820 740-780 3500 740-780 2500 700-740 700-740 660-700 1500 Figure 11. Management Solution Perspective Plot 12500 11500 9500 8500 7500 6500 5500 4500 10500 500-540 3500 540-580 2500 580-620 500 620-660 1500 10500 8500 6500 4500 2500 12500 500 8500 10500 4500 1100 1060 1020 980 940 900 860 820 780 740 700 660 620 580 540 500 6500 500 2500 Next we present the renderings for the “management solution” where the result of pumping produces a water table that nearly hits our management objective (head > 500 meters). Figures 11 and 12 are the 3D plot and the contour map. 500 660-700 620-660 580-620 540-580 500-540 Figure 12. Management Solution contour map Interpretation Interpretation of the results is critical to the whole effort (there is really no point to modeling if there is not going to be interpretation). Figures 11 and 12 actually help answer the second question without any flux calculations. The contour map suggests that there is a hydraulic “divide” between the well and the lakes and the lakes actually receive water from the aquifer. This conclusion is supported by the flux calculations in MODFLOW that are repeated below. The second column displays the rates and there is no flux into the model from the constant head (lake) boundaries, but there is an outflow to the lakes amounting to about half of the volume rates pumped. Thus in this aquifer scenario, the entire pump discharge over the planning period is supplied entirely by recharge (precipitation). Figure 13. Volumetric budget calculations from the program. Thus to answer the two questions we arrive at: a) What is the maximum rate P-1 that can be used so that the saturated thickness is never less than 500m? P1 on the order of 43,100,000 cubic meters per year. b) How much of the pumped water is induced recharge from the two lakes? (Why would this question be of interest?) None of the pumped water is from the lakes. The aquifer is a net supplier of water to the lakes. Exercise: The files on the server should produce the results used pt produce figures 9-13. So start from these files and do the following: 1) Run the model and verify that the results are consistent with the figures above. 2) Determine the pumping rate that lowers the water table to 250 meters above bottom of the aquifer. 3) Plot the water table 3D plot and contour map for this management solution. 4) Does this new management solution draw any water from the lakes?