Package: pymf6
pymf6High-Level Python Interface for MODFLOW 6pymf6allows to access MODFLOW variables at run.
This allows a user to access and modify nearly all model data during a run.
A typical use is to change values of boundary conditions based on the current
model state.
With some basic Python programming, many different problems that may be to
difficult to represent with crafting input data in a appropriate manner, may be
solved withpymf6.
Example usage include:dependent boundary conditions, i.e. the value of one boundary cell depends
on the value of other model cells, that are calculated during the model run"technical" boundary conditions such as coupled extraction and injections
wells, where the level of the extraction well should not drop under a given
value and the injection rate should be the extractions rate, that in turn
is a result of running modelcoupling with other models such reactive transport, unsaturated zone models,
or sewage pipe modelsUsage RequirementsIn order to usepymf6you need tounderstand the MODFLOW 6 variables as defined in the input fileshave a working knowledge of Python programmingInstallationInstall with pip:pip install pymf6Install with conda or mamba:conda install -c hydrocomputing pymf6or:mamba install -c hydrocomputing pymf6You need to installxmipywith pip afterwards:pip install xmipybecause currentlyxmipyis not available as conda package.You can also add the channel hydrocomputing permanently with:conda config --add channels hydrocomputingYou also need a working copy of MODFLOW 6.
Please download the version for your operating system from theUSGS website.
You might need to compile MODFLOW 6 for Linux and MacOS.
A working installation ofgccandgfortranshould do.
The MODFLOW 6 download comes with a Makefile.ConfigurationWhile you can specify the path to MODFLOW 6 DLL for each run, it is
highly recommended to create a configuration.
You need to create a file namedpymf6.iniin your home directory.
You can find your home directory with different methods.
On Windows, the command:set HOMEPATHshould work.On Posix systems such Linux and MacOSX, the command:echo $HOMEshould do.The filepymf6.inineeds have to have this contenton Windows:[paths]
dll_path = path\to\mf6\bin\libmf6.dllon Linux:[paths]
dll_path = path/to/mf6/bin/libmf6.soon MacOSX:[paths]
dll_path = path/to/mf6/bin/libmf6.dylibReplace the pathpath/to/mf6/bin/with with your absolute path to the
MODFLOW 6 directorybinthat contains the shared library you downloaded from
the USGS website (see chapter "Installation" above).Test the InstallOn the command line run:pymf6The output should look similar to this on Windows:pymf6 configuration data
========================
pymf6 version: 1.0.0
xmipy version: 1.2.0
ini file path: <Home>\pymf6.ini
dll file path: <Home>\mf6.4.1\bin\libmf6.dll
MODFLOW version: 6.4.1Where<Home>\is the your absolute home path.
The output on Linux and MacOSX looks slightly different due to different path
separators and file extensions (see chapter "Configuration" above).Run a modelTo test the install run a model with command:pymf6 path/to/my/model/mfsim.namwherepath/to/my/model/is an absolute path to a MODFLOW nam file
that is in a directory of a working MODFLOW model.
For example any model in the directoryexamplesthat comes with MODFLOW 6
will do.
The output should look similar to this:==================================
running path/to/my/model/mfsim.nam
==================================
GOOD path/to/my/model/mfsim.nam
==================================
==================================DocumentationPlease read thedocumentationfor more details.