Navigation:  Defining Grids/Meshes >

Define An UnStructured Voronoi Grid (V-Grid) for MODFLOW-USG


Quick Overview



Define add-ins for the grid, define the approximate number of cells, and the refinement options.


The Conceptual Model has been defined.


An UnStructured Voronoi Grid is created and added to the Model Explorer tree.

Next Steps:

Convert Conceptual Model to MODFLOW-USG



For more details on how MODFLOW-USG differs from traditional versions of MODFLOW, please see our website.

From the "Select Grid Type" step in the Conceptual Model workflow, click on the "Define UnStructured V-Grid" button:




The Define UnStructured V-Grid wizard will appear on your screen, where you can configure the inputs for the grid.




Specify a unique name for the UnStructured V-Grid in the Name text field.


Defining the Grid Add-Ins

The Add-ins for the grid represents the main geometry (points and line segments) of the model region from which Voronoi Cells are generated.  The add-ins consist of the model boundary (a closed polygon) and, optionally, one or more “add-ins”. Add-ins are polylines, points, or polygons within the model boundary which Visual MODFLOW Flex uses as "node generators" for the grid generator. By default, the Add-ins List contains the model boundary and any linear or point boundary conditions defined for the conceptual model. Additional add-ins may be added to the list using data objects from the Data Explorer. Boundary conditions that are created with polygons are not included in the Add-Ins, by default. (Generally, it is not recommended to include polygon-based boundary conditions that cover the entire model, as grid add-ins; (for example, recharge or evapotranspiration. However, smaller polygons, for example those representing lakes, ponds, drains, general heads, etc., may be used)


Unstable Grid Designs

To avoid unstable grid designs, it is strongly recommended that all add-in objects are pre-processed such that the following conditions are met:

there is equal spacing between vertices along polylines and the edges of polygons,

polygons in the same layer do not overlap or contain slivers, and

vertices that appear to share common coordinates share them exactly


Data object geometry can be edited using the 2D Viewer editing tools. For more information, please see "Digitizing & Editing Geometry in 2D Viewers".  

To add an Add-In feature using a data object from the Data Explorer:

Select the desired data object from the Data Explorer (while leaving the Define UnStructured Grid window open)

In the Define unstructured grid window, select the [Add-in Lines/Points/Polygons] button, located below the Add-ins List .


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.

When you are finished, click the [Next>>] button to proceed.


Defining the Grid Size and Refinement Settings

In the second dialog, you can define various settings that control the cell sizes and the approximate number of cells.


Unstructured grids are created using the Triangle mesh generator, developed by J.R. Shewchuk (1970). Triangle provides various options for generating unstructured grids. These options are described briefly below.  Please note that the switch letters in parenthesis beside the name of each option refers to the command line switches used by the Triangle mesh generator.  More details on "Triangle" are available on the Triangle website.

In Visual MODFLOW Flex, this mesh generator is used to create a Delaunay Triangulation, and from this, Voronoi Grid cells are created, which are suitable grids for MODFLOW-USG. More details on Voronoi Polygons and grids can be found on our website.


Delaunay Triangulation Method (L-switch)

Currently this option is always set to Force all triangles to be Delaunay.


Meshing Algorithm (I-switch)

Two Delaunay algorithms are provided: Divide and Conquer, and Incremental. Typically, the divide and conquer algorithm is preferred. However, if this algorithm fails, use the incremental algorithm.


Total Number of Elements (Approx)

This setting is a target for the grid generator, and is an approximation of how many cells will comprise the areas outside the refinement regions.  The actual total number of cells generated in the grid will depend on the geometry add-ins you have included, and the refinement settings, and will typically be much higher.  For example:

In the figure above there are 2 wells, and 3 polyline boundaries.  Using the default refinement settings and the number of elements as 1000 results in approximately 4300 unstructured grid cells (per layer).

For the same example, using 10000 as the total number of elements, 100 for the edge length around lines, and 25 as the spacing from points to new nodes, and middle-range Gradation, results in 19000 unstructured grid cells (per layer).


As a rule-of-thumb, the actual number of Voronoi cells that will result from the grid generator is typically within the same order of magnitude as the value you define for the "Total Number of Elements".

Fortunately in Visual MODFLOW Flex, you can repeat the grid generator several times, create multiple grids, and find the most suitable grid size and refinement level for your project.


Quality Mesh (Minimum Angle)

The default is 30 degrees for creating Voronoi polygons, and should be suitable in most cases. However, if you encounter difficulties with the default value, you may experiment with values of 15 or 20 degrees. In theory, values with lower angles may work, though we have limited testing experience with these geometries.


Refinement Options

The refinement options are separated into three categories, each of which can have its own unique refinement levels:

Superelement border edges: (the conceptual model boundary)

Line add-ins (linear boundary conditions such as constant heads, rivers, drains, etc.)

Point (well) add-ins


For each of the refinement settings, you enter an "edge length" (defined using the same unit convention as the project's units), and this will result in an "equivalent" approximate cell size.

Refinement around superelement border edges: Use this option to set the approximate length of edges (segments) that comprise the model boundary domain. Vertices will be added along the boundary, creating subsegments with the specified length. This option will refine the areas along the model domain boundary.

Refinement around line add-ins: Use this to set the approximate target cell size around the polyline add-ins. Vertices will be added along the lines, creating subsegments with a specified length. The option will refine areas around line add-ins.

Refinement around point/well add-ins: Use this option to refine the grid around point add-ins. Refinement for point add-ins is defined by specifying the number of triangles directly around the points, and the desired distance from the point to the new vertices.  The default of 10 triangles should be adequate for most cases; in order to adjust the cell size around the pumping wells, you need to change the "Space from points to new nodes" value; a smaller value will result in smaller cell sizes.  

Gradation: Use the Gradation slider bar to specify the smoothness of the transition of the cell sizes from around the refinement regions to the more coarser (background) cell sizes. A smoother transition will result in more cells, but will lead to a more gradual change in cell size, which is recommended for MODFLOW-USG grids.


Layer Refinement

You can refine the conceptual layers of the model into sub-layers using the Layer Refinement Settings button, which opens a window with a table and allows you to specify the number of evenly divided sub-layers for each conceptual layer in your model.




Generating the Grid

Once the above settings have been defined, click the [Generate] button to generate the unstructured grid. Once generated, the Triangle output results, e.g., number of mesh vertices, triangles, edges, etc, are displayed in the text box (above the Generate button). These results may be copied to the clipboard by right-clicking anywhere inside the box, and selecting Copy to Clipboard from the pop-up menu.


The generated grid will also display in the adjacent 3D Viewer window. If you are not satisfied with the grid, you can modify the settings and regenerate the grid by selecting the [Generate] button again.

Once the grid is defined, click the [Finish] button to complete the process. The UnStructured V-Grid will now appear in the Model Explorer tree under the Model Domain node as shown below, where it can be displayed in a 3D Viewer window.


Next you are ready to generate a numerical model from this UnStructured Grid.  This is explained in the section Converting to MODFLOW-USG.

When you are done previewing the grid, click on the Next button on the workflow toolbar.




Page url: