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.
Please 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 V-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 should arrive at the 'Convert to MODFLOW-USG Model' workflow step. 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 MODFLOW-USG Model' step in the list of workflow steps (if you're not already there)

Click the [Convert to Numerical Model] button



The conversion process will begin; this may take a few moments. 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 Modeling Objectives step. This step allows you to define type of model which will be run and to define many default property values. These values should be identical to the values initially defined in the 'Define Modeling Objectives' step during the conceptual modeling workflow. For now we will retain all the default values.

Click [] (Next Step) to proceed.


The Define Properties workflow step will appear, 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'

Ensure 'PumpingWell1' is being displayed by activating the checkbox (þ)

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  color by editing the 'UnstructuredGrid1' settings. You can also change the background color by right-clicking in the 3D viewer and selecting 'Background Color'. 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 Particles

You should now see the 'Select Next Step' workflow step. At this stage you can define several optional model elements such as particles (for mod-PATH3DU simulations), Zone Budget Zones (for ZoneBudget-USG simulations), and observation wells (for calibration charts).



Let's define some backward tracking particles around our pumping well objects. These will help us to delineate a capture zone for these wells.


Click 'Define Particles' in the 'Select Next Step' workflow window

Under the toolbox, click 'Assign' > 'Using well object...'

The 'Create New Particles' window will appear

In the Data Tree select the 'VMOD Imported Wells' data object

Click on the [] button where it says 'Select object'

In the 'Particles along screen' field, specify '3' as the '# of Circles'

When you're finished, the 'Create New Particles' window should look like the image below:



Click 'OK' to define the particles


You should see a circle of particles appear around the pumping wells in the lower-right corner of the model, as shown below (note: background color changed, and image is zoomed to location of the particles):


Define Zone Budget Zones

It is also possible to define Zone Budget zones for MODFLOW-USG models. To do this, return to the 'Select Next Step' workflow step, and select 'Define Zone Budget Zones'. We will define a zone budget zone for our pumping wells, so that we can estimate the volume of water pumped extracted the course of the simulation. We will also assign a zone budget zone to the cells which contain the river boundary condition (i.e. southern boundary).



Click the 'Select Next Step' workflow step in the workflow navigator

Click the 'Define Zone Budget Zones' button

Under the toolbox, click 'Assign' > 'Using well object...'

From the 'Data Tree' select the 'river' data object

Click on the [] button in the 'Select geometry object' window

Click OK

The 'Create new zone budget zone' window will appear

Click 'New' to create a new zone budget zone (i.e. Zone 2, blue)

Ensure 'Layer 2' and 'Layer 3' are selected in the 'Assign to layer' frame

Click OK

Now assign the zone budget zone for our pumping wells

Zoom to the location of the pumping wells (lower-right corner)

Under the toolbox, click 'Assign' > 'Single'

Click both cells containing pumping wells (i.e. the two 'central' cells)

Click 'Finish' under the toolbox

Click 'New' to create a new zone budget zone (i.e. Zone 3, green/teal)

Ensure 'Layer 2' and 'Layer 3' are selected in the 'Assign to layer' frame

Click OK


In the Model Explorer, you can activate the 'Zone Budget1' object to display the distribution of zone budget zones. If you turn this object on and zoom to the lower-right corner of the model you should be able to view all three zone budget zones at once (see image below):



Define Head Observations

We will map the head observation wells (raw data) to the numerical model, so that this data can be used for model calibration. From the 'Select Next Step' workflow window, select the 'Define Observation Wells' option:


Click the 'Select Next Step' workflow step

Click the 'Define Observation Wells' button

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. (Note: some display settings have been changed from the default values in the image below; vertical exaggeration set to 0, observation well points increased size, )


Click [] (Next Step) to proceed to the 'Select Run Type' workflow step

Click [] (Next Step) to proceed to the 'Single Run' workflow step

Activate Zone Budget and particle tracking:


Particle Tracking

Click [] (Next Step) to proceed to the 'Translate' workflow step


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 'MODFLOW-USG' > 'Settings' > '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 to the 'Run' workflow step



Click the [] button to run MODFLOW-USG.


The MODFLOW-USG Engine will start running and show progress of the model run in the main viewer 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 the selected layer as a slice. 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:



Next from the 'Settings' tree on the left, expand 'Slice', turn on the check box beside 'Show Slice', and change the Slice Type to 'Row'. You will also change the 'XZ Slice Position' to '50'. This indicates that a cross-section will be displayed in the X direction, including all cells which intersect the desired location. The XZ slice position value is expressed as a percentage of the entire distance in the selected direction.



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

You should then see cells rendered along the X direction, approximately half-way through the model domain, as shown below:



For Transient models, the 3D Displays can be updated to display calculated heads (or drawdown) from different time steps. Use the time-step picker menu above the 3D viewer to choose from the available time-steps. Additional options for 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 'Settings' window, activate the 'Show time label' checkbox

In the main window, above the 3D View, you should see a 'Time-Step Picker' menu, which lists available output times.  Choose the desired output time from this list and the 3D View will update with the calculated heads from that time step. Take a moment to experiment with these options.

If you select the final time step, the resulting view should look like the following image:




The calculated heads and drawdown can be exported to shapefile (point or polygon) or .CSV, 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 Maps (Heads)

Displaying particle pathlines is very easily done. Reset the 3D viewer window to it's original state by clicking the 'Reset View' button, then activate the pathline outputs from the Model Explorer.


Click the [] (Reset View) button in the 3D viewer toolbar

Well Group Pathlines under the Model Explorer, to display the particle pathlines

You should then see the backward tracking particles that we had placed around the pumping wells, as shown below:



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 Obs." visible.



View Zone Budget Results

To review the results of the ZoneBudget analysis simply click the 'Zone Budget' button located at the top-left corner of the 'View Charts' workflow step:


Click the 'Zone Budget' button located above the 'Chart Type' menu

You should see the following window open (the four sub-windows have been rearranged to better display the contents of the Zone Budget window):



Zone budget analyses are an easy way for you to better understand the water budget in areas of interest within your model.


Once you have reviewed the Zone Budget results you may close the Zone Budget window


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.


Defining Unstructured Q-Grids

The conceptual modeling workflow allows the user to test a variety of different grid types very quickly and easily. In this section we will return to the conceptual model to generate a new unstructured grid type (quadtree grid or Q-grid), merge the conceptual model and Q-grid into a single MODFLOW-USG numerical model and re-run the model.


At the top of the grid view you will see a list of active tabs. Click the 'Conceptual Model 2' tab to return to the conceptual modeling workflow.

Return to the 'Select Grid Type' workflow step, as shown below



This time we will select the 'Define Unstructured Q-Grid' option

Click the 'Define Unstructured Q-Grid' button



The 'Create Unstructured Q-Grid' window will appear, as shown below:



The 'Create Unstructured Q-Grid' window includes a list of the data objects which have been used to define model elements (e.g. polyline, polygon or points data objects used to define boundary conditions). Using the 'Refine' and 'Refine to Min' buttons in the table allow you to perform successive refinements around the selected data object. The 'Refine' button will split all cells containing the selected data object into four equally sized cells. The 'Refine to Min' button will perform successive refinements until a given minimum area threshold (user defined, in the 'Min Area' column) is reached. Experiment with these options and perform some refinements around the pumping well, river and constant head boundary objects.


Click the 'Refine' button in the 'PumpingWell1' row twice (x2)

Click the 'Refine' button in the 'River 1' row once (x1)

Type '500' in the 'Min Area (m^2)' field for the 'Polygon1 (Boundary)' data object

Click the 'Refine to Min' button in the 'Polygon1 (Boundary)' row

When you're finished the 'Create Unstructured Q-Grid' window should look like the image below (note the refined grid cells around the selected data objects; also note that the 'count' column tracks the number of refinements performed for each data object):



Click OK


The unstructured Q-grid is now available for the conceptual to numerical model conversion. Follow the same steps as above to convert the conceptual model to a numerical model, review properties and boundary conditions, apply zone budget zones and/or particles, and finally translate and run the unstructured Q-grid model.


Once you have completed these steps you should see results similar to the following images displaying head distributions, particle pathlines and zone budget results, respectively (note: results are displayed for a steady-state simulation):






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




Page url: