W metodzie wytwarzanych rozwiązań (MMS) postuluje się dokładne rozwiązanie, zastępuje je w równaniach i oblicza odpowiedni termin źródłowy. Rozwiązanie służy następnie do weryfikacji kodu.
W przypadku nieściśliwych równań Naviera-Stokesa MMS łatwo prowadzi do (niezerowego) terminu źródłowego w równaniu ciągłości. Ale nie wszystkie kody dopuszczają terminy źródłowe w równaniach ciągłości, więc w przypadku tych kodów wystarczą tylko wyprodukowane rozwiązania z polami prędkości pozbawionymi rozbieżności. Znalazłem ten przykład dla domeny W ogólnych przypadkach 3D, w jaki sposób wytwarza się pole prędkości pozbawione rozbieżności?u 1
To nie jest ogólna odpowiedź, ale dla równań Naviera-Stokesa istnieją gotowe rozwiązania opisujące rzeczywisty przepływ. Na przykład pole przepływu Kovasznay jest popularnym wyborem:
http://link.springer.com/article/10.1007/BF00948290
Oryginalne odniesienie to: Kovasznay LIG, „Przepływ laminarny za dwuwymiarową siatką”. Proc. Cambridge Philos. Soc., Str. 44, 1948.
źródło
Tak zwykle robię.
Zdefiniuj funkcję usprawnienia:
prędkość jest równa:
Teraz możesz wybrać dowolną rozsądną presję uśrednioną na zero i skonstruować termin wymuszający.
Zamieszczam przykładowy kod SymPy dla i jednorodnych warunków brzegowych, cieszę się:Ω = [ 0 , 1 ]3)
źródło