ระบบหมายเลของค์ประกอบและไลบรารีฟังก์ชันรูปร่าง¶
ฟังก์ชันรูปร่าง \(N_\alpha^e(\boldsymbol{r})\) ที่แนะนำใน ฟังก์ชันรูปร่างและการประมาณด้วยไฟไนต์เอลิเมนต์ มีรูปเฉพาะแตกต่างกันตามชนิดองค์ประกอบ บทนี้จัดประเภทกลุ่มองค์ประกอบที่ FrontISTR มีให้ด้วยหมายเลขชนิดองค์ประกอบ 3 หลัก และแสดงอินเทอร์เฟซของไลบรารีฟังก์ชันรูปร่างเพื่อให้จัดการองค์ประกอบแต่ละชนิดได้แบบเดียวกัน ระบบพิกัดธรรมชาติและรูปเฉพาะของฟังก์ชันรูปร่างขององค์ประกอบโซลิดสามมิติ รวมถึงการแปลงลำดับโหนดกลางขององค์ประกอบอันดับสอง อธิบายใน ฟังก์ชันรูปร่างขององค์ประกอบโซลิดสามมิติ ส่วนแนวทางเลือกชนิดองค์ประกอบอยู่ที่ ไลบรารีองค์ประกอบ (ฟังก์ชัน)
การจัดประเภทองค์ประกอบและกฎการตั้งชื่อ¶
ชนิดองค์ประกอบของ FrontISTR ระบุด้วยหมายเลข 3 หลัก ความหมายของแต่ละหลักมีดังนี้
- หลักที่ 1 (กลุ่มองค์ประกอบ): 1=องค์ประกอบเส้น/ทรัส, 2=องค์ประกอบระนาบ, 3=องค์ประกอบโซลิด, 5=องค์ประกอบอินเทอร์เฟซ, 6=องค์ประกอบคาน, 7=องค์ประกอบเชลล์
- หลักที่ 2 (รูปร่างพื้นฐาน): ใช้แยกรูปร่างเรขาคณิตภายในกลุ่มองค์ประกอบ (สามเหลี่ยม สี่เหลี่ยม เตตระฮีดรอน ปริซึมสามเหลี่ยม และเฮกซะฮีดรอน)
- หลักที่ 3 (อันดับการอินเตอร์โพเลต): 1=อันดับหนึ่ง (เฉพาะโหนดมุม), 2=อันดับสอง (รวมโหนดกลาง) ข้อยกเว้นคือองค์ประกอบทรัส 2 โหนดใช้หมายเลข 301
ตารางต่อไปนี้แสดงองค์ประกอบที่มีให้ แยกตามกลุ่มองค์ประกอบ
| กลุ่มองค์ประกอบ | ชนิดองค์ประกอบ | จำนวนโหนด | คำอธิบาย |
|---|---|---|---|
| องค์ประกอบเส้น | 111 | 2 | องค์ประกอบลิงก์ 2 โหนด (ใช้ในการวิเคราะห์ความเค้นไม่ได้) |
| 112 | 3 | องค์ประกอบลิงก์ 3 โหนด (ใช้ในการวิเคราะห์ความเค้นไม่ได้) | |
| องค์ประกอบระนาบ | 231 | 3 | องค์ประกอบสามเหลี่ยมอันดับหนึ่ง |
| 232 | 6 | องค์ประกอบสามเหลี่ยมอันดับสอง | |
| 241 | 4 | องค์ประกอบสี่เหลี่ยมอันดับหนึ่ง | |
| 242 | 8 | องค์ประกอบสี่เหลี่ยมอันดับสอง (ตระกูล Serendipity) | |
| องค์ประกอบโซลิด | 301 | 2 | องค์ประกอบทรัส 2 โหนด |
| 341 | 4 | องค์ประกอบเตตระฮีดรอนอันดับหนึ่ง | |
| 342 | 10 | องค์ประกอบเตตระฮีดรอนอันดับสอง | |
| 351 | 6 | องค์ประกอบปริซึมสามเหลี่ยมอันดับหนึ่ง | |
| 352 | 15 | องค์ประกอบปริซึมสามเหลี่ยมอันดับสอง | |
| 361 | 8 | องค์ประกอบเฮกซะฮีดรอนอันดับหนึ่ง | |
| 362 | 20 | องค์ประกอบเฮกซะฮีดรอนอันดับสอง (ตระกูล Serendipity) | |
| องค์ประกอบอินเทอร์เฟซ | 541 | 4×2 | องค์ประกอบผิวสี่เหลี่ยมอันดับหนึ่ง (ใช้ในการวิเคราะห์ความเค้นไม่ได้) |
| 542 | 8×2 | องค์ประกอบผิวสี่เหลี่ยมอันดับสอง (ใช้ในการวิเคราะห์ความเค้นไม่ได้) | |
| องค์ประกอบคาน | 611 | 2 | องค์ประกอบคาน Bernoulli-Euler 2 โหนด (6 องศาอิสระต่อโหนด) |
| 641 | 2×2 | องค์ประกอบคาน Bernoulli-Euler 2 โหนด (3 องศาอิสระต่อโหนด สำหรับองศาอิสระแบบผสม) | |
| องค์ประกอบเชลล์ | 731 | 3 | องค์ประกอบเชลล์สามเหลี่ยม MITC3 (6 องศาอิสระต่อโหนด) |
| 741 | 4 | องค์ประกอบเชลล์สี่เหลี่ยม MITC4 (6 องศาอิสระต่อโหนด) | |
| 743 | 9 | องค์ประกอบเชลล์สี่เหลี่ยม MITC9 (6 องศาอิสระต่อโหนด) | |
| 761 | 3×2 | องค์ประกอบเชลล์สามเหลี่ยม MITC3 (3 องศาอิสระต่อโหนด สำหรับองศาอิสระแบบผสม) | |
| 781 | 4×2 | องค์ประกอบเชลล์สี่เหลี่ยม MITC4 (3 องศาอิสระต่อโหนด สำหรับองศาอิสระแบบผสม) |
องค์ประกอบเฮกซะฮีดรอนอันดับหนึ่ง 361 มีหลายสูตร (การอินทิเกรตเต็มรูปแบบ, โหมดอินคอมแพทิเบิล, B-bar และ F-bar) ซึ่งเลือกผ่านข้อมูลควบคุมการวิเคราะห์ รายละเอียดดูที่ สูตรองค์ประกอบขั้นสูง
องค์ประกอบคาน 641 และองค์ประกอบเชลล์ 761/781 เป็นสูตรสำหรับเชื่อมองค์ประกอบโครงสร้างที่มี 6 องศาอิสระเข้ากับองค์ประกอบโซลิดที่มี 3 องศาอิสระที่โหนดเดียวกัน โดยแทนโหนดโครงสร้างหนึ่งโหนดด้วยโหนด 3 องศาอิสระสองโหนด สูตรเองเหมือนกับรุ่น 6 องศาอิสระที่สอดคล้องกัน (611, 731 และ 741)
ไลบรารีฟังก์ชันรูปร่าง¶
รูทีนคำนวณองค์ประกอบ (การสร้างเมทริกซ์ความแข็งและเวกเตอร์แรงภายใน) ไม่ได้มีรูทีนแยกสำหรับแต่ละชนิดองค์ประกอบ แต่เรียกไลบรารีฟังก์ชันรูปร่างผ่านอินเทอร์เฟซรวมที่รับหมายเลขชนิดองค์ประกอบ fetype เป็นอาร์กิวเมนต์ โมดูล elementInfo (fistr1/src/lib/element/element.f90) ให้ฟังก์ชันต่อไปนี้
NumOfQuadPoints(fetype): คืนค่าจำนวนจุดอินทิเกรต \(n_q\) สำหรับชนิดองค์ประกอบgetQuadPoint(fetype, np, pos): คืนค่าพิกัดธรรมชาติ \(\boldsymbol{r}_i\) ของจุดอินทิเกรต \(i\)getWeight(fetype, np): คืนค่าน้ำหนัก \(w_i\) ของจุดอินทิเกรต \(i\)getShapeFunc(fetype, r, N): คืนค่าฟังก์ชันรูปร่าง \(N_\alpha^e(\boldsymbol{r})\) ที่พิกัดธรรมชาติ \(\boldsymbol{r}\)getShapeDeriv(fetype, r, dN): คืนค่าอนุพันธ์ตามพิกัดธรรมชาติ \(\partial N_\alpha^e/\partial \boldsymbol{r}\) ของฟังก์ชันรูปร่างgetGlobalDeriv(fetype, n_e, r, X^e, J, dN_x): เมื่อให้พิกัดโหนดขององค์ประกอบ \(\boldsymbol{X}^e\) จะคืนค่าอนุพันธ์ตามพิกัดกายภาพ \(\partial N_\alpha^e/\partial \boldsymbol{x}\) และดีเทอร์มิแนนต์จาโคเบียน \(J\)getNumberOfSubface(fetype),getSubFace(fetype, k, ...): คืนค่าจำนวนผิวขอบเขตขององค์ประกอบและหมายเลขโหนดที่ประกอบเป็นแต่ละผิว ใช้ในการสร้างโหลดบนผิวและผิวสัมผัส
แต่ละฟังก์ชันจะแยกการทำงานภายในตามหมายเลขชนิดองค์ประกอบ แล้วเรียกซับรูทีนฟังก์ชันรูปร่างและอนุพันธ์ของฟังก์ชันรูปร่างในโมดูลระดับล่างที่เตรียมไว้สำหรับแต่ละชนิดองค์ประกอบ (tet4n.f90, tet10n.f90, prism6n.f90, prism15n.f90, hex8n.f90, hex20n.f90, tri3n.f90, tri6n.f90, quad4n.f90, quad8n.f90, quad9n.f90, line2n.f90, line3n.f90) ตารางตัวเลขของพิกัดจุดอินทิเกรตและน้ำหนักรวมอยู่ใน quadrature.f90 เมื่อต้องการเพิ่มชนิดองค์ประกอบใหม่ ให้ติดตั้งโมดูลระดับล่างที่สอดคล้องกันแล้วเพิ่มสาขาการทำงานในแต่ละฟังก์ชันของ elementInfo
การแปลงลำดับโหนดกลางขององค์ประกอบสามเหลี่ยมอันดับสอง¶
สำหรับองค์ประกอบสามเหลี่ยมอันดับสอง 232 ลำดับโหนดกลางในรูปแบบอินพุตเมช HEC-MW (ที่เรียงโหนดมุมรอบองค์ประกอบก่อน แล้วจึงโหนดกลางตามขอบ 1-2, 2-3, …) ต่างจากรูปแบบภายใน FrontISTR ที่ฟังก์ชันรูปร่างในไลบรารีองค์ประกอบสมมติไว้ ความแตกต่างนี้ถูกแก้ทันทีหลังอ่านเมช โดย hecmw2fstr_mesh_conv (fistr1/src/common/hecmw2fstr_mesh_conv.f90 และ hecmw2fstr_connect_conv.c) เรียงโหนดทั้งหกใหม่เป็น \(\{1,2,3,6,4,5\}\) ตามตารางแปลง Table232 เนื่องจากการแปลงทำโดยตรงกับอาร์เรย์ที่เก็บข้อมูลการเชื่อมต่อองค์ประกอบ การเรียกไลบรารีองค์ประกอบหลังจากนั้นทั้งหมดจึงใช้ลำดับโหนดภายในของ FrontISTR เมื่อส่งออกผลลัพธ์ จะใช้การแปลงย้อนกลับ fstr2hecmw_mesh_conv คืนเป็นรูปแบบ HEC-MW ก่อนเขียนออก ดังนั้นทั้งอินพุตและเอาต์พุต ผู้ใช้จำเป็นต้องคำนึงถึงเฉพาะรูปแบบ HEC-MW
องค์ประกอบโซลิดสามมิติ 342 (เตตระฮีดรอนอันดับสอง) และ 352 (ปริซึมสามเหลี่ยมอันดับสอง) มีการแปลงอัตโนมัติในลักษณะเดียวกัน ส่วน 362 (เฮกซะฮีดรอนอันดับสอง) ไม่มีการแปลง สำหรับรายละเอียดการจัดการดู ฟังก์ชันรูปร่างขององค์ประกอบโซลิดสามมิติ สำหรับองค์ประกอบระนาบสี่เหลี่ยมอันดับสอง 242 และองค์ประกอบอินเทอร์เฟซ 542 ไม่มีการแปลง เพราะลำดับโหนดกลางในรูปแบบอินพุต HEC-MW ตรงกับรูปแบบภายใน
หัวข้อที่เกี่ยวข้อง¶
- ฟังก์ชันรูปร่างและการประมาณด้วยไฟไนต์เอลิเมนต์ — นิยามทางคณิตศาสตร์ของฟังก์ชันรูปร่าง
- การอินทิเกรตเชิงตัวเลข — จุดอินทิเกรต น้ำหนัก และรูปประมาณของการอินทิเกรตองค์ประกอบ
- ฟังก์ชันรูปร่างขององค์ประกอบโซลิดสามมิติ — พิกัดธรรมชาติและรูปเฉพาะของฟังก์ชันรูปร่างสำหรับองค์ประกอบโซลิดต่อเนื่อง
- สูตรองค์ประกอบขั้นสูง — B-bar / F-bar / อินคอมแพทิเบิล / เชลล์ / คาน
- ไลบรารีองค์ประกอบ (ฟังก์ชัน) — ตัวเลือกชนิดองค์ประกอบและแนวทางเลือกใช้