MODFLOW является US Geological Survey модульного конечных разностей модели потока, которая представляет собой компьютерный код, который решает уравнение потока подземных вод. Программа используется гидрогеологами для моделирования потока грунтовых вод через водоносные горизонты. Исходный код является свободным программным обеспечением общественным достоянием, написанные в основном в Fortran, и может скомпилировать и запустить на Microsoft Windows или Unix-подобных операционных систем.
3-х мерная сеткаС момента своей первоначальной разработки в начале 1980-х гг. Геологическая служба США выпустила четыре основных выпуска и теперь считается де-факто стандартным кодом для моделирования водоносных горизонтов. Для MODFLOW существует несколько активно развивающихся коммерческих и некоммерческих графических пользовательских интерфейсов.
MODFLOW был построен по модульному принципу в 1980-х годах. Это означает, что он обладает многими атрибутами того, что стало называться объектно-ориентированным программированием. Например, возможности (называемые «пакетами»), которые имитируют оседание, озера или потоки, могут быть легко включены и выключены, а время выполнения и требования к хранению этих пакетов полностью исчезнут. Если программист хочет что-то изменить в MODFLOW, чистая организация облегчит это. Действительно, инновации такого рода - это именно то, что ожидалось при разработке MODFLOW.
Важно отметить, что модульность MODFLOW позволяет писать разные пакеты, которые предназначены для решения одной и той же цели моделирования разными способами. Это позволяет тестировать различия во мнениях о том, как функционируют системные процессы. Такое тестирование является важной частью одновременного моделирования или проверки альтернативных гипотез. Такие модели, как MODFLOW и SUMMA, программа от NCAR, которая имитирует поверхностные процессы, такие как ливневый сток и эрозия оврагов, делают такие испытания более точными и контролируемыми. Это происходит потому, что другие аспекты программы остаются неизменными. Тесты становятся более точными, потому что они менее подвержены влиянию других числовых и программных различий по незнанию.
Основное уравнение в частных производных для замкнутого водоносного горизонта, используемое в MODFLOW:
куда
Форма конечных разностей частного дифференциала в дискретизированной области водоносного горизонта (представленная с использованием строк, столбцов и слоев):
куда
Это уравнение формулируется в систему уравнений, которую необходимо решить следующим образом:
куда
или в матричной форме как:
куда
Геологическая служба США на протяжении 1970-х годов разработала несколько сотен моделей, написанных на разных диалектах FORTRAN. В то время было обычной практикой переписывать новую модель, чтобы она соответствовала потребностям нового сценария подземных вод. Концепция MODFLOW была первоначально разработана в 1981 году для предоставления общей модульной модели подземных вод, которая может быть скомпилирована на нескольких платформах без значительных (или каких-либо) модификаций и может считывать и записывать общие форматы. Различные аспекты системы грунтовых вод будут обрабатываться с помощью модулей, аналогично идее « компонентной стереосистемы ». Первоначальное название кода было «Модульная трехмерная конечно-разностная модель потока грунтовых вод USGS», или неофициально «Модульная модель». Название MODFLOW было придумано через несколько лет после первоначальной разработки кода, которая началась в 1981 году.
Первая версия MODFLOW была опубликована 28 декабря 1983 года и полностью написана на FORTRAN 66. Исходный код для этой версии указан в отчете USGS Open File Report 83-875, упомянутом выше.
Эта версия MODFLOW была переписана на FORTRAN 77 и первоначально была выпущена 24 июля 1987 года. Текущая версия MODFLOW-88 - 2.6, выпущенная 20 сентября 1996 года.
MODPATH был первоначально разработан в 1989 году для последующей обработки стационарных данных MODFLOW-88 для определения трехмерных траекторий движения частиц. Это нововведение было незаменимым в области гидрогеологии загрязнителей. Он все еще используется в качестве постпроцессора в последних версиях MODFLOW.
Отдельная программа MODFLOWP была разработана в 1992 году для оценки различных параметров, используемых в MODFLOW. Эта программа была встроена в MODFLOW-2000.
MODFLOW-96 (версия 3.0) был первоначально выпущен 3 декабря 1996 года и является доработанным и переработанным продолжением MODFLOW-88. Есть три финальных релиза MODFLOW-96:
Несколько графических интерфейсов были впервые разработаны с использованием кода MODFLOW-96.
MODFLOW-2000 (версия 1.0; нумерация версий была сброшена) был выпущен 20 июля 2000 года, который объединил коды MODFLOWP и HYDMOD в основную программу и имеет интегрированные возможности наблюдения, анализа чувствительности, оценки параметров и оценки неопределенности. Также было включено много новых пакетов и улучшений, в том числе новые решатели, потоковые и насыщенные потоковые пакеты. Концепции внутреннего дизайна также изменились по сравнению с предыдущими версиями, так что пакеты, процессы и модули отличаются друг от друга. Эта версия была закодирована в смеси FORTRAN 77, Fortran 90, и один решатель был запрограммирован в C. MODFLOW-2000 также может быть скомпилирован для параллельных вычислений, что позволяет использовать несколько процессоров для увеличения сложности модели и / или сокращения времени моделирования. Возможность распараллеливания предназначена для поддержки анализа чувствительности, оценки параметров и анализа неопределенности MODFLOW-2000.
Последней версией MODFLOW-2000 (или MF2K) является версия 1.19.01, выпущенная 25 марта 2010 г. Существует четыре связанных или разветвленных кода, основанных на MODFLOW-2000:
MODFLOW-2005 отличается от MODFLOW-2000 тем, что удалены возможности анализа чувствительности, оценки параметров и оценки неопределенности. Таким образом, поддержка этих возможностей теперь приходится на «закрепленные» коды, которые поддерживаются извне по отношению к усилиям по поддержке MODFLOW. Кроме того, код был реорганизован для поддержки нескольких моделей в одном прогоне MODFLOW, что необходимо для возможности LGR (Local Grid Refinement). MODFLOW-2005 написан в основном на Fortran 90 и C, причем C используется для одного решателя.
Текущая версия MODFLOW-2005 - это версия 1.12.00, выпущенная 3 февраля 2017 г. Связанные или разветвленные коды включают:
MODFLOW-OWHM (версия 1.00.12, 1 октября 2016 г.), Модель гидрологического потока одной воды (MODFLOW-OWHM, MF-OWHM или One-Water), разработанная совместно Геологической службой США и Бюро мелиорации США, является объединение нескольких версий MODFLOW-2005 (NWT, LGR, FMP, SWR, SWI) в ОДНУ версию, содержит обновления и новые функции и позволяет моделировать потоки, зависящие от напора, потоки, зависящие от потока, и потоки, зависящие от деформации, которые в совокупности влияют на совместное использование водных ресурсов.
MODFLOW-OWHM, основанный на исходном коде MODFLOW-2005, является вторым основным выпуском MODFLOW-2005. MODFLOW-OWHM обеспечивает возможность моделирования гидрологических систем с ограниченным предложением и спросом, которые обычно возникают в засушливых сельскохозяйственных районах, где спрос на воду превышает предложение. Когда добавленные возможности не используются, MODFLOW-OWHM работает точно так же, как MODFLOW-2005, или MODFLOW-NWT, или MODFLOW-LGR (в зависимости от используемых функций).
Существует интерактивное руководство по вводу, в котором объясняется ввод для пакетов, которые поддерживает MODFLOW-OWHM, а официальная документация находится в хранилище публикаций USGS.
Все перечисленные выше версии MODFLOW построены на так называемой структурированной сетке. То есть сетка состоит из прямолинейных блоков. Единственным исключением является возможность LGR, которая позволяет вставлять локально уточненные сетки в структуру «родительской» сетки. Придомовая территория снова сложена из прямолинейных блоков, но блоки меньшего размера. Эксперименты с гораздо более гибкой структурой сетки привели к выпуску MODFLOW-USG (версия 1.3.00, 1 декабря 2015 г.), предназначенного для адаптации к широкому диапазону вариантов сетки с использованием неструктурированных сеток. MODFLOW-USG был заменен на MODFLOW 6, который обеспечивал возможности сетки с промежуточным уровнем гибкости.
MODFLOW 6 (MF6), выпущенный в 2017 году, является шестой базовой версией MODFLOW, выпущенной Геологической службой США. Этот выпуск является переписанным MODFLOW-USG в соответствии с парадигмой объектно-ориентированного программирования в Fortran и предоставляет платформу, которая включает возможности нескольких предыдущих версий MODFLOW-2005, включая MODFLOW-NWT, MODFLOW-USG и MODFLOW-LGR. В текущем выпуске все еще отсутствуют функции, которые поддерживаются в MODFLOW-2005, такие как проседание и маршрутизация потока (SFR) поддерживает только прямоугольные смоченные периметры. Текущая версия - 6.2.1, выпущенная 19 февраля 2021 года.
Имена в этой таблице - это метки, используемые для включения и выключения возможностей MODFLOW с помощью ключевого входного файла. Большинство возможностей имеют много альтернатив или могут быть опущены, но те, которые связаны с пакетом BASIC, необходимы всегда. Многие из представленных возможностей поддерживаются в более поздних версиях, хотя изменение сетки, включенное с помощью MODFLOW-USG и MODFLOW 6, означало, что такая обратная совместимость была довольно избирательной.
Имя | Длинное имя | Представленная версия |
---|---|---|
Базовый пакет и его компоненты | ||
BAS | Базовый пакет | оригинал |
OC | Выходной контроль | оригинал |
DIS | Дискретность | MODFLOW-2000 (1.0) |
DISU | Неструктурированная дискретность | MODFLOW-USG (1.0) |
DISV | Дискретизация по вершинам | MODFLOW 6 (1.00) |
IC | Первоначальные условия | MODFLOW 6 (1.00) |
Пакеты потоков грунтовых вод | ||
BCF | Блок-центрированный потоковый пакет | оригинал |
CLN | Связанный линейный сетевой процесс | MODFLOW-USG (1.0) |
GNC | Пакет исправления призрачного узла | MODFLOW-USG (1.0) |
HFB | Пакет барьеров для горизонтального потока | MODFLOW-88 |
Венгерский форинт | Гидрогеологическая установка Flow Package | MODFLOW-2000 (1.1) |
LPF | Пакет Layer-Property Flow | MODFLOW-2000 (1.0) |
НПФ | Поток свойств узла | MODFLOW 6 (1.00) |
SWI2 | Пакет вторжения в морскую воду | MODFLOW-2005 (1.11) |
UPW | Пакет взвешивания для разведки и добычи | MODFLOW-NWT (1.0) |
UZF | Блок потока ненасыщенной зоны | MODFLOW-2005 (1.2) |
Совместное использование и моделирование землепользования | ||
FMP | Фермерский процесс | MODFLOW-FMP |
SWO | Операции с поверхностными водами | MODFLOW-OWHM (2.0) |
Указанные пакеты границ головы | ||
CHD | Граница с постоянным напором / Вариант с заданным напором | MODFLOW-88 |
FHB | Пакет для измерения расхода и напора | MODFLOW-96 (3.2) |
Указанные пакеты границ потока | ||
FHB | Пакет для измерения расхода и напора | MODFLOW-96 (3.2) |
RCH | Перезарядка пакет | оригинал |
WEL | Хорошо Пакет | оригинал |
Пакеты границ потока, зависящие от головы | ||
DAF | DAFLOW | MODFLOW-96 |
DRN | Сливной пакет | оригинал |
DRT | Пакет возврата слива | MODFLOW-2000 (1.1) |
ETS | Пакет сегментов эвапотранспирации | MODFLOW-2000 (1.1) |
EVT | Пакет эвапотранспирации | оригинал |
GHB | Пограничный пакет General-Head | оригинал |
ОЗЕРО | Пакет « Озеро» | MODFLOW-2000 (1.1) |
MAW | Скважина с несколькими водоносными горизонтами | MODFLOW 6 (1.00) |
MNW | Многоузловой пакет скважин с ограниченным объемом скважин | MODFLOW-2000 (1.11) |
ВИЭ | Пакет резервуаров | MODFLOW-88 (2.6) |
РВАТЬ | Пакет прибрежной эвапотранспирации | MODFLOW-OWHM (1.0) |
RIV | Речной пакет | оригинал |
SFR | Пакет Streamflow-Routing | MODFLOW-2000 (1.14.00) |
STR | Пакет Stream | MODFLOW-88 |
КСВ | Процесс трассировки поверхностных вод | MODFLOW-NWT 1.08 |
UZF | Блок потока ненасыщенной зоны | MODFLOW-2005 (1.2) |
Решатели | ||
DE4 | Пакет прямого решения | MODFLOW-88 (2,5) |
GMG | Геометрический многосеточный решатель | MODFLOW-2000 (1.15.00) |
LMG | Link-AMG Пакет | MODFLOW-2000 (1.4) |
СЗТ | Ньютон-Рафсон | MODFLOW-NWT (1.0) |
PCG | Предварительно подготовленный пакет сопряженных градиентов | MODFLOW-88 |
PCGN | Предварительно подготовленный решатель сопряженных градиентов с улучшенным нелинейным управлением | MODFLOW-2005 (1.9.0) |
ГЛОТОК | Пакет строго неявных процедур | оригинал |
SMS | Разреженные матрицы Solver | MODFLOW-USG (1.0) |
SOR | Пакет для последовательного чрезмерного расслабления | оригинал |
Разные пакеты | ||
GAG | Гейдж | MODFLOW-2000 |
HYD | HYDMOD | MODFLOW-2000 (1.1) |
СРК | Межкроватное хранение | MODFLOW-88 |
KDEP | Возможность зависимости гидравлической проводимости от глубины | MODFLOW-2000 (1.12) |
LMT | Ссылка- MT3DMS | MODFLOW-2000 (1.5) |
LVDA | Возможность горизонтальной анизотропии переменного направления слоя модели | MODFLOW-2000 (1.12) |
MVR | Водный двигатель | MODFLOW 6 (1.00) |
СТО | Место хранения | MODFLOW 6 (1.00) |
SUB | Оседание и уплотнение системы водоносных горизонтов | MODFLOW-2000 (1.12) |
SWT | Пакет просадок и уплотнения системы водоносных горизонтов для водоносных горизонтов | MODFLOW-2000 (1.18) |
UTL | Утилита | оригинал |
Входные файлы процесса наблюдения | ||
OBS | Входной файл для всех наблюдений | MODFLOW-2000 |
HOB | Наблюдение за головой | MODFLOW-2000 |
ДРОБ | Наблюдение за сливом | MODFLOW-2000 |
DTOB | Наблюдение за возвратом слива | MODFLOW-2000 |
RVOB | Наблюдение за рекой | MODFLOW-2000 |
GBOB | Общее наблюдение - голова - граница | MODFLOW-2000 |
ЧОБ | Наблюдение за потоком с постоянным напором | MODFLOW-2000 |
ADV | Наблюдение за адвективным переносом | MODFLOW-2000 (1.0) |
STOB | Наблюдение за потоком | MODFLOW-2000 |
Устаревшие пакеты | ||
GFD | Общая конечная разность | MODFLOW от-88 до 96 |
TLK | Переходная утечка | MODFLOW от-88 до 96 |
Для MODFLOW есть несколько графических интерфейсов, которые часто включают скомпилированный код MODFLOW с модификациями. Эти программы помогают вводить данные для создания моделей MODFLOW.
Некоммерческие версии MODFLOW бесплатны, однако их лицензирование обычно ограничивает использование некоммерческих образовательных или исследовательских целей.
Коммерческие программы MODFLOW обычно используются правительствами и консультантами для практического применения MODFLOW к реальным проблемам подземных вод. Профессиональные версии MODFLOW обычно стоят минимум около 1000 долларов США и обычно достигают 7000 долларов США. Это список коммерческих программ для MODFLOW:
Все текущие версии этих программ работают только в Microsoft Windows, однако предыдущие версии GMS (до версии 3.1) были скомпилированы для нескольких платформ Unix.