Düzgün olmayan bir örgü (sadece 1D) sonlu hacim yönteminde Poisson denklemini çözerken garip hata


9

Son birkaç gündür bu hatayı hata ayıklamaya çalışıyorum.

Poisson denklemini, bilinmeyenlerin hücre merkezlerinde ve hücre yüzlerindeki akılarda tanımlandığı, muntazam olmayan bir sonlu hacim ağında bir adım yük dağılımı (elektrostatik / yarı iletken fiziğinde ortak bir sorun) için çözüyorum.

0=(ϕx)x+ρ(x)

ücret profili (kaynak terim) tarafından verilir,

ρ(x)={1,if 1x01,if 0x10,otherwise

ve sınır koşulları,

ϕ(xL)=0ϕx|xR=0

ve etki alanı [10,10].

Advection-difüzyon-reaksiyon denklemini çözmek için geliştirilen kodu kullanıyorum (notlarımı buraya yazdım, http://danieljfarrell.github.io/FVM ). Adveksiyon-difüzyon-reaksiyon denklemi Poisson denkleminin daha genel bir halidir. Aslında Poisson denklemi, adveksiyon hızı sıfıra ayarlanarak ve geçici terim kaldırılarak geri kazanılabilir.

Kod, üniform, üniform olmayan ve rastgele ızgaralar için bir dizi duruma karşı test edilmiştir ve adveksiyon-difüzyon-reaksiyon denklemi için her zaman makul bir çözüm üretir ( http://danieljfarrell.github.io/FVM/examples.html ).

Kodun nerede bozulduğunu göstermek için aşağıdaki örneği yaptım. Ben kurulumu muntazam 20 hücre geçirilir ve daha sonra hale düzgün olmayan bir tek hücre kaldırarak. Sol şekilde hücreyi çıkardımΩ8 ve sağda Ω9Kaldırıldı. 9. hücre, kaynak terimin (yani yükün) işaretini değiştirdiği bölgeyi kapsar. Hata , reaksiyon teriminin işaretini değiştirdiği bir bölgede ızgara tekdüze olmadığında görünür . Aşağıda görebileceğiniz gibi.

Bu soruna neden olabilecek bir fikir var mı? Takdir yetkisine ilişkin daha fazla bilginin yararlı olup olmayacağını bana bildirin (bu soruya çok fazla ayrıntı eklemek istemedim).

Poisson denklemini çözerken garip hata


Dirichlet koşulunu nasıl uyguladığınızı belirtebilir misiniz? x=0ve ne demek istiyorsun ρ=1başlangıç ​​koşulu olarak (belirttiğiniz denklem sabit durum değil mi)?
Jesse Chan

Reaksiyon terimi neye benziyor?
Ocak

Kaynak terimin integrallerine yaklaşmak için hangi şemayı kullanıyorsunuz? Bu davranış kaynağın yetersiz örneklenmesinden de kaynaklanabilir. (Muhtemelen, @JLC 'ın cevapta belirtildiği aynı mekanizma nedir.)
Jan

Soruyu standart terminolojiyi kullanacak şekilde güncelledim. Bir kaynak terimim var (ρ) bir reaksiyon terimi değil çünkü işaret ettiğiniz gibi sadece kararlı durum değerine ihtiyacımız var. Doğru mekansal bağımlılıkρşimdi verildi (başlangıç ​​değeri yanlıştı).
boyfarrell

@JLC Dirichlet BC'leri bir hayalet hücre yaklaşımı kullanılarak uygulanır (çevrimiçi uygulama detaylarıyla ilgili notlarım güncel değil), nasıl yaptığımı görmek için buraya bakın, scicomp.stackexchange.com/questions/8538/…
boyfarrell

Yanıtlar:


9

Tıpkı bir yana, github belgeleriniz harika.

Bu sadece sayısal yöntemlerin dikkatle seçilmemesi durumunda benzer sorunlara sahip olabilen DG yöntemlerinden bir tahmindir (FV yöntemlerinin DG yöntemlerinin bir alt kümesi olduğunu düşünüyorum). Akılarınızı tanımlamak için hücre merkezlerinden enterpolasyon kullanıyorsanız, bu, ortalamanın DG'de sayısal bir akı olarak kullanılmasına ve parçalı sabit temelin kullanılmasına eşdeğer olmalıdır. Poisson için standart DG yöntemleri için bu, sayısal olarak benzersiz olmayan çözümlere yol açar - 2. örnekte sorunlarınıza neden olan şey olduğunu düşünüyorum, ayrık operatör için önemsiz bir boş alan elde edebilirsiniz. DG tarafındaki teorileri için bu DG belgesine bakınız .

Bunun nasıl oynandığını gösteren FV için bir örnek oluşturmaya çalışacağım.

Düzenleme: işte neler olduğuna dair küçük bir örnek. 1-9 ve 11-20 hücrelerini düşünün.ρ(x)=0. Sağ taraftan (11-20),f(x20)=0 çünkü bize o hücrenin korunmasını f(x19)==f(x11)=0. Akı hücre değerlerinin ortalaması olduğundan, bu bize şunu söyler:ϕ(x) tüm bu hücreler üzerinde sabittir.

Sol taraftan (1-9), f(xi+1)f(xi)=0. Eğerf(10)=0 ve biz hayalet hücreleri kullanıyoruz, f(10)=ϕ9.5ϕghost=ϕ9.5. Sonraki birkaç hücre üzerinde korumaf(xi)=f(10)=ϕ9.5(yani sabit eğim). Ancak, bunun herhangi bir eğim olabileceğini, sadece sabit olabileceğini unutmayın.

Sorun orta hücrede ortaya çıkıyor. Jan'ın belirttiği gibi, ikinci ağdaki zorlamanın altını çiziyorsunuz. Bu, o noktada denge denklemlerini atar, size bir hata verirf(10)daha sonra geriye doğru yayılır ve hem alanın sol yarısındaki eğimi hem de ϕ(9.5).

Zorlamadaki hatalara karşı bu hassasiyet sorunludur - Dirchlet koşulunu açıkça uygulayan FEM veya FD yöntemlerinin aksine x=10, FV hayalet düğümlerini kullanarak zayıf bir şekilde uygular. Sezgisel olarak, hayalet düğümü zayıf uygulaması da sol sınırınızda bir Neumann koşulu belirlemek gibidir. Bir difüzyon problemi için iki Neumann koşulunuz varsa, sorununuz kötü durumdadır ve benzersiz bir çözüme sahiptir (bu soruna herhangi bir sabit ekleyebilir ve yine de bir çözümünüz olabilir). Bunu burada ayrık seviyede elde edemezsiniz, ancak deneylerinizde gördüğünüz gibi çok hassas ve ağa bağımlı davranışlar elde edersiniz.


Deneyden sonra FVM yönteminin sadece kaynak fonksiyonun süreksizliğinin (işaret değişimi) her iki tarafında eşit hacimde hücreler olduğunda kararlı olduğunu gösterebilirim. Analiziniz buna katılıyor mu? Bu, daha önce yaptığım problemlerimin mantıklı bir ızgarasını oluşturmaya daha fazla dikkat etmem gerektiği anlamına geliyor. Belki bir sonraki FEM yöntemini öğrenmeyi düşünmeliyim?
boyfarrell

İlgili bir makale, tüm ayrıntıları tam olarak takip etmeme rağmen, jstor.org/discover/10.2307/2157873
boyfarrell

FVM yöntemi sadece bu durumda ızgara bir şekilde kaynak fonksiyonuyla hizalandığında kararlıdır . Kaynak işleviniz değişirse, şebekenizi tekrar ayarlamanız gerekir. Mantıklı bir ızgara oluşturmanın bu soruna doğru bir yaklaşım olduğunu düşünmüyorum - kararsız bir yönteminiz var.
Jesse Chan

Bu iyi bir keşif. Suli sağlam bir analist. FEM öğrenmenin eğlenceli olabileceğini söyleyebilirim, ancak FD eliptik 1D problemleri için de çalışmalıdır. Genel ızgaralarda 2. dereceden eliptik problemlerin yakınsamasını elde etmek için FV milletinin ne yaptığını (belki de akılarını ceza koşullarıyla artırabilir) görebilirsiniz. Matematiksel halk bilgeliği genellikle FV / rüzgârlı FD'nin hiperbolik problemler için mükemmel olduğunu söylerken, FEM / merkezi dif FD eliptik için mükemmeldir.
Jesse Chan

Bu sorunu düzeltiyorum. Cevabınızı tekrar okurken harika olduğunu söylemeliyim! Yöntemin değişmesi gerektiği noktasını görüyorum çünkü bu sorunun köküdür (ızgara değil). Bu durumda akıya daha iyi nasıl yaklaşacağınız hakkında takip edebileceğim (uzman olmayan bir kişi için) önerileriniz veya şeyleriniz var mı? Yani onu daha kararlı hale getirebilecek bir şekilde. Mümkünse, bu denklem için daha iyi bir FVM bulmak istiyorum.
boyfarrell

0

Dikkat edilmesi gereken ilk şey sınır koşullarınızdır. Eğimi ve değeri değiştirebileceğiniz için ne Dirichlet ne de Neumann koşullarınız yoktur.

Ardından, her düz çizgi sağ tarafın sıfır olduğu bir çözümdür. O kısmı aldınız.

Akılarınız muhtemelen h. Doğru mu kullanıyorsunh bir hücreyi nerede yok edersiniz?


1
Hayır, bu doğru değil. Sorun iyi ortaya çıktı. Dava içinρ0 bir tek ϕ0bir çözümdür, bir noktada sıfır olan ve ikinci bir noktada sıfır eğime sahip başka bir doğrusal fonksiyon yoktur.
Ocak
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.