Como as condições de contorno devem ser aplicadas ao usar o método de volume finito?


16

Seguindo a minha pergunta anterior , estou tentando aplicar condições de contorno a essa malha de volume finito não uniforme,

O limite do lado esquerdo inclui célula fantasma.

Gostaria de aplicar uma condição de limite do tipo Robin aos lhs do domínio ( x=xeu) , de modo que,

σeu=(dvocêx+umavocê)|x=xeu

onde σeu é o valor limite; são coeficientes definidos na fronteira, advecção e difusão, respectivamente; , é a derivada de avaliada no limite e é a variável para a qual estamos resolvendo.uma,d uuvocêx=vocêxvocêvocê

Possíveis abordagens

Posso pensar em duas maneiras de implementar essa condição de limite na malha de volume finito acima:

  1. Uma abordagem de célula fantasma.

    Escreva vocêx como uma diferença finita, incluindo uma célula fantasma.

    σeu=dvocê1-você0 0h-+umavocê(xeu)

    A. Em seguida, usar linear interpolação com pontos x0 0 e x1 a encontrar o valor intermédio, você(xeu) .

    B. Alternativamente, encontre calculando a média das células, u ( x L ) = 1você(xeu)você(xeu)=12(você0 0+você1)

    Em ambos os casos, a dependência da célula fantasma pode ser eliminada da maneira usual (através da substituição na equação do volume finito).

  2. Uma abordagem de extrapolação.

    Ajuste uma função linear (ou quadrática) a usando os valores nos pontos x 1 , x 2 ( x 3 ). Isso fornecerá o valor em u ( x L ) . A função linear (ou quadrática) pode ser diferenciada para encontrar uma expressão para o valor da derivada, u x ( x L ) , no limite. Essa abordagem não usa uma célula fantasma.você(x)x1,x2x3você(xeu)vocêx(xeu)

Questões

  • Qual abordagem dos três (1A, 1B ou 2) é "padrão" ou você recomendaria?
  • Qual abordagem introduz o menor erro ou é a mais estável?
  • Acho que posso implementar a abordagem de célula fantasma, no entanto, como a abordagem de extrapolação pode ser implementada? Essa abordagem tem um nome?
  • Existe alguma diferença de estabilidade entre ajustar uma função linear ou uma equação quadrática?

Equação específica

Desejo aplicar esse limite à equação de advecção-difusão (em forma de conservação) com termo de fonte não linear,

vocêt=-umavocêx+dvocêxx+s(x,você,t)

Discretizar esta equação na malha acima usando o método- fornece,θ

Wjn+1-θrumaWj-1n+1-θrbWjn+1-θrcWj+1n+1=Wjn+(1-θ)rumaWj-1n+(1-θ)rbWjn+(1-θ)rcWj+1n+s(xj,tn)

No entanto, para o ponto de limite ( ), prefiro usar um esquema totalmente implícito ( θ = 1 ) para reduzir a complexidade,j=1θ=1

W1n+1-rumaW0 0n+1-rbW1n+1-rcW2n+1=W1n+s1n

Observe que o ponto fantasma , ele será removido aplicando a condição de contorno.W0 0n+1

Os coeficientes têm as definições,

ruma=Δthj(umahj2h-+dh-)

rb=Δthj(a2[hj1hhj+1h+]+d[1h1h+])

rc=Δthj(ahj2h++dh+)

Todas as variáveis ​​" " são definidas como no diagrama acima. Finalmente, Δ t que é o intervalo de tempo ( NB este é um simplificada caso com constantes de um e d coeficientes, na prática os " r coeficientes" são um pouco mais complicado por esta razão).hΔtumadr


1
O livro mais recente de LeVeque sobre métodos de volume finito defende células fantasmas, devido à sua simplicidade de implementação, mas não me lembro da discussão de termos de erro.
precisa

Você pode escrever as equações que deseja resolver? O caminho a percorrer também dependerá do problema. Por exemplo, pode ser que, devido à parte 'Neumann', as condições de contorno sejam naturalmente resolvidas na formulação discreta.
Jan

@GeoffOxberry, obrigado pela sugestão. Estou feliz usando a célula fantasma, vou tentar implementar dessa maneira.
boyfarrell

@ Jan Eu inicialmente evitei colocar as equações por causa da complexidade devido à discretização não uniforme da malha, mas atualizei a questão com esses detalhes. Esse é um problema de difusão de advecção. Não tenho muita certeza do que você quer dizer com "resolvido naturalmente".
boyfarrell

Como os Neumann bc's são naturalmente resolvidos nos esquemas FEM para, por exemplo, o eqn de Poisson. Para FVM penso: Considere a primeira célula . Se você tem um valor para u x0hdx(au+dux)dx=(au+dux)|x=h1(au+dux)|x=0=suxno limite, não há necessidade de discretizá-lo.
Jan

Respostas:


9

É mais uma observação geral sobre a FVM do que uma resposta para perguntas concretas. E a mensagem é que não deve haver a necessidade de uma discretização adhoc das condições de contorno.

Diferentemente dos métodos FE ou FD, onde o ponto de partida é um ansatz discreto para a solução, a abordagem FVM deixa a solução intocada (no início), mas calcula a média de uma segmentação do domínio. A discretização da solução entra em jogo somente quando o sistema de equações de equilíbrio obtido é transformado em um sistema de equações algébricas aproximando os fluxos através das interfaces.

Nesse sentido, tendo em vista as condições de contorno, aconselho a manter a forma contínua da solução o maior tempo possível e a introduzir aproximações discretas apenas no final.

Digamos que a equação aplica a todo o domínio. Em seguida, ele se mantém no subdomínio [ 0 , h 1 ) e uma integração no espaço fornece h 1 0 u t d x

vocêt=-umavocêx+dvocêxx+s(x,você,t)
[0 0,h1)
0 0h1vocêtdx=0 0h1x(-umavocê+dvocêx)dx+0 0h1s(x,você,t)dx=(-umavocê+dvocêx)|x=h1-(-umavocê+dvocêx)|x=0 0+0 0h1s(x,você,t)dx,
você

CEuvocêvocê(t,x)|CEu=vocêEu(t)você(xEu)vocêEuvocêx|hEuvocêEuvocêEu+1você

(-umavocê+dvocêx)|x=0 0, não importa o que tenha sido feito para você tão longe.

  • Dado você|x=0 0=gD pode-se introduzir uma célula fantasma e a condição de que um interpolante entre você0 0 e você1 é igual a gD na fronteira.

  • Dado vocêx|x=0 0=gN pode-se introduzir uma célula fantasma e a condição de que uma aproximação à derivada entre você0 0 e você1 partidas gN na fronteira

  • Se o próprio fluxo for prescrito: (-umavocê+dvocêx)|x=0 0=gR, não há necessidade de discretização.

No entanto, não tenho certeza, o que fazer no caso de existirem Robin tipo bc que não correspondam diretamente ao fluxo. Isso precisará de alguma regularização devido à descontinuidade dos parâmetros de advecção e difusão.


===> Algumas reflexões pessoais sobre a FVM <===

  • FVM não é uma FDM em escala, como exemplos das equações de 1D Poisson em uma grade regular geralmente sugerem
  • Não deve haver uma grade na FVM, deve haver células com interfaces e, se necessário, centros
  • É por isso que acho que uma formulação estêncil da discretização não é adequada
  • A montagem do sistema de equações deve ser feita de acordo com a abordagem de discretização, ou seja, iterando sobre as células, em vez de definir uma equação para cada desconhecido. Eu quero pensar noEu-a linha da matriz do coeficiente como parte do problema colocado na célula ΩEu, em vez da equação associada a vocêEu.
  • Isso é particularmente importante para problemas de 2D ou 3D, mas também pode ajudar a ter uma notação clara em 1D: faça a diferença entre o volume (em 1D: comprimento) da célula, aqui hEu, e a distância entre os centros, talvez em 1D: dEu: =dEu,Eu+1=|xEu-xEu+1|.


Obrigado por sua orientação enquanto eu estava aprendendo sobre esse método. Talvez eu possa compartilhar meus pensamentos também. Concordo que é melhor dizer com o formulário FVM pelo maior tempo possível; particularmente para as condições de contorno, como você mostrou! Mas acho que é muito útil ao implementar a escrita da equação em forma de matriz; é uma notação precisa e clara. Além disso, a estabilidade e outras propriedades numéricas dependem crucialmente de como o problema é discretizado (para FVM, isso significa como os fluxos que a célula enfrenta são aproximados). A esse respeito, prefiro as equações da matriz, à iteração sobre as células.
boyfarrell

Talvez meu último argumento tenha sido ambíguo. No final, você terá uma matriz de coeficiente e um vetor variável. Vou editar minha postagem. Eu era mais sobre interpretação do que realmente fazer.
Jan

Fantástico, eu entendo o seu ponto. Obrigado.
boyfarrell
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.