Skończone różnice w domenach o nieregularnych granicach

11

Czy ktoś może mi pomóc znaleźć książki na temat rozwiązań numerycznych (różnic skończonych i metod Cranka – Nicolsona) równań Poissona i dyfuzji, w tym przykładów na nieregularnej geometrii, takich jak dziedzina składająca się z obszaru między prostokątem a okręgiem (zwłaszcza książek lub linków na przykładach kodu MATLAB w tym przypadku)?

Liona
źródło
4
W jakim celu? Wprowadzenie dla studentów od samego początku? A jaka jest w twoim przypadku nieregularna geometria? Domeny z narożnikami ponownego wysyłania?
shuhalo,
@Martin: Jestem biginnerem w tej dziedzinie. Potrzebuję go do rozwiązania równania Poissona za pomocą iteracyjnych metod w domenach o nieregularnych kształtach, zwłaszcza w przypadku przeciwników z zakrzywionymi wiązaniami (np. Domena kolista 2D)
liona,
2
@last Edytuj tytuł pytania i treść, aby wyjaśnić, o co pytasz. Określ rodzaje równań, na których Ci zależy. Czy jesteś zainteresowany dyskretyzacjami, rozwiązaniami algebraicznymi lub obydwoma? Czy zależy Ci na skończonej różnicy w porównaniu do elementów skończonych ( scicomp.stackexchange.com/questions/290/… )? Twoje aktualne pytanie jest bardzo szerokie i trudno je znaleźć w wyszukiwaniu.
Jed Brown
@JedBrown: Chcę rozwiązać równanie Poissona za pomocą skończonej różnicy w danej dziedzinie i warunku brzegowym.
liona
na koniec edytuj treść pytania, aby uwzględnić informacje w obu dotychczasowych komentarzach. Ponadto, jak powiedział JedBrown, edytuj także tytuł pytania, aby łatwiej było wyszukiwać twoje pytanie i łatwiej było ocenić, czy pytanie może być interesujące lub dotyczyć ich.
Geoff Oxberry

Odpowiedzi:

3

Kluczem do działania schematu różnic skończonych na nieregularnej geometrii jest posiadanie macierzy „kształtu” z wartościami wskazującymi punkty na zewnątrz, wewnątrz i na granicy domeny. Powiedzmy, że mieliśmy taki kształt:

0000000000000111111111100012)2)2)2)2)2)10000012)2)2)2)1000000012)2)10000000001100000000000000000

Prawdziwa domena (gdzie znajdują się wszystkie niezerowe wpisy macierzy) tworzą trójkąt skierowany w dół. Jedności oznaczają punkty na granicy, a dwójki oznaczają punkty wewnętrzne (zwykle nieznane). Numery węzłów możemy przypisać w następujący sposób:

0000000000000-1-1-1-1-1-1-1-1-1-1000-112)3)456-100000-178910-10000000-11112-1000000000-1-100000000000000000

Tutaj -1 oznaczają lokalizacje graniczne. Następnie możesz uruchomić schemat różnic skończonych dla wszystkich pozycji w macierzy, ale użyj instrukcji if, aby wykonać swój schemat tylko na wewnętrznych węzłach (od 1 do 12). To podejście nie jest najskuteczniejszym sposobem na zrobienie tego, ale wykona zadanie ... jeśli możesz sobie pozwolić na pamięć, dobrze byłoby zapisać wpisy (i, j) wszystkich wewnętrznych węzłów i uruchomić pętla for tylko na tych węzłach.

Aby bezpośrednio utworzyć geometrię, możesz zrobić jedną z dwóch rzeczy:
1. Utwórz czarno-biały obraz ręcznie i zaimportuj go do swojego programu (najłatwiejszy do wdrożenia, ale niemożliwy do poprawienia rozdzielczości przestrzennej dx lub dy).
2. Napisz kod, który utworzy dyskretne reprezentacje podstawowych kształtów, które chcesz dla dowolnej rozdzielczości przestrzennej, którą wybierzesz (trudniejsze do wdrożenia, ale bardziej niezawodne dla ogólnych schematów różnic skończonych dowolnej rozdzielczości przestrzennej dx lub dy).

Jeśli chcesz dowiedzieć się więcej o tym, jak to zrobić, możesz rozważyć obejrzenie następujących filmów:
Kurs grafiki komputerowej NPTEL, Wideo 2 (Grafika rastrowa)
Kurs grafiki komputerowej NPTEL, Wideo 3 (Grafika rastrowa, ciąg dalszy)
Sprawdź je i daj mi znać, jeśli to rozwiąże twoje pytanie.

Paweł
źródło
Czy istnieje sposób, w jaki mogę poprawić format wartości macierzy, które opublikowałem ... nie wygląda to tak, jak chciałbym, żeby to wyglądało
Paul
Tak, możesz użyć MathJax i umieścić je w środowisku tablicowym.
David Ketcheson
Masz rację ... z MathJax wygląda o wiele ładniej. Dzięki za sugestię :)
Paweł
@Paul: Dziękujemy za proste rozwiązanie! Jak jednak obliczyć punkty graniczne, aby uzyskać punkty wewnętrzne dla zamkniętego obszaru między prostokątem a trójkątem lub (zamkniętego obszaru między prostokątem a okręgiem)?
liona
Czy masz zdjęcie kształtu domeny, którą chcesz modelować? Zawsze łatwiej jest to zobaczyć, niż opisać to tylko słowami :)
Paweł
2

Sugerowałbym następujące dokumenty:

Metoda różnic skończonych na dowolnych nieregularnych siatkach i jej zastosowanie w mechanice stosowanej - Liszka Orkisz

http://www.sciencedirect.com/science/article/pii/0045794980901492

Techniki różnic skończonych dla zmiennych siatek - Jensen

http://www.mendeley.com/research/finite-difference-techniques-variable-grids-7/

Rozwiązywanie równań parabolicznych i hiperbolicznych uogólnioną metodą różnic skończonych - Benito Urena Gavete

http://www.sciencedirect.com/science/article/pii/S037704270600687X

Zasadniczo opisują sposób generowania różnicy skończonej stencial dla siatek niestrukturalnych / nieregularnych. Nie znam żadnej książki, która szczegółowo omawia ten konkretny temat, ale książka Randalla LeVeque'a może mieć coś na ten temat. Oto link do strony autora, która zawiera niektóre pliki m Matlaba dla różnic skończonych.

http://faculty.washington.edu/rjl/booksnotes.html

Bernardo MR
źródło
1

Myślę, że dopasowanie siatki do granicy, a tym samym odejście od standardowej siatki kwadratowej fdm, jest prawdopodobnie rozwiązaniem, ale ma jednak poważne implikacje co do zastosowania algorytmów wyższego rzędu - trudne, jeśli nie niemożliwe. Przyjąłem inne podejście, mianowicie utrzymywanie prostokątnej siatki nad zakrzywioną geometrią graniczną, tworzenie algorytmów wysokiego rzędu, interpolacja od granicy w celu ustawienia wartości „poza” geometrią i to wszystko. dzięki tej metodzie osiągnęliśmy dokładność w testach geometrii koncentrycznych kuli ~ 1e-12 przy użyciu algorytmu rzędu 8. jeśli przejdziesz do Google „Edwards, fdm zakrzywiona granica”, znajdziesz odniesienia do mojej pracy.

David
źródło
0

Czy można zastosować adaptacyjne udoskonalenie siatki? Szybkie wyszukiwanie Google wyświetli wiele linków. AMR jest stosowany, na przykład, w dynamice płynów do modelowania przepływu przez skomplikowane kształty; jak również wiele innych aplikacji. Oto przykład rozwiązania systemów hiperbolicznych praw zachowania, które powstają w procesie formowania się gwiazd. Geometrie są bardzo złożone. Pierwsza część artykułu to fajny samouczek. http://www.mpa-garching.mpg.de/lectures/ADSEM/SS05_Homann.pdf

JohnS
źródło
0

To pytanie otwiera puszkę robaków, o czym świadczy różnorodność udzielonych odpowiedzi. Wiele z nich zawiera użyteczne uwagi, ale naprawdę pomocna odpowiedź uwzględniałaby kwestie, które nie zostały podniesione. Oprócz sprecyzowania dokładnej natury geometrii warto byłoby wiedzieć a) Jakiej dokładności potrzebujesz? b) Czy chcesz pozostać przy regularnych kwadratowych oczkach? c) Ile chcesz zainwestować w naukę nowej technologii?

Regularne kwadratowe siatki utrudniają precyzyjne zdefiniowanie granicy, tak że wiele osób przechodzi na siatki zgodne. Zgodne siatki o prostokątnym łączeniu mają trudności z dopasowaniem do bardzo nieregularnych kształtów, dlatego wiele osób przyjmuje siatki niestrukturalne (trójkąty / czworościany lub bardziej ogólnie).

W przypadku danych, które nie mają regularnej struktury kartezjańskiej, trudno jest oszacować pochodne, dlatego wiele osób przeformułowuje swoje problemy w postaci integralnej, co prowadzi do metod elementów skończonych / objętości skończonych (które mogą osiągnąć wysoki poziom). Istnieją metody bez siatki. Istnieją metody elementów brzegowych. Istnieją metody graniczne zanurzone. Istnieją metody cięcia komórek. Często istnieje metoda, która jest popularna w niektórych aplikacjach, ale nie w innych, z powodów głównie historycznych.

Życzę powodzenia w poruszaniu się po tym labiryncie, ale musisz zdać sobie sprawę, że nie ma jednego uniwersalnego rozwiązania dla twojego pytania.

Philip Roe
źródło