Я работаю над двумерным симулятором жидкости с использованием вихревых частиц / «вортонов», как описано в Fluid Simulation для видеоигр . Я думаю, что это то же самое, что и «метод дискретного вихря». По сути, вы представляете жидкость с набором частиц с определенной завихренностью и вычисляете скорость жидкости в точке, суммируя индуцированные скорости всех вортонов, используя закон Био-Савара (например: , гдеp2-p1- разница в положении между точкой выборки и вортоном,w- завихренность (векторная величина в 3D), аr- евклидово расстояние между вортоном и точкой выборки) ,
Я пытаюсь ввести коробку в жидкость и заставить ее двигаться вперед и назад и влиять на жидкость. Это означает, что необходимо учитывать граничные условия без проскальзывания и сквозные условия для коробки. (То есть относительная скорость жидкости равна 0 прямо на границе бокса).
Прямо сейчас я измеряю относительную скорость коробки и жидкости в 80 точках по периметру коробки. У меня также есть 80 вортонов, расположенных по периметру ящика, но немного смещенных наружу. Я формирую большую матрицу и решаю для значений завихренности вортоны, чтобы противодействовать скорости жидкости в точках выборки (используя линейные наименьшие квадраты).
Это почти работает, но я заметил, что решение, которое я получаю, сильно зависит от точного расположения точек выборки и вортонов.
Иногда я получаю чередующиеся структуры вортонов, которые вращаются в разных направлениях (синие точки - это вортоны, вращающиеся против часовой стрелки, а красные точки - вортоны, вращающиеся по часовой стрелке):
В других случаях я получаю все вортоны на левой стороне коробки, вращающиеся в одну сторону, и все вортоны на другой, вращающиеся в другую сторону, как на этом рисунке:
Я думаю, что вторая картинка - это то, что я на самом деле хочу. Я также думаю, что два разных решения подразумевают, что система уравнений, которую я использую, слишком недооценена. Добавление дополнительных точек выборки иногда помогает, иногда нет.
Могу ли я добавить еще какие-нибудь граничные условия, которые бы помогли мне получить результаты, к которым я стремлюсь? Интуитивно я не делаю ничего, чтобы учесть, насколько сильно жидкость нарушается на некотором заданном расстоянии от коробки. Я думаю, может быть, я мог бы добавить в условиях для границы пограничного слоя. Но я не уверен, как именно это будет выглядеть.
В качестве альтернативы, есть ли какая-нибудь соответствующая литература, на которую я мог бы обратить внимание, как симуляторы жидкости на основе вихревых частиц справляются с такими граничными условиями?