Düzensiz sınırları olan alanlarda sonlu farklar


11

Herhangi biri, Poisson'un sayısal çözümleri (sonlu fark ve Krank-Nicolson yöntemleri) ve dikdörtgen ve daire arasındaki alandan (özellikle kitaplar veya bağlantılar) oluşan düzensiz geometri örnekleri de dahil olmak üzere difüzyon denklemleri hakkındaki kitapları bulmama yardımcı olabilir mi? Bu durumda MATLAB kod örneklerinde)?


4
Hangi amaçla? Başlangıçta öğrenciler için giriş? Ve davanızdaki düzensiz geometri nedir? Köşeleri girintili alanlar mı?
shuhalo

@Martin: Bu alanda daha büyüküm. Düzensiz şekilli alanlarda, özellikle de kavisli sınırlara sahip (ör. 2-D dairesel alan) yinelemeli yöntemler kullanarak poisson denklemini çözmek için ihtiyacım var
liona

2
@last Soruyu açıklığa kavuşturmak için lütfen soru başlığını ve gövdeyi düzenleyin. Önem verdiğiniz denklem türlerini belirtin. Ayrımcılık, cebirsel çözücüler veya her ikisi ile ilgileniyor musunuz? Sonlu elemanlara karşı sonlu farkları önemsiyor musunuz ( scicomp.stackexchange.com/questions/290/… )? Mevcut sorunuz son derece geniştir ve aramada bulmak zordur.
Jed Brown

@JedBrown: Verilen alan ve sınır koşulunda sonlu farklar kullanarak poisson denklemini çözmek istiyorum.
liona

son olarak, bugüne kadar yaptığınız yorumların her ikisine de bilgi eklemek için lütfen sorunuzun metnini düzenleyin. Ayrıca, JedBrown'un dediği gibi, lütfen sorunuzun başlığını da düzenleyin; böylece insanlar sorunuzu arayabilir ve sorunun kendileri için ilginç veya uygulanabilir olup olmadığına karar vermeleri daha kolay olur.
Geoff Oxberry

Yanıtlar:


3

Sonlu bir fark şemasının düzensiz bir geometri üzerinde çalışmasının anahtarı, alanın dışında, içinde ve sınırındaki noktaları gösteren değerlere sahip bir 'şekil' matrisine sahip olmaktır. Diyelim ki böyle bir şeklimiz var:

000000000000011111111110001222222100000122221000000012210000000001100000000000000000

Gerçek etki alanı (matrisin sıfır olmayan tüm girişlerinin olduğu yerde) aşağı dönük bir üçgen oluşturur. 1'ler sınırdaki noktaları temsil ederken, 2'ler iç noktaları temsil eder (genellikle unkowns) Düğüm numaralarını aşağıdaki gibi atayabiliriz:

000000000000011111111110001123456100000178910100000001111210000000001100000000000000000

Burada -1'ler sınır konumlarını temsil eder. Ardından, matristeki tüm girişler üzerinde sonlu bir fark şeması çalıştırabilirsiniz, ancak şemanızı yalnızca iç düğümlerde (1'den 12'ye kadar) yürütmek için bir if ifadesi kullanın. Bu yaklaşım bunu yapmanın en etkili yolu değildir, ancak işi halledecektir ... eğer hafızayı karşılayabiliyorsanız, tüm iç düğümlerin (i, j) girişlerini saklamak ve çalıştırmak iyi olabilir. a yalnızca bu düğümlerde döngü için.

Geometriyi doğrudan oluşturmak için iki şeyden birini yapabilirsiniz:
1. Elle siyah beyaz bir görüntü oluşturun ve programınıza aktarın (uygulanması en kolay, ancak uzamsal çözünürlük dx veya dy'i düzeltmek imkansız).
2. Seçtiğiniz herhangi bir uzamsal çözünürlük için istediğiniz temel şekillerin ayrı temsillerini oluşturacak kod yazın (uygulanması daha zordur, ancak herhangi bir uzamsal çözünürlük dx veya dy'in genel sonlu fark şemaları için daha sağlamdır).

Bunun nasıl yapılacağı hakkında daha fazla bilgi edinmek isterseniz, şu videoları izlemeyi düşünebilirsiniz:
NPTEL Bilgisayar Grafikleri Kursu, Video 2 (Raster Grafikler)
NPTEL Bilgisayar Grafikleri Kursu, Video 3 (Raster Grafikler, devam)
Bunları inceleyin ve bunun sorunuzu çözüp çözmediğini bana bildirin.


Yayınladığım matris değerlerinin biçimini geliştirebileceğim bir yol var mı ... Bakmak istediğim şekilde görünmüyor
Paul

Evet, MathJax'ı kullanabilir ve bir dizi ortamına koyabilirsiniz.
David Ketcheson

Haklısın ... MathJax ile çok daha hoş görünüyor. Öneri için teşekkürler :)
Paul

@Paul: Basit çözümünüz için teşekkür ederiz! Ancak, dikdörtgen ve üçgen arasındaki kapalı bölge veya (dikdörtgen ve daire arasındaki kapalı bölge) için iç noktalar elde etmek için sınır noktalarını nasıl hesaplayabilirim?
liona

Modellemek istediğiniz alanın şeklinin bir resminiz var mı? Her zaman görmek, sadece kelimelerle anlatmaktan daha kolaydır :)
Paul


2

Aşağıdaki makaleleri öneririm:

Keyfi düzensiz ızgaralarda sonlu farklar yöntemi ve uygulamalı mekaniğe uygulanması - Liszka Orkisz

http://www.sciencedirect.com/science/article/pii/0045794980901492

Değişken ızgaralar için sonlu fark teknikleri - Jensen

http://www.mendeley.com/research/finite-difference-techniques-variable-grids-7/

Genelleştirilmiş sonlu farklar yöntemi ile parabolik ve hiperbolik denklemlerin çözümü - Benito Urena Gavete

http://www.sciencedirect.com/science/article/pii/S037704270600687X

Temel olarak yapılandırılmamış / düzensiz ağlar için sonlu fark şablonunun nasıl üretileceğini açıklarlar. Bu konuya derinlemesine bakan hiçbir kitap bilmiyorum, ancak Randall LeVeque'nin kitabında bu konuda bir şeyler olabilir. Sonlu farklar için bazı Matlab m dosyaları içeren yazarın web sayfasının bağlantısı.

http://faculty.washington.edu/rjl/booksnotes.html


1

Kafesin sınıra uymasını ve dolayısıyla fdm'nin standart kare ağından ayrılmasının muhtemelen bir çözüm olduğunu düşünüyorum, ancak yine de yüksek dereceli algoritmaların kullanımı konusunda ciddi sonuçları var - imkansız değilse bile zor. Farklı bir yaklaşım aldım, yani dikdörtgen ızgarayı kavisli sınır geometrisinin üzerinde tutuyorum, yüksek dereceli algoritmalar oluşturuyorum, geometrinin "dışında" değerleri ayarlamak için sınırdan enterpolasyon yapıyorum ve hepsi bu. bu yöntem ile ~ 1e-12'nin eşmerkezli küre test geometrilerinde bir sıra 8 algoritması kullanarak hassasiyetler elde ettik. Eğer "Edwards, fdm eğri sınırı" google benim iş referansları bulacaksınız.


0

Uyarlanabilir ağ iyileştirmeyi kullanmanız mümkün müdür? Hızlı bir Google araması birçok bağlantıya neden olur. AMR, örneğin akışkan dinamiğinde karmaşık şekillerden geçen akışı modellemek için kullanılır; ve diğer birçok uygulama. İşte yıldız oluşumunda ortaya çıkan hiperbolik koruma yasalarının sistemlerini çözme örneği. Geometriler çok karmaşık. Makalenin ilk bölümü güzel bir öğreticidir. http://www.mpa-garching.mpg.de/lectures/ADSEM/SS05_Homann.pdf


0

Bu soru, verilen cevapların çeşitliliği ile açıklandığı gibi bir kutu solucan açar. Bunların birçoğu yararlı noktalar ortaya koymaktadır, ancak gerçekten yararlı bir cevap, dile getirilmemiş hususları dikkate alacaktır. Geometrinin kesin doğasını spesifik hale getirmenin yanı sıra, aşağıdakileri bilmek değerli olacaktır: a) Ne tür bir doğruluğa ihtiyacınız var? b) Düzenli kare kafeslerle mi kalmak istiyorsunuz? c) Yeni teknolojiyi öğrenmek için ne kadar yatırım yapmak istiyorsunuz?

Düzenli kare ağlar, sınırı kesin olarak tanımlamayı zorlaştırır, böylece birçok insan uygun ağlara dönüşür. Dikdörtgen bağlantılı uygun ağlar, çok düzensiz şekillere uymakta güçlük çeker, bu nedenle birçok insan yapılandırılmamış ağları (üçgenler / tetraheda veya daha genel) benimser.

Düzenli kartezyen yapıya sahip olmayan herhangi bir veri için, türevleri değerlendirmek zordur, bu yüzden birçok insan problemlerini integral formda yeniden biçimlendirir, bu da sonlu eleman / sonlu hacimli yöntemlere (yüksek dereceye ulaşabilir) yol açar. Kafessiz yöntemler vardır. Sınır elemanı yöntemleri vardır. Dalmış sınır yöntemleri vardır. Kesik hücre yöntemleri vardır. Çoğunlukla tarihsel nedenlerden dolayı, bazı uygulamalarda popüler olan ancak bazılarında popüler olmayan bir yöntem vardır.

Bu labirentte gezinirken iyi şanslar dilerim, ancak sorunuz için tek bedene uyan bir çözüm olmadığını bilmelisiniz.

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.