A chave para fazer um esquema de diferenças finitas funcionar em uma geometria irregular é ter uma matriz de 'forma' com valores que denotam pontos fora, dentro e nos limites do domínio. Digamos que tivemos uma forma como esta:
0 00 00 00 00 00 00 00 010 00 00 00 00 00 0110 00 00 00 00 01210 00 00 00 012210 00 00 0122210 00 0122210 00 012210 00 00 01210 00 00 00 0110 00 00 00 00 010 00 00 00 00 00 00 00 00 00 00 00 0
O domínio verdadeiro (onde estão todas as entradas diferentes de zero da matriz) forma um triângulo apontado para baixo. Os 1s representam pontos no limite, enquanto os 2´s representam pontos interiores (geralmente desconhecidos). Podemos atribuir números de nós da seguinte maneira:
0 00 00 00 00 00 00 00 0- 10 00 00 00 00 00 0- 1- 10 00 00 00 00 0- 11- 10 00 00 00 0- 127- 10 00 00 0- 13811- 10 00 0- 14912-10 00 0-1510-10 00 00 0-16-10 00 00 00 0-1-10 00 00 00 00 0-10 00 00 00 00 00 00 00 00 00 00 00 0
Aqui, -1 representa os locais de limite. Em seguida, você pode executar um esquema de diferenças finitas em todas as entradas da matriz, mas use uma instrução if para executar seu esquema apenas nos nós internos (de 1 a 12). Essa abordagem não é a maneira mais eficiente de fazer isso, mas fará o trabalho ... se você puder pagar a memória, pode ser bom armazenar as entradas (i, j) de todos os nós internos e executar um loop for apenas nesses nós.
Para criar a geometria diretamente, você pode fazer uma de duas coisas:
1. Crie uma imagem em preto e branco manualmente e importe-a para o seu programa (mais fácil de implementar, mas impossível refinar sua resolução espacial dx ou dy).
2. Escreva um código que crie representações discretas das formas básicas que você deseja para qualquer resolução espacial que você escolher (mais difícil de implementar, mas mais robusta para esquemas gerais de diferenças finitas de qualquer resolução espacial dx ou dy).
Se você quiser saber mais sobre como fazer isso, você pode querer considerar assistindo esses vídeos:
NPTEL Computer Graphics Course, Video 2 (Raster Graphics)
NPTEL Computer Graphics Course, Video 3 (Raster Graphics, continuou)
Vê-los, e deixe-me saber se isso aborda sua pergunta.