iMOD User Manual version 5.2 (html)

11.16Tutorial 15: MODFLOW6

This tutorial gives a brief introduction to the usage of MODFLOW6 regarding submodeling. The technique of sub modelling is extensively described in the MODFLOW6 manual (for actual documents click here for the link to the USGS website).


This is what you will do:

Required Data

For this tutorial you need the following iMOD Data Files/folders in {tutorialfolder} \TUT_MF6:

Note: If you are a left-handed person and you converted your mouse button settings, ’left mouse button’ should be ’right mouse button’ and vice versa in these tutorials.

Getting Started

Let’s open the model configuration in the iMOD Project Manager.

The Project Manager window displays more then 50 Topics. Most of them are not needed in this model set up. From iMOD version 5.0 it is possible to thin-out the list of topics in the Treeview. This gives more insight of the active topics. Let’s select only those topics that are most relevant for MODFLOW6.

Now you notice that the number of topics has decreased. That’s nice isn’t it. Now the overview is more comprehensible. Notice that the title of the tab is changed into [Treeview MODFLOW6]. The topics that are currently filled in with data are checked (Active). If we need more topics, we can easily activate the appropriate topic from the list. The Treeview will be updated once we select the tab with the treeview again. Let’s display the location of the rivers.

The following image should be on your graphical canvas.


Figure 11.198: Example of the current window layout.

Defining the sub models

Let’s define the sub models and their corresponding cell sizes that we want to compute with MODFLOW6. Therefore we need to create a regular GEN file with an additional attribute that represents the cell size. Our first sub model will be the outer limit of our model, we do that by drawing a rectangle, after that we specify two sub model with an irregular boundary. Let’s create a GEN that describes three sub models.

It starts the Select window in which the shape type can be selected. Our first sub model will be a rectangle, thus we select that shape.

So, that’s our first sub model, congrats ! Let’s add the other one.

And finally, we define our last, smallest sub model.

We need to add an attribute to these shapes that represents the cell size inside all of them.

Here, we can add an additional column to represent the cell sizes per shape.

Your window should look similar to the figure below.


Figure 11.199: Example of the sub model layout.

The only thing left to do is to save this GEN and use it in our MODFLOW6 model.

Starting the MODFLOW6 model

To start the MODFLOW6 model we need to include this GEN file. iMOD will prepare all necessary files for the simulation. Most important, iMOD computes the delineation of each sub model such that it connect seamingless. It also constructs the so-called exchange file that describes how each sub model is connected. Okay, enough of that, let’s continue.

You should have the following image on your graphical screen. It shows in bold-lines the extent of each sub model. It also shows the sizes of the individual sub models. Those GEN files (and IDF files) that are created, can be inspected in iMOD. They are in a temporary folder {installfolder} \IMOD_USER \TMP \SUBMODELS_ASCII.GEN and SUBMODEL{i}.IDF


Figure 11.200: Example of the sub modelling discretisation for MODFLOW6.

Let’s save the important flow terms of the model as well.

We’re all set to go.

Examining the Model Results

Your model will be in the folder {installfolder} \IMOD_USER \MODELS \MF6-FIRST-MODEL. As MODFLOW6 simulated three separate sub models, they all have their own output folders. Let’s inspect those.

Let’s open the results for sub models as well.

The result of this yields in a complete image of the computed heads.


Figure 11.201: Example of the results of the sub modelling with MODFLOW6.

It is possible to open the flux files of the interchange between sub models as well. Let us open the flux files between model 1 & 2 and the other way around, between model 2 & 1 in order to analyse the water balance.

Both files show the amount of groundwater that flows from one sub model towards another. Let check it and see if the water balance is OK.

Note: It should be noted that as your drawn sub-models differ to the one used in this tutorial, the reading you’ll find will be probably different. The important thing here is to know how to check and control whether your simulation went alright.


Figure 11.202: Example of Ground water flow between GWF1 and GWF2.

So, from our first model 194.542 m\(^3\)/d is flowing towards the second sub model, as the sum of 119.956+74.586=194.542 m\(^3\)/d equals that amount. You can inspect more values, as well as the flow in between the second and third model by repeating the last steps.

Adding a Well

One of the major advantages of sub modelling is that cell sizes can vary where detail is needed. Suppose we need to compute the drawdown of a well which is positioned in the centre of the model. In fact, our current model network suits the purpose perfectly. We only need to add the well to the PRJ file and run it like we did before. The well is positioned at x=562.5; y=662.5 and has an extraction volume of 500.0 m\(^3\)/d. We’ve added this to a second PRJ already, so we load it in the iMOD Project Manager and run the model.

Your model will be in the folder {installfolder} \IMOD_USER \MODELS \MF6-SECOND-MODEL. Let’s inspect those.

It is possible to visualize the total results in 3D, use your experience from previous tutorials to generate this image. Hint: set all types to Cubes to get a continues picture.


Figure 11.203: Example of the 3D results of the sub modelling with MODFLOW6.

Feel free to experiment more. Try to make more refinements (4, 5 sub models). Important to note is that cell sizes need to be an integer multiplications, thus avoid cell size which are e.g. 1.34 larger than the adjacent cell size.

Adding a Horizontal Barrier

A horizontal barrier (HFB-package) blocks horizontal flow in one direction. A resistance value is given to the barrier to enforce this. MODFLOW6 support the feature as well and it is allows us to let a horizontal barrier pass through different sub models to ensure a correct sealing over the sub model boundaries. With sub models, those barrier need to continue through the sub models. iMOD adds the barrier within the sub model conform a normal model, however, since sub model are active, the connection between sub models needs to be modified as well. Let’s see how that works and moreover, how to check it.

The barrier has been created already and saved in a GEN file, let’s open that one first.

As you might see, the fault line crosses the model from south-west to north-east. We’re going to block all flow over this fault line to clearly see its effect. This has been prepared in a PRJ file which we’re going to load into the iMOD Project Manager and run, so:

In this PRJ file, the HFB package is added, the resistance of the fault is expressed by the combination of the multiplication factor (FCT=1.0) and impulse value (IMP=0.0). The result of this is \(1.0 \times 0.0 = 0.0\) days. A resistance of 0.0 days, act as a impermeable barrier to groundwater flow, we might check the input quickly.

You can see that the configuration is set as defined previously. Okay, all seems to be okay, let’s run the model with the same sub models as we did before, however, we will save the flow budgets in this case as well.

In fact, whether you select output for KHV, KVA, BND is irrelevant, all will save the budget for the flow fields as well as the flow that interchanges between sub models. The HFB itself (as well as the PCG) does not generate any output, selected output for this package is redundant.

Your model will be in the folder {installfolder} \IMOD_USER \MODELS \MF6-THIRD-MODEL. Let’s inspect the shape of the fault line first.

Let’s open a GEN file that describes the layout of the sub models.

To illustrate the setting of the sub models and the the fault line a bit better, colour them differently and make the line a bit thicker, thus:

You image should like (more-or-less as you probably have a slightly different sub-division of sub models) this.


Figure 11.204: Example of the Fault line through three sub models with MODFLOW6.

It should be noticed that at the transition of one sub model towards another one, the fault line shows an artefact due to the different grid cell resolution. Let’s see how this influences the fluxes that cross the sub models.

This IDF show the flux for the first sub model toward the second. You can load in the other exchange fluxes for the other sub models as well. For the second sub model those are called BDGGWF_1_STEADY-STATE_L1.IDF and BDGGWF_3_STEADY-STATE_L1.IDF, for the third sub model this is BDGGWF_2_STEADY-STATE_L1.IDF. If you apply a similar legend to all of these IDF-files (I suggest you use the standard-legend that ranges from -2 to +2 from the standard Legend-list (see section 6.6)) and display them in transparency mode, you’ll get the following image.


Figure 11.205: Example of the flow in between sub models that are crossed by a fault line through three sub models with MODFLOW6.

In this example, the grey cells show the zero-exchange. Due to the fact that the resolution changes in between sub models, and an exchange volume is a sum of flow in different directions, it is not that evident to explain why some of the cells are grey and others not. however, if we look at the upper-right grey cell (wich is zero), it demonstrates that no flow is received from sub model 2 towards sub model 1, which is correct as the fault line crosses the sub model at that location. The blue cell above the grey cell, in that particular corner, shows the flux towards the north which is correct as there is a flow connection between sub model 1 en sub model 2. Maybe more clear it is, whenever we look at the heads, you know how to find and load them into iMOD - I assume.

So, this is the result if you plot them all together (with the same legend):


Figure 11.206: Example of the heads in between sub model that are crossed by a fault line through three sub models with MODFLOW6.

Horizontal Anisotropy

Horizontal anisotropy is modelled via the so-called XT3D package in MODFLOW6. This package can handle anisotropy in three directions, X-, Y- and Z. The current iMOD supports the horizontal anisotropy in 2 directions (XY) only. Herewith it is possible to compute similar results as with the conventional ANI-package in iMODFLOW. It should be noted that the implementation of the conventional ANI-package is different, less memory-consuming and probably faster than the XT3D implementation. On the other hand the latter is numerical more exact and combinations can be made with the HFB-package as well as in combination with unconfinedness. In this final part of this tutorial we will examine the capability of XT3D in combination with sub models. Most of the things have been already, so we can start running the XT3D package quickly.

In this PRJ file, the ANI package is added and the RIV package is removed. Furthermore, to meet the requirement of at least a single boundary condition, a constant head is assigned to the lower-left corner with a level of 10.0m+MSL.

Your model will be in the folder {installfolder} \IMOD_USER \MODELS \MF6-FOURTH-MODEL. Let’s examine the results.

If you apply a similar legend to all of these IDF-files and display them in 3D you’ll get the following image (more-or-less as your sub models might be different).


Figure 11.207: Example of the heads with the usage of XT3D in three sub models with MODFLOW6.

Feel free to experiment more with the XT3D-package (try to specify spatial variable anisotropy-factors and/or angles).