กลับไปหน้าบทความ

อ่าน 3 นาที

ไม่มีชื่อบทความ

ใน การสร้างตาข่าย (mesh generation ) การปรับแต่งแบบเดลาเนย์ (Delaunay refinements) เป็น อัลกอริธึม สำหรับ การสร้างตาข่าย โดยอาศัยหลักการของการเพิ่ม จุดสไตเนอร์ (Steiner points)...

การปรับปรุงเดลาเนย์

ในการสร้างตาข่าย (mesh generation ) การปรับแต่งแบบเดลาเนย์ (Delaunay refinements)เป็นอัลกอริธึมสำหรับการสร้างตาข่ายโดยอาศัยหลักการของการเพิ่มจุดสไตเนอร์ (Steiner points)ให้กับรูปทรงเรขาคณิตของข้อมูลป้อนเข้าที่จะสร้างตาข่าย ในลักษณะที่ทำให้การสร้างสามเหลี่ยมแบบเดลาเนย์ (Delaunay triangulation ) หรือ การสร้างสามเหลี่ยมแบบเดลาเนย์ที่มีข้อจำกัด ( constrained Delaunay triangulation)ของข้อมูลป้อนเข้าที่เพิ่มเข้ามานั้นตรงตามข้อกำหนดด้านคุณภาพของแอปพลิเคชันการสร้างตาข่าย

แรงจูงใจ

เมื่อทำการจำลองด้วยคอมพิวเตอร์ เช่นพลศาสตร์ของไหลเชิงคำนวณ (Computational Fluid Dynamics : CT) เราเริ่มต้นด้วยแบบจำลอง เช่น โครงร่าง 2 มิติของส่วนปีกเครื่องบิน ข้อมูลป้อนเข้าสำหรับวิธีไฟไนต์เอเลเมนต์ 2 มิติ จะต้องอยู่ในรูปของสามเหลี่ยมที่เติมเต็มพื้นที่ทั้งหมด และแต่ละสามเหลี่ยมจะต้องเติมด้วยวัสดุชนิดเดียว – ในตัวอย่างนี้คือ "อากาศ" หรือ "ปีก" สามเหลี่ยมที่ยาวและแคบจะไม่สามารถจำลองได้อย่างแม่นยำ เวลาในการจำลองโดยทั่วไปจะแปรผันตรงกับจำนวนสามเหลี่ยม ดังนั้นจึงต้องการลดจำนวนสามเหลี่ยมให้น้อยที่สุด ในขณะที่ยังคงใช้สามเหลี่ยมจำนวนมากพอที่จะให้ผลลัพธ์ที่แม่นยำพอสมควร – โดยทั่วไปจะใช้ตารางแบบไม่เป็นระเบียบ (unstructured grid ) คอมพิวเตอร์จะใช้อัลกอริทึมการสร้างตาข่าย (meshing algorithm) เพื่อแปลงแบบจำลองรูปหลายเหลี่ยมให้เป็นสามเหลี่ยมที่เหมาะสมสำหรับวิธีไฟไนต์เอเลเมนต์

อัลกอริทึมที่สองของชิว

ตาข่ายที่สร้างขึ้นด้วยอัลกอริทึมที่สองของ Chew (ข้อความ)
สร้างตาข่ายของทะเลสาบมิชิแกนโดยใช้อัลกอริทึมที่สองของ Chew ซึ่งถูกนำมาใช้ในแพ็กเกจ Triangle

อัลกอริทึมที่สองของ Chewใช้ ระบบ เชิงเส้นแบบแบ่งส่วน (PLS) และส่งคืนการสร้างสามเหลี่ยม Delaunay ที่มีข้อจำกัดเฉพาะสามเหลี่ยมคุณภาพ โดยคุณภาพจะถูกกำหนดโดยมุมต่ำสุดในสามเหลี่ยม พัฒนาโดย L. Paul Chew สำหรับการสร้างตาข่ายพื้นผิวที่ฝังอยู่ในพื้นที่สามมิติ[ 1 ]อัลกอริทึมที่สองของ Chew ได้รับการนำมาใช้เป็นตัวสร้างตาข่ายสองมิติเนื่องจากมีข้อได้เปรียบในทางปฏิบัติมากกว่าอัลกอริทึมของ Ruppertในบางกรณี และเป็นตัวสร้างตาข่ายคุณภาพเริ่มต้นที่ใช้งานในแพ็คเกจ Triangle ที่มีให้ใช้งานฟรี[ 2 ]อัลกอริทึมที่สองของ Chew รับประกันว่าจะสิ้นสุดและสร้าง ตาข่ายที่มี ขนาดคุณลักษณะเฉพาะที่ไล่ระดับโดยมีมุมต่ำสุดประมาณ 28.6 องศา[ 3 ]

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

อัลกอริทึมของรูเพิร์ต

ข้อมูลป้อนเข้าของอัลกอริทึมของ Ruppert
กราฟเส้นตรงระนาบอินพุต
ผลลัพธ์ที่สอดคล้องกับการสร้างสามเหลี่ยมเดลานีย์
ผลลัพธ์ที่สอดคล้องกับการสร้างสามเหลี่ยมเดลานีย์
ตัวอย่างของอัลกอริทึมของรูเพิร์ต

อัลกอริทึมของ Ruppertรับกราฟเส้นตรงระนาบ (หรือในมิติที่สูงกว่าสอง ระบบ เชิงเส้นแบบแบ่งส่วน ) และส่งคืนการสร้างสามเหลี่ยม Delaunay ที่สอดคล้องกันของสามเหลี่ยมคุณภาพเท่านั้น สามเหลี่ยมจะถือว่ามีคุณภาพต่ำหากมีอัตราส่วนรัศมีวงกลมล้อมรอบต่อขอบที่สั้นที่สุดมากกว่าเกณฑ์ที่กำหนดไว้ ค้นพบโดย Jim Ruppert ในช่วงต้นทศวรรษ 1990 [ 4 ] "อัลกอริทึมของ Ruppert สำหรับการสร้างตาข่ายคุณภาพสองมิติอาจเป็น อัลกอริทึม การสร้างตาข่ายที่รับประกันทางทฤษฎีเป็นครั้งแรกที่น่าพอใจอย่างแท้จริงในทางปฏิบัติ" [ 5 ]

การสร้างสามเหลี่ยมขั้นกลางของอัลกอริทึมของ Ruppert

อัลกอริทึม

อัลกอริทึมเริ่มต้นด้วยการสร้างสามเหลี่ยมเดอลานีย์ของจุดยอดอินพุต จากนั้นประกอบด้วยการดำเนินการหลักสองอย่าง

  • จุดกึ่งกลางของส่วนของเส้นตรงที่มีวงกลมเส้นผ่านศูนย์กลางที่ไม่ว่างเปล่าจะถูกแทรกเข้าไปในการสร้างสามเหลี่ยม
  • จุดศูนย์กลาง วงกลมล้อม รอบของสามเหลี่ยมคุณภาพต่ำจะถูกแทรกเข้าไปในการสร้างสามเหลี่ยม เว้นแต่ว่าจุดศูนย์กลางวงกลมล้อมรอบนี้จะอยู่บนวงกลมเส้นผ่านศูนย์กลางของส่วนใดส่วนหนึ่ง ในกรณีนั้น ส่วนที่ถูกรุกล้ำจะถูกแบ่งออกแทน

ดำเนินการเช่นนี้ซ้ำไปเรื่อยๆ จนกว่าจะไม่มีรูปสามเหลี่ยมคุณภาพต่ำเหลืออยู่ และส่วนต่างๆ ทั้งหมดจะไม่ถูกรุกล้ำ

รหัสเทียม
ฟังก์ชัน Ruppert( points , segments , threshold ) คือT := DelaunayTriangulation( points ) Q := เซตของส่วนที่ถูกรุกล้ำและสามเหลี่ยมคุณภาพต่ำ ในขณะที่Q ไม่ว่างเปล่า: // ลูปหลักถ้าQมีส่วนs อยู่ : แทรกจุดกึ่งกลางของsลงในT มิฉะนั้นQจะมีสามเหลี่ยมคุณภาพต่ำt : ถ้าจุดศูนย์กลางวงกลมล้อมรอบของtล้ำเข้าไปในส่วนของเส้นตรงs : เพิ่มs ลง ในQมิ ฉะนั้น : แทรกจุดศูนย์กลางวงกลมล้อมรอบของtลงในT จบถ้าจบถ้า อัปเดตQ จบในขณะที่ส่งคืนT สิ้นสุด Ruppert

การใช้งานจริง

หากไม่มีการดัดแปลง อัลกอริทึมของ Ruppert รับประกันว่าจะสิ้นสุดและสร้างตาข่ายที่มีคุณภาพสำหรับอินพุตที่ไม่แหลมคมและเกณฑ์คุณภาพต่ำใด ๆ ที่น้อยกว่าประมาณ 20.7 องศา เพื่อลดข้อจำกัดเหล่านี้ ได้มีการปรับปรุงเล็กน้อยหลายประการ โดยการลดข้อกำหนดด้านคุณภาพใกล้กับมุมอินพุตขนาดเล็ก อัลกอริทึมสามารถขยายเพื่อจัดการกับอินพุตเส้นตรงใด ๆ ได้[ 6 ] อินพุตโค้งก็สามารถสร้างตาข่ายได้โดยใช้เทคนิคที่คล้ายกัน[ 7 ] อัลกอริทึมของ Ruppert สามารถขยายไปยังสามมิติได้อย่างเป็นธรรมชาติ อย่างไรก็ตาม การรับประกันผลลัพธ์จะอ่อนลงเล็กน้อยเนื่องจากรูปทรงสี่เหลี่ยมด้านเท่าแบบบาง

ส่วนขยายของอัลกอริธึมของ Ruppert ในสองมิติได้รับการนำไปใช้ในแพ็คเกจ Triangle ที่มีให้ใช้งานฟรี อัลกอริธึมของ Ruppert สองรูปแบบในแพ็คเกจนี้รับประกันว่าจะสิ้นสุดเมื่อค่าเกณฑ์คุณภาพต่ำอยู่ที่ประมาณ 26.5 องศา[ 8 ] ในทางปฏิบัติ อัลกอริธึมเหล่านี้ประสบความสำเร็จสำหรับค่าเกณฑ์คุณภาพต่ำที่มากกว่า 30 องศา อย่างไรก็ตาม มีตัวอย่างที่ทราบกันดีว่าทำให้อัลกอริธึมล้มเหลวเมื่อค่าเกณฑ์มากกว่า 29.06 องศา[ 9 ]

ดูเพิ่มเติม

อ่านเพิ่มเติม

  • ริโน, ลอเรนต์. "การสร้างสามเหลี่ยมและตาข่ายแบบสอดคล้องกันใน 2 มิติ" . สืบค้นเมื่อ28 ธันวาคม 2018 .
  • เชวชุก, โจนาธาน. "Triangle: โปรแกรมสร้างตาข่ายคุณภาพสองมิติและตัวสร้างสามเหลี่ยมเดลานีย์" . สืบค้นเมื่อ28 ธันวาคม 2018 .
  • Si, Hang (2015). "TetGen: เครื่องมือสร้างตาข่ายทรงสี่เหลี่ยมด้านเท่าคุณภาพสูงและเครื่องมือสร้างสามเหลี่ยมเดลานีย์ 3 มิติ" . เก็บถาวรจากต้นฉบับเมื่อวันที่ 29 ธันวาคม 2018 . สืบค้นเมื่อเมื่อวันที่ 28 ธันวาคม 2018 .{{cite web}}: CS1 maint: bot: สถานะ URL เดิมไม่ทราบ ( ลิงก์ )

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ไม่มีชื่อบทความ

ใน การสร้างตาข่าย (mesh generation ) การปรับแต่งแบบเดลาเนย์ (Delaunay refinements) เป็น อัลกอริธึม สำหรับ การสร้างตาข่าย โดยอาศัยหลักการของการเพิ่ม จุดสไตเนอร์ (Steiner points)...

แรงจูงใจ

เมื่อทำการจำลองด้วยคอมพิวเตอร์ เช่น พลศาสตร์ของไหลเชิงคำนวณ (Computational Fluid Dynamics : CT) เราเริ่มต้นด้วยแบบจำลอง เช่น โครงร่าง 2 มิติของส่วนปีกเครื่องบิน ข้อมูลป้อนเข้าสำหรับ วิธีไฟไนต์เอเลเมนต์ 2 มิติ...

อัลกอริทึมที่สองของชิว

อัลกอริทึมที่สองของ Chew ใช้ ระบบ เชิงเส้นแบบแบ่งส่วน (PLS) และส่งคืนการสร้างสามเหลี่ยม Delaunay ที่มีข้อจำกัดเฉพาะสามเหลี่ยมคุณภาพ โดยคุณภาพจะถูกกำหนดโดยมุมต่ำสุดในสามเหลี่ยม พัฒนาโดย L.

อัลกอริทึมของรูเพิร์ต

อัลกอริทึมของ Ruppert รับ กราฟเส้นตรงระนาบ (หรือในมิติที่สูงกว่าสอง ระบบ เชิงเส้นแบบแบ่งส่วน ) และส่งคืนการสร้างสามเหลี่ยม Delaunay ที่สอดคล้องกันของสามเหลี่ยมคุณภาพเท่านั้น...