Jakie są podstawowe zasady generowania ruchomej siatki?

13

Jestem zainteresowany wdrożeniem ruchomej siatki w celu rozwiązania problemu dyfuzyjnego. Metody adaptacyjnej siatki ruchomej stanowią dobry przykład tego, jak to zrobić dla równania Burgera w 1D przy użyciu skończonej różnicy. Czy ktoś byłby w stanie podać praktyczny przykład rozwiązania równania doradczego z dyfuzją 1D przy użyciu różnicy skończonej z ruchomą siatką?

Na przykład w konserwatywnej postaci równanie to:

ut=(a(x)u+dux)x

gdzie jest prędkością (funkcją przestrzeni). Warunki początkowe u ( 0 , x ) mogą określać (na przykład) rodzaj przepływu przemieszczający się od lewej do prawej (np. Wzdłuż rury), w którym warunki początkowe mają ostry gradient.a(x)u(0,x)

W jaki sposób należy rozwiązać problem równomiernej dystrybucji ruchomej siatki (być może z algorytmem De Boora lub innym podejściem)? Chcę to sam zaimplementować w Pythonie, więc jeśli Twoja odpowiedź może być łatwo przetłumaczona na kod, tym lepiej!


Stare pytanie przed nagrodą

  1. Jakie są podstawowe podejścia do generowania siatki adaptacyjnej na podstawie właściwości systemu? Czy powinienem używać strumienia jako miary, gdzie gradienty są duże?
  2. Ponieważ szukam iteracyjnego rozwiązania (przemiatania czasu). Wyobrażam sobie, że ważne jest interpolowanie ze starej siatki do nowej siatki, jakie jest zwykle podejście?
  3. Byłbym bardzo zainteresowany widząc działający przykład prostego problemu (takiego jak równanie doradcze).

Trochę tła na temat specyfiki problemu. Symuluję układ równań sprzężony 1D,

ut=au2ux2+buux+fu(x,u,v,w)vt=av2vx2+bvvx+fv(x,u,v,w)wt=auux+avvx+fw(x,u,v,w)

Zbiór równań opisuje problem doradztwa i dyfuzji dwóch gatunków, w którym trzecie równanie łączy się z pozostałymi dwoma. Rozwiązanie zmienia się szybko w pobliżu środka mojej siatki, patrz poniżej (są to ilustracje, a nie obliczenia),

Przykładowe rozwiązania

uvw

w

uvw

boyfarrell
źródło
Z tego, co zbieram, twoja nieciągłość jest dość stabilną cechą systemu, ponieważ może się poruszać, ale zawsze gdzieś jest (popraw mnie, jeśli się mylę). Z tego powodu możesz rozważyć użycie siatki ruchomej zamiast jej zawężania. Łatwiej jest samemu zaprogramować. [Ta książka] (books.google.com/books?isbn=1441979166) jest dobrym źródłem informacji.
Daniel Shapero,
Tak, wydaje się, że powinna to być dość stabilna cecha (nieciągłość), może nieznacznie poruszać się podczas zamiatania czasu i może stać się nieco asymetryczna, gdy zbliża się do stanu ustalonego. Wyobrażam sobie, że mógłbym użyć niejednorodnej (nieadaptacyjnej) siatki z punktami skupionymi w środku zamiast czegoś bardziej złożonego. Nie byłem świadomy różnych technik adaptacji siatki. Książka wydaje się dobra, chociaż wciąż jest sporo pracy, aby rygorystycznie wprowadzić ruchomą siatkę. Miałem nadzieję na „szybką naprawę”!
boyfarrell

Odpowiedzi:

4

Siatka adaptacyjna to sieć, która automatycznie grupuje punkty siatki w obszarach o dużym nachyleniu pola; wykorzystuje rozwiązanie właściwości pola przepływu do zlokalizowania punktów siatki w płaszczyźnie fizycznej. Siatka adaptacyjna ewoluuje z biegiem czasu w połączeniu z zależnym od czasu rozwiązaniem rządzących równań pola przepływu, które oblicza zmienne pola przepływu z krokami czasu. W trakcie rozwiązania punkty siatki w płaszczyźnie fizycznej poruszają się w taki sposób, aby „dostosować się” do obszarów o dużych gradientach pola przepływu. Dlatego rzeczywiste punkty siatki w płaszczyźnie fizycznej są stale w ruchu podczas rozwiązania pola przepływu i stają się nieruchome tylko wtedy, gdy rozwiązanie przepływu zbliża się do stanu ustalonego.

Adaptacja sieci jest stosowana zarówno w przypadku problemów o stałym, jak i niestabilnym charakterze. W przypadku problemów ze stałym przepływem siatka jest dostosowywana po z góry określonej liczbie iteracji, a adaptacja siatki zatrzymuje się w punkcie, w którym rozwiązanie jest zbieżne. W przypadku rozwiązań z dokładnością czasową ruch i uściślenie punktu siatki są wykonywane w połączeniu z dokładnym w czasie rozwiązaniem problemu fizycznego. Wymaga to dokładnego czasowo sprzężenia PDE problemu fizycznego i tych opisujących ruch siatki lub dostosowanie siatki.

W przypadku obliczeń nowszych konfiguracji zależność od wytycznych dotyczących najlepszych praktyk w zakresie generowania siatki i wcześniejsze doświadczenia pozostawiają otwarte drzwi dla dużych ilości błędów numerycznych. Metody adaptacji sieci mogą przynieść znaczną poprawę jakości rozwiązania i obiecują lepsze wyniki, ponieważ nie istnieją żadne ograniczenia określające limit rozdzielczości sieci, który można osiągnąć.

hrprphprh

h

h

r

Zamiast wprowadzać lokalne zmiany topologiczne siatki i jej połączeń, metody r-adaptacyjne wprowadzają lokalne zmiany rozdzielczości, przesuwając lokalizacje stałej całkowitej liczby punktów siatki.

p

Bardzo popularna metoda adaptacji siatki w podejściu do elementu skończonego zamiast metody objętości skończonej lub elementu skończonego. Zmniejsza błąd w rozwiązaniu poprzez wzbogacenie wielomianu funkcji interpolujących o tę samą kolejność elementów geometrycznych. Nie ma tu żadnej nowej siatki, geometrii do obliczenia, a kolejną zaletą tej metody jest to, że może ona lepiej przybliżać nieregularne lub zakrzywione granice z mniejszą czułością na proporcje i pochylenie. Z tego powodu jest bardzo znany w zastosowaniach strukturalnych.

Drivingsourcesofgridadaptation

1.Featurebasedadaptation Oparte na cechach w przybliżeniu szeroko stosowane podejście do adaptacji sieci wykorzystuje cechę rozwiązania jako siłę napędową dla adaptacji sieci. Często wykorzystują cechy rozwiązania, takie jak gradienty rozwiązania i krzywizna roztworu. Regiony przepływu, które mają duże gradienty rozwiązania, są rozwiązywane z większą liczbą punktów, a regiony o minimalnym znaczeniu są zgrubne. Prowadzi to do udoskonalenia obszaru fizycznie specyficznego, takiego jak warstwa graniczna, wstrząsy, linie separacji, punkty stagnacji itp. W niektórych przypadkach udoskonalenie oparte na gradiencie może faktycznie zwiększyć błąd rozwiązania, więc istnieją pewne problemy dotyczące adaptacji opartej na cechach, takie jak solidność i inne.

2.Truncationerrorbasedadaption Błąd skracania jest różnicą między równaniem różniczkowym cząstkowym a jego równaniem dyskretnym. Błąd obcięcia jest bardziej odpowiednim podejściem do znalezienia miejsca, w którym powinna nastąpić adaptacja. Ogólna koncepcja adaptacji opartej na błędzie obcięcia polega na równomiernym rozłożeniu błędu w dziedzinie symulacji w celu zmniejszenia całkowitego błędu dyskretyzacji. W przypadku prostych równań ocena błędu obcięcia jest najłatwiejszą pracą, ale w przypadku złożonych schematów jest trudna, dlatego w tym celu potrzebne jest inne podejście. W przypadku prostych schematów dyskretyzacji błąd obcięcia można obliczyć bezpośrednio. W przypadku bardziej złożonych schematów, w których bezpośrednia ocena obcięcia jest trudna, potrzebne jest podejście do oszacowania błędu obcięcia.

3.Adjointbasedadaptation

Wszystkiego najlepszego!

References:

[1] Fidkowski Krzysztof J. i Darmofal David L. Przegląd estymacji błędów opartej na danych wyjściowych i adaptacji siatki w obliczeniowej dynamice płynów. AIAA Journal, 49: 673–694, 2011.

[2] John Tannehill Richard Pletcher i Dale Anderson. Obliczeniowa mechanika płynów i wymiana ciepła. Taylor i Francis, 1997.

[3] JD Jr. Anderson. Dyanamika płynów obliczeniowych: podstawy aplikacji. McGraw Hill Inc., 1995.

[4] Roy Christopher J. Strategie napędzania adaptacji siatki w CFD. Podczas 47. spotkania AIAA Aerospace Sciences, w tym Forum New Horizons i Aerospace Exquisition, 2009.

[5] McRae Scott D. Algorytmy i problemy z adaptacją siatki r-refinement. Metody obliczeniowe w mechanice stosowanej i inżynierii, 189: 1161–1182, 2000.

[6] Ivanenko Sergey A. Azarenok Boris N. i Tang Tao. Addytywna metoda redystrybucji siatki oparta na schemacie godunowa. Comm. matematyka sci., 1: 152–179.

[7] Ahmadi Majid i Ghaly Wahid S. Symulacja przepływu niewidzialnego w kaskadach metodą skończonej objętości z adaptacją rozwiązania. W CASI 6th Aerodynamics Symposium, 1997.

[8] Jasak H. i Gosman AD Automatyczna kontrola rozdzielczości dla metody skończonej objętości, część 1: szacunki błędu a posteriori. Numerical Heat Transfer, Taylor & Francis, 38: 237–256, 2000.

[9] Jasak H. i Gosman AD Automatyczna kontrola rozdzielczości dla metody skończonej objętości, część 2: Adaptacyjne uszlachetnianie siatki i zgrubienie. Numerical Heat Transfer, Taylor & Francis, 38: 257–271, 2000.

[10] Thompson David S. Soni Bharat K., Koomullil Roy i Thornburg Hugh. Strategie adaptacyjnej siatki rozwiązań oparte na redystrybucji punktów. Metody obliczeniowe w mechanice stosowanej i inżynierii, 189: 1183–1204, 2000.

[11] Venditti David A. i Darmofal David L. Adioint oszacowanie błędów i dostosowanie siatki dla wyników funkcjonalnych: Zastosowanie do quasi-jednowymiarowego przepływu. Journal of Computational Physics, 164: 204–227, 2000.

[12] Balasubramanian R. i Newman JC Porównanie adaptacyjnej siatki opartej na połączeniach i cechach dla funkcjonalnych wyników. Międzynarodowy dziennik metod numerycznych w płynach, 53: 1541–1569, 2007.

[13] Hartmann Ralf. Szacowanie błędów i adaptacyjne dopasowanie w aerodynamice. Na europejskiej konferencji na temat obliczeniowej dynamiki płynów, 2006.

Shainath
źródło
Ten pierwszy akapit pochodzi z Computational Fluid Dynamics: An Introduction. Powinno to prawdopodobnie dotyczyć. Ale to przegląd, dziękuję. Czy kiedykolwiek stosowałeś adaptację do problemu z poradą, to w zasadzie to staram się rozwiązać?
boyfarrell
@boyfarrell, tak, to prawda, tak naprawdę wziąłem to wszystko z mojego raportu na temat „adaptacji siatki” w ramach mojej pracy kursowej, w której odpowiednio cytowałem odniesienia. Trudno tu dodać tyle referencji, że je pominąłem. Jeśli chcesz, podzielę się z Tobą wszystkimi referencjami. Tak, planuję wykorzystać dostosowanie sieci jako część mojej pracy badawczej, ale jeszcze się nie rozpoczęło. Wszystkiego najlepszego!
Shainath,
Widok literatury to naprawdę dobry sposób na rozpoczęcie, dzięki za dzielenie się!
boyfarrell
@boyfarrell, do mojej odpowiedzi dodałem odniesienia, których użyłem w powyższym opisie. Wszystkiego najlepszego
Shainath,
3

Szukałem (wciąż szukam) dobrych odpowiedzi na to. Pracuję z wielopoziomowymi siatkami adaptacyjnymi, w których używam pewnego rodzaju kryterium udoskonalenia. Ludzie wykonujący MES cieszą się, raczej tani (obliczeniowo), rygorystyczny szacunek błędów, których używają jako kryterium udoskonalenia. Dla nas wykonujących FDM / FVM nie miałem szczęścia znaleźć takich szacunków.

W tym kontekście, jeśli chcesz być rygorystyczny w zakresie udoskonalania, tj. Udoskonalania w oparciu o pewne oszacowanie rzeczywistego błędu, Twoim (prawie) jedynym wyborem jest ekstrapolacja Richardsona. Tego właśnie używali na przykład Berger i Oliger (1984) do swojego hiperbolicznego solwera AMR o strukturze blokowej. Metodologia jest ogólna w tym sensie, że można użyć ekstrapolacji Richardsona dla praktycznie każdego problemu. Jedyny problem polega na tym, że jest drogi, szczególnie w przypadku problemów przejściowych.

Poza ekstrapolacją Richardsona wszystkie inne kryteria (moim skromnym zdaniem) mają charakter doraźny. Tak, możesz ustawić określony próg „ilości odsetek” i sprecyzować na tej podstawie. Możesz użyć topników lub pochodnych pewnej ilości, aby zaalarmować duży gradient i użyć go. Lub jeśli śledzisz interfejs, możesz sprecyzować na podstawie odległości od interfejsu. Wszystkie są oczywiście bardzo tanie, ale nie ma w nich nic rygorystycznego.

Jeśli chodzi o interpolację między siatkami, na ogół potrzebujesz czegoś co najmniej tak samo dokładnego jak solver. Czasami możliwe jest budowanie interpolacji, które spełniają określone właściwości, np. Zachowują masę lub są wypukłe, a zatem nie wprowadzają nowych ekstremów. Zauważyłem, że ta ostatnia właściwość jest czasami bardzo ważna dla stabilności całego systemu.

GradGuy
źródło
Dziękujemy za podzielenie się swoimi doświadczeniami. Tak, wydaje się, że rygorystyczne wykonywanie tego jest w rzeczywistości dość zaangażowane. Ponieważ mój problem jest stosunkowo prosty (tylko 1D itp.). Najpierw spróbuję zamocowanej (nierównomiernej) podpaski. Chociaż mam wielką pokusę, aby zastosować miękkie podejście do ruchomej siatki . Jeśli robiłeś już ruchomą siatkę, jak łatwo jest to wdrożyć, powiedzmy, równanie doradcze?
boyfarrell
@boyfarrell Nie jestem pewien, co to jest ruchoma siatka . Czy to jest jak siatka 1D, w której odległość między punktami może się zmieniać w czasie?
GradGuy
Wystarczy spojrzeć na link sugerowany przez Daniela Shapero (powyżej) Adaptive Moving Mesh Methods . Wygląda interesująco.
boyfarrell
2

Jeśli rzeczywiście jest to 1D, prawdopodobnie nie potrzebujesz tutaj żadnej siatki adaptacyjnej, ponieważ w przypadku tak prostego problemu możesz prawdopodobnie rozwiązać wszystko, czego potrzebujesz, za pomocą siatki statycznej z mocą obliczeniową nowoczesnej stacji roboczej. Ale jest to całkowicie rozsądna strategia, w procesie integracji czasowej, aby okresowo identyfikować obszary, w których rozdzielczość numeryczna jest obciążona, dodawać tam punkty siatki (i usuwać punkty siatki z obszarów o zbyt dużej rozdzielczości) i interpolować do nowej siatki. Nie należy tego jednak robić zbyt często, ponieważ interpolacja może być kosztowna i spowodowałaby błąd numeryczny w ogólnym obliczeniu.

Maxim Umansky
źródło
Dziękujemy dzieląc się swoimi doświadczeniami. Myślę, że masz rację; Prawdopodobnie mógłbym po prostu użyć niestałej siatki w tym przypadku, ponieważ nieciągłość pozostaje mniej więcej w tym samym miejscu. Zgodziłbyś się?
boyfarrell