Я заинтересован в реализации движущейся сетки для задачи адвекции-диффузии. Методы Adaptive Moving Mesh Methods дают хороший пример того, как сделать это для уравнения Бюргера в 1D, используя конечно-разностную модель. Сможет ли кто-нибудь предложить работающий пример решения одномерного уравнения адвекции-диффузии с использованием конечно-разностного метода с подвижной сеткой?
Например, в консервативной форме уравнение имеет вид
где - скорость (функция пространства). Начальные условия могут указывать (например) виды потока, движущиеся слева направо (например, вдоль трубы), где начальное условие имеет резкий градиент.и ( 0 , х )
Как решить проблему равнораспределения для движущейся сетки (возможно, с помощью алгоритма Де Бура или другого подхода)? Я хочу реализовать это сам на Python, так что, если ваш ответ может быть легко переведен в код, тем лучше!
Старый вопрос до щедрости
- Каковы основные подходы для создания адаптивной сетки на основе свойств системы? Должен ли я использовать поток в качестве меры, где большие градиенты?
- Потому что я ищу итеративное решение. Я полагаю, что важно интерполировать от старой сетки к новой сетке, каков обычный подход?
- Мне было бы очень интересно увидеть проработанный пример для простой задачи (например, уравнения адвекции).
Немного предыстории о специфике проблемы. Я моделирую 1D связанную систему уравнений,
Система уравнений описывает проблему адвекции-диффузии двух видов, в которой третье уравнение связывается с двумя другими. Решение быстро меняется вблизи центра моей сетки, см. Ниже (это иллюстрация, а не расчеты),
Обратите внимание, что логарифмическая шкала на нижнем графике, решения для и меняются на порядки. На верхнем графике ( ) в центре есть разрыв. Я решаю вышеупомянутую систему с адаптивным ветром, где дискретизация может адаптироваться от доминирующего центра к ветру в зависимости от локального значения числа Пекле . Я решаю систему неявным образом с трапециевидной интеграцией во времени («Кранк-Николсон»).
Я заинтересован в применении адаптивной сетки к этой проблеме. Я думаю, что это важно, потому что в противном случае детали параметра формы пика ( ) могут быть потеряны. В отличие от этого вопроса , я хотел бы применить, надеюсь, простой алгоритм генерации сетки.
Поскольку это проблема адвекции-диффузии, можно представить себе схему адаптивной сетки на основе потоков от и на границах ячеек. Как это будет указывать, где значение быстро меняется. Пик также соответствует тому, где поток является наибольшим.
Ответы:
Адаптивная сетка - это сетка, которая автоматически группирует точки сетки в областях с большими градиентами поля потока; он использует решение свойств поля потока для определения местоположения точек сетки на физической плоскости. Адаптивная сетка развивается с шагом времени вместе с зависящим от времени решением управляющих уравнений поля потока, которое вычисляет переменные поля потока с шагом времени. В ходе решения точки сетки в физической плоскости движутся таким образом, чтобы «адаптироваться» к областям с большими градиентами поля потока. Следовательно, фактические точки сетки в физической плоскости постоянно находятся в движении во время решения поля потока и становятся стационарными только тогда, когда решение потока приближается к стационарному состоянию.
Сеточная адаптация используется как для стационарных, так и для нестационарных задач. В случае проблем с постоянным потоком сетка адаптируется после заданного количества итераций, и адаптация сетки останавливается в точке, когда решение сходится. В случае точных по времени решений движение и уточнение точки сетки выполняются в сочетании с точным по времени решением физической задачи. Это требует точного по времени соединения PDE физической проблемы и тех, которые описывают движение сетки или адаптацию сетки.
Для расчетов более новых конфигураций зависимость от руководящих принципов наилучшей практики для генерации сетки и предыдущего опыта оставляет дверь открытой для больших количественных ошибок. Методы адаптации сетки могут привести к существенному улучшению качества решения и обещают лучшие результаты, поскольку не существует ограничений, которые определяют предел разрешения сетки, который может быть достигнут.
Вместо того, чтобы вносить локальные топологические изменения в сетку и ее связность, r-адаптивные методы вносят локальные изменения в разрешение, перемещая местоположения фиксированного общего числа точек сетки.
Очень популярный метод адаптации сетки в методе конечных элементов, а не метод конечных объемов или метод конечных элементов. Это уменьшает ошибку в решении путем обогащения полинома интерполирующих функций с тем же порядком геометрических элементов. Здесь нет новой сетки, геометрии, которую нужно вычислить, и еще одним преимуществом этого метода является то, что он может лучше приближать нерегулярные или изогнутые границы с меньшей чувствительностью соотношение сторон и перекос. Из-за этого это очень известно в структурном применении.
Всего наилучшего!
[1] Фидковски Кшиштоф Дж. И Дармофал Дэвид Л. Обзор оценки ошибок на основе результатов и адаптации сетки в вычислительной динамике жидкости. AIAA Journal, 49: 673–694, 2011.
[2] Джон Тэннехилл Ричард Плетчер и Дейл Андерсон. Вычислительная механика жидкости и теплообмен. Тейлор и Фрэнсис, 1997.
[3] JD Jr. Андерсон. Вычислительная жидкость dyanamics: основы с приложениями. McGraw Hill Inc., 1995.
[4] Рой Кристофер Дж. Стратегии вождения адаптации сетки в CFD. На 47-м совещании AIAA по аэрокосмическим наукам, включая Форум «Новые горизонты» и Аэрокосмическую экспозицию, 2009 г.
[5] McRae Scott D. Алгоритмы и проблемы адаптации сетки переопределения. Вычислительные методы в прикладной механике и технике, 189: 1161–1182, 2000.
[6] Иваненко Сергей Александрович, Азаренок Борис Николаевич и Тан Тао. Адаптивный метод перераспределения сетки по схеме Годунова. Comm. математика наук, 1: 152–179.
[7] Ахмади Маджид и Гали Вахид С. Моделирование невязкого потока в каскадах с использованием метода конечных объемов с адаптацией раствора. В CASI 6-й Аэродинамический Симпозиум, 1997.
[8] Ясак Х. и Госман А.Д. Автоматический контроль разрешения для метода конечных объемов, часть 1: апостериорные оценки ошибок. Числовой теплообмен, Тейлор и Фрэнсис, 38: 237–256, 2000.
[9] Ясак Х., Госман А.Д. Автоматический контроль разрешения для метода конечных объемов, часть 2: адаптивное уточнение и укрупнение сетки. Числовой перенос тепла, Тейлор и Фрэнсис, 38: 257–271, 2000.
[10] Томпсон Дэвид С. Сони Бхарат К., Кумуллил Рой и Торнбург Хью. Решение адаптивных сеточных стратегий на основе точечного перераспределения. Вычислительные методы в прикладной механике и технике, 189: 1183–1204, 2000.
[11] Вендитти Дэвид А. и Дармофал Дэвид Л. Сопряженная оценка ошибок и адаптация сетки для функциональных выходов: приложение к квазиодномерному потоку. Журнал вычислительной физики, 164: 204–227, 2000.
[12] Баласубраманян Р. и Ньюман Дж. К. Сравнение адаптации сетки на основе сопряженных и основанных на характеристиках функциональных выходов. Международный журнал для численных методов в жидкостях, 53: 1541–1569, 2007.
[13] Хартманн Ральф. Оценка ошибок и сопряженная адаптация в аэродинамике. В Европейской конференции по вычислительной гидродинамике, 2006.
источник
Я искал хорошие ответы на это. Я работаю с многоуровневыми адаптивными сетками, где я использую какой-то критерий для уточнения. Люди, занимающиеся FEM, пользуются довольно дешевыми (в вычислительном отношении) строгими оценками ошибок, которые они используют в качестве критерия уточнения. Для нас, занимающихся FDM / FVM, мне не повезло найти такие оценки.
В этом контексте, если вы хотите быть строгими в отношении уточнения, то есть уточнения, основанного на некоторой оценке фактической ошибки, ваш (почти) единственный выбор - это Richardson Extrapolation. Это то, что, например, использовалось Бергером и Олигером (1984) для их блочно-структурированного гиперболического решателя AMR. Методология является общей в том смысле, что вы можете использовать экстраполяцию Ричардсона практически для любой проблемы. Единственная проблема заключается в том, что это дорого, особенно для временных проблем.
За исключением экстраполяции Ричардсона, все остальные критерии (по моему скромному мнению) являются специальными. Да, вы можете установить определенный порог для «количества интереса» и уточнить его. Вы могли бы использовать потоки или производные некоторого количества, чтобы предупредить некоторый большой градиент и использовать это. Или, если вы отслеживаете интерфейс, вы можете уточнить, насколько вы близки к интерфейсу. Все это очень дешево, конечно, но в них нет ничего строгого.
Что касается интерполяции между сетками, вам, как правило, нужно что-то настолько же точное, насколько вы решаете. Иногда возможно построить интерполяции, которые удовлетворяют определенным свойствам, например сохраняют массу или являются выпуклыми, таким образом, не вводят новые экстремумы. Я отметил, что это последнее свойство иногда очень важно для стабильности всей схемы.
источник
Если это действительно 1D, то вам, вероятно, здесь не понадобится адаптивная сетка, для такой простой задачи вы, возможно, сможете решить все, что вам нужно, с помощью статической сетки, с вычислительной мощностью современной рабочей станции. Но в процессе временной интеграции совершенно разумной стратегией является периодическое определение областей, в которых подчеркивается числовое разрешение, добавление точек сетки (и удаление точек сетки из перерешенных областей) и интерполяция в новую сетку. Но это не следует делать слишком часто, потому что интерполяция может быть дорогостоящей, и это добавит численную ошибку в общий расчет.
источник