Showing posts with label моделирование. Show all posts
Showing posts with label моделирование. Show all posts

01/02/2012

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

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


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. Наиболее распространенный в природе тип границ. Разумеется, при моделировании его задавать приходится тоже очень часто. Дрены; удаленные границы первого рода; родники, разгружающиеся через слабопроницаемый покровный слой; реки со слабопроницаемыми подрусловыми отложениями; озера; хвостохранилища; водохранилища - все эти случаи описываются граничным условием третьего рода.
Заметка писалась немного впопыхах, поэтому если у вас есть замечания и дополнения, то буду рад их услышать.

26/09/2011

Как составить план создания геофильтрационной модели

How to write a plan for a numerical groundwater model

Хороший план, жаль только, что на английском. Надо будет перевести.

23/08/2011

Новый способ решения обратной задачи

A new way to estimate hydraulic conductivity.
Для тех, у кого проблемы с языком вероятного противника, в двух словах. Суть метода заключается в том, что на модель накладывается дополнительная элементная сетка, триангулируется, значение коэффициента фильтрации для каждого треугольника усредняется по величинам в вершинах. Итеративно меняем величину Кф в вершинах до тех пор, пока эти изменения не перестанут влиять на невязку.
Изящно, но лично у меня есть большие сомнения в сходимости.

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/06/2011

Есть еще порох

Подготовка текст типового отчета о прогнозе влиянии проектируемого строительства на подземные воды с помощью гидрогеологического моделирования  занимает не более 4 часов непрерывной работы. Еще примерно столько же уходит на рисунки.
Я бы и рад говорить заказчикам, что сделаю все за три дня, да вот само моделирование может отнять как день, так и пару недель. Причём, не угадаешь заранее нифига. Обычно, чем очевиднее граничные условия, тем быстрее решается обратная задача, но последние мои несколько объектов здорово опровергли это наблюдение.