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:
000000001000000110000012)1000012)2)100012)2)2)10012)2)2)10012)2)100012)1000011000001000000000000
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:
00000000- 1000000- 1- 100000- 11- 10000- 12)7- 1000- 13)811- 100- 14912- 100- 1510- 1000- 16- 10000- 1- 100000- 1000000000000
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.