Alguém pode me ajudar a encontrar os livros sobre soluções numéricas (diferença finita e métodos Crank-Nicolson) das equações de Poisson e difusão, incluindo exemplos de geometria irregular, como um domínio que consiste na área entre um retângulo e um círculo (especialmente livros ou links em exemplos de código MATLAB neste caso)?
pde
finite-difference
liona
fonte
fonte
Respostas:
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:
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:
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.
fonte
Eu acho que um bom livro no começo é o livro de Hackbusch:
http://books.google.com/books/about/Elliptic_differential_equations.html?id=-ZPc_JYJFHgC&redir_esc=y
Em particular ch. 4.8, "Discretização em um domínio arbitrário" pode ser interessante para você. A versão em alemão desse livro pode ser baixada gratuitamente (legalmente). Não sei se isso vale para a versão em inglês também.
fonte
Eu sugeriria os seguintes artigos:
O método das diferenças finitas em redes irregulares arbitrárias e sua aplicação na mecânica aplicada - Liszka Orkisz
http://www.sciencedirect.com/science/article/pii/0045794980901492
Técnicas de diferenças finitas para grades variáveis - Jensen
http://www.mendeley.com/research/finite-difference-techniques-variable-grids-7/
Resolução de equações parabólicas e hiperbólicas pelo método das diferenças finitas generalizadas - Benito Urena Gavete
http://www.sciencedirect.com/science/article/pii/S037704270600687X
Basicamente, eles descrevem como gerar diferenciais finitos para malhas não estruturadas / irregulares. Não conheço nenhum livro que trate esse tópico específico em profundidade, mas o livro de Randall LeVeque pode ter algo a respeito. Aqui está o link para a página do autor, que contém alguns arquivos m do Matlab para diferenças finitas.
http://faculty.washington.edu/rjl/booksnotes.html
fonte
Penso que fazer a malha se ajustar ao limite e, portanto, afastar-se da malha quadrada padrão do fdm é provavelmente uma solução, mas, no entanto, tem sérias implicações no uso de algoritmos de alta ordem - difícil, se não impossível. Adotei uma abordagem diferente, a saber, manter a grade retangular sobre a geometria curva do limite, criar algoritmos de alta ordem, interpolar a partir do limite para definir os valores "fora" da geometria, e é tudo o que existe. alcançamos precisões em geometrias de teste de esfera concêntrica de ~ 1e-12 com este método usando um algoritmo de ordem 8. se você pesquisar no Google "Edwards, limite curvo de fdm", encontrará referências ao meu trabalho.
fonte
Seria possível usar refinamento de malha adaptável? Uma rápida pesquisa no Google exibirá muitos links. A AMR é usada, por exemplo, na dinâmica de fluidos para modelar o fluxo após formas complicadas; bem como muitas outras aplicações. Aqui está um exemplo de solução de sistemas de leis de conservação hiperbólica que surgem na formação de estrelas. As geometrias são muito complexas. A primeira parte do artigo é um bom tutorial. http://www.mpa-garching.mpg.de/lectures/ADSEM/SS05_Homann.pdf
fonte
Essa pergunta abre uma lata de vermes, como é evidenciado pela variedade de respostas dadas. Muitos deles apontam pontos úteis, mas uma resposta realmente útil levaria em consideração considerações que não foram levantadas. Além de especificar especificamente a natureza exata da geometria, seria valioso saber a) Que tipo de precisão você precisa? b) Deseja ficar com malhas quadradas regulares? c) Quanto você está disposto a investir no aprendizado de novas tecnologias?
As malhas quadradas regulares dificultam a definição precisa do limite, para que muitas pessoas mudem para malhas conformes. As malhas em conformidade com a conectividade retangular têm dificuldade em se ajustar a formas muito irregulares; muitas pessoas adotam malhas não estruturadas (triângulos / tetraheda ou mais gerais).
Para qualquer dado que não possua estrutura cartesiana regular, é difícil avaliar derivadas, muitas pessoas reformulam seus problemas de forma integral, o que leva a métodos de elementos finitos / volumes finitos (que podem atingir alta ordem). Existem métodos sem malha. Existem métodos de elemento de limite. Existem métodos de fronteira imersos. Existem métodos de células cortadas. Muitas vezes, existe um método que é popular em alguns aplicativos, mas não em outros, por razões principalmente históricas.
Desejo-lhe boa sorte na navegação neste labirinto, mas você deve perceber que não há uma solução única para a sua pergunta.
fonte