क्वाड्रीट्री और ऑक्ट्री ग्रिड का दृश्य


10

तथाकथित quadtree और octree ग्रिड अनुकूली जाल शोधन की आवश्यकता होती है अनुप्रयोगों के लिए काफी आकर्षक हैं। वे उदाहरण के लिए Gerris और Paramesh में उपयोग किए जाते हैं । क्या कोई ऐसे ग्रिड के लिए एक अच्छे फ़ाइल प्रारूप के बारे में जानता है, और विज़ुअलाइज़ेशन सॉफ़्टवेयर का समर्थन कर रहा है? इस उत्तर को जेरिस FAQ में भी देखें । एकमात्र संभावित उम्मीदवार जिसे मैं वर्तमान में जानता हूं वह वीटीके हाइपरऑक्ट्री क्लास है, लेकिन लगता है कि लगभग कोई दस्तावेज नहीं है।

एक जाल के एक विशिष्ट उदाहरण के रूप में, बक्से से युक्त एक काफी परिष्कृत ऑक्ट्री ग्रिड पर विचार करें, जिनमें से प्रत्येक में सेल होते हैं। भेंट / परिक्षा में मेरी वर्तमान रणनीतियाँ हैं:1048×8×8=512

  1. एक असंरचित VTK फ़ाइल के रूप में ग्रिड लिखें। यह बड़े डेटासेट के लिए महंगा है, और क्वाड / ऑक्ट्री की 'संरचितता' का फायदा नहीं उठाता है।
  2. पेड़ में पड़ोसी 'बक्से' को बड़े ब्लॉकों में इकट्ठा करें, और एक ब्लॉक-स्ट्रक्चर्ड ग्रिड लिखें। इसमें काफी अतिरिक्त कोड शामिल हैं, और क्वाड / ऑक्ट्री में एम्बेडेड कनेक्टिविटी जानकारी खो देता है।

अद्यतन यदि किसी ऑक्ट्री ग्रिड को सीधे लिखने और उसकी कल्पना करने के लिए वर्तमान में कोई व्यवहार्य प्रारूप नहीं है, तो मैं एक फ़ाइल प्रारूप के लिए सुझावों की सराहना करूंगा जिसका उपयोग ऑक्ट्री को ब्लॉक-स्ट्रक्चर्ड ग्रिड के रूप में लिखने के लिए किया जा सकता है। आदर्श रूप में, यह प्रारूप:

  1. अपेक्षाकृत सरल परिभाषा / कार्यान्वयन है, आदर्श रूप से खुला स्रोत और सी / फोरट्रान संगतता के साथ।
  2. बड़ी संख्या में ग्रिड ब्लॉक (जैसे 1000 या अधिक) को कुशलता से संभाल सकता है।
  3. विशेष रूप से शोधन सीमाओं पर, ग्रिड ब्लॉकों की कनेक्टिविटी को आसानी से निर्दिष्ट करने की अनुमति देता है।

मैं वर्तमान में इस उद्देश्य के लिए साइलो का उपयोग कर रहा हूं , लेकिन मैं कुछ ऐसा देख रहा हूं जो उपरोक्त तीन बिंदुओं (छोटे, तेज, सरल) पर बेहतर स्कोर करता है।


1
असंरक्षित जाल बहुत अधिक डेटा क्यों बनाता है? यह केवल 5 मिलियन कोशिकाएं होंगी। यह मेरे लिए एक बहुत छोटा सा डेटा सेट है जिसे मैंने विज़िट या पैराव्यू में देखा है।
वोल्फगैंग बैंगर्थ

क्योंकि निर्देशांक और संयोजकता प्रति सेल प्रति निर्दिष्ट है, बजाय केवल एक बार प्रति बॉक्स (उदाहरण के लिए 512 कोशिकाएं)। बड़े डेटासेट के लिए (उदाहरण के लिए, 20 मिलियन सेल या अधिक) विज़ुअलाइज़ेशन ब्लॉक-स्ट्रक्चर्ड मेष के साथ तुलना में बहुत धीमा हो जाता है, विशेष रूप से अगर ग्रिड के महत्वपूर्ण हिस्से समान शोधन स्तर पर हैं।
जनीस टेनिसेन

इस यात्रा में शायद समर्थित फ़ाइल स्वरूपों की सूची इस प्रश्न के लिए उपयोगी है: visitusers.org/…
Jannis

1
शायद यह भी देखें कि विज़ुअलाइज़ेशन के लिए CHOMBO, SAMRAI आदि क्या करते हैं?
अभिलाष रेड्डी

1
सूची में BoxLib जोड़ें। उन्होंने AMRVIS नामक एक पैकेज विकसित किया है जो AMR डेटा की कल्पना करता है। कोड LBL वेबसाइट से उपलब्ध है।
अभिलाष रेड्डी M

जवाबों:


2

मेरे मामले में जब मैं मल्टीलेवल शोधन कर रहा था, मैं ग्रिड फ़ाइलों को अलग-अलग स्तरों पर लिखता था। आमतौर पर स्तर 0 एक आधार मोटे जाल होता है जो स्थिर रहता है। और स्तर 1 और ऊपर के लिए, मैंने अलग-अलग पैच के लिए अलग-अलग फ़ाइलों का उपयोग किया। यह कहें कि यदि आपके पास स्तर 1 पर 5 ठीक-ठाक पैच हैं, तो मेरी रणनीति मेरे कार्यक्रम के अंत में पाँच अलग-अलग फ़ाइलों को लिखने की थी, Level_1_Patch_1, Level_1_Patch_2 ... जैसी कुछ चीजें जो गतिशील रूप से C (कभी फोरट्रान में काम नहीं किया जा सकता) में की जा सकती थीं।

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

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

मुझे यहाँ उल्लेख करना चाहिए कि मैंने एक बारीक अंतर, संरचित ग्रिड प्रणाली का उपयोग किया।

तो एक बार मेरे पास सभी स्तर और उनकी .PLT या .DAT फाइलें थीं। मैं उन सभी को TecPLOT में आयात करता हूं। उदाहरण के लिए, जब मैं अपने दो-स्तरीय कोड को 1 स्तर पर ठीक पैच के एक जोड़े के साथ लिख रहा था, तो आपके जाल को टेककोट में इस तरह दिखना चाहिए।

यहाँ छवि विवरण दर्ज करें

मैं अशिक्षित ग्रिड से निपटने के लिए बहुत परिचित नहीं हूं, लेकिन संरचित लोगों को टेकप्लॉट में अच्छी तरह से संभाला जाता है


अपने दृष्टिकोण के बारे में पढ़ने के लिए दिलचस्प है, लेकिन यह एक बड़ी ओकट्री के लिए व्यवहार्य नहीं लगता है, तो आपको हजारों फाइलें लिखना और पढ़ना होगा, जो आमतौर पर धीमी गति से होता है।
जन्निस टेउनिसेन

1
@JannisTeunissen: यदि आप Tecplot के लिए ब्लॉक स्ट्रक्चर्ड सॉल्यूशन के लिए जा रहे हैं, तो सभी ब्लॉक को एक ही फाइल में "Zones" (tecplot शब्दावली) के रूप में लिखा जा सकता है। उन्हें अलग-अलग फाइल करने की जरूरत नहीं है। हालाँकि, समानांतर I / O नहीं है। बड़े डेटासेट चोक हो जाएंगे। Tecplot फ़ाइलों को ParaView में लोड किया जा सकता है, हालांकि (Tecplot मालिकाना है)। एससीआई प्रारूप बहुत सीधा है। कुछ प्रयास के साथ, आप सीधे बाइनरी फ़ाइलों के साथ-साथ tecplot प्रारूप में लिख सकते हैं। एक आधिकारिक पुस्तकालय है, जिसे TecIO कहा जाता है, जिससे आप फ़ाइलों को अधिक आसानी से बनाने के लिए अपने कोड को लिंक कर सकते हैं।
अभिलाष रेड्डी

मुझे नहीं लगता कि सिलो के साथ मेरे वर्तमान दृष्टिकोण से बेहतर काम करेगा, जो (महत्वपूर्ण) खुला स्रोत है। ध्यान दें कि ASCII फाइलें वास्तव में इस समस्या के लिए व्यवहार्य नहीं हैं।
जनीस टेनिसेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.