Como os coeficientes não constantes devem ser tratados com um esquema a montante de primeira ordem em volume finito?

11

Começando com a equação de advecção em forma de conservação.

ut=(a(x)u)x

onde é uma velocidade que depende do espaço, e é uma concentração de uma espécie que é conservada.ua(x)u

Discretizar o fluxo (onde o fluxo , é definido nas bordas das células entre os pontos da malha) dá, u t = 1f=a(x)u

ut=1h(fj12fj+12)

Usando uma primeira ordem contra o vento, aproximamos os fluxos como,

fj12=a(xj12)uj1fj+12=a(xj+12)uj
que fornece,
ut=1h(a(xj12)uj1a(xj+12)uj)

Se for constante, isso reduzirá ao esquema a vento, ou seja, .u t = aa(x)ut=ah(uj1uj)

Minha pergunta é: como podemos tratar os coeficientes não constantes da equação de advecção? A velocidade é definida nos centros celulares, portanto, uma abordagem simples seria a seguinte,

a(xj12)a(xj1)a(xj+12)a(xj)

Essa é a minha abordagem preferida porque é muito simples de implementar.

No entanto, também podemos usar (suponho) um esquema de média para definir a velocidade nas bordas da célula,

a(xj12)12a(xj1)+12a(xj)a(xj+12)12a(xj)+12a(xj+1)

No livro de LeVeque, ele diz:

Até agora, assumimos que a velocidade variável é especificada por um valor constante dentro da j-ésima célula da grade. Em alguns casos, é mais natural supor que uma velocidade seja especificada em cada interface de célula.a ja(x)ajaj12

Mas ele não elaborou muito depois disso. O que é uma abordagem comum?

Estou resolvendo um problema de conservação (estou usando a equação de advecção como uma equação de continuidade), portanto, quero ter certeza de que, depois de aplicar a discretização, a propriedade de conservação será preservada. Eu gostaria de evitar surpresas ocultas sobre esses coeficientes variáveis! Alguém tem alguns comentários e orientações gerais?


Atualização Existem duas respostas realmente boas abaixo e eu só podia escolher uma :(

boyfarrell
fonte

Respostas:

4

Dependendo do tipo de sistema que você está visualizando, pode ser mais conveniente considerar a velocidade como constante por partes dentro de cada célula ou definida nas interfaces da célula. Por exemplo, na meteorologia, grades escalonadas são bastante comuns, onde a pressão pode ser definida dentro das células e a velocidade nas interfaces das células. Você poderia pensar tão facilmente na velocidade como definida dentro das células. Tudo dito: a escolha da representação não deve afetar a convergência do seu método *, desde que sua discretização seja estável e consistente.a

O que é mais importante (e você já mencionou isso na sua pergunta) é que o sistema discretizado ainda é conservador. Desde que seu esquema possa ser escrito no formato

ujt=Fj12(uj1,uj)Fj+12(uj,uj+1)

então deve ser conservador, já que

tudx=jujtδx=j(Fj12Fj+12)δx=(F12FN+12)δx .

Sua abordagem simples deve funcionar bem, assim como a velocidade média entre as células para defini-la nas interfaces das células, desde que a velocidade seja sempre positiva. Além disso, não acho que a média trará uma precisão mais alta, então você tem razão em preferir a maneira simples.

Se você também está resolvendo a velocidade e possui um sistema de equações, pode ser necessário ter mais cuidado. Da mesma forma, se você estiver resolvendo um PDE hiperbólico não linear e usando limitadores de fluxo, precisará ser ainda mais cauteloso.

* No entanto, para um sistema de PDEs hiperbólicas, o uso de grades escalonadas pode melhorar substancialmente a dispersão / difusão artificial. Se você quiser saber mais, procure as grades C de Arakawa ou consulte o capítulo 4 deste livro .

Daniel Shapero
fonte
Obrigado por explicar. E sua intuição está correta; Estou resolvendo um sistema de equações em que uma das equações é a velocidade (um PDE das outras variáveis). O sistema de equações é apenas 1D. Estou planejando usar um método a favor do vento de 1ª ordem adaptável (pode alternar entre a central de 2ª ordem e o vento) talvez com ajuste exponencial. Não estou usando limitadores de fluxo, mas o sistema não é linear. Preciso ter "mais cuidado" nessa situação?
boyfarrell
Tudo depende se você espera que ondas de choque se formem, se existe a possibilidade de a velocidade ficar abaixo de zero em algumas regiões ou se a velocidade pode se tornar alta o suficiente para que você colidir com a condição de Courant-Friedrichs-Lewy em algum ponto. Dito isso, eu tentaria a abordagem simples primeiro para ver se funciona, o que pode muito bem fazer. Se falhar, será espetacular e inequivocamente, por isso não acho que você precise se preocupar em ter algo errado sob seu radar.
Daniel Shapero
Sim, espero que a velocidade seja apenas diferente de zero apenas no centro do meu domínio e, em seguida, me aproxime rapidamente de zero quando alguém se afasta do centro. Estou escolhendo o intervalo de tempo para que a condição CFL seja satisfeita (usando a velocidade máxima), a malha é fixa. Quais são os critérios para uma onda de choque? Não estou prevendo ver isso (mas você nunca sabe).
Boyfarrell
5

Outros já disseram tudo, mas eu só queria acrescentar um ponto simples, mas às vezes sutil. Sua discretização contra o vento permanece conservadora, desde que você use uma interpolação consistente de nos limites da célula.a(x)

O que quero dizer com consistente é que a única condição que a interpolação precisa satisfazer é

ai+1/2+=ai+1/2

Em outras palavras, desde que seu método de interpolação seja contínuo através dos limites das células, sua discretização permanecerá conservadora.

Isso pode não parecer um grande problema aqui em 1D (e não deveria), mas pode causar problemas nas interfaces grosseiras nas redes AMR de vários níveis.

GradGuy
fonte
Em relação à consistência. Para uma abordagem de volume finito centrada na célula. Se tiver escolhido a utilização (por exemplo) uma interpolação linear para estimar os valores de vértice do desconhecido, deverá também utilizar o mesmo modo de interpolao para estimar o valor do coeficiente de ? É correto "misturar" estimativas? Por exemplo, seria válido assumir mas use a interpolação para encontrar ? uj+12a(xj+12)a(xj+12)a(xj+1)uj+12
boyfarrell
@boyfarrell Seria bom no sentido de que o método continua sendo conservador. No entanto, afeta a precisão da solução. Muitas vezes, por exemplo, nos esquemas ENO, aproxima-se toda a função de fluxo e não a velocidade e a solução separadamente.
GradGuy
4

Você pode usar qualquer tipo de interpolação para determinar , e o método permanecerá conservador.a(xj12)

Para ver por que isso ocorre, considere que a definição analítica de conservador é que

tDu(x)dx=Da(x)u(x)dS,

onde é o domínio do problema. Isso diz que a mudança na quantidade conservada é igual ao fluxo na fronteira e ocorre imediatamente após a integração da lei de conservação.D

Se a nossa discretização é da forma

ut(xj)=1h(a(xj12)uj12a(xj+12)uj+12)

onde são nossos pontos de grade, e , , então a declaração discreta equivalente de conservação éx1,,xnD=[c,d]c=x12d=xn+12

1hj=1n(a(xj12)uj12a(xj+12)uj+12)=a(x12)u12a(xn+12)un+12,

e isso pode ser facilmente observado expandindo a soma no lado esquerdo. Observe que, no seu caso com upwinding, e , embora deva ser observado que esse esquema é apenas um esquema contra o vento apropriado se for sempre positivo.uj12=uj1a(x)uuj+12=uja(x)u

Para métodos de ordem superior, desde que seja suave, pode-se simplesmente ajustar um polinômio aos pontos e avaliar o polinômio em .a ( x j - r ) , , a ( x j + s ) a ( x j - 1a(x)a(xjr),,a(xj+s)a(xj12)

Ben
fonte