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[hj−1h−−hj+1h+]+d[−1h−−1h+])

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 x∫0hdx(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 0h1∂x(-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.