Динамическое моделирование жидкостей с препятствиями
Я пытаюсь написать жидкостный динамический симулятор на холсте 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 довольно медленный по многим причинам.