Escrevendo a matriz de diferenças finitas da equação de Poisson com condições de contorno de Neumann

15

Estou interessado em resolver a equação de Poisson usando a abordagem de diferenças finitas. Eu gostaria de entender melhor como escrever a equação da matriz com as condições de contorno de Neumann. Alguém revisaria o seguinte, está correto?

A matriz de diferenças finitas

A equação de Poisson,

2você(x)x2=d(x)

pode ser aproximado por uma equação de matriz de diferenças finitas,

1 1(Δx)2Mvocê^=d^

onde é um n × n matriz e u e d são 1 × n (coluna) vectores,Mn×nvocê^d^1 1×n

Matriz de diferenças finitas da equação de Poisson

Adicionando uma condição de limite de Neumann

Uma condição de limite de Neumann impõe um fluxo de conhecimento no limite (aqui nós o aplicamos no lado esquerdo, onde o limite está em ),x=0 0

escrevendo esta condição de contorno como uma diferença finita centralizada,

você(x=0 0)x=σ

Erro na equação. NB Originalmente cometi um erro aqui, assinei um erro e não o dividi por 2. O seguinte foi corrigido.

você2-você0 02Δx=σ

Observe a introdução de um ponto de malha fora do domínio original ( ). Este termo pode ser eliminado através da introdução da segunda equação, u 0 - 2 u 1 + u 2você0 0

você0 0-2você1 1+você2(Δx)2=d1 1

A equação provém de mais informações devido à introdução do novo ponto de malha. Ele nos permite escrever a derivada dupla de como o limite em termos de u 0 usando uma diferença finita centralizada.você1 1você0 0

A parte que eu não tenho certeza

Combinando essas duas equações, pode ser eliminado. Para mostrar o trabalho, primeiro vamos reorganizar o desconhecido,você0 0

você0 0=-2σΔx+você2você0 0=(Δx)2d1 1+2você1 1-você2

Em seguida, eles são definidos iguais e reorganizados no formulário,

você2-você1 1(Δx)2=d1 12+σΔx

você(Δx)2

Por fim, usando essa equação como a primeira linha da matriz,

Equação de Poisson com uma condição de contorno de Neumann no lado esquerdo (corrigida)

Alguns pensamentos finais,

  1. Essa matriz final está correta?
  2. Eu poderia ter usado uma abordagem melhor?
  3. Existe uma maneira padrão de escrever essa matriz?
boyfarrell
fonte
2
2Δxvocê0 0=-σΔx+você2
3
Esta é trabalhado muito bem no texto diferenças finitas de LeVeque , capítulo 2.
David Ketcheson
11
Estas questões são igualmente bem explicado no scientificpython.net/1/post/2013/01/...
Evgeni Sergeev
você poderia, por favor, ver este scicomp.stackexchange.com/questions/14306/…
usumdelphini

Respostas:

1

você0 0

Recue e pense no problema por um segundo. A especificação de uma equação de Laplace afirma fundamentalmente que cada ponto é a média de seus vizinhos. Isso geralmente é visualizado como uma folha de borracha e me ajuda a pensar sobre essas coisas. (Poisson é semelhante com pontos mais ou menos elásticos)

Quando você especifica o valor da superfície da solução nas bordas mais externas, está "fixando" a folha no espaço nesses pontos. Quando você especifica a folha por sua derivada nas bordas, há inúmeras soluções que atendem à equação que converte a folha no espaço, mantendo a mesma forma real e, portanto, derivadas.

você0 0=0 0

meawoppl
fonte
11
Então, geralmente a equação de Poisson é resolvida com pelo menos uma condição de contorno de Dirichlet, para que uma solução única possa ser encontrada? Eu acho que faz sentido que as condições de contorno de Neumann só façam sentido quando fontes e sumidouros são incluídos, caso contrário, há um número infinito de soluções. No entanto, se eu usar a equação de difusão, em algum momento as condições de contorno de Neumann são necessárias para a física correta (por exemplo, nenhum fluxo da quantidade através de um limite quando du / dx = 0). É nisso que realmente me interessa. O método acima é a abordagem correta para aplicar BCs Neumann?
22613 boyfarrell
11
Você não pode aplicar BCs Neumann em todos os lados do seu papel. Se o fizer, você não terá uma solução única. Deve ser fixado pelo menos em um lado.
vanCompute
@meawoppl: Como se especifica o ponto fixo ao fazer uma matriz direta resolver?
Jvriesem
Normalmente, basta atribuir um ponto a uma constante, definindo apenas um termo em uma linha como 1, o restante zero e um valor no RHS que corresponde ao plano de solução que você deseja ver.
meawoppl