Ключом к созданию схемы конечных разностей для нерегулярной геометрии является наличие матрицы «формы» со значениями, обозначающими точки снаружи, внутри и на границе области. Скажем, у нас была такая форма:
000000001000000110000012100001221000122210012221001221000121000011000001000000000000
Истинная область (где все ненулевые элементы матрицы) образуют треугольник, направленный вниз. 1 представляют точки на границе, а 2 представляют внутренние точки (обычно не известны). Мы можем назначить номера узлов следующим образом:
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) всех внутренних узлов и выполнить цикл for только на этих узлах.
Чтобы создать геометрию напрямую, вы можете сделать одно из двух:
1. Создать черно-белое изображение вручную и импортировать его в свою программу (проще всего реализовать, но невозможно уточнить ваше пространственное разрешение dx или dy).
2. Напишите код, который будет создавать дискретные представления основных форм, которые вы хотите для любого пространственного разрешения, которое вы выберете (сложнее реализовать, но более устойчиво для общих конечно-разностных схем любого пространственного разрешения dx или dy).
Если вы хотите узнать больше о том , как это сделать, вы можете рассмотреть возможность просмотра этих видео:
NPTEL Компьютерная графика Курс, Видео 2 (Растровая графика)
NPTEL Компьютерная графика Курс, Видео 3 (Растровая графика, продолжение)
Проверьте их, и дайте мне знать, если это отвечает на ваш вопрос.