Showing posts with label Modflow. Show all posts
Showing posts with label Modflow. Show all posts

08/05/2012

GeoSolid3D

Кажется, в полку бесплатных препроцессоров к MODFLOW прибыло: GeoSolid3D — блог разработчика, результаты трудов которого можно скачать с сайта geosolid3d.sourceforge.net. Будем следить за развитием проекта, надеюсь у автора хватит сил и терпения довести программу до рабочего состояния.

05/04/2012

Сертификат соответствия для Modflow

Есть у наших доблестных экспертов и представителей СРО такой пунктик: требовать от гидрогеологов сертификат соответствия и лицензию на расчетные программы. Вообще, согласно нашему законодательству, сертификация программных средств является добровольной и экспертам рекомендовано интересоваться наличием этих самых сертификатов соответствия. Насколько я помню, из всей массы программ для геофильтрационного моделирования сертификат есть только у Geolink ModTech, да и то не факт, что он до сих пор действителен. Modflow, являясь некоммерческой разработкой Геологической Службы США, такой сертификации не проходил. Кроме того, почему-то сертифицируют у нас не сам расчетный модуль (что было бы логично), а т.н. пре- и постпроцессоры. Вот, две полезные ссылки по теме:
  1. http://csert.ru/doc/r3.htm
  2. http://csert.ru/doc/letter.htm
Так что же делать, если эксперт требует этот несчастный сертификат. Первым делом — насторожиться, поскольку по моему личному опыту такой вопрос чаще всего возникает в случаях, когда эксперту поручено «зарезать» отчет. В качестве отписки могу лишь посоветовать отправить эксперту нижеследующий текст — иногда срабатывает. А вот что делать, если в уставе СРО прописано обязательное использование исключительно сертифицированных программных средств, я не знаю.
Справка об используемых программных средствах
В настоящее время наиболее разработанными и широко используемыми во всем мире для решения задач связанных с моделированием движения подземных вод являются программа MODFLOW и связанные с ней программы MODPATH, MT3DMS,PEST и некоторые другие. Начало разработки этого пакета программ положено более 20 лет и в настоящее время он является наиболее оттестированным и надежным. MODFLOW и связанные с ней программы фактически являются мировым стандартом для решения задач фильтрации и массопереноса. Большая часть задач, связанных с поземной гидросферой, решается на основе использования этих моделей. При порождении международных экспертиз часто требованием экспертов является именно использование этих программ.
В США MT3D и MODFLOW рекомендуются к использованию Агентством окружающей среды и Геологической службой. На сайтах этих организаций представлены тестовые примеры, подтверждающие правильность результатов расчетов, выполненных с помощью MODFLOW и связанных с ней программ.
Согласно Федеральному закону от 27 декабря 2002 г. N 184-ФЗ «О техническом регулировании»: сертификация делится на обязательную и добровольную. Программные средства для гидрогеологических расчетов не включены «Перечень продукции, подлежащей обязательной сертификации». Таким образом, сертификация таких программ является добровольной.
В России MODFLOW и связанные с ней программы широко применяются в таких уважаемых организациях как: ГИДЭК, МГУ, СПГУ, НИИ ВОДГЕО, Гидропроект и многих других. Для подготовки данных и визуализации результатов расчетов при использовании MODFLOW и связанных с ней программ в нашей организации используется следующее программное обеспечение:
  • PMWIN 5.1 — распространяется бесплатно.
  • ModelMuse 2.13.0.0 — распространяется бесплатно.
Что же касается лицензий на дорогостоящие программные комплексы типа PMWIN 8.0, Visual MODFLOW, GMS и т.п., то все что я могу посоветовать — это купить их. Других вариантов у меня нет.

Важное дополнение! На сайте сертификационного центра выложен список сертифицированных программ: http://csert.ru/list.php. Вот цитата из него:
Обозначение программной продукции Название программной продукции № сертификата соответствия и срок его действия. Нормативные документы, на соответствие которым выдан сертификат соответствия
Подкласс 2.41. Защита от опасных геофизических воздействий.
Программа PMWIN.
Версия 5.3
Геофильтрационные и геомиграционные расчеты на основе численных методов конечных элементов. РОСС RU.СП15.Н00551
(28.11.2012 – 27.11.2014)
СНиП 2.04.02-84*, СНиП 22-02-2003, СП 116.13330.2012 (СНиП 22-02-2003), СНиП 2.06.15-85
Таким образом, у одной из версий PMWIN (древней, но к счастью бесплатной) таки есть сертификат. Осталось раздобыть где-нибудь его копию, дабы от экспертов отвязаться раз и навсегда.

01/02/2012

И еще раз об осушенных блоках модели

Возвращаясь к напечатанному. Довольно типичная ситуация: «стена в грунте», внутри стены задан скважинный дренаж. Откачивающие скважины заданы как граничное условие второго рода. Запускаем расчет и получаем вот такую картину:
Такое впечатление, что из шести скважин работают только верхние две. Самое забавное, что так оно и есть, но в чем же дело?
Вот как вся эта ситуация это выглядит при итеративном расчете:
  1. Работает скважина, снижается уровень воды.
  2. Вдруг уровень стал ниже подошвы слоя — отключили ячейку со скважиной.
  3. О, скважина исчезла (ячейка то с ней отключена) — уровень воды начинается повышаться.
А проблема в том, что отключенная из-за осушения ячейка не включится, а следовательно и скважина не заработает.
Как бороться с такой напастью. Да очень просто, почти все рецепты я уже описал в своей предыдущей записи на эту тему, к которым можно добавить еще один, а именно: задать скважины не расходом, а напором (понижением) — кстати, вовсе не обязательно использовать для этого первый род, можно попытаться учесть сопротивление прискважинной зоны и задать скважины третьим родом (пакетами General Head или даже лучше Drain). А расход скважин можно получить уже из Water Budget.


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-рода.

18/12/2011

Осушающиеся блоки модели

MODFLOW очень «не любит» маломощные безнапорные горизонты. Когда уровень воды в ячейке модели становится очень близок к отметке ее подошвы, MODFLOW ее делает неактивной и больше в расчете не использует. Даже если вокруг потоп и все окружающие эту ячейку блоки затоплены «под завязку», MODFLOW ее не включит в расчет и не обводнит. Следствием такой особенности являются проблемы с точностью и сходимостью расчета. Если отключенных ячеек оказывается относительно много, то модель почти гарантированно не сойдется при умолчальных настройках расчетных модулей (Solvers).
Для борьбы с этой напастью придумано масса способов:
  • Можно поиграться с настройками солверов. Особенно помогает уменьшить Damping Parameter в настройках модуля PCG2.
  • Иногда помогает просто сменить солвер. Неплохо сходится солвер GMG, но он поддерживает только MODFLOW-2000 и не все препроцессоры с ним совместимы.
  • Полезно воспользоваться пакетом «обводнение» (Wetting Capability), который специально создан для борьбы с этим эффектом. К сожалению, само по себе использование этого пакета может привести к проблемам со сходимостью. За что боролись, как говорится. Хотя иногда он очень помогает, особенно при нестационарных расчетах процессов обводнения изначально сухих горизонтов.
  • Самый радикальный способ — отказаться от расчета в безнапорной постановке и считать все слои напорными. В этом случае MODFLOW не будет отключать никакие сухие ячейки, в силу того, что проводимость в них не зависит от уровня воды. Такой подход приводит к заведомо большим расходам потока, но зато позволяет быстро получить хоть какой-нибудь результат. К тому же, при расчете тех же дренажей, небольшое увеличение расхода никакой беды не представляет, создавая некий запас прочности (главное помнить, что таких «запасов» часто оказывается не один и не два и в сумме они нарисуют такой  «запасище», что проектанты на стенку полезут).

15/12/2011

Схематизация граничных условий

Хочу похвастаться: у моего небольшого бложика появилась своя небольшая, но верная аудитория. И что особенно приятно – аудитория достаточно активная. Пишут, задают вопросы. Это действительно приятно осознавать, что твой труд не бесполезен. И чаще всего вопросы касаются схематизации граничных условий. Поэтому я решил попробовать ответить на некоторые из них, дабы, как это говорится, два раза не вставать.
Геофильтрационные граничные условия, как известно, бывают трех родов: первый, второй и третий. В.М.Шестаков выделял еще границу IV-рода для контакта пород с разной проницаемостью, но это отдельная тема.
I род - границы с заданной функцией напора от времени H(t). Частный случай — граница с постоянным напором H=const. Чаще всего г.у. I-рода применяется для задания внешних границ, про которые достоверно известно, что уровень на них не зависит от происходящего внутри моделируемой области (либо этой зависимостью можно пренебречь). Таким образом, важно вынести такую границу первого рода за пределы радиуса распространения прогнозируемого возмущения подземной гидросферы — иначе есть большой риск получения весьма недостоверных результатов. Границей I-рода может выступать река, достоверно обладающая хорошей гидравлической связью с моделируемым водоносным горизонтом (т.е. подрусловые отложения либо отсутствуют, либо высокопроницаемы). Так же с помощью г.у.I-рода принято задавать скважины с заданным понижением и участки высачивания из водоносного слоя (но тут надо следить за тем, чтоб родник вдруг не стал питающей границей для горизонта, который в него может только разгружаться). Применительно к MODFLOW эта проблема решается путем задания родника с помощью пакета DRAIN с очень большой проницаемостью. Если же участок высачивания является как-раз питающей границей, то тогда его надо задавать как границу II-рода.
II род - границы с заданной функцией расхода от времени Q(t). Три наиболее распространенных частных случая: граница с постоянным расходом Q=const, непроницаемая граница с расходом Q=0 и верхняя граница с заданной величиной инфильтрационного питания. Граница с постоянным расходом - это, очевидно, скважины с известным дебитом; участок концентрированного поступления поверхностного стока в моделируемый горизонт (как-раз тот случай, описанный в предыдущем пункте).
III род - границы с заданной линейной зависимостью расхода от напора Q(t)=H(t)*c. Наиболее распространенный в природе тип границ. Разумеется, при моделировании его задавать приходится тоже очень часто. Дрены; удаленные границы первого рода; родники, разгружающиеся через слабопроницаемый покровный слой; реки со слабопроницаемыми подрусловыми отложениями; озера; хвостохранилища; водохранилища - все эти случаи описываются граничным условием третьего рода.
Заметка писалась немного впопыхах, поэтому если у вас есть замечания и дополнения, то буду рад их услышать.

04/12/2011

Несколько интересных ссылок

A groundwater model is a hypothesis; A hypothesis can be disproved by never proven. Как-раз то, что я всегда ощущал на уровне понимания, но так и не додумался сформулировать. Геофильтрационная модель - не истина в последней инстанции, а всего-лишь предположение ее создателя о том, как все там под землей устроено. И это предположение нельзя доказать - только опровергнуть.
“The word model has so many meanings and is so overused that it is sometimes difficult to know what one is referring to. For this discussion, we define a model as a representation of a real system or process…We define a conceptual model as a hypothesis for how a system or process operates. The idea can be expressed quantitatively as a mathematical model.”


Sharing MODFLOW Models on ArcGIS Online. Что творят, черти. Кажется, действительно пора изучать ArcGIS. А то я со своей мапинфой совсем от жизни отстану.
Groundwater simulation models are mathematical models that help us understand and predict how water behaves in subsurface aquifers. Groundwater models, such as MODFLOW, are commonly used in the industry to predict different aspects of groundwater management including water availability, effects of pumping, contaminant transport, and more.

One of the challenges facing organizations is the communication of information regarding groundwater systems from professional modelers to others within the organization or to the public. Usually, visualization of groundwater models is achieved with specialized software packages. The model input and output files are a set of text or binary files that are difficult to interpret and map without specialized tools.

The workflow presented enables organizations to quickly create maps and GIS layers of MODFLOW models and to publish those on ArcGIS Online. By posting on ArcGIS Online you can share MODFLOW inputs and outputs with anyone within your organization, or share the model results with the public.

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-ка вообще неработоспособна (там в коде перепутаны идентификаторы полей ввода в некоторых диалогах, что приводит к совершенно невообразимым глюкам). Лично мне нравится семерка, но она платная. Я буду описывать именно седьмую версию – мне этот подход кажется наиболее универсальным. Если что-то будет непонятно, то я всегда рад общению.

05/07/2011

Профильные модели

Все-таки есть небольшая польза от тупого просиживания штанов в офисе. Придумал способ, как избежать длительного и мучительного итеративного рисования свободной поверхности на профильных моделях в MODFLOW.
Нужно в качестве подошвы ячеек задать координату y их нижней границы. Следовательно, когда уровень в блоке становится ниже подошвы, то ячейка сама отключается, что нам и нужно. Не стоит забывать о сохранении единичной мощности пласта.
Остаются проблемы с инфильтрацией: не совсем понятно, куда ее задать (на всю «площадь» некорректно, да и приводит к тому же к необходимости итеративного же ее уточнения), а при неизвестной верхней границе — невозможно задать на ней инфильтрацию.
Ну и обязательно надо включить модуль wetting capability, что традиционно приводит к проблемам со сходимостью.