πŸ’§ IGW-NET Β· Quick Tutorial 21 of 31

Tutorial 21: Unstructured Grid Model Setup

Build models on an unstructured (triangular or polygonal) grid. Useful for complex geometries and local refinement.

IGW-NET Tutorial 21 Prereq: MAGNET4WATER account 4 sections

This tutorial covers

  1. Build the Conceptual Model
  2. Configure and Visualize the Grid
  3. Run the Simulation
  4. What's Next

1Build the Conceptual Model

Step 1 β€” Draw the Model Domain

Zoom to the area of interest: Diamond Springs Golf Course near Hamilton, Michigan. Go to 'Conceptual Model Tools' β†’ 'DrawDomain' β†’ 'DomainRect' and draw a rectangular domain centered on the golf course. This is a real location β€” the Global Base Model provides terrain, geology, and hydrology data automatically.

Step 1 β€” Model domain drawn around Diamond Springs Golf Course near Hamilton, Michigan
Step 1 β€” Model domain drawn around Diamond Springs Golf Course near Hamilton, Michigan

Step 2 β€” Add a River with Grid Refinement

Go to 'Conceptual Model Tools' β†’ 'Lines' β†’ 'DrawLine'. Click along Miller Creek to trace the river, then 'Save Shape'. Assign as a 'Two-way' head-dependent flux boundary condition. Then check 'Refined Grid' and click 'Edit Grid':

Grid Size Factor: 2 (both x and y)
Buffer: 0
Thresholds: 3 (smooth transition from coarse to fine along the river)

The river gets finer cells because surface water–groundwater interaction changes rapidly near the stream β€” coarse cells would miss the details of gaining and losing reaches.

Step 2 β€” River feature (Miller Creek) with grid refinement settings
Step 2 β€” River feature (Miller Creek) with grid refinement settings

Step 3 β€” Add a Pumping Well with Refinement

Go to 'Conceptual Model Tools' β†’ 'Wells' β†’ 'DrawWell'. Place a well just south of Miller Creek with a pumping rate of βˆ’15,000 mΒ³/day. Check 'Refined Grid' and click 'Edit Grid':

Grid Size Factor: 4 (very fine around the well)
Buffer: 1 (one extra ring of refined cells)
Thresholds: 0 (abrupt transition β€” acceptable for isolated point features)

Wells create steep hydraulic gradients β€” the cone of depression changes rapidly near the well. A factor of 4 gives 16Γ— the resolution, capturing drawdown accurately without refining the entire domain.

Step 3 β€” First pumping well added with local grid refinement
Step 3 β€” First pumping well added with local grid refinement

Step 4 β€” Add a Second Pumping Well

Place another well southeast of the first with a pumping rate of βˆ’10,000 mΒ³/day. Apply grid refinement:

Grid Size Factor: 4
Buffer: 1
Thresholds: 5 (very smooth transition β€” many intermediate levels)

Note the different threshold setting: 5 here versus 0 in Step 3. This creates a much smoother transition from the parent grid to the refined well grid. Compare the two approaches visually when the grid is displayed in Step 12.

Step 4 β€” Second pumping well with different refinement thresholds
Step 4 β€” Second pumping well with different refinement thresholds

Step 5 β€” Add a Refinement Zone Around the Wells

Go to 'Conceptual Model Tools' β†’ 'Zones' β†’ 'ZoneRect'. Draw a rectangular zone encompassing both pumping wells, then 'Save Shape'. Select 'Polygon Only' under Zone Types (this zone defines refinement only, not property changes). Apply refinement:

Grid Size Factor: 2  |  Buffer: 0  |  Thresholds: 0

This creates an intermediate refinement level between the coarse parent grid and the very fine well grids β€” a middle layer in the refinement hierarchy.

Step 5 β€” Refinement zone around the two pumping wells
Step 5 β€” Refinement zone around the two pumping wells

Step 6 β€” Add an Injection Well

Add a well near the southern portion of the model with a pumping rate of +10 mΒ³/day (positive = injection). No grid refinement needed for this small-rate well β€” the default grid resolution is sufficient.

Step 7 β€” Add a Wetland Zone

Go to 'Zones' β†’ 'ZonePoly' and draw an irregular polygon near the southwest corner. In the 'Sources and Sinks Head Dependent' tab:

Check 'Two-way Head Dependent'
Zone Name: Wetland
Stage elevation: 190 m
Riverbed (wetland bottom): Stage minus 5 m
Leakance: 5 day⁻¹

The wetland is modeled as a head-dependent boundary β€” water exchanges between the aquifer and wetland depending on the head difference. If groundwater is above the wetland stage, the aquifer feeds the wetland (gaining). If below, the wetland recharges the aquifer (losing).

Step 7 β€” Wetland zone as two-way head-dependent boundary condition
Step 7 β€” Wetland zone as two-way head-dependent boundary condition

Step 8 β€” Add a Low Conductivity Zone

Go to 'Zones' β†’ 'ZoneRect' and draw a zone just west of the injection well. Check 'Conductivity' and assign K = 0.1 m/day. This represents a clay lens or low-permeability geological feature that locally impedes groundwater flow.

Step 8 β€” Low conductivity zone (K = 0.1 m/day) west of the injection well
Step 8 β€” Low conductivity zone (K = 0.1 m/day) west of the injection well

Step 9 β€” Refinement Zone Around Southern Features

Draw a rectangular 'Polygon Only' zone encompassing the wetland, low K zone, and injection well. Apply refinement: Grid Size Factor = 2, Buffer = 0, Thresholds = 0.

Step 10 β€” Second Level of Refinement

Draw another 'Polygon Only' zone, smaller, around just the low K zone and injection well. Apply finer refinement: Grid Size Factor = 4, Buffer = 0, Thresholds = 0. This creates two nested levels of refinement β€” factor 2 around the broader area, factor 4 around the most critical features.

Step 10 β€” Second level of refinement around low K zone and injection well
Step 10 β€” Second level of refinement around low K zone and injection well

2Configure and Visualize the Grid

Step 11 β€” Set Grid Size and Solver

Go to 'DomainAttr' β†’ 'Simulation Settings'. Set Grid NX = 30 (the parent grid has 30 cells in the x-direction). Click 'Solver Options', select MODFLOW, then select MODFLOW-6 as the solver. MODFLOW-6 is required for unstructured grids β€” earlier MODFLOW versions support only regular grids.

Step 11 β€” Grid settings: NX=30, MODFLOW-6 solver selected
Step 11 β€” Grid settings: NX=30, MODFLOW-6 solver selected

Step 12 β€” Display the Unstructured Grid

In Display Settings, change 'Main Display' to 'Contour+Color Map and Vectors'. Click 'Show Refined Grid'. After a moment, the Grid Refinement interface appears showing the complete unstructured grid β€” all refinement zones visible simultaneously. Notice how each feature created a local refinement patch, and how they nest within each other.

Step 12 β€” Unstructured grid displayed over the model domain with all refinement zones visible
Step 12 β€” Unstructured grid displayed over the model domain with all refinement zones visible

Step 13 β€” Zoom In to Inspect Refinement

Use the zoom rectangle tool to zoom into the area around the two pumping wells. You can now see the multi-level refinement in detail β€” the coarse parent grid transitioning through intermediate levels to the finest cells around each well. Compare the abrupt transition (Step 3, Thresholds = 0) with the smooth transition (Step 4, Thresholds = 5).

Step 13 β€” Zoomed view of unstructured grid near the pumping wells showing nested refinement levels
Step 13 β€” Zoomed view of unstructured grid near the pumping wells showing nested refinement levels

3Run the Simulation

Step 14 β€” Simulate and View Parent Model Results

Go to 'Simulation Tools' β†’ 'Simulate' and follow the prompts. The results displayed are for the parent (coarse-grid) model. The process for viewing the refined subgrid results is presented in the next tutorial (Tutorial 22).

Step 14 β€” Parent model simulation results β€” head contours on the coarse grid
Step 14 β€” Parent model simulation results β€” head contours on the coarse grid

Key Concepts

Feature-driven refinement: In IGW-NET, you don't manually define grid cells. You define features β€” rivers, wells, zones, geological contacts β€” and attach refinement instructions to each one. The grid is automatically generated from the conceptual model. Change a feature β†’ the grid updates automatically. This is fundamentally different from traditional mesh editors where you manually place nodes and adjust cell boundaries.

Multi-level nesting in one model: This tutorial built a model with at least three levels of resolution: the parent grid (coarsest), intermediate refinement zones (factor 2), and fine well/feature grids (factor 4). All exist in a single MODFLOW-6 model β€” no separate parent-child files, no manual boundary condition exchange. The solver handles the coupling internally.

Thresholds control numerical quality: Abrupt transitions from coarse to fine cells can introduce numerical artifacts β€” spurious head gradients at the interface. Thresholds add transitional refinement levels that smooth the transition. More thresholds = smoother transition = fewer artifacts = more cells. This is a quality-vs-cost tradeoff that modelers must evaluate for each application.

Currently rectangular cells only: IGW-NET's unstructured grid currently uses rectangular cells and rectangular nested subgrids. This is not the same as triangular or Voronoi meshes used in some other tools. The rectangular approach is simpler to generate and visualize, while still providing the essential capability of variable resolution. Triangular/Voronoi support may be added in the future.

4What's Next

This tutorial set up the model and ran the parent grid. The next step is viewing results at all refinement levels:

Tutorial 22: Unstructured Grid Results β€” view and interpret results for different subgrids
Tutorial 23: MODFLOW Analysis Tool β€” advanced post-processing of MODFLOW output
Tutorial 24: T-PROGS 3D Geologic Model β€” 3D geology from borehole lithology