Uso ideal da divisão de Strang (para equação de difusão da reação)


9

Fiz uma observação estranha ao calcular a solução para uma simples equação de difusão da reação 1D:

ta=2x2aab

tb=ab

tc=a

O valor inicial de é uma constante ( ), e só estou interessado na integral sobre de a ( ). O propósito de e a equação é apenas para avaliar esta integral.bb(0,x)=b0a0101a(t,x)dtctc=a

Usei um esquema de divisão de Strang para o acoplamento entre difusão e reação (uma reação de meio passo, depois uma difusão de passo completo e, novamente, uma reação de meio passo), um esquema de Crank Nicholson para a difusão e uma solução analítica para a reação ( incluindo a equação ).tc=a

Como uma etapa da solução analítica era mais que um fator 3 mais lenta que uma etapa do esquema Crank Nicholson, tentei fazer mais de uma etapa Crank Nicholson para cada etapa da reação. Eu esperava seguir com menos etapas do esquema de divisão do Strang, para que eu fosse mais rápido no geral.

No entanto, o efeito oposto pode ser observado, a saber, que muito mais etapas para o esquema de divisão de Strang são necessárias se mais de uma etapa da Crank Nicholson for usada. (Estou preocupado apenas com a precisão da integral sobre , que parece convergir mais rápido que própria.) Depois de pensar por algum tempo, notei que o mesmo efeito também ocorre para , e que eu até entendo o porquê desse caso. O ponto é que, se eu fizer exatamente uma etapa do Crank Nicholson, o esquema geral se transformará em uma regra trapezoidal (se ).aab(t,x)=b0=0b(t)=0

Portanto, se eu tratasse como parte da etapa de difusão, aumentar o número de etapas da Crank Nicholson (provavelmente) não levaria a uma precisão geral reduzida (como observado). Mas isso parece anular o propósito de usar uma solução analítica para a parte de reação (não linear e potencialmente muito rígida) do sistema.tc=a

Então, eis a minha pergunta: existe uma maneira melhor de tratar no contexto de uma divisão de Strang, do que tratá-lo como parte da etapa da reação ou tratar como parte da etapa de difusão. Quero evitar ser "forçado" a usar exatamente uma etapa do Crank Nicholson para a difusão. (Por exemplo, em 3D, eu preferiria resolver a difusão analiticamente por uma FFT em vez de usar Crank Nicholson. É claro que também posso combinar a FFT com a Crank Nicholson, para que não seja tão importante.)tc=a


Em people.maths.ox.ac.uk/dellar/OperatorLB.html , um efeito semelhante parece ser descrito. A conclusão é que é crucial usar o Crank Nicholson em vez da solução exata. Então, talvez a resposta para minha pergunta seja um simples não.
Thomas Klimpel

Algo parece errado com suas equações. não aparece nos dois primeiros, tornando o acoplamento unidirecional e significa que você pode calcular a qualquer como uma etapa de pós-processamento. cct
Bill Barth

@ BillBarth Alterei a questão para esclarecer o papel de . Portanto, é apenas um meio de calcular . Informe-me se você tiver alguma sugestão de como calcular essa integral mais precisa (do que a que recebo da combinação da divisão Strang e Crank Nicholson descrita acima), potencialmente usando uma etapa de pós-processamento. cc01a(t,x)dt
Thomas Klimpel

Isso já faz muito tempo, mas você reconheceu que esse sistema de equações pode ser escrito como um PDE parabólico em com um termo de reação exponencial? Acho que me pergunto se você realmente deseja resolver esse sistema de 3 variáveis ​​em vez de um sistema simplificado. c
Bill Barth

@ BillBarth Gostaria de saber como esse sistema pode ser escrito como um PDE parabólico com um termo de reação exponencial. A velocidade da solução deste modelo é um fator limitante durante a calibração do modelo (que pode levar várias horas), mesmo assim a precisão usada em relação à integração do tempo está muito longe da convergência total.
22613 Thomas Klimpel

Respostas:


6

Vou escrever isso como uma resposta, embora não responda diretamente à pergunta.

Ao conectar a segunda equação e a terceira equação na primeira e conectar a terceira na segunda, dê-se: Reorganizando essas duas opções: Agora, podemos integrar os dois uma vez em , deixando para a primeira equação:

2ct2=2x2ct+btbt=(ct)b
t(ct2cx2b)=01b(bt)=ct
t
ct2cx2=b+A(x)
Usando a terceira equação, podemos expressar a "constante" da integração como . A segunda equação é um pouco mais complicada. Reescrevendo um pouco, temos: Isso leva à solução Ou exponenciamento fornece: E, finalmente, conectando-o ao PDE para dá A(x)=a02c0x2b0
0t1b(x,t)(b(x,t)t)dt=0tc(x,t)tdt
lnb(x,t)lnb0(x)=c(x)+c0(x)
lnbb0=c+c0
b=b0ec0c
c
ct2cx2=b0ec0c+A(x)

Substituindo por , ou equivalente usando as condições iniciais , esta equação simplifica para Agora, você deve conseguir literatura considerável sobre a melhor maneira de resolver essa equação. Não sei se Crank-Nicholson é uma boa escolha para o termo exponencial, mas parece plausível. Alguns cuidados provavelmente devem ser tomados para garantir que em lugar ou a solução possa explodir rapidamente.ccc0c0(x)=0

ct=2cx2+a0(1ec)b0
c>c0

Eu só passei por essa derivação duas vezes, então pode haver um erro ou dois, mas tem a sensação certa para mim. Se todos os lugares, então esta é claramente a solução certa e, de outra forma, tem um cheiro de plausibilidade.b0=0

Resolver isso até e avaliar deve fornecer a resposta que você está procurando.t=1c(x,1)


Muito obrigado por esta resposta. Acho isso bastante esclarecedor, pelo menos facilita a compreensão / previsão do comportamento da solução. Outra vantagem é que a evolução no tempo de é mais lenta que a evolução no tempo de , então estou bastante otimista de que a convergência será melhor do que antes. ca
22613 Thomas Klimpel

Sem problemas. Eu estava me irritando depois da nossa troca inicial de comentários. Espero que seja útil.
Bill Barth
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.