How to write a plan for a numerical groundwater model
Хороший план, жаль только, что на английском. Надо будет перевести.
Прикладная гидрогеология, геофильтрационное моделирование, инженерная геология. Блог специалиста по гидрогеологическому моделированию Копылова Александра.
How to write a plan for a numerical groundwater model
Хороший план, жаль только, что на английском. Надо будет перевести.
A new way to estimate hydraulic conductivity.
Для тех, у кого проблемы с языком вероятного противника, в двух словах. Суть метода заключается в том, что на модель накладывается дополнительная элементная сетка, триангулируется, значение коэффициента фильтрации для каждого треугольника усредняется по величинам в вершинах. Итеративно меняем величину Кф в вершинах до тех пор, пока эти изменения не перестанут влиять на невязку.
Изящно, но лично у меня есть большие сомнения в сходимости.
Итак, наконец-то у меня дошли руки до давно обещанного краткого (подчеркиваю!) руководства по геофильтрационному моделированию в программе Processing Modflow. Сразу предупрежу: у меня нет под рукой бесплатной версии этой программы (5.3.1), поэтому пункты меню я буду приводить на примере седьмой версии. Принципиальной разницы между ними нет, но стоит иметь в виду, когда будете сталкиваться с несоответствиями.
Начинается процесс с создания модели: File/New Model – настоятельно рекомендую создавать для каждой модели отдельную папку и назначать им (модели и папке) – «говорящие» названия.
Затем мы переходим к заданию сетки: Grid/Mesh Size. В открывшемся диалоговом окне предоставляется возможность задать следующие параметры:
Переключившись во вкладку Coordinate System, мы можем задать координаты сетки и просмотрового окна. Важно заметить, что в качестве начала координат используется верхний левый угол модели. Кроме того, там же задается угол поворота сетки.
После нажатия на “Ok” мы попадаем в главное рабочее окно программы (мы его еще ни раз увидим, когда будем задавать параметры и граничные условия). Здесь мы можем подправить небольшие огрехи, допущенные на этапе задания сетки: подвинуть сетку, изменить угол поворота, изменить размеры ячеек. Для разбиения сетки в областях наибольшего интереса рекомендую сначала выйти из главного окна с сохранением, а потом зайти обратно в Grid/Mesh Size – в этом случае в меню по правому клику на ячейке появятся пункты, отвечающие за разбиение ячейки.
Кстати, уже на этом этапе появляется возможность подгрузить векторные и растровые подложки (Options/Maps…). PM достаточно привередливая программа в плане поддерживаемых форматов: векторный DXF, к примеру, она «кушает» только допотопных версий 2000 года, а растровый файл должен заведомо превышать размеры просмотрового окна. В общем, тут им много чего надо доработать.
На протяжении моей без малого (полгода до юбилея осталось, кстати) десятилетней карьеры гидрогеолога, я бесчисленное количество раз отвечал на разной степени идиотизма вопросы экспертов и заказчиков. Сейчас я сам выступаю в качестве въедливого заказчика и пишу злобные замечания на отчеты приснопамятного Гидэка. Получаю ни с чем не сравнимое удовольствие. Вот такая я какашка, как говорилось в одном известном анекдоте.
Если возникла потребность в имитации бурной деятельности, то можно сделать так: настаиваем PCG solver на 500 outer и 500 inner итераций, критерий сходимости — 1e-5. Ну и модельку в нестационар на пять сотен шагов по времени. Все, комп на пару часов будет занят, можно халявить.
А еще можно PEST запустить с этой же моделькой, но тут можно и на недельку «отдохнуть».
Все-таки есть небольшая польза от тупого просиживания штанов в офисе. Придумал способ, как избежать длительного и мучительного итеративного рисования свободной поверхности на профильных моделях в MODFLOW.
Нужно в качестве подошвы ячеек задать координату y их нижней границы. Следовательно, когда уровень в блоке становится ниже подошвы, то ячейка сама отключается, что нам и нужно. Не стоит забывать о сохранении единичной мощности пласта.
Остаются проблемы с инфильтрацией: не совсем понятно, куда ее задать (на всю «площадь» некорректно, да и приводит к тому же к необходимости итеративного же ее уточнения), а при неизвестной верхней границе — невозможно задать на ней инфильтрацию.
Ну и обязательно надо включить модуль wetting capability, что традиционно приводит к проблемам со сходимостью.