Showing posts with label руководство. Show all posts
Showing posts with label руководство. Show all posts

10/08/2021

Processing MODFLOW — почему не считается модель

Опытные коллеги конечно же об этом знают, а вот начинающим будет полезно знать, что найти причину ошибки можно двумя путями:
  1. При запуске модели на счет (Models/MODLFOW (Run Simulation)/Run...) надо поставить галочку у пункта Check Model Data. Запустить счет, а потом в простом текстовом редакторе посмотреть содержимое файла CHECK.LIS, который появится в каталоге с моделью.
  2. Некоторые неочевидные ошибки проверка из предыдущего пункта к сожалению пропускает. Тогда придется после неудачного запуска модели на счет воспользоваться «тяжелой артиллерией» — открыть файл output.dat (опять же в простом текстовом редакторе). В нем хранится вся служебная информация о последнем запуске, в т.ч. и ошибки. Файл пишется последовательно по мере выполнения MODFLOW, поэтому указание на ошибку чаще всего надо искать в самом конце файла. 
Кстати, похожие инструменты доступны и в других препроцессорах. 

01/11/2012

Processing MODFLOW. Параметры.

К параметрам модели относятся:
  • Горизонтальный коэффициент фильтрации и Проводимость Horizontal Hydraulic Conductivity and Transmissivity.
    Коэффициент фильтрации должен быть задан для безнапорных и напорно/безнапорных слоев с переменной проводимостью (тип 1 и 3). Проводимость может быть задана для напорных и напорно/безнапорных слоев с постоянной проводимостью (тип 0 и 2).
    Горизонтальный коэффициент фильтрации в общем случае характеризует проницаемость вдоль модельных строк. Проницаемость вдоль модельных столбцов получается путем умножения этой величины на коэффициент горизонтальной анизотропии (anisotropy factor, задается в диалоговом окне Layer Property dialog box).
    Для безнапорного слоя проводимость считается как произведение коэффициента фильтрации на разность уровня воды и подошвы слоя (если в том же Layer Property dialog box явно не задана опция user-specified transmissivity).
    Важно понимать, что «внутре» MODLFOW всегда коэффициент фильтрации пересчитывает в проводимость. Просто в случае с безнапорным слоем проводимость уточняется на каждой итерации (точно не помню, но кажется этот момент тоже настраивается — можно пересчитывать проводимость не на каждом расчетном шаге).
  • Перетекание и вертикальный коэффициент фильтрации Vertical Leakance and Vertical Hydraulic Conductivity.
    Параметр перетекания расчитывается MODFLOW по формуле:
    VCONT=\frac{2}{\frac{m_k}{(k_z)_{k,i,j}}+\frac{m_{k+1}}{(k_{z})_{k+1,i,j}}}
    где:
    mk - мощность k-ого слоя;
    (kz)k,i,j - его вертикальный коэффициент фильтрации.
    Вы можете задать VCONT явно (Vertical Leakance), либо в виде коэффициента фильтрации (Vertical Hydraulic Conductivity). Казалось бы, зачем в здравом уме заниматься ручным расчетом перетекания, если можно не мучаться и задать коэффициент фильтрации — однако, есть ряд задач, где это необходимо.
  • Коэффициент вертикальной анизотропииVertical Anisotropy.
    Ну, тут все просто — это отношение горизонтального коэффициента фильтрации к вертикальному. Поддерживается версиями MODFLOW-2000 и старше. Сильно упрощает процесс решения обратных задач геофильтрации — подбирая проницаемость толщи не приходится синхронизировать значения коэффициентов фильтрации по разным осям.
  • Эффективная пористость Effective Porosity.
    Не буду напоминать определение эффективной пористости — она есть в любом учебнике. Отмечу лишь, что на решение задач геофильтрации этот параметр не влияет, в отличие от миграционных задач.
  • Упругая емкость (породы) Specific Storage, Упругая емкость пласта Storage Coefficient и Гравитационная емкость Specific Yield.
    Эти параметры используются при работе с нестационарными моделями. Упругая емкость пласта — это упругая емкость, умноженная на мощность пласта, и вы ее можете задать явно, либо предоставить выполнение операции умножения программе. Для безнапорных и напорно/безнапорных слоев надо еще задать гравитационную емкость Specific Yield.
За подробностями и определениями отправляю вас к литературе:
  1. Wen-Hsing Chiang: “Processing Modflow PRO”, April 6, 2006;
  2. Simcore Software: “Processing Modflow. An Integrated Modeling Environment for the Simulation of Groundwater Flow, Transport and Reactive Processes”, July 5, 2012;
  3. Шестаков В.М.: «Гидрогеодинамика», 1995 г.

20/12/2011

Как задавать граничные условия

В комментарии к моей недавней записи о схематизации граничных условий мне совершенно логично заметили, что я написал много слов по теме, но так и не рассказал, как задавать эти граничные условия. Исправляю допущенную, не скрою — умышленно, оплошность.
Граничное условие I-рода в MODFLOW может быть задано двумя способами. Первый способ: в массиве IBOUND (меню Grid/Cell Status) в соответствующие ячейки надо занести любое целое отрицательное значение (не обязательно -1, можно и -23 — разницы никакой), затем в массив Initial & Prescribed Hydraulic Head (в меню Parameters) в этих же ячейках надо задать величину напора в этих ячейках. Тут важно не допустить самую главную ошибку новичка — не задать безнапорном слое I-род с напором ниже отметки подошвы слоя. Второй способ: Time-Variant Specified-Head (MODFLOW/Flow Packages), где можно задать линейно меняющийся напор на границе. Напор, разумеется, может и не меняться. В принципе, почти любая граница III-рода может быть превращена в I-род, для этого достаточно задать очень большую проницаемость границы, но об этом позже.
Границы II-рода задаются так-же двумя способами: пакет Well (MODFLOW/Flow Packages), где отрицательными значениями задается постоянный отток, а положительными — приток; и пакет Recharge (MODFLOW/Flow Packages), с помощью которого задается инфильтрация (положительное значение) или испарение (отрицательное).
Для границ III-рода придумано наибольшее количество пакетов, которые постоянно пополняются по мере выхода новых версий MODFLOW. Все нижеперечисленные пакеты расположены в меню MODFLOW/Flow Packages. General Head Boundary — наиболее общий способ задания г.у. III-рода, там все очевидно — задается напор и проницаемость границы (величина, обратная общепринятому у нас фильтрационному сопротивлению). Drain — так задаются дрены и участки высачивания, принцип аналогичен GHB, но если уровень воды в ячейке с границей оказывается ниже уровня воды, заданного на дрене, то расход через границу становится нулевым (GHB в аналогичном случае станет питающей границей, Drain питающей границей быть не может). River — пакет реки позволяет учесть эффект возникновения режима дождевания при отрыве уровня в пласте от дна реки (для этого в дополнение к уровню на границе и ее проницаемости в этом пакете задается отметка дна реки). Evapotranspiration — пакет для задания испарения с поверхности грунтовых вод, тоже формально может быть отнесен к границам III-рода.

10/08/2011

Processing MODFLOW. Создание модельной сетки.

Итак, наконец-то у меня дошли руки до давно обещанного краткого (подчеркиваю!) руководства по геофильтрационному моделированию в программе Processing Modflow. Сразу предупрежу: у меня нет под рукой бесплатной версии этой программы (5.3.1), поэтому пункты меню я буду приводить на примере седьмой версии. Принципиальной разницы между ними нет, но стоит иметь в виду, когда будете сталкиваться с несоответствиями.

Начинается процесс с создания модели: File/New Model – настоятельно рекомендую создавать для каждой модели отдельную папку и назначать им (модели и папке) – «говорящие» названия.

Затем мы переходим к заданию сетки: Grid/Mesh Size. В открывшемся диалоговом окне предоставляется возможность задать следующие параметры:

  • количество слоев (Number of Layers) – тут главное не переборщить, т.к. добавить в случае чего новый слой достаточно легко, а вот удалить практически невозможно (правда, можно отключить, сделав все ячейки слоя неактивными);
  • толщину модели (Model Thickness) и отметку кровли верхнего слоя (Model Top Elevation) – опциональные параметры т.к. толщина модели все-равно определяется суммарной мощностью слоев, геометрия которых задается позже, где задается и рельеф кровли верхнего слоя;
  • количество ячеек по оси Y или количество строк (Number of Rows);
  • размеры модели по оси Y (Model Extent) – очевидно, что размеры ячеек по оси Y будут определяться как отношение Model Extent к Number of Rows;
  • количество ячеек по оси X или количество столбцов (Number of Columns);
  • размеры модели по оси X (Model Extent);
  • вертикальный масштаб (Vertical Exaggeration).

Переключившись во вкладку Coordinate System, мы можем задать координаты сетки и просмотрового окна. Важно заметить, что в качестве начала координат используется верхний левый угол модели. Кроме того, там же задается угол поворота сетки.

После нажатия на “Ok” мы попадаем в главное рабочее окно программы (мы его еще ни раз увидим, когда будем задавать параметры и граничные условия). Здесь мы можем подправить небольшие огрехи, допущенные на этапе задания сетки: подвинуть сетку, изменить угол поворота, изменить размеры ячеек. Для разбиения сетки в областях наибольшего интереса рекомендую сначала выйти из главного окна с сохранением, а потом зайти обратно в Grid/Mesh Size – в этом случае в меню по правому клику на ячейке появятся пункты, отвечающие за разбиение ячейки.

Кстати, уже на этом этапе появляется возможность подгрузить векторные и растровые подложки (Options/Maps…). PM достаточно привередливая программа в плане поддерживаемых форматов: векторный DXF, к примеру, она «кушает» только допотопных версий 2000 года, а растровый файл должен заведомо превышать размеры просмотрового окна. В общем, тут им много чего надо доработать.

20/07/2011

Processing MODFLOW. Введение.

Мои немногочисленные, но  постоянные читатели совершенно справедливо заметили, что я  немного обленился и не обновляю блог. Прошу прощения, немного забегался в последнее время — семья, дети и все такое. Тем не менее, забрасывать проект я не планирую. В подтверждение тому предлагаю вашему вниманию небольшую серию статей, описывающую одну из самых популярных (про крайней мере в академических кругах) программу для численного моделирования геофильтрации — Processing MODFLOW (PMWin).
В мои должностные обязанности в свое свое время входило обучение основам  моделирования новых сотрудников и  коллег из сторонних организаций. Многие из них в впоследствии вполне успешно продолжили деятельность на этом поприще, так что мою методу вполне можно считать состоявшейся, хотя,  несомненно, не лишенной недостатков. Комментарии, а  особенно конструктивная критика, категорически приветствуются.

Описание работы с препроцессором (о сути этого названия я писал раньше) у меня практически полностью совпадает со структурой программного меню, которая, в свою очередь, соответствует последовательности создания модели. За эту особенность я и люблю использовать эту программу в качестве учебного пособия. Собственно говоря, англоязычная инструкция к программе написана так-же – именно как последовательное описание пунктов меню.
Скачать бесплатную версию Processing Modflow - там, правда, доступна достаточно древняя версия 5.3.1, но она хотя бы бесплатная. Более новая 8-ка вообще неработоспособна (там в коде перепутаны идентификаторы полей ввода в некоторых диалогах, что приводит к совершенно невообразимым глюкам). Лично мне нравится семерка, но она платная. Я буду описывать именно седьмую версию – мне этот подход кажется наиболее универсальным. Если что-то будет непонятно, то я всегда рад общению.