Comparison between Structured MODFLOW and UnStructured MODFLOW

August 24, 2013

The newly released MODFLOW-USG (UnStructured Grid version of MODFLOW) provides a significant advancement in groundwater modeling. Along with a new set of capabilities, there are several changes to the underlying MODFLOW concepts. Thus there is a need to better understand the differences and similarities between the UnStructured version of MODFLOW and traditional Structured versions of MODFLOW (including MODFLOW-2000, -2005, -NWT, -LGR).  I have put together the following comparative analysis that looks at some of the major components of MODFLOW in order for you to understand the differences between these versions, and to better appreciate the benefits that MODFLOW-USG will provide for your groundwater modeling projects.

Cell Geometry

Structured MODFLOW uses a rectilinear finite difference grid consisting of a set of rows, columns, and layers. Cells are rectangular-shaped, which often makes it challenging to shape the grid to complex layers and features (without using a large number of cells). Cells are identified by an IJK notation in the input files and in GUI’s. With Structured versions of MODFLOW there is no need to specify cell connection information, because each cell is logically connected to the six surrounding cells in the principal directions, and connected cells are easily determined from the layer, row, and column indices.1

MODFLOW-USG uses a finite volume formulation, which provides greater flexibility for the cell geometry; the grid cells can be any shape: rectangles, polygons, hexagons, etc.  Visual MODFLOW Flex uses Voronoi polygons, as this grid geometry provides a great level of flexibility for shaping/refining the grid around model features, and also accommodating complex stratigraphy.  Voronoi polygon cells also honor the MODFLOW-USG grid constraints, providing higher accuracy and better model convergence than rectangular shaped grid cells.  With MODFLOW-USG, cells are identified by a NodeID; cells are numbered starting in the upper layers and work downwards to the lower layers. MODFLOW-USG keeps the layering concept to simplify pre and post-processing. With MODFLOW–USG, you must define the cell connection information in the new .DISU (UnStructured Grid Discretization package). You must define connectivity information to MODFLOW–USG in the form of two arrays; the first array contains the number of connections for each cell, and the second array contains a list of the connected node numbers for each cell.

 Figure 1: Structured finite difference MODFLOW-2005 grid (left),
and an UnStructured grid with Voronoi cells for MODFLOW-USG grid (right).

Model Domain

With structured MODFLOW the model domain must be rectangular shaped. In order to accommodate irregularly shaped model domains, the cells outside the area of interest must be set as inactive; this results in extra overhead and book-keeping of these “needless” inactive cells.

MODFLOW-USG allows you to define irregularly-shaped model domains; as a result, there are no inactive cells created for those regions outside the area of interest. This allows for more efficient cell accounting and traceability. This is illustrated in Figure 1 above; with Structured MODFLOW, the grid cells colored black are inactive; with MODFLOW-USG, the model domain conforms to a polygon that you provide, thus there are no inactive cells.

Grid Refinement

With structured MODFLOW, when you refine the grid around areas of interest the rows and columns extend to the edges of the model domain; this creates a large number of unnecessary cells, and can also create contrasts in adjacent cell geometries. This can result in longer model run times and model stability issues. (MODFLOW-LGR partially addresses this problem through the use of locally-refined grids). These grid refinement approaches work well if you need to refine the grid only in a few areas; however, these methods are not practical if you want to refine the grid in multiple locations in the model domain, or around individual surface water features or pumping wells.  For this approach, a high-resolution uniformly spaced grid is often used, which comes with the drawbacks of significantly increased model run times.

With MODFLOW-USG, you can limit the grid refinement only to the areas of interest. Similar to finite element modeling, you can locally-refine the grid around individual well features and line/polygon features that represent boundary conditions. In the areas of interest you have more cells with smaller cell size (resulting in higher accuracy), while outside the area of interest you can maintain fewer cells with larger cell size. You get accuracy “where it counts”, without the tradeoff of long runtimes.


With structured versions of MODFLOW, model layers have to be continuous across the entire model domain; this makes it a challenge to model a discontinuous formation, or a small formation (lens) within a larger aquifer/aquitard.  To accommodate this, an entire model layer must be inserted, with a minimum layer thickness defined in the pinchout regions. Typically, the parameter values from the formation above or below are assigned to these very thin cells for continuity.  In addition, with structured MODFLOW the number of cells must be the same in all model layers; this is quite inefficient, because it means that you end up with a large number of cells in layers above or below the area of interest.

With MODFLOW-USG, the layers do not have to be continuous across the entire model domain; this means you no longer need to define a “minimum layer thickness!”  With unstructured grids, layers can pinchout to zero thickness. With UnStructured MODFLOW, each layer can have its own discretization; this means that you can refine the grid in upper layers around rivers and streams, and have coarser refinement in lower layers; likewise, you can refine the grid around wells screens in lower layers, and have less refinement in layers above.  The result with MODFLOW-USG is fewer cells, faster solutions, while maintaining high accuracy.

Figure 2: On the left, a Structured MODFLOW grid layer with zero thickness, indicated by cells colored green. With UnStructured MODFLOW (right), cells with zero thickness are excluded from layer, thus not rendered.


With both Structured and UnStructured MODFLOW, the properties occupy the entire cell geometry. You can use either the .BCF or .LPF property packages. In order to overcome the “dry cells” problem, the capabilities of the Upstream Weighting (UPW) Package in MODFLOW–NWT have been implemented in MODFLOW–USG. These capabilities are included as an additional LAYTYP option: LayerType4 – convertible, with transmissivity computed using upstream water-table depth. This is defined in the BCF and LPF Packages. Both Structured and UnStructured versions of MODFLOW use the standard .BAS (Basic) package for defining initial heads and inactive cells. With Structured MODFLOW, the arrays in these packages are numbered starting with row 1, column 1, layer 1, and progress through the entire layer, then repeat for layers below.

With UnStructured MODFLOW, the arrays begin with node #1, then proceed in order of Node ID.

Figure 3: Left: Initial Heads defined from an ESRI .GRD file, applied to a Structured MODFLOW-2005 grid.
On right, the same ESRI .GRD file is applied to UnStructured grid cells.

Boundary Conditions

With both Structured and UnStructured versions of MODFLOW, the boundary conditions are assigned to the cell center. Due to the limitations of grid refinement with Structured MODFLOW, it is difficult to refine the grid around all boundaries (rivers, streams, wells), without the use of a large number of excess cells. As a result boundary condition cell sizes are typically rather coarse in order to achieve efficient model run times, however this comes with a tradeoff of less accuracy. With MODFLOW-USG, smaller cell sizes can be defined around your boundary conditions, leading to a more accurate representation of your boundaries. Using the grid generators in Visual MODFLOW Flex, it is possible to define a target cell size around points (wells), and polyline (eg. rivers) (for example 10 or 50 meters). These parameters are honored in the resulting Voronoi grid cells, thus achieving a better representation of your boundary conditions.

Figure 4: River cells on a structured MODFLOW-2005 grid (left),
and River cells on an UnStructured MODFLOW-USG grid (right).

With Structured MODFLOW, boundary condition cells are identified by row, column, layer, in their respective packages (.RIV, .WEL, .GHB, etc.). With MODFLOW-USG, cells are identified by a NodeID; after that, the parameters remain the same as what you see for Structured MODFLOW.  MODFLOW-USG supports most of the standard MODFLOW boundary condition packages, however the UZF package is currently not supported.

Figure 5: Layer, Row, Column notation for boundary condition cells in a structured MODFLOW-2005 grid (left),
and NodeID numbering for River cells on an UnStructured MODFLOW-USG grid (right).


The matrix solvers (PCG, GMG) distributed with MODFLOW-2000, -2005 were specifically developed for a structured grid.

The solver parameters are defined in a separate .PCG or .GMG input file, and referenced in the .NAM file.

MODFLOW–USG contains several flexible matrix solvers that can be used with an unstructured grid. These solvers are packaged into the new Sparse Matrix Solver (.SMS) Package and include an asymmetric sparse matrix solver called χMD and an unstructured Preconditioned Conjugate Gradient (PCG) solver, PCGU, for symmetric equations. With MODFLOW-USG, solver parameters are defined in the .SMS package, and this package is referenced in the .NAM file.1


Both Structured and UnStructured versions of MODFLOW produce a similar set of output files: .LST (ASCII listing file) and binary compressed result files (.HDS, .DDN, and .BGT), with the main difference being the notation of cells (IJK vs. NodeID). Spatial results of heads and drawdown can be viewed by layer or along cross-sections; with MODFLOW-2005, you can view parameters and results for a cross-section “along a row” or “along a column”.  With MODFLOW-USG, since there are no rows or columns, you can view cross-sections along arbitrary XZ or YZ planes, at specified X or Y locations in space. Visual MODFLOW Flex provides 3D graphical tools for advanced visualization of the model inputs and results.

Figure 6: Calculated head contours for a MODFLOW-2005 (Structured grid) simulation shown on the left, and head contours for MODFLOW-USG simulation shown on the right.


MODFLOW–USG Version 1: An Unstructured Grid Version of MODFLOW for Simulating Groundwater Flow and Tightly Coupled Processes Using a Control Volume Finite-Difference Formulation. USGS Techniques and Methods 6–A45. More details: