Apa yang disebut grid quadtree dan octree cukup menarik untuk aplikasi yang membutuhkan penyempurnaan mesh adaptif. Mereka misalnya digunakan dalam Gerris dan Paramesh . Adakah yang mengetahui format file yang bagus untuk grid seperti itu, dan mendukung perangkat lunak visualisasi? Lihat juga jawaban ini di FAQ Gerris. Satu-satunya kandidat potensial yang saat ini saya ketahui adalah kelas VTK HyperOctree , tetapi tampaknya hampir tidak ada dokumentasi.
Sebagai contoh spesifik dari sebuah jaring, pertimbangkan kisi oktri yang disempurnakan secara jarang, yang terdiri dari kotak, masing-masing berisi sel. Strategi saya saat ini dalam Kunjungan / Paraview adalah: 8 × 8 × 8 = 512
- Tulis kisi sebagai file VTK yang tidak terstruktur. Ini mahal untuk dataset yang lebih besar, dan tidak mengeksploitasi 'terstruktur' dari quad / octree.
- Kumpulkan 'kotak' tetangga di pohon ke dalam blok yang lebih besar, dan tulis kisi berstruktur blok. Ini melibatkan sedikit kode tambahan, dan kehilangan informasi konektivitas yang tertanam dalam quad / octree.
Pembaruan Jika saat ini tidak ada format yang layak untuk langsung menulis dan memvisualisasikan kisi octree, saya akan menghargai saran untuk format file yang dapat digunakan untuk menulis octree sebagai kisi blok-terstruktur. Idealnya, format ini:
- Memiliki definisi / implementasi yang relatif sederhana, sumber terbuka idealnya dan dengan kompatibilitas C / Fortran.
- Secara efisien dapat menangani sejumlah besar blok kotak (mis. 1000 atau lebih).
- Memungkinkan untuk dengan mudah menentukan konektivitas blok kisi, khususnya pada batas penyempitan.
Saat ini saya menggunakan Silo untuk tujuan ini, tetapi saya mencari sesuatu yang mendapat skor lebih baik pada ketiga poin di atas (lebih kecil, lebih cepat, lebih sederhana).
sumber
Jawaban:
Dalam kasus saya ketika saya melakukan penyempurnaan bertingkat, saya biasa menulis file kotak pada tingkat yang berbeda secara terpisah. Biasanya level 0 adalah mesh kasar dasar yang tetap tetap. Dan untuk level 1 ke atas, saya menggunakan file yang berbeda untuk patch yang berbeda. Katakanlah jika Anda memiliki 5 tambalan halus pada level 1, strategi saya adalah menulis lima file berbeda di akhir program saya, sesuatu seperti Level_1_Patch_1, Level_1_Patch_2 ... yang secara dinamis dapat dilakukan di C (tidak pernah bekerja di Fortran).
Saya harus menyebutkan di sini bahwa saya menggunakan perbedaan, sistem grid terstruktur.
Jadi, sekali saya memiliki semua level dan file .PLT atau .DAT mereka. Saya mengimpor semuanya di TecPLOT. Misalnya, ketika saya sedang menulis kode dua tingkat saya dengan beberapa tambalan halus pada level 1, mesh Anda akan terlihat seperti ini di Tecplot.
Saya tidak terlalu terbiasa menangani kisi-kisi yang tidak terstruktur tetapi yang terstruktur ditangani dengan baik di Tecplot
sumber