Pracuję nad symulacją płynów 2D przy użyciu cząstek wirów / „wirów”, jak opisano w Fluid Simulation for Games . Myślę, że są to te same rzeczy, co „dyskretna metoda wirowa”. Zasadniczo reprezentujesz płyn z kolekcją cząstek o określonej wirowości i obliczasz prędkość płynu w jednym punkcie, sumując indukowane prędkości wszystkich wortonów, stosując prawo Biota – Savarta (np .: , gdziep2-p1jest różnicą położenia między punktem próbkowania a wortonem,wjest wirowością (ilość wektora w 3D), zaśrjest odległością euklidesową między vortonem i punktem próbkowania) .
Próbuję wprowadzić pudełko do płynu i pozwolić mu poruszać się tam iz powrotem i wpływać na płyn. Co oznacza wzięcie pod uwagę warunków granicznych braku poślizgu i przejścia przez skrzynkę. (To znaczy, mając względną prędkość płynu na granicy pola równą 0).
W tej chwili próbuję względnej prędkości pudełka i płynu w 80 punktach na obwodzie pudełka. Mam również 80 wortonów umieszczonych blisko obwodu pudełka, ale nieco przesuniętych na zewnątrz. Tworzę dużą macierz i rozwiązuję wartości wirowości, których potrzebują wortony, aby przeciwdziałać prędkości płynu w punktach próbki (używając liniowych najmniejszych kwadratów).
To prawie działa, ale zauważyłem, że rozwiązanie, które otrzymuję, zależy w dużej mierze od dokładnego układu punktów próbkowania i wortonów.
Czasami dostaję naprzemienne wzory wirów, które wirują w różnych kierunkach (niebieskie kropki to wiry wirujące przeciwnie do ruchu wskazówek zegara, a czerwone kropki wirują zgodnie z ruchem wskazówek zegara):
Innym razem wszystkie wiry po lewej stronie pudełka obracają się w jedną stronę, a wszystkie wiry po drugiej obracają się w drugą stronę, jak na tym zdjęciu:
Myślę, że drugie zdjęcie jest tym, czego naprawdę chcę. Myślę też, że dwa różne rozwiązania sugerują, że układ równań, z których korzystam, jest zbyt ograniczony. Dodanie dodatkowych punktów próbnych czasami pomaga, a czasem nie.
Czy mogę dodać inne warunki brzegowe, które pomogłyby mi uzyskać wyniki, których szukam? Intuicyjnie nie robię nic, aby wziąć pod uwagę, jak silnie zakłócony jest płyn w pewnej odległości od pudełka. Myślę, że może mógłbym dodać warunki dla limitu warstwy granicznej. Ale nie jestem pewien, jak by to wyglądało.
Alternatywnie, czy jest jakaś istotna literatura, na którą mógłbym spojrzeć, w jaki sposób płynne simy wirowe oparte na cząsteczkach wiru radzą sobie z tego rodzaju warunkami brzegowymi?