Começando com a equação de advecção em forma de conservação.
onde é uma velocidade que depende do espaço, e é uma concentração de uma espécie que é conservada.u
Discretizar o fluxo (onde o fluxo , é definido nas bordas das células entre os pontos da malha) dá, u t = 1
Usando uma primeira ordem contra o vento, aproximamos os fluxos como,
Se for constante, isso reduzirá ao esquema a vento, ou seja, .u t = a
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,
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,
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 j
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 :(
fonte
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 é
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.
fonte
Você pode usar qualquer tipo de interpolação para determinar , e o método permanecerá conservador.a(xj−12)
Para ver por que isso ocorre, considere que a definição analítica de conservador é que
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
onde são nossos pontos de grade, e , , então a declaração discreta equivalente de conservação éx1,…,xn D=[c,d] c=x12 d=xn+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.uj−12=uj−1 a(x)uuj+12=uj a(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(xj−r),…,a(xj+s) a(xj−12)
fonte