Crank-Nicolson, Reaction-Difusion-Advection (konveksiyon) denklemi için kararlı bir isteğe bağlı düzenleme planı mıdır?


26

PDE'ler için ortak takdir planlarına pek aşina değilim. Crank-Nicolson'un difüzyon denkleminin ayrıklaştırılması için popüler bir program olduğunu biliyorum. Tavsiye süresi için de iyi bir seçim mi?

Reaction-Difusion-Advection denklemini çözmede ilginçim.

ut+(vuDu)=f

burada maddenin difüzyon katsayısı ve hızıdır.u vDuv

Özel başvurum için denklem formuna yazılabilir,

ut=D2ux2Diffusion+vuxAdvection (convection)+f(x,t)Reaction

İşte benim uyguladığım Crank-Nicolson programı.

ujn+1ujnΔt=D[1β(Δx)2(uj1n2ujn+uj+1n)+β(Δx)2(uj1n+12ujn+1+uj+1n+1)]+v[1α2Δx(uj+1nuj1n)+α2Δx(uj+1n+1uj1n+1)]+f(x,t)

Uyarı ve \ beta terimleri. Bu, şemanın aşağıdakiler arasında hareket etmesini sağlar:αβ

  • β=α=1/2 1/2 Krank-Niscolson,
  • β=α=1 tamamen kapalı
  • β=α=0 tamamen açık

Değerler farklı olabilir, bu da difüzyon teriminin Crank-Nicolson olmasını ve tavsiye teriminin başka bir şey olmasını sağlar. En istikrarlı yaklaşım nedir, ne önerirsiniz?

Yanıtlar:


15

Bu iyi çerçeveli bir soru ve anlaşılması gereken çok faydalı bir şey. Korrok, sizi von Neumann analizine ve LeVeque'in kitabına yönlendirmek konusunda doğrudur. Buna biraz daha ekleyebilirim. Detaylı bir cevap yazmak istiyorum, ancak şu anda sadece kısa bir cevap için vaktim var:

İle , bir kesinlikle rasgele büyük adım boyutları stabildir yöntemi, aynı zamanda, doğru ikinci derece olsun. Bununla birlikte, yöntem L- değişken değildir , bu yüzden çok yüksek frekanslar sönümlenmeyecektir, bu fiziksel olmayandır.α=β=1/2

İle , ayrıca koşulsuz kararlı, ama sadece 1 dereceden doğru bir yöntem olsun. Bu yöntem çok dağıtıcıdır. Öyle L -Kararlı.α=β=1

Eğer alırsak , için bir yöntem, bir uygulanması olarak anlaşılabilir katkı Runge Kutta yöntemi merkezli farklar yarı ayrıklaştırma. Bu tür yöntemler için kararlılık ve doğruluk analizi oldukça daha karmaşıktır. Bu tür yöntemler hakkında çok güzel bir makale buradaαβ .

Hangi yaklaşımı önereceğiniz, nin büyüklüğüne, iş yaptığınız ilk verinin türüne ve aradığınız doğruluğa bağlıdır. Çok düşük doğruluk kabul edilebilirse, α = β = 1 çok sağlam bir yaklaşımdır. Eğer D orta ya da büyük, sorun difüzyon ağırlıklı ve çok sert olduğu; tipik olarak, α = β = 1 / 2 iyi sonuç verecektir. Eğer D çok azdır, o zaman konvektif terimleri, açık bir yöntem ve daha yüksek dereceden Yukarı sarma kullanmak avantajlı olabilir.Dα=β=1Dα=β=1/2D


Çok anlayışlı cevaplar, teşekkür ederim! Difüzyonun baskın olduğu ve savunuculuk baskınlığının farklı rejimlerini tanımlamanın bir yolu var mı? Terimlerin büyüklüğünü karşılaştırmaktan başka? Örneğin, sadece katsayıları karşılaştırarak mı? L-stabilite teknik teriminin anlamı nedir? Herkes bu kitabı tavsiye ediyor, satın almalıyım!
boyfarrell

Sana verdiğim kriter sadece katsayıları içeriyor. Kısaca, L-stabilitesi, yüksek frekansların güçlü bir şekilde söndüğü anlamına gelir.
David Ketcheson 04.03

Yani pürüzsüz bir işlev olduğunda (anlamda olduğu gibi, yüksek frekanslı Fourier bileşenlerine sahip değildir) Crank-Nicolson iyi bir seçimdir. Ancak, u ( x ) keskin kenarlara sahipse, β = 1 iyi bir seçimdir. u(x)u(x)β=1
boyfarrell

Bu makul ama çok kaba bir genelleme. Bu seçimler en azından çok fazla hassasiyete ihtiyacınız yoksa çalışacaktır.
David Ketcheson

10

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+1uj1)/2Δt, stabilite nedenlerinden ötürü.(ujuj1)/Δ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:

ujn+1ujnΔt=Duj1n+12ujn+1+uj+1n+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=DeikΔx2+eikΔxΔx2ξ

Bunu şimdi biraz temizledikten sonra şunu elde ederiz:

ξ=11+2DΔtΔx2(1coskΔ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:

ujn+1ujnΔt=vuj1nuj+1n2Δ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.ujuj1v>0ujuj+1v<0VΔt/Δx1


Bu gerçekten ayrıntılı bir cevap, teşekkür ederim.
boyfarrell

Bu cevap, zaman içinde yalnızca ileri ve geri Euler yöntemlerine dayanan takdir yetkisini dikkate almaktadır. Soru Crank-Nicholson'la ilgili.
David Ketcheson
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.