Ключовим фактором для створення схеми скінченних різниць на неправильній геометрії є матриця "форми" зі значеннями, які позначають точки зовні, всередині та на межі домену. Скажіть, у нас була така форма:
000000001000000110000012100001221000122210012221001221000121000011000001000000000000
Справжній домен (де всі ненульові записи матриці) утворює трикутник, спрямований вниз. 1 представляє точки на кордоні, тоді як 2 представляють внутрішні точки (як правило, unkowns). Ми можемо призначити числа вузлів наступним чином:
00000000- 1000000- 1- 100000- 11- 10000- 127- 1000- 13811- 100- 14912- 100- 1510- 1000- 16- 10000- 1- 100000- 1000000000000
Тут -1 являють собою граничні місця. Тоді ви можете запустити схему кінцевих різниць для всіх записів у матриці, але використовувати оператор if для виконання своєї схеми лише на внутрішніх вузлах (від 1 до 12). Цей підхід - не найефективніший спосіб зробити це, але він виконає роботу ... якщо ви можете дозволити собі пам'ять, можливо, буде добре зберігати (i, j) записи всіх внутрішніх вузлів і запускати a для циклу лише на цих вузлах.
Щоб створити геометрію безпосередньо, ви можете виконати одну з двох речей:
1. Створіть чорно-біле зображення вручну та імпортуйте його у свою програму (найпростіше втілити, але неможливо уточнити просторову роздільну здатність dx чи dy).
2. Напишіть код, який створить дискретні представлення основних фігур, які ви хочете для будь-якого обраного вами просторового дозволу (важче реалізувати, але більш надійний для загальних схем кінцевих різниць будь-якого просторового дозволу dx чи dy).
Якщо ви хочете дізнатися більше про те, як це зробити, ви можете розглянути такі відео:
Курс комп'ютерної графіки NPTEL, Відео 2 (растрова графіка)
Курс комп’ютерної графіки NPTEL, Відео 3 (Растрова графіка, продовження)
Перевірте їх та дайте мені знати, якщо це стосується вашого питання.