Solwer w SOLIDWORKS Flow Simulation korzysta z siatki hexcore mesh (siatki składającej się jedynie z sześcianów). Czym ona jest oraz jak użytkownik może mieć wpływ na jej właściwości?
Pierwszą informacją, z której należy zdawać sobie sprawę, rozmawiając o siatce hexcore mesh, jest to, że idealnym elementem siatki do metody objętości skończonych jest sześcian. Taka bryła nie posiada skośności, a wszystkie krawędzie takiego elementu mają dokładnie tą samą długość (patrz Rysunek1).
Rys. 1 Pożądany kształt elementu siatki„Ale dlaczego tak jest? Wynika to stąd, że gdy dwa kwadraty o takim samym rozmiarze zostaną połączone, wszystkie ich powierzchnie są ortogonalne do wektora łączącego środki tych kwadratów (patrz Rysunek 2). Eliminuje to potrzebę wprowadzenia nieortogonalnej korekty, która występuje w równaniach jako człon źródłowy i spowalnia zbieżność algorytmu. Stąd brak konieczności korzystania z tej korekty poprawia zbieżność kodu.
Rys. 2 wizualizacja kąta prostego pomiędzy wektorem łączącym środki komórek, a ścianą znajdującą się pomiędzy nimiIdąc tym samym tokiem myślenia, można dojść do wniosku, że idealne prostopadłościany są lepszą alternatywą dla sześcianów. Wynika to z faktu, że wszystkie ściany będą także ortogonalne do wektorów łączących środki komórek, a jednocześnie takie elementy siatki mogą wydajniej wypełnić przestrzeń, ponieważ będzie ich po prostu mniej (patrz Rysunek 3). Jednakże należy zdawać sobie sprawę, że takie podejście jest jedynie słuszne w momencie, w którym znany jest kierunek przepływu i gradientów.
Rys. 3 Warstwa przyścienna stworzona z prostopadłościanówZ dala od ściany, gdzie kierunek przepływu jest niepewny, użytkownik mógłby zorientować prostopadłościany w złym kierunku, co mogłoby wprowadzić problemy związane z liczbą Curranta oraz ze współczynnikiem kształtu (Aspect Ratio). Idealna siatka składająca się z sześcianów tej samej wielkości zapewnia równą rozdzielczość w każdym kierunku i pozwala uniknąć konieczności korekcji nieortogonalnej (patrz Rysunek 4).
Rys. 4 Przepływ płynu z dala od geometriiTrzeba natomiast cały czas pamiętać o celu, który przyświeca przy siatkowaniu. Użytkownik chce za każdym razem mieć jak najmniejszą liczbę elementów siatki, ponieważ wpływa ona bezpośrednio na czas trwania obliczeń symulacji.
Dlatego też idealnym rozwiązaniem jest posiadanie mniejszych elementów siatki blisko geometrii, gdzie wartości gradientów są duże oraz wymagane jest poznanie dokładnych wartości parametrów przepływu oraz posiadanie większych elementów siatki z dala od geometrii, gdzie gradienty są znacznie mniejsze i użytkownik nie musi znać dokładnych wartości parametrów przepływu (patrz Rysunek 5). Ale jak to uzyskać, skoro idealnymi kształtami komórek siatki dla metody objętości skończonych są sześciany o identycznych wymiarach?
Rys. 5 Zmiana wielkości elementów siatkiAby przejść między rozmiarami, stosuje się metodę hexcore transition, która polega na podwojeniu wymiarów sześcianów przy każdej zmianie rozmiaru. Można to rozumieć jako współczynnik wzrostu wynoszący wartość 2 (patrz Rysunek 6).
Rys. 6 Współczynnik wzrostu dla siatek sześciennych jest równy 2Wartość współczynnika wzrostu dla sześcianów różni się od współczynnika wzrostu dla innych elementów siatki, ponieważ jest znacznie większa. Dla elementów tetraedrycznych, bądź polihedralnych wartość tego współczynnika jest rzędu 1.1, bądź 1.2 itd. (patrz Rysunek 7). Takie podejście pozwala na bezpośrednie łączenie idealnych sześcianów bez zmiany ich kształtu, w wyniku czego powstaje siatka składająca się jedynie z sześcianów (patrz Rysunek 8).
Rys. 7 Współczynnik wzrostu dla siatek tetraedralnych oraz polihedralnych
Rys. 8 Kształt siatki sześciennej, składającej się z sześcianów różnej wielkościW momencie, w którym dany sześcian się powiększa, to należy zdawać sobie sprawę, że taki element siatki staje się komórką polihedralną. Wynika to z faktu, że o definicji elementu siatki decyduje ilość jego powierzchni (ścian), a nie jego kształt. Dlatego też czasami zdarza się, że takie podejście jest nazywane polyHexcorem (patrz Rysunek 9).
Rys. 9 Element polihedralny z wieloma powierzchniamiJednakże chociaż metoda ta pozwala na uzyskanie regularnego kształtu, wprowadza niewielką ilość nieortogonalności między komórkami podczas przejścia (patrz Rysunek 10). Powoduje to potrzebę wprowadzenia korekty zarówno w mniejszych, jak i większych komórkach. Mimo to, taka nieortogonalność nie będzie miała wpływu na stabilność pracy solwera.
Rys. 10 Nieortogonalność związana z przejściem pomiędzy małym, a dużym sześcianem
Warstwa przyścienna
Rys. 11 Kształt warstwy przyściennej przy rzadkiej siatce sześciennejPrzy korzystaniu z siatki Hexcore mesh należy zastanowić się jak wygląda siatka przyścienna. Przejście pomiędzy poszczególnymi komórkami jest zdecydowanie zbyt gwałtowne. Powoduje to, że warstwa przyścienna nie jest prawidłowo odwzorowana, ponieważ gradienty w przepływie nie są odpowiednio wychwytywane podczas przejścia z małych do dużych komórek (patrz Rysunek 11).
Aby temu zaradzić dodawane są dodatkowe warstwy komórek pomiędzy komórkami, w których doszło do zmiany rozmiaru. Są one nazywane warstwami buforowymi (buffer layers). Poprawiają one rozdzielczość w pobliżu ścian (patrz Rysunek 12). Liczba warstw buforowych może się różnić, przy czym dwie lub trzy dodatkowe warstwy są powszechną wartością domyślną. Ten kompromis ma na celu zapewnienie odpowiedniej rozdzielczości dla dokładnych rozwiązań bez nadmiaru komórek (patrz Rysunek 13).
Rys. 12 Dodanie warstw buforowch
Rys. 13 Różna ilość warstw buforowychNależy jednak zastanowić się, dlaczego zalecane jest dodawanie dwóch bądź trzech warstw buforowych. Mianowicie dodanie ich można traktować jako zmniejszenia efektywnego współczynnika wzrostu do wartości 1.2 (patrz Rysunek 14).
Rys. 14 Sposób działania dodatkowych warstw buforowychPomimo niższego efektywnego współczynnika wzrostu, przejścia między rozmiarami komórek są nadal gwałtowne. Dlatego też należy bardzo dokładnie sprawdzić w postprocesingu, czy nigdzie nie zachodzą nagłe zmiany wartości w wynikach (patrz Rysunek 15). Jeżeli tak jest to należy zmniejszyć rozmiar elementów siatki bądź dodać kolejną warstwę buforową.
Rys. 15 Gwałtowane przejście w uzyskanych wynikach
Jak działa siatka hexcore?
Podejście hexcore jest odgórnym typem siatki, rozpoczynającym się od podzielenia całej domeny na sześciany o określonym rozmiarze (podanym przez użytkownika), a największe sześciany są zawsze wyrównane z globalnym układem współrzędnych (patrz Rysunek 16)!
Rys. 16 Globalna siatka sześciennaNastępnie sześciany, które są przecinane przez geometrię, są usuwane bądź dzielone na mniejsze sześciany rekurencyjnie, aż rozmiar sześcianów będzie lokalnie równy lub podobny do rozdzielczości siatki powierzchniowej badanego obiektu (użytkownik sam określa jak dokładnie ma być odwzorowana geometria). Na sam koniec dodawane są warstwy przyścienne w pobliżu badanej geometrii (patrz Rysunek 17).
Rys. 17 Przedstawienie lokalnych siatek sześciennych
Podsumowanie
Podsumowując siatki hexcore mesh obejmują zwiększoną szybkość zbieżności i stabilność obliczeń ze względu na brak poprawek ortogonalnych i równą rozdzielczość we wszystkich kierunkach. Jednak nagłe przejście między sześcianami o różnych rozmiarach mogą wymagać kontroli wizualnej, aby upewnić się, że nie wpływają one negatywnie na rozwiązanie.