ระบบหมายเลขเอลิเมนต์และไลบรารีฟังก์ชันรูปร่าง¶
ฟังก์ชันรูปร่าง \(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 / อินคอมแพทิเบิล / เชลล์ / คาน
- ไลบรารีเอลิเมนต์ (ฟังก์ชัน) — ตัวเลือกชนิดเอลิเมนต์และแนวทางเลือกใช้