Cebirsel Multigrid Kodu


9

Cebirsel Multigrid Yöntemlerinin (AMG) uygulanması hakkında daha fazla ayrıntı anlamak istiyorum. AMG için enterpolasyon, kaba ızgara operatörü ve kaba ızgara seçiminin tüm ayrıntılarını açıklayan "A Multigrid Eğitimi" ni okuyorum. Ancak, sanırım, oynamak ve kod okumak gibi bir şey yok.

Bu yüzden, herhangi birinin klasik bir AMG "örnek kodu" tanıyıp tanımadığını, SF McCormick'in "Multigrid Metodları" (SIAM) sonunda mevcut olan geometrik multigrid FORTRAN kodu gibi sormak istiyorum. Yöntem hakkında daha fazla bilgi edinmek için BoomerAMG gibi yüksek kalite ve üretim kodu almak oldukça zordur.


Klasik AMG ile özellikle ilgileniyor musunuz (düzgünleştirilmiş toplamanın aksine)? Öyleyse, lütfen soruda bunu belirtin.
Jed Brown

Yanıtlar:


10

BoomerAMG, satın alınması çok kolay olan Hypre paketinin bir parçasıdır . Bu yöntemlere bakmaya başlarsanız çok daha az karmaşık bir kod PyAMG olabilir .


Evet, çok güzel bir kod olan PyAMG'ye bir göz attım, ancak C / C ++ kodunu Python'a sarmakla ilgili tüm bu şeylere sahip, "klasik" olandan farklı AMG yöntemlerini uygular vb. İnsanların öğretmek için kullandıkları daha basit bir şey arıyordum.
Bernardo MR

4
Ne yazık ki, AMG kodlarını kullanmaya ve katkıda bulunmaya çalışmayla ilgili genel deneyim, çok sayıda seçeneğiniz yoksa ilginç bir soruna yaklaşan hiçbir şeyi çözemeyeceğinizdir. Bu nedenle, tipik AMG paketiniz, kod okuma ile ayrıştırılması kesinlikle zor olan bağlantılılık yaklaşımı, aradeğerleyici yapısı ve düzgünleştirme için bir dizi seçenek içerecektir. Bununla birlikte, klasik AMG çok basittir ve bunu kendiniz uygulamak veya öğrencilerinize bunu kendileri yapmaya çalışmak (beceri seviyelerine bağlı olarak) gitmek için bir yol olabilir.
Peter Brune

2

Alfio Borizi'nin cebirsel multigrid yöntemine girişini şiddetle tavsiye ederim . Ek A'da örnek bir fortran 77 kodu bulunmaktadır.


Bence daha fazla literatür değil, uygulamaları soruyor.
Jack Poulson

1
@JackPoulson: Ekte bir uygulaması var.
Paul

2
Üzgünüm, görünüşe göre bu sabah okuyamıyorum. Upvoted.
Jack Poulson

1
@Paul: Yanlış olabilirim, ama bu Poisson problemi için geometrik bir çoklu-çoklu kod (doğrusal olmayan durum için de çalışır) düşünüyorum.
Bernardo MR

@ BernardoM.R .: Bu postscript dosyasını yeni buldum ... Model problemleri için uzatma ve kısıtlama operatörlerinin somut örnekleri var. Yine de tam bir kodu yok, ancak yine de sizin için bazı yararlı olabilir.
Paul

1

Trilinos'un bir parçası olan ML paketi de var. İtibarı BoomerAMG / hypre ile eşit derecede iyidir.

AMG için daha yeni bir Trilinos paketine MueLu deniyor, sanırım ve daha yeni sürümlerde de mevcut olmalı.

Bunların hepsi açık kaynak.


1
MueLu serbest bırakılmadı ve onunla en son konuştuğumda Ray başka bir yıl daha halka açık olmayı beklemiyordu. ML ve MueLu'nun (içinde ne olduğunu duyduğum ölçüde) klasik AMG'den (BoomerAMG'nin dayandığı) oldukça farklı bir algoritma olan düzleştirilmiş toplamaya dayandığını unutmayın.
Jed Brown

1

Bir süredir bu uygulama üzerinde çalışıyorum . Python / Numpy / Scipy. Cebirsel multigrid değil - kendi kısıtlama operatörünüzü sağlamanız gerekir. Ancak, ilgilendiğiniz bir eğitim uygulamasıysa, bu tür bir yetenek eklemek için bazı çekme taleplerini memnuniyetle karşılarım.

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.