Quick Start Tutorials > MODFLOW-USG Tutorial

Navigation:  Quick Start Tutorials >



The following example is a walk through of creating a MODFLOW-USG groundwater flow model. The exercise is based on a conceptual model project that is already defined in one of the Tutorial projects.



Open and review a VMOD Flex project that contains a conceptual model

Define an UnStructured Grid, with refinement around the wells and boundaries

Convert the conceptual model to a numerical model

View the corresponding flow properties for the MODFLOW-USG model

View the boundary condition cells for MODFLOW-USG model

Translate and Run MODFLOW-USG

View and Analyze the Results

Understand how Visual MODFLOW flex accommodates inputs and outputs for a MODFLOW-USG model



This tutorial assumes that you are familiar with the Visual MODFLOW Flex environment. If you are new to Visual MODFLOW Flex, please take a few minutes to review the Program Overview section, and turn through the Conceptual Modeling tutorial prior to starting MODFLOW-USG.

Opening the Project

Launch Visual MODFLOW Flex

Click [File]>[Open Project...]

Navigate to your 'Public Documents' folder then locate 'VMODFlex\Tutorials\MODFLOW-USG\Transient\'

Open this folder, select the 'usg-transient.amd' file.

Select [Open]

The project will load.

         Note: if you are unable to locate the project for this tutorial, you may download a copy from our website

Review the Conceptual Model

The surficial geology at the site consists of an upper sand and gravel aquifer, a lower sand and gravel aquifer, and a clay and silt aquitard separating the upper and lower aquifers. These are defined as three property zones in the conceptual model, with hydraulic conductivity for the aquifer as 2E-04 m/s and the aquitard having a horizontal conductivity of 1E-10 m/s and vertical conductivity (Kz) = 1E-11 m/s

Initial heads are defined using the Ground surface, and this value is applied to all layers.


The boundary conditions consist of a constant head in upper aquifer, in the north part of the model, a river along the southern edge, and two pumping wells screened over the bottommost property zone, each pumping 400 - 700 m3/day, with a time-varying pumping schedule. Constant head values are also defined in the lower aquifer. Each boundary condition consists of a few simple stress periods to illustrate a transient MODFLOW-USG model run.


When discussing the site, in plan view, the top of the site will be designated as north, the bottom of the site as south, and the left side and right side as west and east, respectively. Groundwater flow is from north to south (top to bottom).

Define an UnStructured Grid

Select the 'Conceptual Model 2' tab (from the list of active workflows/windows, at the top of the display)

Navigate to the 'Select Grid Type' step in the workflow (if its not already selected), as shown below.



Click on the 'Define UnStructured V-Grid' button, and the following window will appear:



The first step in defining the Unstructured Grid is to provide the desired shape add-ins. These are polylines, polygons, and points within the model boundary. The grid generator in VMOD Flex will use these as control points (grid generator nodes) during creating the unstructured grid.  By default, the Add-ins List contains the model boundary (polygon) and any linear or point boundary condition currently defined for the conceptual model. Additional add-ins may be added to the list using data objects from the Data Explorer, and then clicking on [Add-In Lines/Points/Polygons] button (For example, you may want to add-in the points that represent your head observations (targets), so that these lie horizontally in the middle of an unstructured grid cell. Likewise, you can conform the grid around geological features such as faults/fractures). An Add-in may be included or excluded in the grid creation, by checking or unchecking the corresponding check box, respectively. When an add-in is “checked” it will also be displayed in the adjacent 2D Viewer preview window.


Click the [Next>>] button to proceed.

In the second dialog, you can define various discretization settings for the horizontal grid and adjust refinement levels and smoothing around the line and point add-ins.



For now, you will just use the default settings.


Click the [Generate] button (located in the bottom middle section of the window). A preview of the USG grid will appear in the adjacent 3D viewer. If you are not satisfied with the grid, you can modify the settings and regenerate the grid by selecting the Generate button again.



Click [Finish] to generate the numerical grid and close the window.

The Unstructured Grid will be added as a new data object to the Conceptual Model tree, under the Simulation Domain folder, and should appear as shown below.



Click [] (Next Step) to proceed.

Generate the Numerical Model

You are now ready to create a numerical model from the UnStructured grid you created, using the property zones and boundary conditions defined in the conceptual model.


Click the 'Convert to Numerical Model' step in the list of workflow steps

Click the [Convert to Numerical Model] button



The conversion process will begin; this make take about 5-10 seconds. Note that for larger grid sizes and more complex boundary conditions, this conversion process may take several minutes.


After the conversion is complete, a new workflow tab will appear, titled "UnStructuredGrid1-Run1". This workflow will provide you the tools and displays for navigating the MODFLOW-USG Numerical Model (keeping in mind that you were previously navigating and working with a Conceptual Model).  More details on the specifics of each step can be found in the section MODFLOW-USG Numerical Modeling Workflow.



In addition, you will now see new items in the Model Explorer, under the UnstructuredGrid1 node (in the lower left corner of your window), with a Run folder containing Inputs (Properties and Boundary conditions) and Outputs (Heads and Drawdown, which will be added after a successful MODFLOW-USG run). For the boundary conditions, you will see nodes for groups of boundary condition cells that were generated: Constant Head boundaries, River, and the Pumping Wells.


Define Properties

The first step that appears in the workflow is Define Properties, which lets you edit Conductivity, Storage, and Initial Heads values in your numerical model.



By default, Conductivity will be displayed in the 3D viewer. All UnStructured grid cells will be drawn and colored by the Kx.


In order to gain a better perspective, you need to apply a Vertical Exaggeration and rotate the 3D Viewer.


Locate the 'Exaggeration' field in the toolbar above the 3D Viewer

Type: 40, then press Enter on your keyboard.


Now you will rotate the 3D view to see the property zones from a side-view perspective.


Left click with the mouse near the bottom middle section of the 3D display

Hold down the left-mouse button, and drag your mouse upwards towards the top of the VMOD Flex window, then release the mouse button. By clicking and dragging the mouse in the viewer window you can position the image however you like. You may need to select the rotate button from the toolbar on the right side before clicking and dragging the mouse.  

Above the 3D Viewer, you will see a set of standard navigation tools for zoom in/out, pan, and rotate which you can use to further manipulate the view.


In order to change how the parameter values are displayed, you need to load the settings. (This step is optional in the Tutorial exercise) Right-click on 'Conductivity' in the Model Explorer, and select [Settings]. This will allow you to render by the parameter value (eg. Kx) instead of by ZoneID, and also show cross-sectional slices and color maps. Take a moment to experiment with these Settings, and when you are finished, click the [OK] button to close the Settings.


In order to see another parameter group, you need to de-select (remove the checkbox beside) Conductivity in the Model Explorer, then select (add a check-box beside) the new parameter group, eg. Initial Heads.  Take a moment to experiment with these options.


Click [] (Next Step) to proceed.

Define Boundary Conditions

At this step in the workflow, you can see and edit the numerical (cell) representations of the Boundary Conditions that were generated from the conceptual model objects. The constant heads on the north and south boundaries are shown as red cells, the river is shown as blue cells, and the pumping wells are beige.  You display should now appear similar as below:



Take a moment to zoom into the river and constant head cells to see the boundary condition cell geometry.  You may need to switch layers to see the boundaries.


Each boundary condition will be colored differently. All wells and line-based boundary conditions will be shown by default.


The display settings for a group of boundary condition cells can be adjusted through the settings.  We will turn on the Cell ID for the well cells.


Locate 'PumpingWell1' in the Model Explorer, under 'Run1/Input/Boundary Conditions/Wells'

Right click on this item and select [Settings]

Expand [Style]>[Cells]

þ beside 'Show Cell ID labels'

Click [OK]

You should now see the Cell ID drawn beside the two well cells in the 3d viewer. If these are hard to read, try changing the grid or background colors by editing the 'UnstructuredGrid1' settings. You will need to zoom into the two pumping wells in order to see the Cell ID label. The Cell ID can assist when editing the numerical values, or when cross-checking the values in the .WEL package.  For more details on editing the numerical values for boundary conditions, see View and Edit Boundary Conditions


Click [] (Next Step) to proceed.

Define Head Observations

Next you need to map the head observation wells (raw data) to the numerical model, so that this data can be used for model calibration.


Select the 'Head_Observation Wells' data object from the Data Tree in the top-left panel of the window.

Click on the [] button located above the 3D Viewer.

The observation wells will be added to the display and the Model Explorer. These will appear as two green points, one is located in the top left corner, the other in the bottom right corner.


Click [] (Next Step) to proceed

Translate (Create MODFLOW-USG Input files)

At the Translate step, you create the packages for MODFLOW-USG, and you can preview and make adjustments to the input files where needed.




Under General, 'Model Run Type', select 'Transient'

Click [] to create the MODFLOW-USG packages.


The translation will begin, it should complete in approximately 5-10 seconds.  At this stage, if any errors or warnings are encountered with any of the packages, you will be notified. Take a moment to preview the MODFLOW-USG input files; each package will appear as a separate tab across the top of the window.



When you are finished, you can proceed to the run step.

Click [] (Next Step) to proceed.



Click the [] button to run MODFLOW-USG. The MODFLOW-USG Engine will start running and show progress of the current stress period and time step in a DOS console window.



After the model converges you can view the summary of the mass balance for the last time step in each stress period.



Click [] (Next Step) to proceed.

Click the [View Maps] button when presented with the desired results options.

View Maps (Heads)

You will then see cell rendering of calculated heads in the 3D Viewer.



By default the view is plan (from above); take a moment to rotate the view as previously described, and apply the desired vertical exaggeration (40 is ideal for this example). The default option is to render all cells. You can display heads along a specific layer, or cross-section by adjusting the settings.

Right-click on 'Heads' from the Model Explorer (under 'Run1/Output/Flow'), and select [Settings] from the pop-up menu:



In the 'Settings' window, expand 'Style'>'Cells' from the tree on the left side of the window.

Remove the check box beside 'Show Cells' in the main window, as shown below (it may already be unchecked):



Next from the 'Settings' tree on the left, expand 'Slice', turn on the check box beside 'Show Slice', and change the Slice Type to 'Layer' as shown below:



Click the [OK] button to apply these changes to the 3D View, and close the 'Settings' window.  

You should then see just cells rendered for Layer 1 slice.

For Transient models, the 3D Displays can be updated to display calculated heads (or drawdown) from different time steps. The available time steps are located in the 'Settings'.  

Repeat the same steps above to load the 'Settings' window. Expand 'Style', and select the 'Time' node from the tree, and you should see the following display:



In the main window, under 'Transient Attributes Time Schedule' you will see the list of available time steps. Choose the desired output time from this list, then click the [Apply] button at the bottom of the Settings window, and the 3D View will update with the calculated heads from that time step. Take a moment to experiment with these options..



The calculated heads and drawdown can be exported to shapefile, for further post-processing. This option is available by right-clicking on the 'Heads' item on the Model Explorer, and selecting [Export].  The heads can be exported to either point or polygon shapefiles, with attributes. This option is not covered in this Tutorial exercise.

View Charts (Calculated vs. Observed)

In this section you will learn how to compare the observed concentration data to the concentration values calculated by the model.


Select the [View Charts] item from the workflow tree, under 'View Results'

Select the 'All Obs' check box in the Charts panel, as shown below.

Click the [Apply] button. You will then be presented with the graph for Calculated vs. Observed Heads.




You can change the chart type to display 'Time Series' graph, and see the corresponding charts for the desired observation points.  An example is shown below, with "All times" visible.



Evaluate Multiple Numerical Models... and find the best one!!

If, after running the numerical model for your project, you find that the grid is not suitable or stable, you can return back to the "Define UnStructured Grid" step, create a new grid (with different refinement levels), and generate a new numerical model. You can then translate and run this model. In this fashion, you can evaluate multiple numerical models, with very little effort, in order to find the best balance between model run times and accuracy.


*****This concludes the 'Groundwater Flow Modeling with MODFLOW-USG' tutorial.*****




Page url:http://www.waterloohydrogeologic.com/help/vmod-flex/index.html?vm_modflow-usg_tutorial.htm