การสร้างภาพของกริดทรีและแปด


10

จึงเรียกว่าควอดทรีและoctreeกริดจะค่อนข้างน่าสนใจสำหรับการใช้งานที่ต้องการการปรับแต่งตาข่ายปรับตัว พวกเขาเป็นตัวอย่างที่ใช้ในการGerrisและParamesh มีใครบ้างที่ทราบรูปแบบไฟล์ที่ดีสำหรับกริดดังกล่าวและรองรับซอฟต์แวร์การสร้างภาพ ดูคำตอบนี้ในคำถามที่พบบ่อยของ Gerris ผู้สมัครที่มีศักยภาพเพียงคนเดียวที่ฉันรู้อยู่ในปัจจุบันคือคลาสVTK HyperOctreeแต่ดูเหมือนจะไม่มีเอกสารประกอบ

เป็นตัวอย่างที่เฉพาะเจาะจงของตาข่ายให้พิจารณาตาราง octree ที่ได้รับการกลั่นอย่างกระจัดกระจายซึ่งประกอบด้วยกล่องแต่ละกล่องประกอบด้วยเซลล์ กลยุทธ์ปัจจุบันของฉันใน Visit / Paraview คือ: 8 × 8 × 8 = 5121048×8×8=512

  1. เขียนกริดเป็นไฟล์ VTK ที่ไม่มีโครงสร้าง สิ่งนี้มีราคาแพงสำหรับชุดข้อมูลขนาดใหญ่และไม่ใช้ 'โครงสร้าง' ของ quad / octree
  2. รวบรวม 'กล่อง' ที่อยู่ใกล้เคียงในต้นไม้เป็นบล็อกขนาดใหญ่แล้วเขียนตารางที่มีโครงสร้างเป็นบล็อก สิ่งนี้เกี่ยวข้องกับรหัสพิเศษอีกเล็กน้อยและสูญเสียข้อมูลการเชื่อมต่อที่ฝังในรูปสี่เหลี่ยม / แปด

อัปเดตหากขณะนี้ไม่มีรูปแบบที่ใช้งานได้สำหรับการเขียนและแสดงผลกริด octree โดยตรงฉันจะขอบคุณคำแนะนำสำหรับรูปแบบไฟล์ที่สามารถใช้ในการเขียน octree เป็นกริดโครงสร้างบล็อก รูปแบบนี้จะเป็นการดี:

  1. มีความหมาย / การนำไปปฏิบัติค่อนข้างง่ายโดยเฉพาะโอเพ่นซอร์สและเข้ากันได้กับ C / Fortran
  2. สามารถจัดการบล็อกกริดจำนวนมากได้อย่างมีประสิทธิภาพ (เช่น 1,000 หรือมากกว่า)
  3. อนุญาตให้ระบุการเชื่อมต่อของบล็อกกริดได้อย่างง่ายดายโดยเฉพาะที่ขอบเขตการปรับแต่ง

ขณะนี้ฉันใช้ไซโลเพื่อจุดประสงค์นี้ แต่ฉันกำลังมองหาบางสิ่งที่ให้คะแนนดีกว่าสามคะแนนข้างต้น (เล็กลงเร็วขึ้นง่ายขึ้น)


1
ทำไมตาข่ายที่ไม่มีโครงสร้างสร้างข้อมูลมากเกินไป มันจะเป็น 5 ล้านเซลล์เท่านั้น นั่นเป็นชุดข้อมูลขนาดเล็กที่ให้ฉันเห็นใน Visit หรือ Paraview
Wolfgang Bangerth

เนื่องจากระบุพิกัดและการเชื่อมต่อต่อเซลล์แทนที่จะมีเพียงหนึ่งครั้งต่อกล่อง (มีเช่น 512 เซลล์) สำหรับชุดข้อมูลที่มีขนาดใหญ่กว่า (เช่น 20 ล้านเซลล์ขึ้นไป) การสร้างภาพข้อมูลจะช้ากว่าการใช้ตาข่ายบล็อกแบบโครงสร้างมากโดยเฉพาะอย่างยิ่งหากส่วนสำคัญของตารางอยู่ในระดับการปรับแต่งเดียวกัน
Jannis Teunissen

บางทีรายการรูปแบบไฟล์ที่รองรับในการเข้าชมอาจมีประโยชน์สำหรับคำถามนี้: visitusers.org/ …
Jannis Teunissen

1
อาจจะดูที่ CHOMBO, SAMRAI และอื่น ๆ เพื่อสร้างภาพข้อมูล
Abhilash Reddy M

1
เพิ่ม BoxLib ลงในรายการ พวกเขาได้พัฒนาแพ็คเกจที่เรียกว่า AMRVis เพื่อให้เห็นภาพข้อมูล AMR รหัสนี้หาได้จากเว็บไซต์ LBL
Abhilash Reddy M

คำตอบ:


2

ในกรณีของฉันเมื่อฉันทำการปรับแต่งหลายระดับฉันเคยเขียนไฟล์กริดที่ระดับต่าง ๆ แยกจากกัน โดยปกติแล้วระดับ 0 เป็นตาข่ายหยาบฐานซึ่งยังคงอยู่ และสำหรับเลเวล 1 และสูงกว่าฉันใช้ไฟล์ต่างกันสำหรับแพทช์ต่าง ๆ พูดว่าถ้าคุณมี 5 แพตช์ที่ดีในระดับ 1 กลยุทธ์ของฉันคือเขียนไฟล์ต่าง ๆ ห้าไฟล์ที่ส่วนท้ายของโปรแกรมของฉันเช่น Level_1_Patch_1, Level_1_Patch_2 ... ซึ่งสามารถทำได้ใน C (ไม่เคยทำงานใน Fortran)

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

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

ฉันควรพูดถึงที่นี่ว่าฉันใช้ระบบกริดที่มีโครงสร้างแตกต่างกันแน่นอน

ดังนั้นเมื่อฉันมีทุกระดับและไฟล์. PLT หรือ. DAT ฉันนำเข้าทั้งหมดใน TecPLOT ตัวอย่างเช่นเมื่อฉันเขียนโค้ดสองระดับด้วยแพทช์เล็ก ๆ สองสามอันที่ระดับ 1 ตาข่ายของคุณควรมีลักษณะเช่นนี้ใน Tecplot

ป้อนคำอธิบายรูปภาพที่นี่

ฉันไม่คุ้นเคยกับการจัดการกริดที่ไม่ผ่านการทดสอบ


สนใจที่จะอ่านเกี่ยวกับวิธีการของคุณ แต่สิ่งนี้ดูเหมือนจะไม่เหมาะกับการทำทรีขนาดใหญ่ดังนั้นคุณต้องเขียนและอ่านไฟล์หลายพันไฟล์ซึ่งมักจะค่อนข้างช้า
Jannis Teunissen

1
@JannisTeunissen: หากคุณกำลังจะแก้ปัญหาโครงสร้างบล็อกสำหรับ Tecplot บล็อกทั้งหมดสามารถเขียนลงในไฟล์เดียวกับ "Zones" แยกต่างหาก (คำศัพท์ tecplot) พวกเขาไม่จำเป็นต้องแยกไฟล์ อย่างไรก็ตาม I / O แบบขนานไม่ได้อยู่ที่นั่น ชุดข้อมูลขนาดใหญ่จะทำให้หายใจไม่ออก ไฟล์ tecplot สามารถโหลดลงใน ParaView ได้ (Tecplot เป็นกรรมสิทธิ์) รูปแบบ ascii ตรงไปตรงมามาก ด้วยความพยายามบางอย่างคุณสามารถเขียนไบนารีไฟล์โดยตรงในรูปแบบ tecplot มีห้องสมุดอย่างเป็นทางการชื่อ TecIO ซึ่งคุณสามารถเชื่อมโยงรหัสของคุณเพื่อสร้างไฟล์ได้ง่ายขึ้น
Abhilash Reddy M

ฉันไม่คิดว่ามันจะทำงานได้ดีกว่าแนวทางปัจจุบันของฉันกับไซโลซึ่ง (สำคัญ) คือโอเพ่นซอร์ส โปรดทราบว่าไฟล์ ASCII นั้นไม่สามารถใช้กับปัญหานี้ได้
Jannis Teunissen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.