Genel olarak konuşursak, parabolik denklemler (difüzyon kısmı) için açık bir yöntem kullanmak istersiniz - parabolik PDE için açık şemaların kararlı olması için çok kısa bir zaman çizelgesine sahip olmaları gerekir. Tersine, hiperbolik kısım (tavsiye) için daha ucuz olduğu gibi açık bir yöntem isteyeceksiniz ve difüzyon için örtük bir şema kullanarak çözmek zorunda olduğunuz doğrusal sistemin simetrisini bozmaz. Bu durumda, sizin gibi merkezli farklılıkları önlemek istiyorsanız ve anahtar tek taraflı farklılıklara ( u j - u j - 1(uj+1−uj−1)/2Δt, stabilite nedenlerinden ötürü.(uj−uj−1)/Δt
Randy Leveque'in kitabına veya Dale Durran'ın "von Neumann kararlılık analizi" kitabına bakmanızı öneririm . Periyodik sınır koşullarına sahip olmanız koşuluyla, takdir yetkisi planınızın kararlılığını tespit etmek için genel bir yaklaşımdır. (Burada ayrıca iyi bir wiki makalesi var. .)
Temel fikir ayrık yaklaşım düzlem dalgaların bir toplamı yazılabilir olduğunu varsaymaktır burada, k, dalga sayısı ve co frekans. PDE'ye olan yaklaşımınıza bir düzlem dalgası tıkar ve uçmaması için dua edersiniz. Biz düzlem dalgası yeniden yazabilirsiniz Karsılık n e ı k j Δ x ve biz emin olun istiyorum | ξ | ≤ 1ei(kjΔx−ωnΔt)kωξneikjΔx|ξ|≤1 .
Örnekleme ile, sıradan difüzyon denklemini tamamen örtülü farklılıkla düşünün:
un+1j−unjΔt=Dun+1j−1−2un+1j+un+1j+1Δx2
Bir düzlem dalgası yerine, daha sonra bölün ve e i k j Δ x biz denklemi eldeξneikjΔx
ξ−1Δt=De−ikΔx−2+eikΔxΔx2ξ
Bunu şimdi biraz temizledikten sonra şunu elde ederiz:
ξ=11+2DΔtΔx2(1−coskΔx) .
Bu her zaman bir taneden daha azdır, bu yüzden açıklık içindesiniz. Bunu tavsiye denklemi için açık, merkezlenmiş şema için uygulamayı deneyin:
un+1j−unjΔt=vunj−1−unj+12Δx
ve ne olduğunu görmek alırsın. (Bu sefer hayali bir parçası olacak.) Bunu bulacaksınız | ξ | 2 > 1ξ|ξ|2>1 , bu üzücü zamanlar. Dolayısıyla benim tavsiyem, kullanmadığın. Bunu yapabilirseniz, o zaman bütünüyle difüzyon denklemi için sabit bir program bulmakta zorlanmayacaksınız.
Bu, difüzyon kısmı için tamamen örtülü bir şema kullanacağımı söyledi. Adveksiyon kısmen fark kayıt değiştirme ise v > 0 ve u j - u j + 1 ise v < 0 ve böylece timestep çekme V Δ t / Δ x ≤ 1 . (Bu Courant-Friedrichs-Lewy koşulu .) Sadece birinci dereceden doğrudur, bu yüzden sizi ilgilendiriyorsa daha yüksek seviyedeki takdir yetkisi uygulamalarına bakmak isteyebilirsiniz.uj−uj−1v>0uj−uj+1v<0VΔt/Δx≤1