Dörtlü ve sekizli ızgaraların görselleştirilmesi


10

Sözde quadtree ve octree ızgaraları uyarlanabilir ağ iyileştirmesini gerektiren uygulamalar için oldukça caziptir. Örneğin Gerris ve Paramesh'te kullanılırlar . Herkes bu tür ızgaralar için iyi bir dosya formatı ve destek görselleştirme yazılımı farkında mı? Bu yanıta Gerris SSS bölümünden de bakın . Şu anda farkında olduğum tek potansiyel aday VTK HyperOctree sınıfı, ancak neredeyse hiçbir belge yok gibi görünüyor.

Bir kafesin spesifik bir örneği olarak , her biri hücre içeren kutudan oluşan seyrek rafine bir oktree ızgarasını düşünün . Ziyaret / Paraview'deki şu anki stratejilerim:1048×8×8=512

  1. Izgarayı yapılandırılmamış bir VTK dosyası olarak yazın. Bu, daha büyük veri kümeleri için pahalıdır ve dörtlü / oktree'nin 'yapılandırılmışlığından' yararlanmaz.
  2. Ağaçtaki komşu 'kutuları' daha büyük bloklara toplayın ve blok yapılı bir ızgara yazın. Bu, biraz fazladan kod içerir ve quad / octree içine yerleştirilmiş bağlantı bilgilerini kaybeder.

Güncelleme Bir oktree ızgarasını doğrudan yazmak ve görselleştirmek için geçerli bir format yoksa, octree'yi blok yapılı bir ızgara olarak yazmak için kullanılabilecek bir dosya formatı için önerileri takdir ediyorum. İdeal olarak, bu biçim:

  1. Nispeten basit bir tanım / uygulamaya, ideal açık kaynak kodlu ve C / Fortran uyumluluğuna sahiptir.
  2. Çok sayıda ızgara bloğunu (örneğin 1000 veya daha fazla) verimli bir şekilde işleyebilir.
  3. Özellikle arıtma sınırlarında ızgara bloklarının bağlantısını kolayca belirtmeyi sağlar.

Şu anda Silo'yu bu amaç için kullanıyorum , ancak yukarıdaki üç noktada daha iyi puan alan bir şey arıyorum (daha küçük, daha hızlı, daha basit).


1
Yapılandırılmamış ağ neden çok fazla veri oluşturuyor? Sadece 5 milyon hücre olurdu. Bu, Ziyaret veya Paraview'de görselleştirmem için oldukça küçük bir veri kümesi.
Wolfgang Bangerth

Koordinatlar ve bağlanabilirlik, kutu başına yalnızca bir kez yerine hücre başına belirtildiği için (örneğin 512 hücre içerir). Daha büyük veri kümeleri için (örneğin, 20 milyon hücre veya daha fazla) görselleştirme, özellikle ızgaranın önemli kısımları aynı arıtma seviyesinde ise, blok yapılı bir ağdan çok daha yavaş olur.
Jannis Teunissen

Belki de Visit içindeki desteklenen dosya formatları listesi bu soru için yararlıdır: visitusers.org/…
Jannis Teunissen

1
Belki de görselleştirme için CHOMBO, SAMRAI vb.
Abhilash Reddy M

1
Listeye BoxLib ekleyin. AMR verilerini görselleştirmek için AMRVis adlı bir paket geliştirdiler. Kod LBL web sitesinden edinilebilir.
Abhilash Reddy M

Yanıtlar:


2

Benim durumumda çok seviyeli iyileştirmeyi yaparken, farklı seviyelerde ızgara dosyaları ayrı ayrı yazardım. Genellikle seviye 0 sabit kalan bir baz kaba ağdır. Ve seviye 1 ve üstü için, farklı yamalar için farklı dosyalar kullandım. Seviye 1'de 5 ince düzeltme ekiniz varsa, stratejim programımın sonuna Level_1_Patch_1, Level_1_Patch_2 ... gibi C'de dinamik olarak yapılabilecek (Fortran'da hiç çalışmadı) gibi beş farklı dosya yazmaktı.

        char filename1[64];
        sprintf(filename1, "Patch%d.dat", patch_number);

        FILE *file;
        file= fopen(filename1, "wb");

Burada sonlu bir fark, yapılandırılmış ızgara sistemi kullandığımı belirtmeliyim.

Bu yüzden tüm seviyeleri ve onların .PLT veya .DAT dosyaları vardı. Hepsini TecPLOT'a ithal ediyorum. Örneğin, iki seviyeli kodumu seviye 1'de birkaç ince yama ile yazarken ağınızın Tecplot'ta böyle görünmesi gerekir.

resim açıklamasını buraya girin

Yapılandırılmamış şebekeleri idare etmeye çok alışkın değilim ama yapılandırılmış olanlar Tecplot'ta iyi işleniyor


Yaklaşımınızı okumak ilginç, ancak bu büyük bir oktree için geçerli görünmüyorsa, genellikle oldukça yavaş olan binlerce dosya yazmanız ve okumanız gerekir.
Jannis Teunissen

1
@JannisTeunissen: Eğer Tecplot için blok yapılı bir çözüm arıyorsanız, tüm bloklar ayrı "Bölgeler" (tecplot terminolojisi) ile aynı dosyaya yazılabilir. Ayrı dosyalar olmaları gerekmez. Ancak, paralel G / Ç yoktur. Büyük veri setleri boğulur. Tecplot dosyaları ParaView'a yüklenebilir (Tecplot tescilli). ASCII formatı çok basittir. Biraz çaba göstererek, ikili dosyaları doğrudan tecplot biçiminde de yazabilirsiniz. Dosyaları daha kolay oluşturmak için kodunuzu bağlayabileceğiniz TecIO adlı resmi bir kütüphane var.
Abhilash Reddy M

Bunun Silo ile şu anki yaklaşımımdan daha iyi çalışacağını düşünmüyorum, ki bu (önemli olarak) açık kaynak. ASCII dosyalarının bu sorun için gerçekten geçerli olmadığını unutmayın.
Jannis Teunissen
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.