A equação de advecção precisa ser discretizada para ser usada no método Crank-Nicolson. Alguém pode me mostrar como fazer isso?
pde
advection
crank-nicolson
pandoragami
fonte
fonte
Respostas:
Começando com a equação de advecção é de forma conservadora,
O método Crank-Nicolson consiste em uma diferença centrada no tempo médio.
Em relação à notação, os subscritos são para pontos no espaço e os sobrescritos são para pontos no tempo.
Os pontos em estão no futuro: são desconhecidos. Agora precisamos reorganizar a equação acima para que todos os conhecidos estejam no rhs e os desconhecidos no lhs.n + 1
Fazendo a substituição,
dá,
Esta é a equação de advecção discretizada usando o método Crank-Nicolson. Você pode escrevê-lo como uma equação matricial,
β=1/2
Algumas palavras de aviso. Esta é a solução básica que você queria, mas precisará incluir algum tipo de condição de contorno para um problema bem colocado. Além disso, Crank-Nicolson não é necessariamente o melhor método para a equação de advecção. É de segunda ordem precisa e incondicionalmente estável , o que é fantástico. No entanto, ele gerará (como em todos os estênceis de diferença centralizada) uma oscilação espúria se você tiver soluções pontiagudas muito acentuadas ou condições iniciais.
Eu escrevi o código a seguir para você em Python, ele deve começar. O código resolve a equação de advecção para uma curva gaussiana inicial movendo-se para a direita com velocidade constante.
fonte