Example Problem 5, Landfill

Back to MODFLOW Tutorial Table of Contents.

Introduction

A fully worked-out version of Example 5 is in the "Examples\example5" directory. The files include fully worked out versions of the models in Example 5 named "landfil1.mmb" to "landfil6.mmb", some of the MODFLOW input files for the original model on which this example is based, a utility program for importing MODFLOW arrays into Argus ONE, named ModImport.exe, a map named landfill.dxf. and a variety of other files useful for setting up this example.

The import capabilities of version 4 of the MODFLOW GUI make ModImport.exe obsolete. However, it has been retained for use by those who may prefer it.

This example deals with the remediation of a hazardous waste site. It is based on Problem 20 of Andersen (1993). The purpose of the model was to determine how various design alternatives would affect the configuration of the water table and flow directions. The design alternatives included several different combinations of an impermeable clay cap, slurry wall, and drain. The starting conditions for the model were steady state flow conditions with none of the remediation measures installed. The aquifer is unconfined and is underlain by a unit with sufficiently low hydraulic conductivity that no lower units were included in the model. Thus there is only one layer in the model.


Setting Up the Model and Importing data from an existing model

First, start a new project. Click the "OK" button on the Project Information dialog box and then select "PIEs|Edit Project Info". (This extra step is required because an existing model can not be imported into a brand-new project.) Go to the Advanced Options tab and click on the "Import MODFLOW model" button. Read the messages in the dialog box and click on the "Next" button.

Make sure that the model type is set to MODFLOW-88 and click on the "Next" button.

Set the "MODFLOW version used" to "Kerr lab" and click on the "Next" button.

Read the messages in the dialog box and click on the "Next" button.

Find the file p20a.bas in the "Examples\example5" directory, select it and click on the "Open" button. A message will appear saying that you have to fill in the rest of the name file manually. Click to "OK" button to dismiss this message.

Click in the space in the Fname column opposite the "LIST" Ftype. Choose a new file name such as "test.lst".

Click in the space in the Fname column opposite the "BCF" Ftype. Find the file p20a.bcf in the "Examples\example5" directory, select it and click on the "Open" button.

Change the number of input and output files to 3.

Click on the "Create Name File" button and enter a new file name such as "test.nam". Then click on the "Next" button.

Read the messages and click on the "Finish" button. Several messages will appear; you can just click the "OK" buttons for each message.

Make the MODFLOW FD Grid layer the active layer. Click with the Magic Wand tool inside the domain outline and click on the "Deactivate" button. Then carefully examine the cells near the boundary of the model to make sure that all cells whose centers are outside the domain outline are inactive and all cells whose centers are inside the domain outline are active.

Select "PIEs|Edit Project Info..." and go to the "Packages|Solvers" tab. Select the SIP solver. Set the following values

Parameter Value
MXITER 50
NPARM 5
ACCL 1
HCLOSE 0.01
IPCALC Given by user (0)
WSEED 0.002
IPRSIP 1

Because the aquifer is unconfined with a uniform hydraulic conductivity, we can improve the accuracy of our models slightly be using the "Arithmetic Mean hydraulic conductivity" as discussed in a previous example. Set that on the geology tab of the project info dialog box. We will be using recharge in the model, so be sure to check the "Recharge" box on the Packages|Stresses 1 tab. The Recharge should be applied to the top layer. (This is also set in the Project Info dialog box.) The time unit for the model is seconds. We will start with a steady state model. The flow budget should be recorded every time step.

Next import landfill.dxf, a map of the area in DXF format, and scale it so that the scale in the lower right corner is correct. You will probably have to scale the entire layer by 5000%. Then move the diagram so that in is aligned with the imported model information. In this example, it will be worthwhile to move the diagram so that the top edge is aligned with 0 on the Y-axis and the left edge is aligned with 0 on the X-axis. Select everything in the layer and zoom in on the upper left corner of the model. There will be a black square indicating the upper left corner of the rectangle enclosing all the selected items. Don't click on that square but instead click on part of the outline of the model and move the model so that the black square is at 0,0.

The model uses the following property values. The Hydraulic conductivity was already set when we imported the BCF package input files. The others must be set manually.

hydraulic conductivity 4.92E-04 ft./s (= 42.5 ft./day)
default specific yield 0.28
recharge (Stress1) 6.34e-8 ft./sec (= 24 in/yr. = 0.00548 ft./day)
Elevation Top Unit1 200 ft.

In this case we don't need to deal with the elevation for recharge because there is only one layer and on the Packages|Stresses 1 tab, we specified that recharge applies to the top layer only. We enter a value for the top of unit 1 even though this is an unconfined layer because that prevents warning messages from appearing during the export process.

The constant head cells were specified when we imported the model. A series of cells on the left, right, and lower edges are constant head cells.

Before running the model, check that the Prescribed heads are higher than the base of the aquifer in every cell with a Prescribed head. If any of them are lower than the base of the aquifer, MODFLOW will report and error and will not complete the simulation.

To check that prescribed heads are OK make sure that both the "Prescribed Head Unit1" layer and "Elevation of Bottom Unit1" layer are visible and that the "Elevation of Bottom Unit1" layer is the active layer. Hide all other layers. Zoom in on part of the boundary and move the cursur over the locations of the Prescribed head contours. The elevation of the bottom of Unit1 will be displayed in the status bar at the bottom of the window. If you have the values displayed on the "Prescribed Head Unit1" layer, it will be easy to see if those values are acceptable.

Another way to check that the prescribed heads are OK is to create a new parameter on the MODFLOW FD Grid layer and assign the following expression to that parameter. "If(BlockIsActive(), MODFLOW FD Grid.Initial Head Unit1 - Elev Bot Unit1, 1)". Then select "Edit|Search For..." and search for the new paramter being less than or equal to 0. If no cells are found, the model should be fine."

Run the model

Run this model as a steady state model. You will get a few warning messages about the ratio of row and column widths exceeding the recomended values. Make a contour map of the head. An appropriate range of head values is 84 to 134. We will want to use these heads as the starting conditions for transient models. Change to the MODFLOW Data1 layer and export the MODFLOW data. Save the model with the name landf1.mmb and then save it again with the name landf2.mmb Now switch to the "Initial Head Unit1" layer and import the heads you just saved. This is how we can use the steady state conditions as a starting point for a transient model. The data are in "Scatter Point" format.

There are two other ways of using the final heads of one model as the initial heads for another model.

Variations on the model

We will have five variations on the model. All will be transient models with a duration of 30.8 years (9.72e8 seconds), 20 time steps and a time step multiplier of 1.5 The specific yield will be 0.28. Set those variables and save the model.

The five models conditions we will check are:


Impervious Cap

The impervious cap is easy to simulate. First, copy the contour labeled "cap" from the Maps layer to the recharge layer and assign it a stress of 0.0. Once you have done that, you can run the model. By itself, the clay cap does little to alter the distribution of head. Once you are done running the model, you can see this by importing the results for time step 14 (2.69 years). Remember to save the model.


Impervious Cap and Slurry Wall

Save the model again with the name landf3.mmb.

We will simulate the low permeability slurry wall with a thin line of cells with low hydraulic conductivity. Because the hydraulic conductivity is no longer uniform, we must use the harmonic mean rather than the arithmetic mean hydraulic conductivity. Set that on the Geology tab of the Project Info dialog box (PIEs | Edit Project Info). The conductivity we wish to simulate for the slurry wall is 4.92E-10 ft./day as compared to 4.92E-4 for the remainder of the aquifer. There are two ways to do this. One method is easy to use in this problem but might not work in other problems. The other method has much wider applicability but requires more work.

We will start off with some methods that don't work so you can see why they don't work.

The most obvious thing to do would be to set up an open contour along the position of the slurry wall and assign it the correct hydraulic conductivity. If you do that however, every cell in the layer will be assigned a hydraulic conductivity of 4.92E-10. There are several ways you can check this. For now, the easiest way is to move to the MODFLOW FD Grid layer and click on any cell. A dialog box will appear in which you can read the value of all the variables. What has happened is that Argus ONE is interpolating to find the hydraulic conductivity and the only points it has to interpolate between are the points on the slurry wall.

When that doesn't work, you might be tempted to copy the model domain outline to the hydraulic conductivity layer and assign it a hydraulic conductivity of 4.92E-4. That doesn't work either. The easiest way to show this is to use Argus ONE's ability to show the hydraulic conductivity and other parameters. Switch to the MODFLOW FD Grid layer. On the left you will see a column of colors with a down arrow on the right side. Click on the down arrow and select Kx from the menu. Argus ONE will show you a color-coded view of the horizontal hydraulic conductivity. Your view will probably look something like what is shown below. We wanted just the cells in the slurry wall to have a low hydraulic conductivity. Instead many cells around the slurry wall also have a low hydraulic conductivity because of interpolation between the slurry wall and the edge. You could try a closed contour around the slurry wall but that doesn't work either. Argus ONE still interpolates between the slurry wall and the edge of the model.

To avoid the interpolation problem, you must first call up the Layers dialog box (View | Layers...). Select the "Hydraulic Conductivity Unit1" layer. At the bottom of the dialog box, chose "Exact Contour Method" instead of "Interpolation Method". You can now construct a closed contour around the region that will comprise the slurry wall and assign it the correct hydraulic conductivity. The easiest way to do this is to first copy the contour for the impermeable cap to the hydraulic conductivity layer. Then add and move the vertices so that the correct area is outlined. You should check that you have a continuous barrier by coloring the grid by the Kx Unit1 parameter.

You should make sure that the slurry wall is completely covered by the impermeable cap. If you don't, abnormally high heads can develop on cells making up the slurry wall that are outside the impermeable cap. This is because the hydraulic conductivity of the slurry wall is so low that water added to it can not flow out of it in any reasonable time. You might object that if the water can not flow out fast it also can not flow in fast. This is true. However, if the wall is outside the impermeable cap, you will be telling MODFLOW that the wall cells should be receiving recharge at the same rate as other areas. MODFLOW will use the recharge values you give it regardless of whether they are realistic in the real world. It is up to you to ensure that the recharge values and other parameters are realistic.

Although this method of assigning a low hydraulic conductivity to the slurry wall works in this case, it is less than ideal. You can't interpolate between point values of hydraulic conductivity if you use the "Exact Contour Method" so if you wanted to interpolate the hydraulic conductivity field outside the slurry wall, you wouldn't be able to do so. There is however, another method of setting up the slurry wall that will allow us to both interpolate between points where we want to and set values for specific cells. However, it takes more work.

What we will need to do is to set up another layer. On the new layer we will have closed contours. If any cell is enclosed by a closed contour, that cell will be assigned the value of the closed contour. Any remaining cells will be assigned a value by interpolation on the Hydraulic Conductivity Unit1 layer.

First, we must add a two new layers. To add a new layer call up the Layers dialog box (View | Layers...) select the "Hydraulic Conductivity Unit1" layer and push the "New" button in the upper half of the dialog box. Change the name of the new layer to to "Area Hydraulic Conductivity Unit1". Push the New button on the lower half of the dialog box to create a second parameter and change the parameter names to Kx and Kz. Change from "Nearest Contour Method" to "Exact Contour Method". You also need to change the default values of the parameters of the new layer to $N/A.

Next change the expression for Hydraulic Cond Unit1.Kx to

If(IsNumber(Area Hydraulic Conductivity Unit1.Kx), Area Hydraulic Conductivity Unit1.Kx, Imported MODFLOW Data1.Imported Horizontal Hydraulic Conductivity Unit1)

Finally, click the "Done" button on the Layers Dialog box. It would be a good idea to save your work at this point before continuing.

Cut the contour on the Hydraulic Cond Unit1 layer to the Area Hydraulic Conductivity Unit1 layer to the Area Hydraulic Conductivity Unit1 layer. Now if you create a closed contour on the Area Hydraulic Conductivity Unit1 layer and assign it a value, any cells inside that contour will be assigned the value of the contour. hydraulic conductivites in other locations will be assigned based on the "Interpolated Hydraulic Conductivity Unit1" layer. Don't put any contours on the Hydraulic Cond Unit1 layer because they would override the default value assigned with the expression.

If you tried to type a complex formula such as this, it would be easy to make mistakes that then might be difficult to find. Fortunately, you don't have to type the formula. Go to the "Hydraulic Cond Unit1" layer and call up the Layers dialog box. Select "Hydraulic Cond Unit1" from the list of layers at the top and then Kx from the list of parameters at the bottom. Click on the Fx button in the value column to call up the expression editor. You will notice that there is a menu in the middle of the bottom beginning with "Functions". All the functions can be accessed through this menu. The "If" function under the category "Mathematical". Delete the 42.5 and click on "If". Then select the IsNa function with is also in the Mathematical category. Next, Select "Area Hydraulic Conductivity Unit1". Kx and Kz will appear in the box the right. Double click on Kx and "Area Hydraulic Conductivity Unit1.Kx" will replace "Parameter name" in the upper box. The select "True_Value" and make it into Area Hydraulic Conductivity Unit1.Kx in the same way as before. Finally select "False_Value" and make it "Interpolated Hydraulic Conductivity Unit1.Kx".

This model is now complete and ready to run. Run the model. Import the results for time step 14 and save the model.


Impervious Cap, Slurry Wall, and Drain

Save the model again with the name landf4.mmb.

We will now add a drain to the model. The drain will be just outside the slurry wall. The elevation of the base of the drain is 0.2 feet above the base of the aquifer.

First, open the "Project Information" dialog box (PIEs | Edit Project Info...), and check the "Drain" box on the "Packages|Stresses 1" tab.

In the "Line Drain Unit1" layer set the default value for elevation as "Elevation Bottom Unit1.Elevation Bottom Unit1+0.2"

Copy the line for the drain from the "Map Unit1" layer to the "Line Drain Unit1" layer. Set the conductance per unit length to 4.92e-4 ft/s and the Stress On or Off to 1 (True). We will use the Alternate Drain export template on the "PIEs|Edit Project Info|Advanced Options" tab so that the value of the drain elevation can vary along it's length. Adjust the position of the drain so that the drain doesn't interesect any of the cells in the slurry wall. (This helps make the model more stable.)

When you have finished adding the drain, you are ready to run the model. Run the model. Import the data for time step 14 into a contour map and save the file.


Impervious Cap and Drain

The next model will simulate a drain and impervious cap but no slurry wall. Thus all you need to do is delete the data used to define the slurry wall.

Save the file the name landf5.mmb. Delete the data used to define the slurry wall and run the model. When done, import the data from time step 14 into a contour map and save the file.


Impervious Cap and Horizontal Flow Barrier

You can use the Horizontal Flow Barrier package as a better way to simulate the slurry wall. To use it, select it on the Solvers/Flow-related packages tab. You should also uncheck the Drain package on the Packages|Stresses 1 tab. Then copy the slurry wall to the Horizontal Flow Barrier Unit1 layer. Assign it a hydraulic conductivity of 4.92E-10 ft./s and a thickness of 2 feet. This is much thinner than the thickness of the individual blocks that we used before when simulating the slurry wall.


Discussion of Results

Now that you are finished with the models, lets look at what they show us. First, we can compare the steady state results with the results after adding an impervious cap. By itself, we can see that the cap has little effect.

Water table, Steady State Results. Contour interval = 2 ft.

Water table, Impervious cap present, time step 14. Contour interval = 2 ft.

Next we can compare the results when a slurry wall, drain, or both are present along with an impervious cap. We can see that all three conditions result in a tremendous decline in the water table. Simulating the slurry wall with the horizontal-flow barrier package results in heads that are approximately 6 feet lower than if the slurry wall is simulated with a zone of low hydraulic conductivity.

Water table, Impervious cap and slurry wall present, time step 14. Contour interval = 2 ft.

Water table, Impervious cap and drain present, time step 14. Contour interval = 2 ft.

Water table, Impervious cap, slurry wall and drain present, time step 14. Contour interval = 2 ft.

Water table, Impervious cap and horizontal flow barrier present, time step 14. Contour interval = 2 ft.

Before using a model, you should look for artifacts. Sometimes model results are not realistic and should be rejected. For example, if we simulated the slurry wall with a zone of low hydraulic conductivity and the zone of low hydraulic conductivity extended beyond the extent of the impermeable cap, artificially high heads would develop in the slurry wall. This is because the recharge to the slurry wall would be greater than the flow from the slurry wall to the aquifer. In reality, recharge to the slurry wall would not be significant. Thus, this would be an artifact and the model would need to be modified before it could be used.

Another potential artifact is that some of the drain cells could go dry. If they did, they would become inactive cells an would thus be perfect barriers to flow.

If you set the drain conductance high enough, there is another potential problem. In the model with both the drain and the slurry wall, very high heads can occur between the drain and the slurry wall if the drains go dry. This is a completely unrealistic result. These cells have the slurry wall to the South and East and drain cells to the North and West that have gone dry. These cells receive recharge so the have a source of water but they have flow barriers in all directions so the water has nowhere to go. It can not go south or east because of the slurry wall and it can not go north or west because the dry drain cells act as a flow barrier. With water coming in but none leaving, the water level must rise. One solution would be to move the drain closer to the slurry wall to eliminate any cells between them. A better solution would be to make sure that the drain cells don't go dry.

One potential problem with lowering the conductance of the drain is that seepage into the drain would be too low in early time steps in the model. During this time a seepage face would develop on the side of the drain and discharge to the drain would occur throughout the seepage face. After the head in the aquifer had declined, the seepage face would not be as high and less seepage would occur. When a seepage face is present, there are two controls on the rate of discharge into the drain, the height of the seepage face and the hydraulic gradient. In MODFLOW, a drain only simulates one of those controls, the hydraulic gradient. However, you could better approximate the behavior of a seepage face by having several drains in each drain cell. The drains could all have the same conductance but different drain elevations. When the water level was higher, more of the drains would be active and so the flow rate would be higher. As the water level dropped below the elevations of some of the drains, they would no longer be active and thus the rate of seepage to the drains would be lower. You could use a formula to set the elevations for different drains in the same cell. You would need to create a new parameter that would act as an index to the expression that you wanted to use. You could also set up several parameters each of which had a different expression. Then you could use the Index function to determine which expression applied to a particular contour.


Summary

If you have an existing MODFLOW model of an area you can import it into Argus ONE and then refine it.

To add points to an open or closed contour, first cut the data to the clipboard and paste it to a spreadsheet. Then add points at any desired locations and update the number of points. Then copy the data from the spreadsheet to the clipboard and paste into Argus ONE.

You can change the way some data is transferred to MODFLOW by using expressions for parameters. However, generally you should avoid changing parameters in the MODFLOW FD Grid.

During execution of a MODFLOW model, one or more cells may becomes dry. Dry cells are treated as inactive cells and act as flow barriers. You should carefully evaluate the results of any MODFLOW model in which cells went dry to determine if the results are realistic. If the results are unrealistic, you must change the model.

You can use the results of a steady state model to set the initial heads for a transient model.

Back to MODFLOW Tutorial Table of Contents.