Rozwiązuję wielogatunkowe, ściśliwe równania Naviera-Stokesa na siatce strukturalnej 3D. Uzyskałem rozwiązanie na danej siatce (powiedzmy stosunkowo grubej). Chcę teraz udoskonalić moją siatkę i interpolować moje poprzednie rozwiązanie na nowej siatce przed ponownym uruchomieniem symulacji. Obecnie mamy narzędzie do interpolacji, które buduje drzewo kd z 2 siatek, a następnie może użyć 2 różnych metod do obliczenia wartości w nowej siatce:
- proste uśrednianie
- ważony odwrotnie-odległości (IDW)
- ruchome najmniejsze kwadraty (MLS)
Chcę skupić się na dokładności, ponieważ ponieważ mam do czynienia z dużymi gradientami, niepoprawne ich zarejestrowanie wygeneruje fale po ponownym uruchomieniu obliczeń. Najpierw próbowałem prostego uśrednienia, ale dokładność nie była wystarczająco dobra.
Myślałem, że metoda MLS z wielomianami rzędu 2 da mi rozsądne wyniki, ponieważ ma być nieoscylacyjna. Jednak gdy patrzę na moje interpolowane pole, widzę lokalne minima / maksima, które przekraczają wartości mojego początkowego pola. Czy to oznacza, że wdrożenie MLS w tym programie jest nieprawidłowe? Czy powinienem uważać na rozmiar szablonu i kolejność wielomianów? Którą inną metodę poleciłbyś?
Z góry dziękuję !
źródło