Aplicando condições de contorno de Dirichlet à equação de Poisson pelo método do volume finito

10

Gostaria de saber como as condições de Dirichlet são normalmente aplicadas ao usar o método de volume finito em uma grade não uniforme centralizada em célula,

Lado esquerdo da grade central da célula.

Minha implementação atual simplesmente impõe a condição de contorno ao fixar o valor da primeira célula,

ϕ1=gD(xL)

onde é a variável da solução e é o valor da condição de limite do Dirichlet no lhs do domínio ( NB ). No entanto, isso está incorreto porque a condição de limite deve fixar o valor da face da célula e não o valor da própria célula . O que eu realmente deveria aplicar é,g D ( x G ) x Gx 1 / 2ϕgD(xL) xLx1/2

ϕL=gD(xL)

Por exemplo, vamos resolver a equação de Poisson,

0=(ϕx)x+ρ(x)

com condição inicial e condições de contorno,

ρ=1gD(xL)=0gN(xR)=0

(em que é uma condição de limite de Neumann no lado direito).gN(xR)

Solução numérica da equação de Poisson

Observe como a solução numérica fixou o valor da variável de célula ao valor da condição de limite ( ) no lado esquerdo. Isso tem o efeito de mudar toda a solução para cima. O efeito pode ser minimizado usando um grande número de pontos de malha, mas essa não é uma boa solução para o problema.gD(xL)=0

Questão

De que maneira as condições de contorno de Dirichlet são aplicadas ao usar o método de volume finito? Suponho que preciso corrigir o valor de interpolando ou extrapolando usando (um ponto fantasma) ou que a linha reta que passa por esses pontos tenha o valor desejado em . Você pode fornecer alguma orientação ou um exemplo de como fazer isso para uma malha centrada em célula não uniforme?ϕ 0 ϕ 2 x Lϕ1ϕ0ϕ2xL


Atualizar

Aqui está minha tentativa de usar uma abordagem de célula fantasma que você sugeriu, parece razoável?

A equação da célula é (onde representa o fluxo de ),F φΩ1Fϕ

F3/2FL=ρ¯

Precisamos escrever em termos da condição de contorno usando uma célula fantasma , Ω 0FLΩ0

FL=ϕ1ϕ0h[1]

Mas, finalmente, precisamos eliminar o termo da equação. Para fazer isso, escrevemos uma segunda equação que é a interpolação linear do centro da célula para o centro da célula . Convenientemente, essa linha passa por ; portanto, é assim que as condições de Dirichlet entram na discretização (porque o valor neste momento é apenas ),Ω 0 Ω 1 x Lϕ0Ω0Ω1xLgD(xL)

gD(xL)=h12hϕ0+h02hϕ1[2]

Combinando as equações 1 e 2, podemos eliminar e encontrar uma expressão para em termos de e ,ϕ0FLϕ1gD(xL)

FL=1h(ϕ11h1(2gDhh1ϕ1))

Supondo que somos livres para escolher o volume da célula fantasma, podemos definir para fornecer,h0h1

FL=2gDh1+2ϕ1h

Isso pode ser simplificado ainda mais porque se as células e tiverem o mesmo volume, poderemos definir finalmente dando,Ω0Ω1hh1

FL=2h1(ϕ1gD)

No entanto, essa abordagem recuperou a definição instável, então não tenho muita certeza de como proceder? Interpretei seu conselho incorretamente (@ Jan)? O estranho é que parece funcionar, veja abaixo,

Veja abaixo, funciona,

Computação atualizada, nova abordagem concorda muito bem com a abordagem analítica.

boyfarrell
fonte
Certo, sua derivação está correta. E realmente se parece com o que chamei (**) na minha resposta. E, assim, está provado ser estável. Vou adicionar um comentário na minha resposta.
Janeiro
Além disso, como observação geral, os resultados da estabilidade geralmente são condições suficientes. Ou seja, se um esquema não atender às condições, em algumas situações, poderá muito bem produzir resultados confiáveis.
Janeiro

Respostas:

3

Na análise de estabilidade das discretizações FVM para problemas elípticos com o Dirichlet BC, uma suposição central é que as células internas , onde você declara o PDE, não têm interseção com o limite, ou seja, se visto como um conjunto em se seu domínio , cf. por exemplo, o livro de [ Grossmann & Roos , p. 92]

Ω¯iΓD=0()
Rn1ΩRn

Portanto, se em sua configuração, a abordagem é instável, isso não contradiz os resultados de estabilidade conhecidos. EDIT : Usando uma célula fantasma e interpolação linear nela, para uma escolha específica de volume e distância, obtém-se como o fluxo. Assim, é realmente um esquema estável.( ) ( )

(dϕdx)1/2=2h1(ϕ1ϕ1/2)()
()()

A estabilidade e a convergência (de primeira ordem na norma máxima discreta) para o problema de poisson foram comprovadas por Grossmann & Roos para grades, com células limite distintas com seus "centros" no limite real, conforme ilustrado no meu desenho para um caso 1D. insira a descrição da imagem aqui

Aqui, o quociente diferencial na interface é aproximado de maneira direta.

Eu diria que as células fantasmas são a abordagem comum, por duas razões.

  • Eles imitam a situação estável descrita em meu desenho, mas com uma condição de fronteira interpolada
  • Eles estão simplesmente ligados ao limite físico. Assim, pode-se usar uma triangulação do domínio, o que também é vantajoso, pois muitas vezes também existem BCs naturais que são diretamente impostos à interface [ Grossmann & Roos , p. 101]

Então, sugiro que você use células fantasmas para o limite de Dirichlet. No seu exemplo, isso adicionará ao seu sistema e a condição de que um interpolante entre , e talvez outros sejam iguais a no limite.ϕ 0 ϕ 1 g Dϕ0ϕ0ϕ1gD

Jan
fonte
Obrigado Jan, isso é realmente interessante. Isso certamente imitaria minha experiência com certas abordagens sendo instáveis. Estou certo, se eu usar uma abordagem de célula fantasma, não preciso mudar a última célula para que o centro esteja no limite? Eu também tenho um problema com o conceito de mudar a célula limite; não implica que essa célula tenha volume zero?
boyfarrell
Sim, se você introduzir uma célula fantasma, não precisará alterar a grade da sua imagem de exemplo. Em relação à mudança que você mencionou para estabelecer a situação do meu desenho. Não, não é uma célula degenerada! O deslocamento realmente entra nas equações na medida em que essa faixa não aparece nas integrais, tiradas, por exemplo, do lado direito. hΓ
Janeiro
hΓ0ϕ1ϕ0
A dependência do valor da célula fantasma pode ser removida com essa abordagem? Eu acho que não deve ser incluído nas equações, mas usado apenas uma ferramenta para escrever as condições de contorno. Em relação à célula limite "deslocada". Parece que esse ponto usa diferença finita em vez do método de volume finito. Isso seria preciso?
boyfarrell
11
Ok, eu entendo! Obrigado. Há um erro de digitação. no segundo parágrafo "Assim, se na sua configuração, a abordagem [eqn] for instável, isso não contradiz os resultados de estabilidade conhecidos". O "não" deve estar "dentro" . Isso muda o significado da frase para significar o oposto do que você quer (eu acho)!
boyfarrell
3

ϕ1ϕ2ϕ1x2x1(x1x0)=0x0xiϕiϕ1ϕ2ϕ1

O que você encontra aqui é por que os volumes finitos não são frequentemente usados ​​para as equações elípticas para as quais se colocam condições de Dirichlet. Eles são usados ​​para leis de conservação em que as condições mais naturais são declaradas em termos de fluxos.

Wolfgang Bangerth
fonte
3

d2ϕdx2=f
(dϕdx)3/2(dϕdx)1/2=x1/2x3/2fdx
(dϕdx)3/2=ϕ2ϕ1h+

(dϕ/dx)1/2ϕ1/2x1/2x1x2h

(dϕdx)1/2=1h(13ϕ2+3ϕ183ϕ1/2)
(dϕdx)1/2=2h1(ϕ1ϕ1/2)

Obviamente, uma coisa que também precisa ser verificada é a estabilidade de sua discretização com a aproximação de segunda ordem no limite. De cabeça para baixo, não sei se será estável combinado com uma aproximação centralizada de segunda ordem no interior. Uma análise de estabilidade da matriz lhe dirá com certeza. (Estou praticamente certo de que a aproximação de primeira ordem no limite será estável.)

Você menciona a possibilidade de usar pontos fantasmas. Isso leva ao problema que você precisa extrapolar do interior para o ponto fantasma e usar o bc no processo. Suspeito, mas não o "provei", que pelo menos alguns tratamentos com pontos fantasmas sejam equivalentes a usar o tipo de abordagem que descrevi acima.

Espero que isso ajude um pouco.

Brian Zatapatique
fonte
Olá Brian. Não achei que fosse possível aplicar as condições de contorno de Dirichlet usando a forma de fluxo (ou seja, fracamente). De fato, eu fiz essa pergunta há alguns meses, scicomp.stackexchange.com/questions/7777/… Eu tentei implementar algo assim naquela época, mas, por qualquer motivo, a implementação era instável e sempre falhava. Você conhece uma referência na qual as condições de Dirichlet são aplicadas à equação de Poisson, estou interessado em saber o que é padrão ? Talvez isso não seja feito para equações elípticas?
boyfarrell
Não conheço um padrão, mas não consigo imaginar que todas essas implementações sejam instáveis. Você tentou a análise matricial? Deve ser muito simples de realizar neste caso. As pessoas resolvem as equações de Navier-Stokes com tratamentos com pontos fantasmas e tratamentos como o descrito acima. (É claro que efeitos viscosos não dominam a tal ponto que você pode considerar a equação de Poisson como um bom modelo.) Talvez essas referências ajudem: ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/ … E nas.nasa.gov/assets/pdf/techreports/1997/nas-97-011.pdf
Brian Zatapatique
Olá Brian. Não, eu não tentei análise matricial. Para ser sincero, não tenho muita certeza de como fazer isso. Na semana que vem, terei tempo para revisar esse problema, para que eu possa postar uma nova pergunta!
boyfarrell
Entendo também que a extrapolação de ponto fantasma (quadrática) acaba sendo equivalente à discretização clássica de diferença finita de Shortley-Weller para condições de contorno de Dirichlet irregulares (curvas), por exemplo, conforme descrito na p74 da Solução Numérica de Equações Diferenciais Parciais de Morton e Meyers (2ª edição). (A versão de extrapolação linear é equivalente ao método mais simples de Gibou et al., Sciencedirect.com/science/article/pii/S0021999101969773 ) Além disso: extrapolantes lineares e quadráticos fornecem soluções precisas de 2ª ordem, mas apenas gradientes lineares de 1ª ordem.
novinho