Newton-Raphson ötesinde lineer olmayan adveksiyon-difüzyon sistemlerini çözme yöntemleri?


9

Ben kendi kaynak terimleri (bir etki alanı kitle ekler, diğer kütle çıkarır) aracılığıyla iki adv-diff çift etki alanları var bir proje üzerinde çalışıyorum. Kısacası, onları istikrarlı bir şekilde modelleniyorum. Denklemler, kaynak terimine sahip standart adveksiyon-difüzyon taşıma denkleminizdir:

c1t=0=F1+Q1(c1,c2)c2t=0=F2+Q2(c1,c2)

Burada türler için olan yayılma ve Advektif akı ve türler için kaynak terimdir .FiiQii

Newton-Raphson yöntemini kullanarak sorunum için bir çözücü yazabildim ve iki alanı tamamen bir blok kütle matrisi kullanarak, yani:

Fcoupled=[A100A2][c1,ic2,i]xi[b1(c1,i,c2,i)b2(c1,i,c2,i)]

Terimi Jakobyan matrisinin her iki güncellemek için kullanılır ve :Fcoupledc1c2

J(xi)[xi+1xi]=Fcoupled

veya

xi+1=xi(J(xi))1Fcoupled

İşleri hızlandırmak için Jacobian'ı her yinelemeyi hesaplamıyorum - şu anda yeterince iyi çalıştığı ve çözümü sabit tuttuğu her beş yinelemeyle oynuyorum.

Sorun şu ki, her iki alanın da 2D / 2.5D'de olduğu daha büyük bir sisteme geçeceğim ve Jacobian matrisinin hesaplanması mevcut bilgisayar kaynaklarımı hızla tüketecek. Daha sonra bir optimizasyon ayarında kullanılmak üzere bu modeli inşa ediyorum, bu yüzden sönüm faktörünü ayarlayan her iterasyonda direksiyonun arkasında olamam.

Benim sorunum için daha sağlam ve algoritma için başka bir yerde mi arıyorsunuz, yoksa bu kadar iyi mi? Yarı doğrusallaştırmaya biraz baktım, ancak sistemime ne kadar uygulanabilir olduğundan emin değilim.

Kaçırdığım, Jacobian'ı yeniden hesaplamak için başvurmadan doğrusal olmayan bir denklem sistemini çözebilecek başka kaygan algoritmalar var mı?


2
AMG - cebirsel multigrid yöntemleri gibi yinelemeli çözümleyicileri düşündünüz mü? Fizik temelli iyi önkoşullar bulmanız gerekebilir.
NameRakes

1
Paralel doğrusal cebir paketi kullanarak Jacobian formasyonunu ve çözümünü dağıtabileceğiniz bir bilgi işlem kümesine erişebiliyor musunuz?
Bill Barth

Hayır, AMG'yi düşünmedim, bunların sadece simetrik sistemler için olduğunu ve konveksiyon baskın problemlerde kullanılamayacağını düşündüm. AMG için literatürde tekrar bakacağım.
cbcoutinho

Paralel hesaplamalar zordur, çünkü bu proje bu tür kaynaklara erişimi olmayan meslektaşları için bağımsız bir uygulama olarak geliştirilmektedir. Kendi iyiliğim için projeye mpi geliştirmeyi düşündüm, ancak bu, ilk etapta bütün mesele olan diğerleri için giriş engelini artıracaktır.
cbcoutinho

3
Jacobian'ı hesaplamak neden bu kadar sorunlu? Sonlu farklar / hacimler / elemanlar kullanıyorsanız, her zaman aynı olan seyrek bir kısmı ve değişen ancak hesaplanması önemsiz olan çapraz bir kısmı olmalıdır.
David Ketcheson

Yanıtlar:


4

2D ve 3D'deki sınırlamanın Jacobian'ı sakladığını varsayıyorum.

Bir seçenek, zaman türevlerini tutmak ve kararlı duruma tekrarlamak için açık bir "sözde" zaman adımı kullanmaktır. Normalde, difüzif ve reaktif sistemler için ihtiyacınız olan CFL numarası belirgin bir şekilde küçük olabilir. Yakınsamanı hızlandırmak için doğrusal olmayan multigrid (Tam Yaklaşık Depolama multigrid olarak da bilinir) ve yerel zaman adımını deneyebilirsiniz.

Diğer seçenek, şu anda yaptığınız gibi tamamen kapalı bir şema kullanmaktır, ancak küresel Jacobian'ı saklamamaktır. Matris içermeyen örtük bir şema kullanabilirsiniz. ( Jacobian olduğu) gerçeği kullanılarak GMRES ve BiCGStab gibi bir Krylov altuzay çözücü ile çözülebilir Bu GMRES ve BiCGStab bir LHS matris gerekmez çünkü , sadece ürün hesaplamak için gerekiyor bir vektör verilen .

DF(un)δun=F(un)
DF
DF(un)δuF(un+ϵδuδu)F(un)ϵ.
AAxx

Şimdi uygun bir değeriyle (genellikle çift ​​duyarlıklı şamandıralar için yaklaşık ) bir Jacobian'ı hesaplamadan veya saklamadan bir Newton döngüsü gerçekleştirebilirsiniz. Bu tekniğin hesaplamalı akışkanlar dinamiğinde önemsiz olan bazı durumları çözmek için kullanıldığını biliyorum. Bununla birlikte, fonksiyonunun değerlendirme sayısının bir matris-vektör ürünü gerektirmek yerine bir matris depolama tekniğinden daha fazla olacağını unutmayın.ϵ107F

Dikkat edilmesi gereken başka bir şey, sisteminiz güçlü bir ön koşullayıcıya ihtiyaç duyuyorsa (örn. Jacobi veya blok-Jacobi yeterli olmayacaktır), yukarıda belirtilen yöntemi çok hızlı bir şemada daha pürüzsüz olarak kullanmayı deneyebilirsiniz. Bir nokta veya blok-Jacobi önkoşulunu denemek istiyorsanız, sadece Jacobian'ın çapraz elemanlarını veya çapraz bloklarını hesaplayabilir ve saklayabilirsiniz, ki bu çok fazla değil. Ayrıca bir Gauss-Seidel veya SSOR önkoşulunun açıkça bir Jacobian'ı saklamadan uygulamak mümkün olabileceğinden de bahsetmeliyim. Bu makalede , hesaplamalı akışkanlar dinamiği bağlamında matrissiz simetrik Gauss-Seidel ile önceden koşullandırılmış matrissiz bir GMRES uygulaması açıklanmaktadır.


1

Navier-Stokes denklemleri ile yaşadığım tecrübeden, tamamen örtük şemalar olmadan çok iyi bir şey yapılabilir.

Sadece zaman evriminin çözümü için hızlı bir sayısal şema istiyorsanız, IMEX (örtük-açık) şemalarına bir göz atın; bkz. örneğin Ascher, Ruuth, Spiteri Örtük-Açık Runge-Kutta Zamana Bağlı Kısmi Diferansiyel Denklemler için Yöntemler .

Hatta adım boyutu kontrolüyle (Matlab'ınki gibi ODE45) açık bir yüksek dereceli zaman entegrasyon şeması kullanmaya çalışabilirsiniz . Ancak, yayılma kısmından gelen sisteminizin sertliğinden dolayı sorun yaşayabilirsiniz. Neyse ki, yayılma kısmı doğrusaldır, böylece dolaylı olarak tedavi edilebilir (IMEX şemalarının fikri budur).


0

İlk başta sadece bir açıklama eklemeyi düşündüm, ancak alan yeterli değildi, bu yüzden bu konuyla ilgili deneyimlerimin kısa bir açıklamasını ekledim.

İlk olarak, ile ilgili gösterimlerinize bakarak , birleşmiş formu görmüyorum, ve hem hem de ' bağlı olacağını varsayalım . Ayrıca, ve , ve yaklaşımlarının matris temsilleriyse, yalnızca , aynı zamanda komşu değerlerine de bağlı olmalıdırlar , ancak bu sadece gösterimin yanlış bir şekilde anlaşılması olabilir .Fcoupledb1b2c1,ic2,iA1A2F1F2ci

Genel bir yorum olarak, analitik Jacobian kullanımının doğrusal olmayan yinelemeli çözücünün (örneğin, sizin durumunuzdaki Newton-Raphson çözücüsünün) ikinci dereceden yakınsamasını elde etmenin tek yolu olduğunu eklemek isterim. Sizin durumunuzda gözlemlediniz mi? Bu oldukça önemlidir, çünkü aksi takdirde yaklaşımlarınızda (doğrusallaştırma) bazı yanlış anlaşılmalar olabilir.

Katıldığım tüm uygulamalarda (bazıları büyük ölçekli hesaplamalar dahil) hiç Jacobian'ın montajı için zaman harcamasıyla ilgili bir sorun yaşamadık, en çok zaman alan konu daima doğrusal bir çözücü uygulamaktı. Analitik Jacobian (varsa) her zaman ikinci dereceden yakınsama nedeniyle tercih edilen seçim üzerinde çalıştığım uygulamalarda olmuştur. Bazı durumlarda, bu tür doğrusal olmayan çözücü, yinelemeli doğrusal çözücünün yakınsamasında sorunlara neden olan bir matris üretir, bu nedenle doğrusal çözücüye yardımcı olmak için analitik Jacobian'dan daha basit bir doğrusallaştırma kullanmaya çalıştık. Doğrusal olmayan cebirsel sistemin doğrusallaştırılmasına bağlı olarak doğrusal olmayan ve doğrusal cebirsel çözücünün davranışı arasındaki böyle bir denge her zaman zor olmuştur ve genel bir öneri veremedim.

Ancak, PDE'lerin sistemi için analitik Jacobian'ın dezavantajının (veya mülkünün) birleştirilmiş cebir sistemi üretmesidir, bu nedenle böyle bir sistemi herhangi bir şekilde ayırırsanız, örneğin her bir PDE'nin yaklaşımını ayrı ayrı çözerek, örneğin yinelemeli bölünmeyle sonra küresel çözücünün ikinci dereceden yakınsamasını kaybedersiniz. Ancak en azından ayrı ayrı (ayrıştırılmış) PDE'leri ayrı ayrı çözerseniz, Newton-Raphson yöntemini kullanarak bu özel sorunun çözümünü tekrar hızlandırabilirsiniz.


Merhaba @Peter, doğru kavrama konusunda, ana göstermek için denklemi düzenledikten edilir ve her iki fonksiyonları ve . Matrisler ve bu durumda sertlik sonlu eleman yöntemi kullanılarak geliştirilen her iki sistemde, matrislerdir. Bunlar sadece düğümlerin koordinatlarının işlevleridir, durum değişkenlerinin işlevleri değildir. ve vektörlerdir, bu nedenle sadece bir değişkenin değil, durum değişkenleri vektörünün işlevleridir. Bir Jacobian'ı sonlu farklar kullanarak sayısal olarak hesaplıyorum. Şimdiye kadar analitik bir Jacobian'ı araştırmadım. b1b2c1c2A1A2F1F2
cbcoutinho
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.