Какой самый простой метод решения несжимаемых уравнений Навье-Стокса?


9

Под «самым простым» я подразумеваю самое простое для изучения и реализации с нуля. Я надеюсь, что на мой вопрос можно более или менее ответить.


1
В какой геометрии?
Рис Улерих

@Rhys Ulerich Я думаю, самое простое?
Джеймс

@ user2697246 Бесконечный домен с одинаковым начальным условием? Trivial. Это не должно было быть пренебрежительным вопросом.
Рис Улерих

1
Для начала работы с NS моделирования, проверить это, lorenabarba.com/blog/cfd-python-12-steps-to-navier-stokes
Subodh

Ответы:


10

В двух измерениях формулировку скорости-завихренности проще всего реализовать, потому что переменные расположены совместно, но граничные условия могут быть сложными, и это менее прямая формулировка проблемы. Для примитивных формулировок переменных, разностная методика разностных сеток Харлоу и Уэлча (1965) - отличное место для начала.


2
Очень четкое описание этого алгоритма с граничными условиями дает Позрикидис .
Джон Стоки

10

Вы можете найти полностью документированную реализацию очень простого, но достаточно эффективного метода решения (метод расщепления Хорина) здесь .

Для выбора других популярных методов, посмотрите на Главу 21 в этой книге .

Отказ от ответственности: я (со) автор как демонстрационной программы, так и книги. Книгу можно скачать бесплатно.


5

Самое простое всегда будет зависеть от ваших конкретных интересов и потребностей. Я согласен с Андерсом в том, что для несжимаемого потока в областях с простой геометрией вам будет трудно превзойти метод проекции (то есть метод расщепления Хорина), если вы отдадите предпочтение простоте использования и точности.

Чтобы вдаваться в подробности, метод вопроса введен в [1]. Более современный приближенный метод проекции второго порядка хорошо объяснен в [2]. Мотивация состоит в том, что решение полных несжимаемых уравнений Навье-Стокса требует решения для поля скоростей и давления одновременно, и получающаяся в результате линейная система довольно плохо обусловлена. Метод проекции устраняет эту проблему путем разделения каждого временного шага на решение по скорости, используя давление с предыдущего временного шага, с последующим обновлением давления, которое, по существу, обеспечивает, чтобы поле скорости оставалось несжимаемым.

Для этого вам понадобятся несколько других компонентов, но все они могут быть легко изучены и запрограммированы.

  1. Для решения проблемы давления, если вы заинтересованы в системах с постоянной плотностью, вам нужно решить уравнение Пуассона. Есть, конечно, десятки алгоритмов для решения этой проблемы, но на сегодняшний день самым простым для реализации - если, возможно, не до конца - является алгоритм сопряженного градиента (CG). Одно из лучших объяснений CG, которое я читал, было написано Джонатаном Шевчуком и может быть найдено здесь . Тем не менее, вам не обязательно читать всю статью, чтобы иметь возможность просто реализовать алгоритм.

  2. Вам понадобится другой алгоритм для обработки адвекции в Навье-Стоксе. В нескольких измерениях программирование надежных реализаций наиболее гибких методов, например Годунова, может быть довольно сложным. Однако, если вас интересуют потоки с относительно небольшим числом Рейнольдса (т. Е. С незначительной вязкостью), один из по существу не колебательных (ENO) методов прекрасно подходит для удобства использования. Отличный обзор теории и реализации приведен в [3].

  3. Вам нужно будет обработать вязкий термин, используя неявный метод, обычно Crank-Nicolson. Это подробно объясняется в работах по методу проекции, и вы можете легко использовать CG для матричного решения при условии, что вязкость постоянна.

[1] А.Я. Чорин, Численное решение уравнений Навье-Стокса , J. Math. Comput., 22 (1968), с. 745-762

[2] А. Альмгрен, Дж. Б. Белл и В. Шимчак . Численный метод для несжимаемых уравнений Навье-Стокса, основанный на приближенной проекции , SIAM J. Sci. Вычи. 17 (1996), с. 258-369.

[3] С. Ошер, Р. Федкив, Методы установки уровня и динамические неявные поверхности . Спрингер-Верлаг Нью-Йорк. Прикладные математические науки, 153, 2002


К этому хорошему ответу позвольте мне добавить, что обновленное понимание природы давления в (дискретных по времени) методах проекции приведено в: J.-G. Liu, J. Liu, RL Pego, Устойчивое и точное приближение давления для нестационарного несжимаемого вязкого потока, J. ​​Comp. Phys. 229 (2010) 3428-3453.
Боб Пего

4

В последние годы в компьютерной графике и играх наблюдается огромный интерес к симуляции жидкости. Вот отличная статья от Jos Stam, в которой обсуждается применение решателя для приложений реального времени. Он поставляется с очень простым для понимания исходным кодом. Я не знаю, насколько это точно, но это может быть то, что вы ищете.


1

Другой действительно хороший и простой метод - использование клеточных автоматов для дискретизации. Есть много таких моделей, в том числе LBA, FHP и многое другое. Они действительно хороши, так как они могут обеспечить симуляцию в реальном времени на современных компьютерах, а также могут быть паралеллизированы и запущены на графических процессорах. У них также есть некоторые недостатки, и результаты сильно зависят от формы применяемой решетки. Квадратная решетка недостаточна, потому что ей не хватает свободы вращения, то есть вихри фон Каармана будут квадратной формы, что нехорошо :)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.