The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

รวมบท_ส่งอาจารย์ครั้งที่ 1

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by sathorn_kwannui, 2022-02-09 09:59:12

รวมบท_ส่งอาจารย์ครั้งที่ 1

รวมบท_ส่งอาจารย์ครั้งที่ 1

การใช้ซอฟตแ์ วร์โอเพ่นโฟมสำหรบั การวิเคราะหก์ ารไหลของของไหล

นายบรรณสรณ์ ขวัญนยุ้
นายทองขัตตยิ ะ บัวทอง
นางสาวณัฐนภา โนรี

โครงงานนเี้ ปน็ สว่ นหน่ึงของการศกึ ษาตามหลกั สตู ร
วศิ วกรรมศาสตรบัณฑิต สาขาวศิ วกรรมเคร่อื งกล
ภาควชิ าวิศวกรรมเคร่อื งกล คณะวิศวกรรมศาสตร์ มหาวิทยาลยั มหิดล

พ.ศ. 2564

STUDY OF OPENFOAM FOR FLUID FLOW ANALYSIS.

BUNNASORN KWANNUI
THONGKATTIYA BUATHONG
NATNAPA NOREE

A PROJECT SUBMITTED IN PARTIAL FULFILLMENT FOR
THE DEGREE OF BACHELOR OF MECHANICAL ENGINEERING

DEPARTMENT OF MECHANICAL ENGINEERING
FACULTY OF ENGINEERING, MAHIDOL UNIVERSITY

Year of 2021

โครงงานเร่ือง
การใชซ้ อฟตแ์ วร์โอเพน่ โฟมสำหรับการวิเคราะห์การไหลของของไหล

ไดร้ ับการอนมุ ัติใหเ้ ปน็ ส่วนหน่ึงของการศกึ ษา
ตามหลักสูตรปรญิ ญาวศิ วกรรมศาสตรบัณฑติ สาขาวชิ าวศิ วกรรมเครื่องกล

พ.ศ. 2561

ผจู้ ัดทำ นายบรรณสรณ์ ขวญั นุย้
นายทองขัตติยะ บัวทอง
นางสาวณัฐนภา โนรี

อาจารย์ทปี่ รกึ ษา ผชู้ ว่ ยศาสตราจารย์ ดร.เอกชัย ชัยชนะศริ ิ

………………………………………………
(ผู้ชว่ ยศาสตราจารย์ ดร.เอกชยั ชัยชนะศริ ิ)

ประธานกรรมการ

………………………………………………
(ศาสตราจารย์ ดร.ปราโมทย์ เดชะอำไพ)

กรรมการ

………………………………………………
(รองศาสตราจารย์ ดร.ชาคริต สวุ รรณจำรัส)

กรรมการ

…………………………………………..…
(ผชู้ ว่ ยศาสตราจารย์ ดร.รงุ่ กิตตพิ ชิ ยั )
หัวหน้าภาควชิ าวิศวกรรมเคร่ืองกล

คณะวิศวกรรมศาสตร์

กิตติกรรมประกาศ

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

อนึ่ง ทางผู้จัดทำหวังเป็นอย่างยิ่งว่า โครงการปริญญานิพนธ์ฉบับนี้จะมีประโยชน์อยู่ไม่น้อย
สามารถเป็นส่วนช่วยเสริมความเข้าใจเกี่ยวกับการใช้ซอฟต์แวร์โอเพ่นโฟมในการวิเคราะห์ปัญหาของ
ไหล สำหรับข้อบกพร่องต่าง ๆ ที่เกิดขึ้น ทางผู้จัดทำขอน้อมรับผิด และยินดีที่จะรับฟังคำแนะนำจาก
ทกุ ทา่ นท่ีเข้ามาศึกษา เพือ่ เปน็ ประโยชนใ์ นการพัฒนางานวิจัยต่อไป

บรรณสรณ์ ขวัญนยุ้
ทองขตั ติยะ บวั ทอง
ณฐั นภา โนรี
11 มกราคม พ.ศ. 2565

บทคดั ย่อ

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

การศึกษาซอฟแวร์ทางด้านพลศาสตร์พลศาสตร์ของไหลเชิงคำนวณ (Computational Fluid
Dynamics, CFD) เพ่ือนำองค์ความรู้มาถ่ายทอดเปน็ งานวจิ ัยใหแ้ ก่ผู้ท่สี นใจ และนักวิจยั โดยซอฟแวร์ที่
ไม่มีค่าลิขสิทธิ์และกำลังเป็นที่นิยมกันทั่วโลกที่มีชื่อว่า “OpenFOAM” ซึ่งเป็น Open Source ที่
สามารถใช้งานได้อย่างเสรี สามารถปรับแต่งซอฟต์แวร์ผ่าน Source Code แจกจ่าย และเผยแพร่ได้
ภายใต้เงื่อนไขของซอฟต์แวร์ต้นฉบับ มีการเรียบเรียงการใช้งานของซอฟแวร์ OpenFOAM ตั้งแต่การ
ติดตง้ั ไปจนถงึ การแกป้ ัญหาต่างๆของ CFD อยา่ งละเอยี ดและเข้าใจงา่ ย

เนอ้ื หาของผลการศึกษาน้ีถูกจัดเรียบเรียงลำดบั เน้ือหาจากพื้นฐานไปจนถงึ ปญั หาท่ีซับซ้อนขึ้น
โดยมีขึ้นตอนและภาพแสดงประกอบอย่างละเอียดทุกขั้นตอน เพื่อนำไปผลิตเป็นหนังสืออิเล็คทรอนิค
(E-book) เป็นคู่มือแก่ผู้ที่ศึกษา และนักวิจัยที่ต้องการใช้ซอฟแวร์ช่วยวิเคราะห์งานทางด้านวิศวกรรม
ด้วยซอฟแวร์ OpenFOAM

บทท่ี 3
การตดิ ต้ังซอฟต์แวร์

ซอฟต์แวร์ OpenFOAM จัดเป็นซอฟต์แวร์ที่ไม่มีค่าลิขสิทธิ์ ซึ่งสามารถติดตั้งได้จากหลาย
ช่องทาง อาทิ ชอ่ งทางขอเว็บไซต์หลักของ OpenFOAM หรือจากทางเว็บไซต์เสริมอื่นๆ ซึง่ ในรายงงาน
เลม่ นจี้ ะเสนอการตดิ ต้งั ผา่ นทางช่องทางเวบ็ ไซต์ของ blueCFD
ข้ันตอนการตดิ ต้งั ซอฟต์แวร์ OpenFOAM

1. เขา้ ไปหน้าเวบ็ ไซตต์ ามท่ีอยทู่ ี่ข้ึนข้างต้น http://bluecfd.github.io/Core/ หนา้ ต่างของ
เว็บไซตจ์ ะขึน้ ดังรูปที่ 3.1

รปู ที่ 3.1 แสดงหนา้ เว็บไซต์ blueCFD

2. ในแถบเมนูบารท์ างด้านซา้ ยมือ ใหก้ ดเลือกท่ีแถบ Downloads เพอ่ื ทจ่ี ะเข้าไปเลือกไฟล์
โปรแกรมทีเ่ ราจะทำการติดตั้ง ตามรูปท่ี 3.2

รปู ท่ี 3.2 แสดงแถบ Downloads

3. กดเลอื ก blueCFD-Core 2020-1 ซึ่งเป็นเวอรช์ ัน่ ล่าสดุ ของทางเว็บไซต์ ตามรปู ท่ี 3.3

รูปท่ี 3.3 เวอรช์ น่ั ของการตดิ ตั้งโปรแกรม blueCFD

4. กดเลือกที่ blueCFD-Core-2020-1-win64-setup.exe เพื่อทำการดาวนโ์ หลดโปรแกรม

รปู ที่ 3.4 รูปแสดงหน้าดาวน์โหลดเวอรช์ ั่นปี 2020

5. หลงั จากทำการดาวนโ์ หลดโปรแกรม ใหเ้ ข้าไปที่ไฟลข์ องตัวโปรแกรม ซ่งึ มีรปู ร่างดงั รปู ท่ี 3.5
จากน้นั ทำการเปิดไฟล์ โดยการคลกิ สองครั้ง

รูปท่ี 3.5 รูปแสดงไฟล์ทท่ี ำการดาวนโ์ หลด

6. เมอ่ื เข้ามาในตัวไฟล์ จะขึ้นหน้าตา่ งดงั รปู ท่ี 3.6 ให้ทำการกดป่มุ Next >

รปู ท่ี 3.6 หน้าต่างแสดงการติดตั้งโปรแกรม

7. ข้ึนหน้าตา่ งดังรปู ที่ 3.7 ใหก้ ดเลอื ก I accept the agreement จากนั้นกดปุ่ม Next >

รูปที่ 3.7 หน้าตา่ งแสดงการติดตั้งโปรแกรม

8. สามารถเปลีย่ นแปลงท่ีอยูโ่ ปรแกรมโดยการกด Browse.. แล้วเลือกสถานทท่ี ี่ต้องการติดต้งั
โปรแกรม จากนั้นกด Next > แสดงดังรูปที่ 3.8

รปู ท่ี 3.8 หนา้ ต่างแสดงการติดต้ังโปรแกรม

9. เลอื ก Full Installation แล้วกดปุ่ม Next > แสดงดงั รปู ที่ 3.9

รูปที่ 3.9 หน้าตา่ งแสดงการติดต้ังโปรแกรม

10. ขึ้นหน้าตา่ งดังรปู จากน้ันกด Next > แสดงดงั รปู ท่ี 3.10

รปู ที่ 3.10 หนา้ ต่างแสดงการตดิ ตัง้ โปรแกรม

11. กดเลือกใหเ้ ปน็ เครื่องหมายถูกทุกช่องดงั รูปท่ี 3.11 จากนั้นกดปมุ่ Next >

รูปท่ี 3.11 หนา้ ต่างแสดงการติดตัง้ โปรแกรม

12. กดเลือกท่ปี ุ่ม Install ตามรปู ที่ 3.12

รปู ท่ี 3.12 หนา้ ต่างแสดงการติดตั้งโปรแกรม

13. รอจนกวา่ จะทำการติดตัง้ โปรแกรมเสร็จส้นิ จะข้ึนหนา้ ตา่ งดงั รปู ท่ี 3.13

รูปที่ 3.13 หนา้ ตา่ งแสดงการติดต้งั โปรแกรม

14. หลังจากตดิ ตั้งโปรแกรม ใหก้ ดปุ่ม Start ด้านล่างซา้ ยของหน้าจอ เลือกหา Folder ทีช่ ่ือวา่
blueCFD-Core 2020

15. เชค็ ว่ามโี ปรแกรมดงั รูปท่ี 3.15 เปน็ อนั เสรจ็ ส้นิ การตดิ ต้ังโปรแกรม

บทที่ 4
การใช้งานซอฟตแ์ วร์ OpenFOAM

4.1 โครงสรา้ งซอฟต์แวร์ OpenFOAM

ซอฟต์แวร์ OpenFoam เป็นซอฟต์แวร์แก้ปัญหาทางด้านพลศาสตร์ของไหลที่ใช้ภาษา C++
ในการดำเนินการ แฟ้มที่จัดเก็บข้อมูลซอฟต์แวร์จะมีไลบราร่ี (Library) ที่ภายในบรรจุไฟล์นามสกุล
.exe หรือที่เรียกว่า “แอปพลิเคชัน” ซึ่งแบ่งออกเป็นสองประเภท ได้แก่ แอปพลิเคชันผลเฉลย
(Solvers) ออกแบบมาเพื่อแก้ปัญหาในกลศาสตร์ มีตัวแก้ปัญหาท่ีครอบคลุมปัญหามากมายใน
พลศาสตร์ของไหล และ แอปพลิเคชันอรรถประโยชน์ (Utilities) ที่ออกแบบมาเพื่อทำงานเกี่ยวกับการ
จัดการข้อมูล ซึ่งผู้ใช้งานสามารถคัดลอกหรือแก้ไขแอปพลิเคชันผลเฉลย (Solvers), แอปพลิเคชัน
อรรถประโยชน์ (Utilities) และ ไลบราร่ี (Library) โดยใช้ความรู้เบื้องต้นเกี่ยวกับสูตรพื้นฐาน ฟิสิกส์
และเทคนคิ การเขยี นโปรแกรมท่เี กย่ี วข้องได้

ในการวิเคราะห์ CFD ของซอฟต์แวร์ OpenFoam ประกอบไปด้วย 3 ขั้นตอน ได้แก่ Pre-
processing, Solving และ Post-processing ซึ่งในซอฟต์แวร์ OpenFoam มีโค้ดที่ครอบคลุมทั้งสาม
ขั้นตอนสำหรับการวิเคราะห์ปัญหาทางด้านพลศาสตร์ของไหล สำหรับขั้นตอน Pre-processing และ
Solving จะใชแ้ อปพลิเคชันอรรถประโยชน์ที่มีเคร่ืองมือทีใ่ ช้สร้างเซลล์ (Meshing Tool) แอปพลิเคชัน
ผลเฉลยทเี่ ป็นมาตรฐานจากซอฟต์แวร์ (Standard Applications) และแอปพลิเคชันผลเฉลยท่ีผู้ใช้งาน
ไดท้ ำการคดั ลอกหรือแก้ไข (User Applications) เพ่อื สร้างแบบจำลองและประมวลผลปัญหา ผลเฉลย
ที่ได้จะถูกบันทึกและแสดงผลในขั้นตอน Post-processing ผ่านซอฟต์แวร์ที่เป็นซอฟต์แวร์ร่วม คือ
ParaView โครงสร้างโดยรวมของซอฟตแ์ วร์ OpenFoam สามารถแสดงไดใ้ นรปู ที่ 4.1

รปู ที่ 4.1 โครงสรา้ งโดยรวมของซอฟต์แวร์ OpenFoam

4.2 โครงสร้างเซลล์ภายในโดเมน

โครงสรา้ งเซลล์ของโดเมนจะถูกกำหนดค่าในอ็อบเจ็กตท์ ่ีทีช่ือว่า “blockMeshDict” ซึ่งต้ังอยู่
ในไดเร็กทอรี system ของแฟ้มปัญหานั้น ๆ โดยจะมีส่วนประกอบสำคัญ ได้แก่ จุด (points) ผิว
(faces) เซลล์ (cells) และขอบเขต (boundary)

หลกั การในการสร้างเซลลโ์ ดเมน คือ การแยกสว่ นโดเมนออกเป็นรปู ทรงเรขาคณิต เชน่ รูปทรง
สี่เหลี่ยม สามเหลี่ยม หรือวงกลม ขอบของบล็อกอาจเป็นเส้นตรงหรือเส้นโค้ง แต่ละบล็อกของ
เรขาคณิตจะถูกกำหนดใหม้ ีจดุ ยอด 8 จุด โดยแตล่ ะจดุ ยอดจะมีหมายเลขตามรายการ โดยเริ่มจากจุดที่
0 ตวั อย่างบลอ็ กแสดงในรปู ที่ 4.2

รูปที่ 4.2 การกำหนดจดุ ยอดโดเมน

แต่ละจุดจะมีพิกัดตามแกน x, y, z เรียงตามกฎมือขวา ในการกำหนดจุดของโดเมนสามารถ
กำหนดได้ตามลำดบั ดงั นี้
1) จดุ แรกของบล็อกคือจุด 0 อยทู่ พี่ กิ ัด (0, 0, 0)
2) จดุ 1 คือจุดที่อย่ถู ัดจากจุด 0 ไปในทศิ บวกตามแนวแกน x

3) จุด 2 คอื จุดที่อยู่ถัดจากจดุ 1 ไปในทิศบวกตามแนวแกน y
4) จุด 3 คอื จดุ ทอ่ี ยู่ถัดจากจดุ 2 ไปในทิศลบตามแนวแกน x
5) จากการกำหนดจุด 0, 1, 2 และ 3 ทำใหเ้ กดิ ระนาบที่มคี า่ z เท่ากบั 0
6) จุด 4 คือจุดที่อยู่ถัดจากจุด 0 ไปในทศิ บวกตามแนวแกน z
7) จดุ 5, 6 และ 7 จะกำหนดถดั จากจดุ 4 ทิศทางการกำหนดจุดจะเปน็ ลกั ษณะเดยี วกับการกำหนดจุด
1,2 และ 3 ตามลำดบั

4.2.1 การเขียนอ็อบเจกต์ blockMeshDict
อ็อบเจกต์ blockMeshDict เป็นพจนานุกรมท่ีใชค้ ำสำคัญท่ีอธิบายไว้ในตารางท่ี 4.1

ฟงั ก์ชนั คำอธบิ าย ตัวอย่าง
convertToMeters
ระบขุ นาดสเกลของพกิ ัดจดุ ยอด convertToMeters 0.001 พิกัดจุดยอดจะ
vertices
edges อยูใ่ นหนว่ ยมลิ ลิเมตร
blocks
พิกดั จดุ ยอดในแนวแกน x, y และ z ตามลำดบั (0 0 0)
boundary
ใช้สำหรับการกำหนดเส้นโคง้ arc 1 5 (1.1 0.0 0.5)

กำหนดจุดยอด จำนวนเซลล์ และอัตราส่วนการ hex (0 1 2 3 4 5 6 7)

ขยายตวั ของเซลล์ (10 10 1)

simpleGrading (1 1 1)

กำหนดขอบเขตแตล่ ะด้านของโดเมน inlet
{
type patch;
faces
(
(0 4 7 3)
);
}

ตารางที่ 4.1 คำส่ังในออ็ บเจกต์ blockMeshDict

ฟังกช์ นั convertToMeters จะระบุขนาดโดยท่พี ิกัดจุดท้ังหมดในจะถกู คณู เข้าไป ตัวอย่างเช่น
convertToMeters 0.001 หมายความว่า ค่าพิกัดทั้งหมดที่กำหนดจะถูกคูณด้วย 0.001 หรืออยู่ใน
หน่วยมลิ ลิเมตร

4.2.1.1 จุดยอด

ทกุ จุดยอดของบล็อกจะถูกกำหนดจากพิกัดในแนวแกน x, y และ z ตามลำดับ ในฟังก์ชันที่ชื่อ
วา่ vertices เช่น จุดยอดของบล็อกในรูปที่ 4.1 คือ

vertices 0) // vertex number 0
( 0) // vertex number 1
(0 0 0) // vertex number 2
(1 0 0) // vertex number 3
( 1.1 1 1) // vertex number 4
(0 1 1.2) // vertex number 5
(-0.1 -0.1 1.3) // vertex number 6
( 1.3 0 1.1) // vertex number 7
( 1.4 1.1
(0 1
);

4.2.1.2 ขอบ

ในการกำหนดขอบใด ๆ ของโดเมนจะเกิดจากจุดยอด 2 จดุ ซ่งึ ขอบนั้นจะเปน็ เส้นตรง อย่างไร
กต็ าม สามารถกำหนดขอบให้เป็นเส้นโค้งได้จากคำสัง่ ตามตารางท่ี 4.2 ในฟังก์ชันทีช่ ือ่ ว่า edges

คำส่งั คำอธบิ าย สิง่ ทตี่ ้องกำหนด

arc เสน้ โค้งวงกลม พิกดั จดุ บนเส้นโคง้ 1 จดุ

spline เสน้ โคง้ spline พิกัดจุดบนเสน้ โค้งหลายจดุ

polyLine เส้นโคง้ จากเส้นตรงหลายเสน้ พิกัดจุดบนเสน้ โค้งหลายจุด
BSpline เสน้ โค้ง B-spline พกิ ดั จุดบนเสน้ โค้งหลายจดุ
line เส้นตรง -

ตารางที่ 4.2 คำส่ังในการกำหนดเส้นโคง้

ภายในฟังกช์ ัน edges จะประกอบไปด้วย คำสง่ั เสน้ โคง้ ท่ตี ้องการใช้ ลำดับจุดยอด 2 จุดที่เป็น
ขอบเขต และพิกัดจุดของเส้นโค้ง ในตัวอย่างนี้จะใช้คำสั่ง arc มีจุดยอดคือจุด 1 จุด 5 และใช้พิกัดจุด
ยอดของเส้นโค้งเพยี งจดุ เดียว คอื (1.1, 0, 0.5) รายละเอียดการเขยี นฟังกช์ นั edges มีดังนี้

edges
(

arc 1 5 (1.1 0.0 0.5)
);

4.2.1.3 บลอ็ ก
บล็อกของโดเมนจะถูกกำหนดอยู่ในฟังก์ชัน blocks ภายในฟังก์ชันจะประกอบไปด้วยคำสั่ง

ดงั น้ี
การกำหนดจุดยอด
บล็อกที่เป็นรูปทรงสี่เหล่ียมจะมีจุดยอดทั้งหมด 8 จุด จะใช้คำสั่ง hex ตามด้วยเลขจุดยอด

ทั้งหมดของบล็อก ซึ่งการเรียงจุดยอดจะใช้กฎมือขวาเช่นเดียวกับการกำหนดจุดยอดของโดเมน เช่น
การกำหนดจุดยอดตามรูปที่ 4.1 มีจุดยอดทั้งหมด 8 จุด ดังนั้นการกำหนดจุดยอดคือ hex (0 1 2 3 4
5 6 7) ในส่วนของการกำหนดจุดยอดบล็อกท่ีมีจดุ ยอดไม่ถึง 8 จดุ จะอยใู่ นหวั ขอ้ ที่ 4.3.5

การกำหนดจำนวนเซลล์
จำนวนเซลล์จะเป็นความละเอียด สามารถกำหนดจำนวนเซลล์ในแกน x, y และ z ของบล็อก
ตามลำดบั เช่น กำหนดใหม้ ีจำนวนเซลล์ในแกน x, y และ z เท่ากบั 10 เซลล์ ดงั นน้ั การกำหนดจำนวน
เซลลค์ ือ (10 10 10)
อตั ราส่วนการขยายตวั ของเซลล์
การกำหนดอัตราส่วนการขยายตัวของเซลล์สามารถกำหนดได้ทั้งสามทิศทางในแต่ละบล็อก
อัตราส่วนการขยายตัวของเซลล์ คือ อัตราส่วนระหว่างความกว้างของเซลล์ด้านปลาย ( ) และความ
กว้างของเซลลด์ า้ นเร่มิ ตน้ ( ) รายละเอยี ดแสดงได้ตามรปู ท่ี 4.3

รปู ที่ 4.3 การกำหนดอัตราสว่ นการขยายตัวของเซลล์

การกำหนดอัตราส่วนการขยายตัวของเซลล์แบ่งได้ 2 ประเภท ได้แก่ simpleGrading และ
edgeGrading

simpleGrading เป็นอัตราการขยายตัวของเซลล์แบบปกติตามแนวแกน x, y และ z
ตามลำดบั ตัวอยา่ งรายละเอียดการเขียนคำส่ัง มีดังน้ี

simpleGrading (1 2 3)
หมายความว่าในแกน มีอัตราการขยายตัวของเซลล์เท่ากับ 1 แกน มีอัตราการขยายตัว
ของเซลล์เท่ากบั 2 และแกน มีอัตราการขยายตัวของเซลล์เทา่ กับ 3
edgeGrading เป็นการกำหนดอัตราการขยายตัวของเซลล์ในแต่ละขอบของบล็อกทั้ง 12
ขอบ คือ 1, 2, 3, … , 3 และ 4 ตามลำดับ ดงั รปู ที่ 4.4

รปู ที่ 4.4 ตำแหน่งของขอบบลอ็ กตามลำดบั

ตัวอยา่ งรายละเอยี ดการเขียนคำสัง่ มีดังน้ี
edgeGrading (1 1 1 1 2 2 2 2 3 3 3 3) 000

หมายความว่าขอบ 1ถึง 4 มีอัตราการขยายตัวของเซลล์เท่ากับ 1 ขอบ 1ถึง 4 มี

อัตราการขยายตัวของเซลล์เท่ากับ 2 และ ขอบ 1ถึง 4 มอี ัตราการขยายตวั ของเซลล์เท่ากบั 3
ดงั นั้น รายละเอียดการเขยี นฟงั ก์ชนั blocks มีดงั นี้

blocks

(

hex (0 1 2 3 4 5 6 7) // vertex numbers

(10 10 10) // numbers of cells in each direction

simpleGrading (1 2 3) // cell expansion ratios

);

4.2.1.4 ขอบเขต

ขอบเขตของโดเมนจะถูกกำหนดอยใู่ นฟังก์ชัน boundary ซง่ึ ขอบเขตจะถูกแบ่งออกและต้ังชื่อ
เช่น inlet oulet walls เปน็ ต้น ในแตล่ ะขอบเขตจะประกอบไปดว้ ย

ประเภท : ใช้คำส่งั type ในการกำหนดประเภทของขอบเขตตา่ ง ๆ ในโดเมน
พน้ื ผวิ : ใช้คำสัง่ faces ในการกำหนดดา้ นพน้ื ผิวของโดเมนซ่ึงภายในคำสง่ั faces จะประกอบ
ไปดว้ ยจุดยอด 4 จดุ เรยี งตามกฎมือขวา ระนาบจากจดุ ท้ัง 4 คอื ด้านของบล็อกที่เป็นสมาชิกของพื้นผิว
นน้ั ๆ
พื้นผิวขอบเขตใด ๆ ท่ีไม่ถูกตั้งค่าในการกำหนดขอบเขต จะถูกกำหนดขอบเขตให้มีชื่อว่า
defaultFaces และมปี ระเภทเป็น empty
ในตัวอย่างน้ี หากมีทางเข้าที่ด้านซ้าย ทางออกที่ด้านขวาและด้านที่เหลือเป็นผนัง จะมี
รายละเอียดฟังกช์ ัน boundary ดงั นี้

Boundary // keyword

(

inlet // patch name

{

type patch; // patch type for patch 0

faces

(

(0 4 7 3) // block face in this patch

);

} // end of 0th patch definition

outlet // patch name

{

type patch; // patch type for patch 1

faces

(

(1 2 6 5)

);

}

walls

{

type wall;

faces

(

(0 1 5 4)

(0 3 2 1)

(3 7 6 2)

(4 5 6 7)

);

}

);

4.2.2 การสร้างบล็อคท่ีมจี ดุ ยอดน้อยกว่า 8 จดุ
บลอ็ กที่มจี ดุ ยอดน้อยกว่า 8 จดุ เช่น รูปทรงสามเหลี่ยม บลอ็ กรูปลิม่ จะกำหนดจุดยอดได้โดย
ใช้วิธยี บุ จดุ ยอดหน่งึ คู่หรือมากกวา่ เข้าหากันเพ่อื สร้างบล็อก ตวั อย่างดงั รูป 4.5

รูปที่ 4.5 บล็อกรูปทรงสามเหลยี่ ม

สามารถสร้างบล็อกรูปทรงสามเหลี่ยมโดยการยุบจุดยอด 2 เป็น 3 และจุดยอด 6 เป็น 7 จะ
ใชค้ ำสง่ั hex ตามด้วยเลขจดุ ยอดทั้งหมดของบล็อก ซ่ึงการเรยี งจุดยอดจะใช้กฎมอื ขวาเชน่ เดียวกับการ
กำหนดจุดยอดของโดเมน เชน่ ดังรูปที่ 4.4 มีจดุ ยอดทั้งหมด 6 จดุ ดงั น้นั การกำหนดจุดยอดคือ

hex (0 1 3 0 4 5 7 4)

เช่นเดียวกับการกำหนดพ้นื ผิวขอบเขตโดยใชว้ ิธีการยบุ จุดยอด เชน่ พน้ื ผวิ รปู สามเหลยี่ มที่มีจุด
ยอด คอื 0 1 และ 3 กำหนดพนื้ ผิวขอบเขตได้เป็น

(0 1 3 0)

4.2.3 การรันออ็ บเจกต์ blockMeshDict

อ็อบเจกต์ blockMeshDict จะตอ้ งอยู่ในไดเร็กทอรยี ่อย system ของปญั หา จากน้นั สามารถ
ดำเนินการได้โดยทำการป้อนคำสั่ง “blockMesh”ลงไปในซอฟต์แวร์ blueCFD-Core2020terminal
เพ่อื ให้โปรแกรมสรา้ งเมชของปัญหา

4.3 การวิเคราะห์ปญั หา CFD

การวิเคราะห์ปัญหาการไหลด้วย CFD ของซอฟต์แวร์ OpenFOAM ถูกสร้างขึ้นด้วยสมการ
การไหลที่แตกต่างกันหลากหลายรูปแบบแล้วแต่กรณีของการวิเคราะห์ในรูปแบบของโค้ดภาษา C++
ซึ่งอยู่ภายในแฟ้มเครื่องมือแก้ปัญหา (Solver folder) โดยชื่อของแฟ้มเครื่องมือแก้ปัญหาจะถูกใช้เปน็
คำสง่ั ในการวเิ คราะห์ผล CFD หากผู้ใช้งานซอฟต์แวร์มีความเข้าใจในพลศาสตรข์ องไหลเชิงคำนวณด้วย
วิธีปริมาตรจำกัดมากพอ สามารถนำแฟ้มเครื่องมือการแก้ปัญหาเหล่านี้ไปแก้ไขหรือประยุกต์ใช้ในการ
วิเคราะห์ปัญหาการไหลได้ต่อไป โดยตัวอย่างแฟ้มเครื่องมือแก้ปัญหาสำหรับการวิเคราะห์การไหล
ภายในซอฟตแ์ วร์ OpenFOAM ดังนี้

4.3.1 Basic
- laplacianFoam
แกป้ ญั หาของสมการลาปลาซสำหรับการแพร่กระจายความร้อนในของแข็ง
- potentialFoam
แก้ปัญหาการไหลที่เกิดขึ้นซึ่งมาจากศักย์ความเร็วเพื่อคำนวณหาสนามฟลักซ์ ซึ่งได้จากสนามความเรว็
โดยการสร้างฟลกั ซข์ นึ้ ใหม่
- scalarTransportFoam
แกส้ มการปัญหาการพาและการแพร่กระจายของตัวแปรชนดิ สเกลาร์
4.3.2 Incompressible flow
- adjointShapeOptimizationFoam
การหาคำตอบของการไหลแบบปั่นป่วนในสภาวะคงตัวของของไหลชนิดไม่อัดตัว (Incompressible
fluid) ซึ่งเป็นของไหลชนิดนอกแบบของนิวตัน (non-Newtonian fluids) โดยการปรับรูปร่างของท่อ
ให้เหมาะสมโดยใชก้ ารอดุ ตนั (blockage) ในบริเวณทท่ี ำใหเ้ กิดการสูญเสียแรงดันตามทป่ี ระมาณการไว้
- boundaryFoam
การหาคำตอบของการไหลแบบปั่นป่วนในสภาวะคงตัว 1 มิติ ซึ่งสามารถนำไปใช้ในการกำหนดสภาวะ
ชดิ ผวิ ตำแหน่งทางเข้าของการไหลได้

- icoFoam
การหาคำตอบที่ไม่คงที่กับเวลา (Transient flow) ของของไหลชนิดไม่อัดตัว (Incompressible fluid)
เป็นการไหลแบบราบเรียบ (Laminar flow) ซงึ่ เปน็ ของไหลนวิ โทเนียน (Newtonian fluids)

- nonNewtonianIcofoam
การหาคำตอบที่ไม่คงที่กับเวลา (Transient flow) ของของไหลชนิดไม่อัดตัว (Incompressible fluid)
เป็นการไหลแบบราบเรยี บ (Laminar flow) ซึ่งเป็นของไหลชนิดนอกแบบของนิวตัน (non-Newtonian
fluids)

- pimpleFoam
การหาคำตอบที่ไม่คงที่กับเวลา (Transient flow) ของของไหลชนิดไม่อัดตัว (Incompressible fluid)
เปน็ การไหลแบบป่ันปว่ น (Turbulent flow) ซ่ึงเปน็ ของไหลนิวโทเนียน (Newtonian fluids) ดว้ ยการ
เคลือ่ นท่ีของเมช (mesh motion) และการเปล่ียนแปลงโครงสร้างเมช (mesh topology changes)

- SRFPimpleFoam
ตัวแกป้ ญั หาการหาคำตอบที่ไม่คงท่ีกับเวลา (Transient flow) ท่มี ขี ้ันตอนซบั ซ้อน ของของไหลชนิดไม่
อัดตัว (Incompressible fluid) เป็นการไหลแบบปั่นป่วน (Turbulent flow) ในเฟรมหมุนเดียว
(single rotating frame)

- pisoFoam
การหาคำตอบที่ไม่คงที่กับเวลา (Transient flow) ของของไหลชนิดไม่อัดตัว (Incompressible fluid)
เป็นการไหลแบบปั่นป่วน (Turbulent flow) โดยใช้วธิ ี PISO (PISO algorithm)

- shallowWaterFoam
การหาคำตอบท่ีไม่คงที่กบั เวลา (Transient flow) ของสมการ inviscid shallow-water ด้วยการหมุน

- simpleFoam
การหาคำตอบในสภาวะคงตัว (Steady-state) ของของไหลชนิดไม่อัดตัว (Incompressible Fluid) ซึ่ง
เปน็ การไหลแบบปน่ั ป่วน (Turbulent flow)

- porousSimpleFoam
การหาคำตอบในสภาวะคงตัว (Steady-state) ของของไหลชนิดไม่อัดตัว (Incompressible Fluid) ซึ่ง
เปน็ การไหลแบบปั่นป่วน (Turbulent flow) ทรี่ องรับกรอบอ้างอิงหลายกรอบ (MRF)

- SRFSimpleFoam
การหาคำตอบในสภาวะคงตวั (Steady-state) ของของไหลชนิดไม่อัดตัว (Incompressible Fluid) ซ่ึง
เป็นการไหลแบบปั่นป่วน (Turbulent flow) ซึ่งเป็นของไหลชนิดนอกแบบของนิวตัน (non-
Newtonian fluids) ในเฟรมหมุนอนั เดียว (single rotating frame)

4.3.3 Compressible flow
- rhoCentralFoam
การหาคำตอบของของไหลชนิดอัดตัวได้ (Compressible fluid) ตามความหนาแน่นซึ่งอิงจากโครงร่าง
central-upwind ของ Kurganov และ Tadmor และรองรับการเคล่อื นท่ีของเมช (mesh motion)
- rhoPimpleFoam
การหาคำตอบท่ีไมค่ งที่กับเวลา (Transient flow) ของการไหลแบบปั่นปว่ น (Turbulent flow) ซึง่ เป็น
ของไหลชนิดอัดตัว (Compressible fluids) สำหรับ HVAC และการใช้งานคล้ายคลึงกันโดยสามารถ
เลือกการเคลื่อนที่ของเมช (mesh motion) และการเปลี่ยนโครงสร้างเมช (mesh topology
changes)
- rhoSimpleFoam
การไหลแบบราบเรียบหรือปั่นป่วน (แบบจำลอง RANS) ในสภาวะคงตัว (Steady-state) ของของไหล
ชนิดอัดตวั ได้ (Compressible fluid) โดยใช้วธิ ี SIMPLE เพ่ือหาคำตอบ
- rhoPorousSimpleFoam
การหาคำตอบในสภาวะคงตัว (Steady-state) สำหรับการไหลแบบปั่นป่วน (Turbulent flow) ของ
ของไหลชนดิ อัดตวั (Compressible fluids) โดยใชร้ พู รนุ (Porosity treatment)

4.3.4 Multiphase flow
- cavitatingFoam
การไหลไม่คงที่กับเวลาของการเกิดฟองอากาศ (Cavitation) บนพื้นฐานของสมการ Barotropic
(Barotropic Equation)
- compressibleInterFoam
ของไหลอัดตัวได้สองสถานะ ที่ไม่ผสมเป็นเนื้อเดียวกัน (Immiscible fluid) ที่อุณหภูมิคงท่ี
(Isothermal) และใช้ VOF (Volume of fluid) แสดงผิวระหว่างของไหล
- compressibleInterFilmFoam
การแก้ปัญหาของไหลชนิดอัดตัวสองชนิด ที่ไม่ผสมเป็นเนื้อเดียวกัน (Immiscible fluid) และอุณหภูมิ
ไมค่ งท่ี (non-Isothermal) โดยใช้ VOF (Volume of fluid) ในการสร้างแบบจำลองฟิล์มพ้ืนผิว
- compressibleMultiphaseInterFoam
การแก้ปัญหาของของไหลชนิดอัดตัวได้ n ชนิดที่ไม่ผสมเป็นเนื้อเดียวกัน (non-Isothermal) และ
อุณหภูมิไมค่ งที่ (non-Isothermal) โดยใช้ VOF (Volume of fluid) แสดงผวิ ระหวา่ งการไหล
- interFoam
ของไหลชนิดไม่อัดตัวสองชนิด ที่ไม่ผสมเป็นเนื้อเดียวกัน (Immiscible fluid) มีอุณหภูมิคงที่ และใช้
VOF (Volume of fluid) แสดงผวิ ระหว่างการไหล

- interPhaseChangeFoam
เครื่องมือแก้ปัญหาของของไหลชนิดไม่อัดตัวสองชนิด ที่มีอุณหภูมิคงที่ เปลี่ยนสถานะได้ และใช้ VOF
(Volume of fluid) แสดงผวิ ระหวา่ งการไหล

- multiphaseEulerFoam
การแก้ปัญหาการไหลของระบบที่ประกอบไปด้วยของไหลชนิดอัดตัว (Compressible fluids) หลายๆ
เฟส รวมถงึ การถา่ ยเทความร้อน (Heat transfer)

- multiphaseInterFoam
การแก้ปญั หาของของไหลชนดิ ไม่อดั ตวั จำนวน n ชนดิ ซึ่งมารแสดงแรงตงึ ผิว (Surface Tension) และ
มมุ สัมผัส (Contact angle) ระหว่างของไหลแต่ละชนิด

4.3.5 Direct numerical simulation (DNS)
- dnsFoam
การแก้ปัญหาการจำลองเชิงตัวเลขโดยตรง (Direct numerical) สำหรับการปั่นป่วนแบบไอโซโทรปิก
(Isotropic turbulent)

4.3.6 Combustion
- chemFoam
การแก้ปัญหาสำหรับปัญหาทางเคมี ออกแบบมาเพื่อใช้กับเคสเซลล์เดียว เพื่อให้เปรียบเทียบกับตัว
แกป้ ัญหาเคมอื่นๆทใี่ ช้เมซเซลลเ์ ดียว (single cell mesh)
- coldEngineFoam
การแกป้ ญั หาการไหลเยน็ ภายในเครื่องยนตส์ ันดาปภายใน
- engineFoam
ปัญหาการไหลแบบไม่คงที่กับเวลา (Transient flow) ของของไหลชนิดอัดตัว (Compressible fluids)
สำหรบั การไหลของเครื่องยนต์ที่ป่นั ปว่ น
- fireFoam
การแก้ปัญหาการไหลที่ไม่คงที่กับเวลา (Transient flow) สำหรับไฟและเปลวไฟที่กระจายอย่าง
ป่นั ป่วน ฟิล์มพ้นื ผวิ และแบบจำลองไพโรไลซิส (Pyrolysis modelling)

4.3.7 Heat transfer and buoyancy-driven flows
- buoyantPimpleFoam
การแก้ปัญหาการไหลไม่คงที่กับเวลา (Transient flow) สำหรับการไหลแบบปั่นป่วน (Turbulent
flow) ของของเหลวชนิดอัดตัวได้ (Compressible fluids) สำหรับการระบายอากาศและการถ่ายเท
ความรอ้ น

- buoyantSimpleFoam
การหาคำตอบของการลอยตัวของการไหลแบบปั่นป่วน (Turbulent flow) ของของไหลอัดตัวได้
(Compressible fluid) ในสภาวะคงตัว (Steady-state)

- chtMultiRegionFoam
การแก้ปัญหาการไหลแบบคงตัว (Steady-state) หรือการไหลแบบไม่คงที่กับเวลา (Transient flow)
และการนำความร้อนที่เป็นของแข็ง ผลกระทบจากการลอยตัว ความปั่นป่วน ปฏิกิริยา และการสร้าง
แบบจำลองการแผ่รังสี

- thermoFoam
การแก้ปัญหาสำหรบั การถา่ ยเทพลังงานและอุณหพลศาสตรบ์ นสนามการไหล

4.3.8 Particle-tracking flows
- coalChemistryFoam
การแก้ปัญหาแบบไม่คงที่กับเวลา (Transient flow) ของของไหลชนิดอัดตัวได้ (Compressible
fluids) และเป็นการไหลแบบป่ันป่วน (Turbulent Flow) โดยมอี นภุ าคของถา่ นหนิ และการเผาไหม้
- DPMFoam
การแก้ปัญหาแบบไม่คงที่กับเวลา (Transient Flow) สำหรับการถ่ายเทอนุภาคจลนศาสตร์ รวมถึง
ผลกระทบของอัตราส่วนปริมาตรของอนุภาคในเฟสต่อเนื่อง (Continuous phase) โดยสามารถเลือก
การเคล่ือนท่ขี องเมช (mesh motion) และการเปลย่ี นโครงร่างของเมช (mesh topology changes)

4.3.9 Discrete methods
- mdEquilibrationFoam
การแกป้ ญั หาเพื่อปรับสมดลุ หรือปรับสภาพระบบพลวตั ของโมเลกลุ
- mdFoam
การแก้ปัญหาไดนามิกระดบั โมเลกุลสำหรบั พลศาสตรข์ องไหล

4.3.10 Electromagnetics
- electrostaticFoam
การแก้ปัญหาสำหรับไฟฟ้าสถติ
- magneticFoam
การแกป้ ญั หาสำหรบั สนามแม่เหล็กทเ่ี กิดจากแมเ่ หล็กถาวร (Permanent magnets)
- mhdFoam
การแก้ปัญหาสำหรับแมกนีโตไฮโดรไดนามิก (MHD) ชนิดการไหลแบบไม่อัดตัว (incompressible
flow) และเป็นการไหลแบบราบเรยี บ (Laminar flow) ภายใตอ้ ิธพิ ลของสนามแม่เหล็ก

4.3.11 Stress analysis of solids
- solidDisplacementFoam
การแก้ปัญหาการเสียรูปร่างของวัตถุชนิดของแข็งและยืดหยุ่น พร้อมการกระจายความร้อนและความ
เค้นจากความร้อน
4.3.12 Financial
- financialFoam
การแกป้ ัญหาจากสมการ Black-Scholes

4.4 การสรา้ งแฟ้มแฟม้ ปญั หาและการแสดงผลการวเิ คราะห์

โครงสร้างของแฟ้มปัญหา (case) พ้นื ฐานของซอฟต์แวร์ OpemFOAM นั้นจะประกอบด้วยชุด
ไฟล์ที่จำเป็นในการวิเคราะห์ CFD ซึ่งแบ่งออกเป็นแฟ้มข้อมูล (Folder) และอ็อบเจ็กต์ (Object) ที่
บรรจุอยู่ภายในแฟ้มข้อมูล ประกอบด้วยไดเรกทอรี่ (Directory) หลักจำนวน 3 แฟ้มข้อมูล ได้แก่ (1)
System (2) Constant (3) Time แสดงดงั รปู ที่ 4.6

รปู ที่ 4.6 แสดงโครงสรา้ งไดเรกทอรี่หลกั

ในการสร้างแฟ้มปัญหาเพื่อวิเคราะห์ปัญหา CFD สามารถทำได้โดยการคัดลอกแฟ้มเคสที่ตรง
กับปัญหาที่ต้องการแก้ซึ่งมีอยู่ภายในซอฟแวร์ OpenFOAM แล้วนำมาแก้ไขปรับค่าคุณสมบัติและ
พารามิเตอร์ที่เกี่ยวข้อง หรือสร้างแฟ้มปัญหาขึ้นมาใหม่โดยกำหนดให้ภายในแฟ้มมีไดเรกทอรี่หลัก 3
แฟม้ ข้อมลู ทไี่ ดก้ ล่าวมาข้างตน้

การแสดงผลการวิเคราะห์ในส่วนของ Post-Processing คือการแสดงปัญหาที่ถูกสร้างขึ้นดว้ ย
ภาพ สามารถทำงานได้โดยใช้ซอฟต์แวร์ paraView ทีเ่ ป็นซอฟต์แวรโ์ อเพนซอร์ส โดยการเรียกใช้คำสั่ง
“paraFoam” ผ่าน Terminal จะปรากฎภาพ หรือกราฟิกที่ได้จากการคำนวณของซอฟต์แวร์
OpenFOAM เพื่อแสดงรูปร่างของปัญหา โดยมีเฉดสีเพื่อแสดงลักษณะของการไหล หนา้ ตา่ งซอฟต์แวร์
paraView แสดงในรปู ท่ี 4.7 ประกอบด้วยสว่ นทสี่ ำคัญคือสว่ นแสดงกราฟิก (Layout) แผงพารามิเตอร์
(Parameters Panel) และส่วนการนำผลเขา้ จากซอฟต์แวร์ OpemFOAM

รูปที่ 4.7 แสดงสว่ นประกอบของหน้าต่างซอฟต์แวร์ paraView

การแสดงกราฟิกสามารถทำได้โดยกดเลือกท่ีแฟ้มปัญหาท่ีอยูภ่ ายในส่วนการนำผลเข้า จากนั้น
กด Apply ภายในส่วนแสดงกราฟิกจะแสดงภาพของปัญหาท่ีคำนวณจากซอฟต์แวร์ OpenFOAM โดย
สามารถกำหนดลักษณะกราฟิกไดท้ ี่ส่วนกำหนดลักษณะ (Parameters Panel) ท่ีแสดงดังภาพ 4.8

รูปที่ 4.8 แสดงหนา้ ต่าง Properties ของซอฟต์แวร์ paraView

การกำหนดลักษณกราฟิกเพื่อแสดงรายละเอียดของภาพที่จะแสดงสามารถทำได้โดยเลือกท่ี
หน้าต่าง Display Panel โดยเลอื กลักษณะรูปร่างการแสดงผลของปัญหาได้ที่ Representation ในท่ีน้ี
จะเลอื กเปน็ Surface and Edges ซง่ึ จะทำใหเ้ หน็ ขอบของเซลล์ทถ่ี ูกสร้างไวใ้ นซอฟต์แวร์ OpenFOAM
เลือกสีของการวิเคราะห์ได้จาก Coloring โดยจะเลือกแสดงเป็นสีของอุณหภูมิ (T) ที่เกิดขึ้นภายใน
เซลล์ ท่แี สดงดงั ภาพ 4.9 ซง่ึ ทำใหไ้ ดโ้ ครงสร้างเซลล์ท่แี สดงดังภาพ 4.10

รูปท่ี 4.9 แสดงหน้าต่าง Display ของซอฟตแ์ วร์ paraView
รปู ที่ 4.10 แสดงโครงสรา้ งเซลล์ท่ถี กู สรา้ งขนึ้ จากซอฟตแ์ วร์ OpenFOAM โดยแสดงเปน็ Surface and Edges

บทท่ี 5

ปัญหาการนำความร้อน

5.1 ปญั หาการนำความร้อนในสภาวะคงตวั
ตัวอย่างที่ 1 จากรูปที่ 5.1 แท่งเหล็กหน้าตัดสี่เหลี่ยมจัตุรัสขนาด 2x2 cm ยาว 50 cm ถูกหุ้ม

ฉนวนที่ปลายแต่ละด้านสัมผัสกับอากาศที่มีอุณหภูมิสูง 100 และ 500 องศาเซลเซียสตามลำดับหาก
สมการควบคุมนำความร้อนภายในแท่งเหล็กแสดงด้วยสมการ ( ) = 0 เมื่อ k = 9.828 ×

dx dx

103 W/ (m°C) จงคำนวณหาการแพร่กระจายของอุณหภมู ิภายในแท่งเทยี นนี้ท้ังท่ีสภาวะคงตัว โดยใช้
วิธปี รมิ าตรจำกดั

รูปที่ 5.1 รูปแสดงปัญหาการนำความรอ้ น

(ก) เปิดโปรแกรม OpenFOAM
• คัดลอกแฟ้มปัญหา flange ภายในแฟ้มเครือ่ งมือแก้ปญั หา laplacianFoam จากนั้นตัง้ ชื่อ
แฟม้ ปัญหาใหมเ่ ปน็ flange51
• เปดิ โปรแกรม blueCFD-Core2020terminal ป้อนคำสงั่ cd (Current Directory) เพ่ือนำ
ตัวโปรแกรมไปยงั แฟ้มปัญหา ดังรูปที่ 5.2

cd /home/ofuser/blueCFD/OpenFOAM-8/tutorials/basic/laplacianFoam/flange51/

รูปท่ี 5.2 คำสงั่ การเปิดแฟม้ ปัญหา

หลงั จากนัน้ กดปมุ่ Enter

(ข) การกาํ หนดขอบเขตและเงอ่ื นไขเบ้ืองตน้
• สร้างอ็อบเจกต์ blockMeshDict โดยคัดลอกไฟล์มาจากแฟ้มปัญหา cavity ซึ่งอยู่ในแฟ้ม

ตวั อย่างปญั หาแบบ icoFoam และนำมาวางไวภ้ ายในโฟลเดอร์ system
โดยกำหนดจุดด้วยฟังก์ชัน vertices และตั้งชื่อผนังของโดเมนตามลำดับ โดยจะกำหนดให้มี

จำนวนเซลล์ในแกน Y และ Z เท่ากับ 1 เซลล์ ความยาวแกน X ของโดเมนจะกำหนดให้ 10 เซลล์
โดเมนแทง่ เหล็กจะถกู ตั้งช่อื วา่ “symmetryPlanes” ผนังมชี ่ือว่า “leftWall” เปน็ ผนังปลายแท่งเหล็ก
ที่มีอุณหภูมิ 100 องศาเซลเซียส ผนังมีชื่อว่า “rightWall” เป็นผนังปลายแท่งเหล็กที่มีอุณหภูมิ500
องศาเซลเซียส ซงึ่ ภายในอ็อบเจกต์ blockMeshDict จะแสดงขอ้ มลู ดงั รปู ท่ี 5.3

รูปท่ี 5.3 ข้อมลู ภายในอ็อบเจกต์ blockMeshDict

• อ็อบเจก็ ต์ T ภายในโฟลเดอร์ 0
โดเมนแท่งเหล็กที่ชื่อว่า “symmetryPlanes” ผิวมีการหุ้มฉนวนจึงถูกกำหนดที่มีค่าอุณหภูมิ

แบบ symmetry ผนังมีชื่อว่า “leftWall” เป็นผนังปลายแท่งเหล็กที่มีอุณหภูมิ 100 องศาเซลเซียส
กำหนดคา่ อณุ หภมู ิแบบ fixedValue โดยกำหนดค่าคงท่ี 100 องศาเซลเซยี ส (uniform373)
ผนังมีชื่อว่า “rightWall” เป็นผนังปลายแท่งเหล็กที่มีอุณหภูมิ500 องศาเซลเซียสกำหนดค่าอุณหภูมิ
แบบ fixedValue โดยกำหนดคา่ คงท่ี 500 องศาเซลเซยี ส (uniform 773) แสดงข้อมูลดงั รปู ที่ 5.4

รปู ที่ 5.4 ข้อมลู ภายในอ็อบเจกต์ T ในโฟลเดอร์ 0

• อ็อบเจ็กต์ fvSchemes ภายในโฟลเดอร์ system
เป็นการกำหนดฟังก์ชันที่จะใช้ในการวิเคราะห์ผลของข้อมูล โดยจะกำหนดฟังก์ชัน

ddtSchemes ซึ่งเป็นฟังก์ชันการประเมินเชิงเส้นเป็น steadyState ซึ่งจะใช ้ฟังก์ชัน
laplacianSchemes ในการประมาณเชิงเส้นของพจน์การแพร่กระจายในสมการนำความร้อน การ
ประมาณคา่ เชิงเส้รจะใช้วธิ ี Gauss linear corrected แสดงดังรูปท่ี 5.5

รูปท่ี 5.5 ข้อมูลภายในออ็ บเจกต์ fvSchemes

• อ็อบเจ็กต์ controlDict เป็นฟังก์ชันการควบคุมเวลาซึ่งใช้ในการกำหนดรอบในการคำนวณ
คำตอบ โดยกำหนดเวลาเริ่มตน้ จาก 0 วินาที ถึง 3 วินาที กำหนดช่วงเวลาในการคำนวณเป็น 1 วินาที
และขนาดของของชว่ งเวลาที่จะใชบ้ ันทึกข้อมูลเป็น 1 ช่วงและความเร็วในการไหลจะถูกบันทึกทุก ๆ 1
วินาที แสดงดงั รปู ที่ 5.6

• อ็อบเจ็กต์ transportProperties แสดงฟังก์ชัน DT หรือสัมประสิทธิ์การแพร่กระจายความ
ร้อน (Thermal Diffusion) ซึ่งจากโจทย์กำหนดให้มีค่าเป็น 9.828 × 103 W/ (m°C) แสดงได้ดังรูปท่ี
5.7

รูปที่ 5.6 ขอ้ มูลภายในออ็ บเจกต์ controlDict
รปู ท่ี 5.7 ขอ้ มลู ภายในอ็อบเจกต์ transportProperties

• จากการกำหนดที่อ็อบเจ็กต์ต่างๆ รูปร่างของปัญหาและการสร้างเมชของปัญหาดังกล่าวได้
ถูกสร้างไว้แล้วอยู่ในไฟลท์ ี่ ชื่อว่า blockMeshDict ทำการป้อนคำสั่ง blockMesh ลงไปใน blueCFD-
Core2020terminal เพื่อให้โปรแกรมสร้างเมชของปัญหาได้ออกมาในแฟ้ม polyMesh ซึ่งอยู่ในแฟ้ม
constant จากนั้นป้อนคำสั่ง laplacianFoam เพื่อแก้ปัญหาโจทย์ flange51 จะได้แฟ้ม 1,2 และ 3
ขน้ึ มาภายในแฟม้ flange51

(ค) การจำลองและแสดงผลในรูปแบบเมช
• ในการจําลองและแสดงผลจะแสดงในโปรแกรมParaview5.6.2(blueCFD-Core) โดยการ

เปิดโปรแกรมParaview5.6.2 จะใช้คำสั่ง paraFoam & ลงไปในหน้าต่างโปรแกรม blueCFD-
Core2020terminal จะมีหน้าต่างของโปรแกรม Paraview 5.6.2 (blueCFD-Core) ขึ้นมา จากนั้นกด
ป่มุ Apply จะแสดงเฉดสขี องอุณหภูมใิ นแท่งเหลก็ น้ีได้ ดังรูปท่ี 5.8

รูปท่ี 5.8 ผลลัพธ์แสดงอณุ หภมู ิในแทง่ เหลก็

ตัวอย่างที่ 2 แผ่นอะลูมิเนียมมีความกว้าง 50 cm ยาว 50 cm และหนา 5 cm แสดงดังรูปที่
5.9 หากแผ่นอะลูมิเนียมมีความหนาแน่น 2,712 kg/m3 ความร้อนจำเพาะ 24.57 J/(kg.C) และมี
สัมประสิทธิ์การนำความร้อน 55.70x103 W/(m.C) พฤติกรรมการแพร่กระจายของอุณหภูมิในแผ่น
อะลูมิเนยี มถกู ควบคมุ ดว้ ยสมการการพาและแพร่กระจายในสภาวะคงตวั ข้างต้น (E-5.1)

( ) + ( ) = 0 (E-5.1)



รูปท่ี 5.9 ขอบเขตของแผ่นอะลมู เิ นียม

ขน้ั ตอนการแก้โจทย์ปญั หาดว้ ย OpenFOAM
(ก) เปดิ โปรแกรม OpenFOAM

• ไปยังแฟม้ เครอ่ื งมือแก้ปญั หา laplacianFoam จากน้นั คัดลอกแฟ้มปัญหา flange ทภี่ ายใน
แฟ้มบรรจุ แฟ้ม 0, constant และ system และตั้งชื่อแฟ้มปัญหาใหม่ ในตัวอย่างนี้ตั้งชื่อ
case52
• เปิดโปรแกรม blueCFD-Core2020terminal ปอ้ นคำส่ัง cd (Current Directory) เพือ่ นำ
ตัวโปรแกรมไปยังแฟม้ ปัญหา ดังรปู ท่ี 5.10

cd /home/ofuser/blueCFD/OpenFOAM-8/tutorials/basic/ laplacianFoam /case52/
รูปท่ี 5.10 คำสง่ั การเปิดแฟ้มปญั หา

หลงั จากนนั้ กดปมุ่ Enter
(ข) การกำหนดขอบเขตและเง่ือนไขเบ้ืองตน้

• ออ็ บเจกต์ blockMeshDict
ไปยังแฟ้มเครื่องมือแก้ปัญหา icoFoam เข้าไปยังแฟ้ม cavity คัดลอกอ็อบเจกต์
blockMeshDict ภายในแฟ้ม system และนำมาวางภายในแฟ้ม system ของ case52 จากนั้นแก้ไข
โดยกำหนดจุดด้วยฟังก์ชัน vertices และตั้งชื่อผนังของโดเมนทั้งด้านหน้าและด้านหลัง แสดงดังรูปที่
5.11 โดยการกำหนดจุดดว้ ยฟังก์ชัน block ซง่ึ จะกำหนดให้มจี ำนวนเซลล์ในแกน X และ Y เท่ากับ 10
เซลล์ ความยาวแกน Z ของโดเมนจะกำหนดให้ 1 เซลล์ รายละเอียดของการแก้ไขโค้ดโครงสร้างแสดง
ได้ดงั รปู ที่ 5.12

รปู ท่ี 5.11 การเรยี งตำแหนง่ จดุ บนโดเมนหอ้ งสเี่ หล่ยี ม

รปู ท่ี 5.12 แสดงฟงั ก์ชนั ภายในออ็ บเจกต์ blockMeshDict

• ออ็ บเจก็ ต์ transportProperties ภายในแฟ้ม constant
การแก้ปัญหาการพาและการแพร่กระจายความร้อนของแผ่นอะลูมิเนียม จากโจทย์มีค่า
สัมประสิทธก์ิ ารนำความร้อนเทา่ กับ 55.70x103 W/(m.C) ทำให้ไดค้ า่ DT (Thermal Diffusivity) หรือ
ค่าสัมประสิทธิ์การแพร่กระจายความร้อนมีค่าเท่ากับ 0.84 x 10-4 จึงนำไปใส่ภายในอ็อบเจกต์

transportProperties ดังรปู ท่ี 5.13

รูปท่ี 5.13 แสดงฟงั ก์ชนั ภายในอ็อบเจกต์ transportProperties

• อ็อบเจก็ ต์ T ภายในแฟม้ 0
กำหนดสภาวะขอบเขตของอุณหภูมิภายในอ็อบเจกต์ T ที่บรรจุไว้ในแฟ้ม 0 โดยใช้ฟังก์ชัน
boundaryField อุณหภูมิบริเวณขอบเขตผิวโดเมนจะใช้คำสั่ง type ซึ่งอยู่ภายในฟังก์ชันซึ่งถูกตั้งเป็น
ชือ่ ของผวิ โดเมนใดๆ ผวิ ด้านหนา้ และด้านหลังของโดเมน ถกู ตัง้ ชอื่ ว่า “frontBackWall” เป็นผิวที่ไม่มี
การวิเคราะห์ใดๆ จึงกำหนดให้พ้ืนผวิ น้ีเป็นแบบ empty ผวิ ผนังด้านทีม่ อี ุณหภมู ิ 0 ℃ หรือ 273 K ถูก
ตั้งชื่อว่า “leftRightWall” กำหนดให้มีค่าอุณหภูมิแบบ fixedValue โดยกำหนดค่าคงที่เป็น 273 K
(uniform 273) เช่นเดียวกับด้านที่มีอุณหภูมิ 100 ℃ หรือ 373 K ถูกตั้งชื่อว่า “rightBottomWall”
กำหนดให้มีค่าอุณหภูมิแบบ fixedValue โดยกำหนดค่าคงที่เป็น 373 K (uniform 373) รายละเอียด
การแกไ้ ขอ็อบเจกต์ T แสดงได้ดังรูปท่ี 5.14

รูปท่ี 5.14 แสดงฟังก์ชนั ภายในออ็ บเจกต์ T

• ออ็ บเจก็ ต์ fvSchemes ภายในโฟลเดอร์ system
เป็นการกำหนดฟังก์ชันที่จะใช้ในการวิเคราะห์ผลของข้อมูล โดยจะกำหนดฟังก์ชัน
ddtSchemes ซึ่งเป็นฟังก์ชันการประเมินเชิงเส้นเป็น steadyState ซึ่งการวิเคราะห์การพาและ
แพร่กระจายความร้อนในสภาวะคงตัวจะใช้ฟังก์ชัน laplacianSchemes ในการประเมินสภาพการพา
และการแพร่กระจายความร้อนโดยอาศัยค่าคงที่ DT และตัวแปร T การประมาณค่าเชิงเส้นจะใช้วิธี
Gauss linear corrected ซง่ึ รายละเอียดการแก้ไขอ็อบเจกต์ fvSchemes แสดงได้ดังรูปที่ 5.15

รูปท่ี 5.15 แสดงฟังกช์ ันภายในออ็ บเจกต์ fvSchemes

• อ็อบเจ็กต์ controlDict ภายในแฟ้ม system
อ็อบเจกต์ controlDict กำหนดให้มีการคำนวณเริ่มต้นตั้งแต่เวลา 0 วินาที ไปจนถึง 3 วินาที
โดยมีช่วงเวลาในการคำนวณเท่ากับ 0.5 วินาที การบันทึกผลการคำนวณขนาดเท่ากับ 1 ช่วง ตาม
ฟงั กช์ ัน writeControl แบบ runTime ซ่งึ รายละเอยี ดการแก้ไขอ็อบเจกต์ controlDict แสดงไดด้ ังรูป
ท่ี 5.16

รปู ที่ 5.16 แสดงฟังกช์ ันภายในอ็อบเจกต์ controlDict

• จากการกำหนดที่อ็อบเจ็กต์ต่างๆ รูปร่างของปัญหาและการสร้างเมชของปัญหาดังกล่าวได้
ถูกสร้างไว้แล้วอยู่ในไฟล์ที่ ชื่อว่า blockMeshDict ดังที่แสดงไปข้างต้น ทำการป้อนคำส่ัง
“blockMesh” ลงไปใน blueCFD-Core2020terminal เพ่อื ให้โปรแกรมสร้างเมชของปัญหาได้ออกมา
ในแฟม้ polyMesh ซ่ึงอยูใ่ นแฟม้ constant

จากนัน้ ป้อนคำส่ัง “laplacianFoam” เพ่อื แก้ปัญหาโจทย์ case52 จะได้แฟ้ม “1”, “2” และ
“3” ข้ึนมาภายในแฟ้ม case52 ซึ่งภายในแฟ้มนี้จะบรรจผุ ลการคำนวณอุณหภูมิของแผ่นอะลูมิเนียม

(ค) การจำลองและแสดงผลในรปู แบบเมช
• ในการจําลองและแสดงผลจะแสดงในโปรแกรมParaview5.6.2(blueCFD-Core) โดยการ

เปิดโปรแกรม Paraview5.6.2 จะใช้คำสั่ง “paraFoam” ลงไปในTerminal ของ blueCFD-
Core2020terminal จะมีหน้าต่างของโปรแกรม Paraview 5.6.2 (blueCFD-Core) ขึ้นมา จากนั้นกด
ปุ่ม Apply จะแสดงเฉดสีของอุณหภมู ิซ่งึ เกิดขึน้ ภายในแผ่นอะลมู ิเนียม ดังรูปที่ 5.17

รปู ท่ี 5.17 แสดงเฉดสกี ารกระจายอุณหภูมิของแผน่ อะลูมิเนยี ม

บทที่ 6
ปัญหาการพาและการแพร่กระจาย

6.1 ปัญหาการพาและแพรก่ ระจายในสภาวะคงตัว

ตวั อยา่ งที่ 1 ของไหลไมอ่ ดั ตวั ไหลผา่ นห้องส่เี หลี่ยมจตั รุ สั มีขนาดดงั น้ี กวา้ ง 30 เมตร ยาว 30
เมตร และสูง 2.5 เมตร ด้วยความเร็ว 6 m/s แสดงดังรูปที่ 6.1 ของไหลมีความหนาแน่น 1 kg/m3
ความร้อนจำเพาะ 0.2 J/(kg.K) มีสัมประสิทธิ์การนำความร้อน 0.026 W/(m.K) พฤติกรรมการ
แพร่กระจายของอุณหภูมิของของไหลภายในห้องถูกควบคุมด้วยสมการการพาและแพร่กระจายใน
สภาวะคงตวั ข้างต้นด้วยวธิ อี ปั วนิ ด์ (E-6.1)

( ) + ( ) = ( ) + ( ) (E-6.1)



รูปที่ 6.1 ขอบเขตของหอ้ งสีเ่ หล่ยี มจตั รุ สั

ขัน้ ตอนการแก้โจทย์ปัญหาด้วยOpenFOAM
(ก) เปดิ โปรแกรม OpenFOAM

• ไปยังแฟ้มเครื่องมือแก้ปัญหา scalarTransportFoam จากนั้นคัดลอกแฟ้มปัญหา
PitzDaily ที่ภายในแฟ้มบรรจุ แฟ้ม 0, constant และ system และตั้งชื่อแฟ้มปัญหาใหม่
ในตัวอยา่ งนีต้ งั้ ชือ่ case63
• เปิดโปรแกรม blueCFD-Core2020terminal ปอ้ นคำส่ัง cd (Current Directory) เพอ่ื นำ
ตัวโปรแกรมไปยังแฟม้ ปญั หา ดงั รูปท่ี 6.2

cd /home/ofuser/blueCFD/OpenFOAM-8/tutorials/basic/scalarTransportFoam/case63/
รปู ท่ี 6.2 คำสั่งการเปดิ แฟม้ ปัญหา

หลังจากนั้นกดป่มุ Enter

(ข) การกำหนดขอบเขตและเงอื่ นไขเบ้ืองตน้
• อ็อบเจกต์ blockMeshDict
ไปยังแฟ้มเครื่องมือแก้ปัญหา icoFoam เข้าไปยังแฟ้ม cavity คัดลอกอ็อบเจกต์

blockMeshDict ภายในแฟ้ม system และนำมาวางภายในแฟ้ม system ของ case63 จากนั้นแก้ไข
โดยกำหนดจุดด้วยฟังก์ชัน vertices และตั้งชื่อผนังของโดเมนทั้งด้านหน้าและด้านหลัง แสดงดังรูปที่
6.3 โดยการกำหนดจุดด้วยฟังกช์ นั block ซง่ึ จะกำหนดให้มจี ำนวนเซลล์ในแกน X และ Y เท่ากบั 500
เซลล์ ความยาวแกน Z ของโดเมนจะกำหนดให้ 1 เซลล์ รายละเอียดของการแก้ไขโค้ดโครงสร้างแสดง
ได้ดงั รูปที่ 6.4

รูปท่ี 6.3 การเรียงตำแหน่งจดุ บนโดเมนห้องสเ่ี หลี่ยม

รปู ท่ี 6.4 แสดงฟงั ก์ชนั ภายในออ็ บเจกต์ blockMeshDict

• อ็อบเจก็ ต์ transportProperties ภายในแฟม้ constant
การแก้ปัญหาการพาและการแพร่กระจายความร้อนในห้องสี่เหลี่ยมจัตุรัส จากโจทย์มีค่า
สัมประสิทธิ์การนำความร้อนเท่ากับ 0.026 W/(m.K) ทำให้ได้ค่า DT (Thermal Diffusivity) หรือค่า
สัมประสิทธิ์การแพร่กระจายความร้อนมีค่าเท่ากับ 0.13 จึงนำไปใส่ภายในอ็อบเจกต์
transportProperties ดังรปู ที่ 6.5

รปู ที่ 6.5 แสดงฟังก์ชนั ภายในอ็อบเจกต์ transportProperties

• อ็อบเจก็ ต์ T ภายในแฟ้ม 0
กำหนดสภาวะขอบเขตของอุณหภูมิภายในอ็อบเจกต์ T ที่บรรจุไว้ในแฟ้ม 0 โดยใช้ฟังก์ชัน
boundaryField อุณหภูมิบริเวณขอบเขตผิวโดเมนจะใช้คำสั่ง type ซึ่งอยู่ภายในฟังก์ชันซึ่งถูกตั้งเป็น
ชื่อของผวิ โดเมนใดๆ ผิวด้านหน้าและด้านหลังของโดเมน ถูกตง้ั ชื่อว่า “frontbackWall” เป็นผิวท่ีไม่มี
การวิเคราะห์ใดๆ จึงกำหนดให้พื้นผิวนี้เป็นแบบ empty ผิวผนังด้านที่มีอุณหภูมิ 100 K ถูกตั้งชื่อว่า
“lefttopWall” กำหนดให้มีค่าอุณหภูมิแบบ fixedValue โดยกำหนดค่าคงที่เป็น 100 K (uniform
100) เชน่ เดียวกับด้านทมี่ ีอณุ หภมู ิ 0 K ถูกตั้งชอ่ื วา่ “rightbottomWall” กำหนดให้มคี ่าอณุ หภูมิแบบ
fixedValue โดยกำหนดค่าคงท่ีเป็น 0 K (uniform 0) รายละเอยี ดการแก้ไขอ็อบเจกต์ T แสดงไดด้ ังรูป
ที่ 6.6

รูปท่ี 6.6 แสดงฟงั ก์ชันภายในอ็อบเจกต์ T

• อ็อบเจก็ ต์ U ภายในแฟม้ 0
กำหนดสภาวะขอบเขตของความเร็วภายในอ็อบเจกต์ U ที่บรรจุไว้ในแฟ้ม 0 โดยใช้ฟังก์ชัน
boundaryField ความเร็วบริเวณขอบเขตผิวโดเมนจะใช้คำส่ัง type ซึ่งอยู่ภายในฟังก์ชันซึ่งถูกต้ังเปน็
ช่ือของผวิ โดเมนใดๆ ผิวดา้ นหนา้ และด้านหลงั ของโดเมน ถูกต้ังช่ือว่า “frontbackWall” เป็นผิวท่ีไม่มี
การวิเคราะห์ใดๆ จึงกำหนดให้พ้ืนผิวนี้เป็นแบบ empty ผิวผนังล้อมรอบสี่เหลี่ยมจัตุรัสถูกตั้งชื่อว่า
“lefttopWall” และ“rightbottomWall” เป็นผนังด้านที่มีการกำหนดให้มีค่าความเร็วในแนวแกน X
และแนวแกน Y เป็นแบบfixedValue โดยกำหนดให้มีค่าคงที่เท่ากับ 6 m/s (uniform (6 6 0))
ความเร็วของของไหลภายในห้องสี่เหลี่ยมจัตุรัสกำหนดด้วยฟังก์ชัน internalField มีค่า uniform (6 6
0) รายละเอยี ดการแก้ไขอ็อบเจกต์ U แสดงได้ดังรปู ที่ 6.7


Click to View FlipBook Version