Динамическое моделирование жидкостей с препятствиями

Я пытаюсь написать жидкостный динамический симулятор на холсте HTML5. Я нашел настоящий проклятый классный в интернетах, который всегда выглядит многообещающей отправной точкой, но они все основаны на ячейках и используют некоторую сумасшедшую математику.

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

Кто-нибудь знает о некоторых довольно простых уравнениях для моделирования жидкости, которые включают в себя препятствия любой ориентации? В качестве альтернативы, может кто-нибудь указать мне на математику, необходимую для того, чтобы взять один из приведенных выше примеров и добавить препятствия?

Я знаю, что этот вопрос граничит с чем-то, что я должен задать mathoverflow, но они, похоже, больше в теории. Извиняюсь, если я ошибаюсь. Я не знаю, с чего начать - если раньше кто-то работал над моделированием жидкости с произвольными препятствиями, я мог бы использовать некоторые указатели.

Точность занимает заднее сиденье для простоты здесь.

Спасибо!

Ответ 1

Динамика жидкости не является простой темой. Все, что "теория" им нравится на другом сайте, - это то, как это поле работает.

Самый простой пример потока жидкости 2D, несжимаемый, безвихревой, ламинарный поток. Я бы начал изучать это.

Но это не простое поле. Там нет книг "Научите себя вычислительной жидкости в течение десяти дней".

Ответ 2

Лучшая книга для ознакомления с графическим ориентированным моделированием жидкостей - это "Моделирование жидкостей для компьютерной графики" Роберта Бридсона (отказ от ответственности: он был моим советником по PhD). http://www.cs.ubc.ca/~rbridson/fluidbook/

В конечном счете, есть много математики, но есть также много примеров кода, чтобы прояснить вещи для менее наклонной математики.

Он охватывает, в основном, клеточный подход, о котором вы говорили. Другой основной альтернативой является "Сглаженная гидродинамика частиц" или SPH. У Маттиаса Мюллера есть несколько статей об этом, если вы хотите начать работу.

Ответ 3

Если вы не заботитесь о реальной точности, а просто хотите чего-то странного и крутого, я разработал очень простую симуляцию под давлением, которая обеспечивает очень быстрый интерактивный интерфейс в Javascript. Вы можете увидеть это здесь.

Ответ 4

Вот довольно приличный список всего, что вам нужно знать о динамике и симуляции жидкости: http://www.dgp.toronto.edu/~stam/reality/Research/pub.html

Также вы должны проверить этот сайт, где вы можете найти конкретный исходный код, написанный на Java, и перенесенный в Actionscript3. Это довольно документировано, поэтому не должно быть проблемой для перехода на Javascript.

Ответ 5

Я пробовал это и просто чтобы вы знали, что есть важная часть моделирования Fluid любого вида, называемого Projection, которая является вычислительно обширной даже на процессоре, которая требует многого, и вы вполне можете знать, что Javascript довольно медленный по многим причинам.