Yapısal ızgara uyarlamalı ağ iyileştirme için genel amaçlı bir kütüphane var mı?


18

Uyarlanabilir ağ inceltme (AMR), PDE'lerin sayısal çözümünde çok çeşitli mekansal ölçekler sorunu ile başa çıkmak için yaygın bir tekniktir. Yapılandırılmış ızgaralarda AMR için hangi genel amaçlı kütüphaneler var? İdeal olarak, kütüphanenin sadece uyarlanabilir kafesleri işlediği PETSc'nin ruhunda bir şey istiyorum ve fizik ve ayrıklaştırma (sonlu fark / hacim / eleman) sağlıyorum.

İdeal kütüphane

  • Modüler : Kodumu veya veri yapılarımın çoğunu nasıl yazdığımı dikte etmiyor
  • Genel : Ne tür bir takdir yetkisi kullandığım umurumda değil
  • Verimli : çok fazla ek yük oluşturmaz
  • Paralel ve yüksek oranda ölçeklenebilir

Bu kriterlerin sadece bir alt kümesine uyan kütüphaneler hala ilgi çekicidir.

Ek : Donna Calhoun'un kapsamlı AMR paketleri listesinin farkındayım , ancak hangilerinin (varsa) yukarıdaki kriterlere uyduğunu bilmiyorum. Bu yüzden, esas olarak, bu terimlerle nasıl ölçtüklerine ilişkin olarak, bir veya daha iyi paketlerle gerçek deneyime sahip insanlardan duymakla ilgileniyorum.


2
+1, orada AMR yazılımının ne olduğunu merak ediyorum ve yukarıda belirttiğiniz kriterleri yerine getirmesini tercih ediyorum.
Geoff Oxberry

Sadece Chombo'nun en yeni versiyonunun henüz piyasaya sürüldüğünden bahsettiğimi düşündüm ve (daha ileri sürüldü) bunun daha büyük pakete entegre edilmesi daha kolay olmalı ( Sürüm notları ). Bu büyük bir revizyon değil, bu yüzden bazı kriterler hala tüm kriterlerinizi karşılamıyor.
Jeremy Kozdon

Yanıtlar:


14

Dikkate alınması gereken bir kütüphane BoxLib'dir . Temel özellikleri (web sitesinden):

  • Zaman içinde isteğe bağlı alt döngüye sahip blok yapılı AMR desteği
  • Hücre merkezli, yüz merkezli ve düğüm merkezli veriler için destek
  • Hiyerarşik ızgara yapısında hiperbolik, parabolik ve eliptik çözmeler için destek
  • C ++ ve Fortran90 sürümleri
  • MPI ve OpenMP ile hibrit programlama modelini destekler
  • Yanma, astrofizik, kozmoloji ve gözenekli ortamda olgun uygulamaların temeli
  • 200.000'den fazla işlemciye ölçeklendirme
  • İlgili kullanıcı tarafından serbestçe kullanılabilir
  • Fortran versiyonuna dahil bir Python sarıcı da (benim tarafımdan yazılmış) var (oldukça genç olmasına rağmen).


    9

    Ayrıca libMesh'e de bakmalısınız . Sonlu eleman yöntemlerini hedefliyor, ancak bunun dışında, kutularınızın çoğunu kontrol ettiğini düşünüyorum. BoxLib'in aksine, aynı ağda tets, piramitler, prizmalar ve hekzahedrayı destekleyecek şekilde tamamen yapılandırılmamış, karışık bir eleman türü kütüphanedir. Ayrıca, yüksek dereceli polinom temelli fonksiyonlar için en büyük entegrasyon kurallarından birine sahiptir. Doğrudan PETSc'yi (ve diğer bazı kütüphaneleri de) aramanıza izin verecek şekilde ayarlanmıştır, böylece PETSc ile aynı çözücü ölçeklenebilirliğine sahip olursunuz.

    Kesinlikle bir şeyler yapmanın libMesh yolu var, ama bir şeyler yapmanın PETSc yolu da var. Umarım bu sizi korkutmaz.


    4

    Ben başarılı bir şekilde kullanan en az bir kod SAMRAI denemek istiyorum - IBAMR , AMR ile Sıvı-Yapı Etkileşimi için bir Batırılmış Sınır Yöntemi kodu.


    Teşekkür Johntra (ve scicomp hoş geldiniz)! SAMRAI ve BoxLib arasındaki göze çarpan farklılıkları biliyor musunuz? Ayrıca, () bağlantı [] metni ve hedef koyarak bağlantıları satır içi kullanabilirsiniz
    Aron Ahmadia

    Ne yazık ki - gerçekler hakkında, ilk kez duydum (BoxLib) .Katılıma katılmaya karar vermenin nedeni tam olarak bu - sizinle gayri resmi olarak tartışarak smt new'i öğrenmek için - teşekkürler.
    Johntra Volta

    İkinci SAMRAI olurdum, AMR için çok kullanışlı bir genel amaçlı çerçevedir. Ayrıca yazarın lehine hibrit C ++ / Fortran tasarımını gerçekten seviyorum. Hesaplamalı çekirdekler olması gerektiği gibi Fortran'da yazılabilir ve C ++ sınıfları iç MPI ve bellek yönetimini gizlemek için gereken tüm soyutlamaları sağlar.
    talonmies

    @AronAhmadia: BoxLib, hücre merkezli geometrik Multigrid'de değişen Dirichlet sınırlarıyla parçalı doğrusal enterpolasyonu kaldıramaz. Düşünce onu ilginç bir nokta olarak eklerdi.
    Gaurav Saxena

    2

    Yapısal veya yapılandırılmamış belirtmediniz.

    Paramesh, Piramit, p4est, Dendro, Samrai ve Chombo'ya bir göz atın.

    Btw Piramidi kaba davranmıyor.


    1
    İyi yakalama; Soruyu düzenledim. Bu kütüphanelerin kriterlerime ne kadar uyduğuna dair yorum yapabilir misiniz?
    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.