รปู ที่ 6.7 แสดงฟังกช์ ันภายในออ็ บเจกต์ U
• อ็อบเจ็กต์ fvSchemes ภายในโฟลเดอร์ system
เป็นการกำหนดฟังก์ชันที่จะใช้ในการวิเคราะห์ผลของข้อมูล โดยจะกำหนดฟังก์ชัน
ddtSchemes ซึ่งเป็นฟังก์ชันการประเมินเชิงเส้นเป็น steadyState ซึ่งการวิเคราะห์การพาและ
แพร่กระจายความร้อนในสภาวะคงตัวจะใช้ฟังก์ชัน laplacianSchemes ในการประเมินสภาพการพา
และการแพร่กระจายความร้อนโดยอาศัยค่าคงที่ DT และตัวแปร T การประมาณค่าเชิงเส้นจะใช้วิธี
Gauss linear corrected และแก้ไขฟังก์ชัน divSchemes ให้เป็น Gauss upwind ซึ่งรายละเอียด
การแก้ไขอ็อบเจกต์ fvSchemes แสดงไดด้ งั รปู ท่ี 6.8
รปู ที่ 6.8 แสดงฟงั ก์ชนั ภายในอ็อบเจกต์ fvSchemes
• อ็อบเจ็กต์ controlDict ภายในแฟ้ม system
ออ็ บเจกต์ controlDict กำหนดใหม้ ีการคำนวณเริม่ ต้นต้ังแต่เวลา 0 วนิ าที ไปจนถึง 0.1 วนิ าที
โดยมีช่วงเวลาในการคำนวณเท่ากับ 0.01 วินาที กรบันทึกผลการคำนวณขนาดเท่ากับ 10 ช่วง ตาม
ฟังก์ชัน writeControl แบบ timeStep ซึ่งรายละเอียดการแก้ไขอ็อบเจกต์ controlDict แสดงได้ดัง
รปู ที่ 6.9
รปู ท่ี 6.9 แสดงฟงั ก์ชนั ภายในออ็ บเจกต์ controlDict
• จากการกำหนดที่อ็อบเจ็กต์ต่างๆ รูปร่างของปัญหาและการสร้างเมชของปัญหาดังกล่าวได้
ถูกสร้างไว้แล้วอยู่ในไฟล์ที่ ชื่อว่า blockMeshDict ดังที่แสดงไปข้างต้น ทำการป้อนคำสั่ง
“blockMesh” ลงไปใน blueCFD-Core2020terminal เพื่อใหโ้ ปรแกรมสร้างเมชของปัญหาได้ออกมา
ในแฟ้ม polyMesh ซงึ่ อย่ใู นแฟม้ constant
จากนั้นป้อนคำสั่ง “scalarTransportFoam” เพื่อแก้ปัญหาโจทย์ case63 จะได้เพียงแฟ้ม
“0.1” ขึ้นมาภายในแฟ้ม pisocase1 ซึ่งภายในแฟ้มนี้จะบรรจุผลการคำนวณอุณหภูมิที่ตำแหน่ง
ก่ึงกลางของเซลล์โดเมนส่เี หล่ียมจตั รุ ัส
(ค) การจำลองและแสดงผลในรปู แบบเมช
• ในการจําลองและแสดงผลจะแสดงในโปรแกรมParaview5.6.2(blueCFD-Core) โดยการ
เปิดโปรแกรมParaview5.6.2 จะใช้คำสั่ง “paraFoam” ลงไปในTerminal ของ blueCFD-
Core2020terminal จะมีหน้าต่างของโปรแกรม Paraview 5.6.2 (blueCFD-Core) ขึ้นมา จากนั้นกด
ปุม่ Apply จะแสดงเฉดสีของอุณหภูมิซงึ่ เกดิ ข้นึ ภายในรปู สี่เหล่ียมจตั ุรสั ดงั รูปท่ี 6.10
รูปท่ี 6.10 แสดงเฉดสกี ารกระจายอณุ หภมู ิในสเ่ี หลย่ี มจตั ุรัส
ตัวอย่างที่ 2 ของไหลชนิดไม่อัดตัวไหลผ่านวัตถุด้วยความเร็ว 1.0 m/s ดังรูปตัวอย่างที่ 6.11
โดยที่ของไหลมีความหนาแน่น 1 kg/m3 ความร้อนจำเพาะ 0.2 J/(kg.K) และมีค่าสัมประสิทธิ์การนำ
ความร้อนเท่ากับ 0.026 W/(m.K) พฤติกรรมการแพร่กระจายของอุณหภูมิของของไหลถูกควบคุมดว้ ย
สมการ (E-6.2) คำนวณหาการแพรก่ ระจายของอุณหภูมิของของไหลตลอดความยาวโดเมนดว้ ยวธิ ี
อปั วินดไ์ ด้ดังต่อไปนี้
( ) + ( ) = ( ) + ( ) (E-6.2)
รปู ท่ี 6.11 แสดงลักษณะของโจทย์ที่ใชแ้ ก้ปญั หา
ข้นั ตอนการแก้โจทย์ปัญหาด้วยOpenFOAM
(ก) เปิดโปรแกรม OpenFOAM
• ไปยงั แฟม้ เครื่องมือแก้ปญั หา scalarTransportFoam จากน้ันคดั ลอกแฟม้ ปัญหา PitzDaily ทภ่ี ายใน
แฟ้มบรรจุ แฟม้ 0, constant และ system และต้ังชื่อแฟม้ ปญั หาใหม่ ในตวั อย่างน้ีตง้ั ช่อื “611Test”
• เปิดโปรแกรม blueCFD-Core2020terminal ป้อนคำสั่ง cd (Current Directory) เพื่อนำตัว
โปรแกรมไปยงั แฟม้ ปญั หา ดงั รูปที่ 6.12
cd /home/ofuser/blueCFD/OpenFOAM-8/tutorials/basic/scalarTransportFoam/611Test/
รูปที่ 6.12 คำสั่งการเปดิ แฟ้มปัญหา
หลังจากนั้นกดป่มุ Enter
(ข) การกำหนดขอบเขตและเงอ่ื นไขเบ้ืองต้น
• อ็อบเจกต์ blockMeshDict
ไปยังแฟ้มเครื่องมือแก้ปัญหา icoFoam เข้าไปยังแฟ้ม cavity คัดลอกอ็อบเจกต์
blockMeshDict ภายในแฟ้ม system และนำมาวางภายในแฟ้ม system ของแฟ้ม 611Test ซึ่งการ
ตั้งชื่อผนังของโดเมนทั้งด้านหน้าและด้านหลังแสดงดังรูปที่ 6.13 จากนั้นแก้ไขไฟล์โดยกำหนดจุดด้วย
ฟงั ก์ชนั vertices และการสร้างเซลล์ดว้ ยฟังก์ชัน blocks ซง่ึ จะกำหนดให้มจี ำนวนเซลล์ในแกน X และ
Y เท่ากับ 10 เซลล์ ความยาวแกน Z ของโดเมนจะกำหนดให้ 1 เซลล์ ด้วยฟังก์ชัน hex จะทำให้
สามารถสร้างเซลล์ได้จำนวน 100 เซลล์ รายละเอียดของการแก้ไขโค้ดโครงสร้างแสดงได้ดังรูปที่ 6.14
และ 6.15
รูปท่ี 6.13 การเรยี งตำแหน่งจุดบนโดเมนห้องสี่เหลยี่ ม
• อ็อบเจ็กต์ transportProperties ภายในแฟม้ constant
การแก้ปัญหาการพาและการแพร่กระจายความร้อนในห้องสี่เหลี่ยมจัตุรัส จากโจทย์มีค่า
สัมประสิทธิ์การนำความร้อนเท่ากับ 0.026 W/(m.K) ค่าความหนาแน่น 1 kg/m3 และค่าความร้อน
จำเพาะ 0.2 J/(kg.K) ทำให้ได้ค่า DT (Thermal Diffusivity) หรือค่าสัมประสิทธิ์การแพร่กระจาย
ความร้อนมีค่าเท่ากับ 0.13 แสดงดังสมการ (E-6.3) จึงนำไปแก้ไขโค้ดภายในอ็อบเจกต์
transportProperties ดงั รปู ท่ี 6.16
= = 0.026 = 0.13 / 2 (E -6.3)
(1)(0.2)
รปู ที่ 6.14 แสดงฟังกช์ ันการกำหนดจุดดว้ ยฟงั กช์ นั vertices ภายในอ็อบเจกต์ blockMeshDict
รปู ที่ 6.15 แสดงฟงั ก์ชนั hex และกำหนด boundary ของโดเมน ภายในออ็ บเจกต์ blockMeshDict
รปู ที่ 6.16 แสดงฟังกช์ นั ภายในอ็อบเจกต์ transportProperties
• อ็อบเจ็กต์ T ภายในแฟม้ 0
กำหนดสภาวะขอบเขตของอุณหภูมิภายในอ็อบเจกต์ T ที่บรรจุไว้ในแฟ้ม 0 โดยใช้ฟังก์ชัน
boundaryField ด้านทางที่ของไหลไหลเข้าโดเมนถูกกำหนดชื่อว่า “inletWall” กำหนดให้มีการตั้งค่า
อุณหภูมิแบบ fixedValue โดยกำหนดให้มีอุณหภูมิ 1 K และด้านทางออกของโดเมนถูกกำหนดชื่อว่า
“outletWall” กำหนดให้มีการตั้งค่าอุณหภูมิแบบ fixedValue โดยกำหนดให้มีอุณหภูมิ 0 K ทาง
ด้านบนและด้านล่างของพื้นผิวโดเมน ถูกกำหนดชื่อว่า “upperWall” และ “lowerWall” จะถูก
กำหนดให้มีค่าอุณหภูมิแบบ zeroGradient และด้านหน้าและด้านหลังของโดเมนถูกกำหนดชื่อว่า
“frontWall” และ “backWall” ซึ่งเป็นพื้นผิวที่ไม่มีการวิเคราะห์การพาและการแพร่กระจายความ
รอ้ นใดๆ จะถกู กำหนดให้มีค่าความดันเป็น empty รายละเอียดการแก้ไขโค้ดภายในอ็อบเจกต์ T แสดง
ดังรปู ท่ี 6.17
• ออ็ บเจ็กต์ U ภายในแฟ้ม 0
กำหนดสภาวะขอบเขตของความเร็วภายในอ็อบเจกต์ U ที่บรรจุไว้ในแฟ้ม 0 โดยใช้ฟังก์ชัน
boundaryField ด้านทางท่ีของไหลไหลเข้าโดเมนถูกกำหนดช่ือว่า “inletWall” กำหนดให้มีการตั้งค่า
ความเร็วแบบ fixedValue โดยกำหนดให้มีความเร็ว 1 m/s ด้านทางออกของโดเมนถูกกำหนดชื่อว่า
“outletWall” และทางด้านบนและด้านล่างของพื้นผิวโดเมน ถูกกำหนดชื่อว่า “upperWall” และ
“lowerWall” จะถูกกำหนดใหม้ คี ่าความเร็วแบบ zeroGradient และดา้ นหน้าและด้านหลังของโดเมน
ถูกกำหนดชื่อว่า “frontWall” และ “backWall” ซึ่งเป็นพื้นผิวที่ไม่มีการวิเคราะห์การพาและการ
แพร่กระจายความร้อนใดๆ จะถูกกำหนดให้มีค่าความเร็วเป็น empty รายละเอียดการแก้ไขโค้ด
ภายในออ็ บเจกต์ U แสดงดังรูปที่ 6.18
รปู ที่ 6.17 แสดงฟงั ก์ชนั ภายในอ็อบเจกต์ T
รปู ที่ 6.18 แสดงฟงั ก์ชนั ภายในอ็อบเจกต์ U
• อ็อบเจก็ ต์ fvSchemes ภายในโฟลเดอร์ system
เป็นการกำหนดฟังก์ชันที่จะใช้ในการวิเคราะห์ผลของข้อมูล โดยจะกำหนดฟังก์ชัน
ddtSchemes ซึ่งเป็นฟังก์ชันการประเมินเชิงเส้นเป็น steadyState ซึ่งการวิเคราะห์การพาและ
แพร่กระจายความร้อนในสภาวะคงตัวจะใช้ฟังก์ชัน laplacianSchemes ในการประเมินสภาพการพา
และการแพร่กระจายความร้อนโดยอาศัยค่าคงที่ DT และตัวแปร T การประมาณค่าเชิงเส้นจะใช้วิธี
Gauss linear corrected และแก้ไขฟังก์ชัน divSchemes ให้เป็น Gauss upwind ซึ่งรายละเอียด
การแกไ้ ขอ็อบเจกต์ fvSchemes แสดงไดด้ ังรูปที่ 6.19
รปู ท่ี 6.19 แสดงฟังกช์ ันภายในออ็ บเจกต์ fvSchemes
• อ็อบเจ็กต์ controlDict ภายในแฟม้ system
อ็อบเจกต์ controlDict กำหนดให้มีการคำนวณเริ่มต้นตั้งแต่เวลา 0 วินาที ไปจนถึง 1 วินาที
โดยมีช่วงเวลาในการคำนวณเท่ากับ 0.1 วินาที การบันทึกผลการคำนวณขนาดเท่ากับ 10 ช่วง ตาม
ฟังก์ชัน writeControl แบบ timeStep ซึ่งรายละเอียดการแก้ไขอ็อบเจกต์ controlDict แสดงได้ดัง
รปู ที่ 6.20
รูปที่ 6.20 แสดงฟังกช์ นั ภายในออ็ บเจกต์ controlDict
• จากการกำหนดที่อ็อบเจ็กต์ต่างๆ รูปร่างของปัญหาและการสร้างเมชของปัญหาดังกล่าวได้
ถูกสร้างไว้แล้วอยู่ในไฟล์ที่ ชื่อว่า blockMeshDict ดังที่แสดงไปข้างต้น ทำการป้อนคำส่ัง
“blockMesh” ลงไปใน blueCFD-Core2020terminal เพื่อใหโ้ ปรแกรมสรา้ งเมชของปัญหาได้ออกมา
ในแฟม้ polyMesh ซึง่ อยู่ในแฟม้ constant
จากนั้นป้อนคำสั่ง “scalarTransportFoam” เพื่อแก้ปัญหาโจทย์ 611Test จะได้เพียงแฟ้ม
“0.5”, “1.0”, “1.5”, …, “99.5”, “100” ขึ้นมาภายในแฟ้ม 611Test ซึ่งภายในแฟ้มเหล่านี้จะบรรจุ
ผลการคำนวณอุณหภมู ทิ ่ีตำแหน่งก่งึ กลางของเซลล์โดเมนบนั ทึกไว้
(ค) การจำลองและแสดงผลในรูปแบบเมช
• ในการจําลองและแสดงผลจะแสดงในโปรแกรมParaview5.6.2(blueCFD-Core) โดยการ
เปิดโปรแกรมParaview5.6.2 จะใช้คำสั่ง “paraFoam” ลงไปในTerminal ของ blueCFD-
Core2020terminal จะมีหน้าต่างของโปรแกรม Paraview 5.6.2 (blueCFD-Core) ขึ้นมา จากนั้นกด
ปุ่ม Apply แลว้ จึงเลอื กรูปแบบการจำลองอุณหภมู ิโดยกดท่ปี ุ่มดงั รูปท่ี 6.21 จากนนั้ จงึ คลกิ ท่ีป่มุ Play
( ) ที่แถบเครื่องมือด้านบน เพื่อจำลองผลการวิเคราะห์อุณหภูมิของปัญหาในช่วงเวลาที่กำหนดไว้
จะแสดงเฉดสีของอุณหภมู ซิ งึ่ เกิดข้ึนภายในโดเมน ดังรูปท่ี 6.22
รูปที่ 6.21 แสดงปุม่ เลือกรูปแบบการจำลอง
รปู ที่ 6.22 แสดงเฉดสกี ารกระจายอณุ หภมู ใิ นโดเมน
ตัวอย่างที่ 3 น้ำมีอุณหภูมิ 300 K ไหลผ่านห้องสี่เหลี่ยมจัตุรัส มีขนาดกว้าง 0.2 เมตร ยาว
0.2 เมตร ด้วยความเร็ว 0.1 mm/s แสดงดังรูปที่ 6.23 มีความหนาแน่น 1 kg/m3 ความจุความร้อน
จำเพาะ 4.181 kJ/(kg.K) ความหนดื พลวัต ( ) เทา่ กับ 9.59x10-7 kg/(ms) ได้รับความรอ้ นผ่านตัวกลาง
คืออะลูมิเนียมซึ่งถูกติดตั้งอยู่กลางห้อง มีขนาดกว้าง 0.03 เมตร ยาว 0.05 เมตร มีความหนาแน่น 7
kg/m3 สัมประสิทธิ์การนำความร้อนเท่ากับ 200 W/m.K ความร้อนจำเพาะ 900 J/(kg.K) จากเหล็กท่ี
ได้รบั ความร้อน 107 W/m3 เป็นเวลา 1 วนิ าที ซ่งึ เหล็กมขี นาดกวา้ ง 0.02 เมตร ยาว 0.02 เมตร มีความ
หนาแน่น 8 kg/m3 สัมประสิทธิ์การนำความร้อนเท่ากับ 80 W/m.K ความร้อนจำเพาะ 450 J/(kg.K)
พฤติกรรมของอุณหภูมิของของไหลภายในห้องถูกควบคมุ ด้วยสมการการถ่ายเทความร้อนในของไหลใน
สภาวะคงตวั ดังสมการท่ี 4 (E-6.4) และสมการที่ 5 (E-6.5)
( ) = ( ) (E-6.4)
และสมการการนำความร้อนในของแข็ง
2 = 0 (E-6.5)
2
รูปท่ี 6.23 ขอบเขตของหอ้ งสี่เหลีย่ มจัตรุ ัส
ข้นั ตอนการแกโ้ จทยป์ ัญหาดว้ ย OpenFOAM
(ก) เปดิ โปรแกรม OpenFOAM
• ไปยังแฟ้มเครื่องมือแก้ปัญหา chtMultiRegionFoam จากนั้นคัดลอกแฟ้มปัญหา
heatedDuct ที่ภายในแฟ้มบรรจุ แฟ้ม 0, constant และ system และตั้งชื่อแฟ้มปัญหา
ใหม่ ในตวั อย่างนี้ตงั้ ชอื่ conjugateHeatTransfer
• เปดิ โปรแกรม blueCFD-Core2020terminal ป้อนคำสั่ง cd (Current Directory) เพ่อื นำ
ตัวโปรแกรมไปยงั แฟ้มปญั หา ดังรูปท่ี 6.24
cd /home/ofuser/blueCFD/OpenFOAM-8/tutorials/heatTransfer/chtMultiRegionFoam/conjugateHeatTransfer/
รูปที่ 6.24 คำสง่ั การเปิดแฟ้มปัญหา
หลงั จากนน้ั กดปมุ่ Enter
(ข) การกำหนดขอบเขตและเง่อื นไขเบื้องตน้
• อ็อบเจกต์ blockMeshDict ภายในแฟม้ system
แก้ไขโดยกำหนดจุดด้วยฟังก์ชัน vertices และตั้งชื่อผนังของโดเมนทั้งด้านหน้าและด้านหลัง
แสดงดงั รูปท่ี 6.25 โดยการกำหนดจุดด้วยฟังก์ชัน block ซง่ึ จะกำหนดให้มีจำนวนเซลล์ในแกน X และ
Y เท่ากับ 200 เซลล์ ความยาวแกน Z ของโดเมนจะกำหนดให้ 1 เซลล์ รายละเอียดของการแก้ไขโค้ด
โครงสรา้ งแสดงไดด้ งั รปู ท่ี 6.26
รปู ที่ 6.25 การเรียงตำแหน่งจุดบนโดเมนหอ้ งส่ีเหล่ียม
รปู ที่ 6.26 ฟังกช์ ันภายในออ็ บเจกต์ blockMeshDict
• ออ็ บเจกต์ topoSetDict
ไปยังแฟ้ม refineRegion เพื่อคัดลอกแฟ้ม topoSetDict มาไว้ในแฟ้มปัญหา โดยที่อยู่ดังนี้
blueCFD-Core-2020/OpenFOAM-8/etc/caseDicts/mesh/manipulation/refineRegion หลังจากน้ัน
คัดลอกอ็อบเจ็กต์ topoSetDict มาวางในแฟ้ม system ของ conjugateHeatTransfer จากนั้นแยก
เซลล์โดยกำหนดขอบเขตของ heater ด้วยฟังก์ชัน sourceInfo โดยเลือกใช้จุดที่เป็นมุมทแยงเพื่อให้
ครอบคลุมเซลล์ ในการกำหนดขอบเขตของ metal และ fluid จะใช้วิธีเดียวกับ heater แต่จะต้องลบ
พนื้ ท่ีที่มวี สั ดุอ่นื ออก ด้วยคำส่ัง delete รายละเอียดของการแก้ไขโค้ดแสดงได้ดังรปู ที่ 6.27
รปู ท่ี 6.27 ฟงั กช์ นั ภายในอ็อบเจกต์ topoSetDict
ทำการป้อนคำสั่ง “blockMesh” ลงไปใน blueCFD-Core2020terminal และกด Enter
เพื่อใหโ้ ปรแกรมสรา้ งเมชของปัญหาได้ออกมาในแฟม้ polyMesh
จากนั้นป้อนคำสั่ง “topoSet” กด Enter และคำสั่ง “splitMeshRegions -cellZones -
overwrite” จากน้นั กด Enter เพ่ือทำการแยกเซลล์ heater, metal และ fluid ซง่ึ เซลล์ของแต่ละวัสดุ
จะถูกสรา้ งขึน้ ภายในแฟ้ม 0, constant และ system
• อ็อบเจก็ ต์ regionProperties ภายในแฟ้ม constant
ภายในอ็อบเจ็กต์จะเป็นการแยกชนิดของโดเมนโดยใช้ฟังก์ชัน regions ซึ่งโดเมน fluid มี 1
ชนิดคือ น้ำ จึงใช้ fluid (fluid) และโดเมน solid มี 2 ชนิด คือ อะลูมิเนียมและเหล็ก จึงใช้ solid
(metal heater) รายละเอยี ดของการแก้ไขโค้ดแสดงไดด้ ังรปู ท่ี 6.28
รูปที่ 6.28 ฟังกช์ นั ภายในออ็ บเจกต์ regionProperties
• อ็อบเจก็ ต์ thermophysicalProperties
ภายในแฟ้ม fluid, metal และ heater ซึ่งอยู่ภายในแฟ้ม constant จะบรรจุอ็อบเจ็กต์
thermophysicalProperties ไวแ้ ต่ละแฟ้ม เพอื่ กำหนดคุณสมบัติทางความรอ้ นของแต่ละวัสดุ รายละเอียด
โคด้ thermophysicalProperties ของ fluid, metal และ heater แสดงไดด้ งั รปู ที่ 6.29, 6.30 และ 6.31
ตามลำดบั
รปู ท่ี 6.29 ฟงั ก์ชันภายในออ็ บเจกต์ thermophysicalProperties ของ fluid
รปู ที่ 6.30 ฟงั กช์ นั ภายในออ็ บเจกต์ thermophysicalProperties ของ metal
รูปที่ 6.31 ฟงั กช์ ันภายในอ็อบเจกต์ thermophysicalProperties ของ heater
• อ็อบเจ็กต์ fvOptions
ภายในแฟ้ม heater ของแฟ้ม constant จะบรรจุอ็อบเจ็กต์ fvOptions ไว้ จากการให้ความ
ร้อนกับ heater เท่ากับ 107 W/m3 เป็นเวลา 1 วินาที จึงแก้ไขโค้ดโดยกำหนด duration มีค่าเป็น 1
และ explicit มีคา่ เป็น 1e7 รายละเอียดการแก้ไขโคด้ แสดงไดด้ ังรปู ท่ี 6.32
รูปท่ี 6.32 ฟงั ก์ชนั ภายในอ็อบเจกต์ fvOptions
• ออ็ บเจ็กต์ g
ภายในแฟ้ม fluid ของแฟ้ม constant จะบรรจุอ็อบเจ็กต์ g ไว้ รายละเอียดโค้ดแสดงได้ดังรูป
ท่ี 6.33 จากนั้นคัดลอกอ็อบเจ็กต์ g ของแฟม้ fluid และนำไปวางไวภ้ ายในแฟม้ constant โดยตรง
รูปท่ี 6.33 ฟงั ก์ชันภายในอ็อบเจกต์ g
• ออ็ บเจก็ ต์ U ภายในแฟ้ม fluid
กำหนดสภาวะขอบเขตของความเร็วภายในอ็อบเจกต์ U ทบี่ รรจุไวใ้ นแฟม้ fluid ของแฟ้มหลัก
0 โดยกำหนดค่าความเร็วเริ่มต้นมีค่าเท่ากับ (0.001 0 0) และใช้ฟังก์ชัน boundaryField กำหนด
ความเรว็ บริเวณขอบเขตผวิ โดเมน ดา้ น inlet มคี วามเรว็ 0.1 mm/s จะถูกกำหนดความเร็วเปน็ (0.001
0 0) ด้าน outlet จะถูกกำหนดให้มี type เป็น pressureInletOutletVelocity และมีค่าเป็น
$internalField ด้าน fixedWall และด้าน fluid_to_metal จะถูกกำหนดให้เป็นแบบ noSlip
รายละเอยี ดการแก้ไขอ็อบเจกต์ U แสดงไดด้ งั รูปท่ี 6.34
รปู ท่ี 6.34 ฟงั กช์ นั ภายในออ็ บเจกต์ U ของ fluid
• ออ็ บเจก็ ต์ p ภายในแฟม้ fluid
กำหนดสภาวะขอบเขตของความดันภายในอ็อบเจกต์ p ทบ่ี รรจไุ ว้ในแฟ้ม fluid ของแฟ้มหลัก
0 โดยกำหนดคา่ ความดนั เริม่ ต้นมีค่าเท่ากับ 0 และใช้ฟังก์ชัน boundaryField กำหนดความดันบริเวณ
ขอบเขตผวิ โดเมน ทกุ ดา้ นจะถูกกำหนดให้มี type เป็นแบบ calculated และมคี ่าเป็น $internalField
รายละเอยี ดโค้ดของอ็อบเจกต์ p แสดงได้ดังรปู ที่ 6.35
รูปที่ 6.35 ฟงั กช์ ันภายในอ็อบเจกต์ p ของ fluid
• ออ็ บเจ็กต์ p_rgh ภายในแฟม้ fluid
กำหนดสภาวะขอบเขตของความดันสถิตภายในอ็อบเจกต์ p_rgh ทบ่ี รรจุไวใ้ นแฟ้ม fluid ของ
แฟม้ หลัก 0 โดยกำหนดค่าความดันเร่ิมต้นมีคา่ เท่ากบั 0 และใชฟ้ ังกช์ นั boundaryField กำหนดความ
ดันบริเวณขอบเขตผิวโดเมน ด้าน outlet จะถูกกำหนดให้มี type เป็น fixedValue และมีค่าเป็น
$internalField ด้านที่เหลือจะถูกกำหนดให้มี type เป็นแบบ fixedFluxPressure และมีค่าเป็น
$internalField รายละเอยี ดการแก้ไขโค้ดของอ็อบเจกต์ p_rgh แสดงได้ดังรูปที่ 6.36
รูปท่ี 6.36 ฟงั กช์ ันภายในอ็อบเจกต์ p_rgh ของ fluid
• ออ็ บเจก็ ต์ T ภายในแฟม้ fluid
กำหนดสภาวะขอบเขตของความดันภายในอ็อบเจกต์ T ท่บี รรจไุ วใ้ นแฟ้ม fluid ของแฟ้มหลัก
0 โดยกำหนดอุณหภูมิเริ่มต้นมีค่าเป็น uniform 300 ใช้ฟังก์ชัน boundaryField กำหนดอุณหภูมิ
บริเวณขอบเขตผิวโดเมน ด้าน inlet จะถูกกำหนดให้มี type เป็น fixedValue และมีค่าเป็น
$internalField ด้าน outlet จะถูกกำหนดให้มี type เป็น inletOutlet มี value และ inletValue
เป็น $internalField ด้าน fixedWall จะถูกกำหนดให้มี type เป็น zeroGradient และด้าน
fluid_to_metal จ ะ ถ ู ก ก ำ ห น ด ใ ห ้ ม ี type เ ป ็ น ค ล า ส
compressible::turbulentTemperatureCoupledBaffleMixed มีค่าเป็น $internalField โดยให้ตัว
แปรTnbr เป็นตัวแปร T และมี kappaMethod เป็นแบบ fluidThermo รายละเอียดการแก้ไขโค้ด
ของออ็ บเจกต์ T แสดงได้ดงั รูปที่ 6.37
รปู ที่ 6.37 ฟงั กช์ ันภายในออ็ บเจกต์ T ของ fluid
• ออ็ บเจก็ ต์ p ภายในแฟม้ metal
กำหนดสภาวะขอบเขตของความดันภายในอ็อบเจกต์ p ที่บรรจุไว้ในแฟ้ม metal ของแฟ้ม
หลัก 0 โดยกำหนดค่าความดันเริ่มต้นมีค่าเท่ากับ 0 และใช้ฟังก์ชัน boundaryField กำหนดความดัน
บริเวณขอบเขตผิวโดเมน ทุกด้านจะถูกกำหนดให้มี type เป็นแบบ calculated และมีค่าเป็น
$internalField รายละเอยี ดโคด้ ของอ็อบเจกต์ p แสดงได้ดังรปู ที่ 6.38
รปู ท่ี 6.38 ฟงั ก์ชันภายในอ็อบเจกต์ p ของ metal
• ออ็ บเจก็ ต์ T ภายในแฟม้ metal
กำหนดสภาวะขอบเขตของความดันภายในอ็อบเจกต์ T ที่บรรจุไว้ในแฟ้ม metal ของแฟ้ม
หลัก 0 โดยกำหนดอุณหภูมเิ ริ่มต้นมีค่าเปน็ uniform 300 ใช้ฟงั ก์ชนั boundaryField กำหนดอุณหภูมิ
บริเวณขอบเขตผิวโดเมน ด้าน metal_to_fluid และด้าน metal_to_heater จะถกู กำหนดให้มี type
เปน็ คลาส compressible::turbulentTemperatureCoupledBaffleMixed มคี า่ เป็น $internalField
โดยให้ตัวแปรTnbr เป็นตัวแปร T และมี kappaMethod เป็นแบบ solidThermo รายละเอียดการ
แกไ้ ขโคด้ ของอ็อบเจกต์ T แสดงได้ดังรปู ที่ 6.39
รูปท่ี 6.39 ฟงั ก์ชนั ภายในอ็อบเจกต์ T ของ metal
• ออ็ บเจก็ ต์ p ภายในแฟม้ heater
กำหนดสภาวะขอบเขตของความดันภายในอ็อบเจกต์ p ที่บรรจุไว้ในแฟ้ม metal ของแฟ้ม
หลัก 0 โดยกำหนดค่าความดันเริ่มต้นมีค่าเท่ากับ 0 และใช้ฟังก์ชัน boundaryField กำหนดความดัน
บริเวณขอบเขตผิวโดเมน ทุกด้านจะถูกกำหนดให้มี type เป็นแบบ calculated และมีค่าเป็น
$internalField รายละเอยี ดโค้ดของอ็อบเจกต์ p แสดงได้ดงั รปู ท่ี 6.40
รปู ท่ี 6.40 ฟังกช์ ันภายในอ็อบเจกต์ p ของ heater
• ออ็ บเจ็กต์ T ภายในแฟม้ heater
กำหนดสภาวะขอบเขตของความดันภายในอ็อบเจกต์ T ที่บรรจุไว้ในแฟ้ม heater ของแฟ้ม
หลัก 0 โดยกำหนดอุณหภมู ิเริ่มต้นมีค่าเป็น uniform 300 ใช้ฟงั กช์ ัน boundaryField กำหนดอุณหภูมิ
บริเวณขอบเขตผิวโดเมน ด้าน heater_to_metal จะถูกกำหนดให้มี type เป็นคลาส
compressible::turbulentTemperatureCoupledBaffleMixed มีค่าเป็น $internalField โดยให้ตัว
แปรTnbr เป็นตัวแปร T และมี kappaMethod เป็นแบบ solidThermo รายละเอียดการแก้ไขโค้ด
ของอ็อบเจกต์ T แสดงได้ดงั รปู ท่ี 6.41
รูปที่ 6.41 ฟงั กช์ นั ภายในอ็อบเจกต์ T ของ heater
• ออ็ บเจก็ ต์ controlDict ภายในแฟ้ม system
อ็อบเจกต์ controlDict กำหนดใหม้ ีการคำนวณเริ่มตน้ ตง้ั แต่เวลา 0 วนิ าที ไปจนถึง 10 วินาที
โดยมีช่วงเวลาในการคำนวณเท่ากับ 0.001 วินาที การบันทึกผลการคำนวณขนาดเท่ากับ 1 ช่วง ตาม
ฟังก์ชัน writeControl แบบ adjustableRunTime ซึ่งรายละเอียดการแก้ไขอ็อบเจกต์ controlDict
แสดงไดด้ ังรปู ที่ 6.42
รปู ที่ 6.42 ฟงั ก์ชนั ภายในออ็ บเจกต์ controlDict
• เมื่อกำหนดค่าของอ็อบเจ็กต์ต่าง ๆ แล้ว จากนั้นป้อนคำสั่ง “chtMultiRegionFoam” เพ่ือ
แก้ปัญหาโจทย์ conjugateHeatTransfer จะได้แฟ้ม “1”, “2”, “3”, …, “10” ขึ้นมาภายในแฟ้ม
conjugateHeatTransfer ซึ่งภายในแฟ้มจะบรรจุผลการคำนวณอุณหภูมิ ความดัน ความเร็ว ณ เวลา
ต่าง ๆ
(ค) การจำลองและแสดงผลในรูปแบบเมช
• ในการจําลองและแสดงผลจะแสดงในโปรแกรม Paraview5.6.2(blueCFD-Core) โดยการ
เปิดโปรแกรม Paraview5.6.2 จะใช้คำสั่ง “paraFoam” ลงไปใน Terminal ของ blueCFD-
Core2020terminal จะมีหน้าต่างของโปรแกรม Paraview 5.6.2 (blueCFD-Core) ขึ้นมา เลือกดูผล
การคำนวณอุณหภูมิ ณ วินาทีต่าง ๆ จากน้ันกดปุ่ม Apply จะแสดงเฉดสีของอุณหภูมซิ ึ่งเกิดข้ึนภายใน
ห้องสี่เหลี่ยมจัตุรัส ดังรูปที่ 6.43 เฉดสีการกระจายอุณหภูมิ ณ วินาทีที่ 1 และ รูปที่ 6.44 เฉดสีการ
กระจายอณุ หภมู ิ ณ วนิ าทีท่ี 10
รูปท่ี 6.43 เฉดสกี ารกระจายอุณหภมู ิ ณ วินาทีท่ี 1 รปู ที่ 6.44 เฉดสีการกระจายอุณหภมู ิ ณ วินาทีท่ี 10
• สามารถเลือกดูผลการคำนวณความเร็ว ณ วินาทีต่าง ๆ โดยเลือกการแสดงผลที่แถบ
เครื่องมือด้านบนเป็น “U (partial)” ( ) จากนั้นกดปุ่ม Play จะแสดงพฤติกรรม
และเฉดสีของความเร็วที่เกิดขึ้นภายในห้องสี่เหลี่ยมจัตุรัส ณ วินาทีต่าง ๆ ดังรูปที่ 6.45 เฉดสีของ
ความเร็ว ณ วนิ าทที ี่ 1 และ รูปที่ 6.46 เฉดสีของความเร็ว ณ วินาทีที่ 10
รปู ท่ี 6.45 เฉดสขี องความเรว็ ณ วนิ าทที ี่ 1 รปู ที่ 6.46 เฉดสีของความเรว็ ณ วินาทีที่ 10
บทท่ี 7
ปัญหาการไหลหนดื
7.1 การหาผลเฉลยของสมการโมเมนตมั ในสภาวะคงตัว
ตัวอย่างที่ 1 นำ้ มคี วามหนาแน่นเท่ากับ 997 kg/m3 และมคี วามหนดื พลวัตเท่ากับ 0.89x10-3
Ns/m ที่อุณหภูมิ 25 °c ไหลด้วยความเร็ว 1 m/s ผ่านวัตถุรูปทรงสามเหล่ียมวางเรียงกนั แสดงในรปู ที่
7.1 สนามความเร็วของการไหลของน้ำถูกควบคุมด้วยสมการนาเวียร์-สโตกส์ ในสภาวะคงตัวแสดงดว้ ย
สมการ (E-7.1) ภายใต้สภาวะความดันบรรยากาศ 100 kPa จงแสดงสนามความเร็วและการกระจาย
ความดันของการไหลด้วยวธิ ปี รมิ าตรจำกดั โดยการใชก้ ารทำซ้ำแบบ SIMPLE
∙ = −∇ + ∇2 (E-7.1)
รปู ที่ 7.1 โดเมนการไหลของของไหลผา่ นวตั ถรุ ปู ทรงสามเหลีย่ ม
ขัน้ ตอนการแกโ้ จทย์ปญั หาด้วยOpenFOAM
(ก) เปิดโปรแกรม OpenFOAM
• ไปยังแฟ้มเครื่องมือแก้ปัญหา simpleFoam จากนั้นคัดลอกแฟ้มปัญหา PitzDaily ที่ภายใน
แฟ้มบรรจุแฟ้ม 0, constant และ system และตั้งชื่อแฟ้มปัญหาใหม่ ในตัวอย่างนี้ตั้งชื่อ “PitzDalily
Case_72”
• เปิดโปรแกรม blueCFD-Core2020terminal ป้อนคำส่ัง cd (Current Directory) เพื่อนำ
ตัวโปรแกรมไปยงั แฟ้มปญั หา ดงั รูปท่ี 7.2
cd \home\ofuser\blueCFD\OpenFOAM8\tutorials\incompressible\simpleFoam\PitzDalily Case_72
รูปท่ี 7.2 คำสั่งการเปิดแฟ้มปัญหา
หลงั จากนนั้ กดปุ่ม Enter
(ข) การกำหนดขอบเขตและเง่ือนไขเบื้องตน้
• อ็อบเจกต์ blockMeshDict ภายในแฟม้ system
การตั้งชื่อผนังของโดเมนทั้งด้านหน้าและด้านหลังแสดงดังรูปที่ 7.3 จากนั้นแก้ไขไฟล์โดย
กำหนดจดุ ดว้ ยฟังกช์ ัน vertices และการสรา้ งเซลลด์ ว้ ยฟังกช์ ัน blocks ซ่ึงจะกำหนดให้มีจำนวนเซลล์
ในแกน X และ Y เทา่ กบั 10 เซลล์ ความยาวแกน Z ของโดเมนจะกำหนดให้ 1 เซลล์ ดว้ ยฟงั ก์ชัน hex
จะทำใหส้ ามารถสร้างเซลล์ได้จำนวน 100 เซลล์ รายละเอียดของการแก้ไขโค้ดโครงสร้างแสดงได้ดังรูป
ที่ 7.4 และ 7.5
รูปที่ 7.3 การเรยี งตำแหนง่ จดุ บนโดเมนหอ้ งสเ่ี หลย่ี ม
• จากการกำหนดที่อ็อบเจ็กต์ต่างๆ รูปร่างของปัญหาและการสร้างเมชของปัญหาดังกล่าวได้
ถูกสร้างไว้แล้วอยู่ในไฟล์ที่ ชื่อว่า blockMeshDict ดังที่แสดงไปข้างต้น ทำการป้อนคำสั่ง
“blockMesh” ลงไปใน blueCFD-Core2020terminal เพ่ือให้โปรแกรมสรา้ งเมชของปัญหาได้ออกมา
ในแฟ้ม polyMesh ซึ่งอยู่ในแฟ้ม constant ที่ประกอบด้วยไฟล์ boundary , faces, neighbour
,owner และ points
รปู ที่ 7.4 แสดงฟังกช์ ันการกำหนดจุดดว้ ยฟงั กช์ นั vertices ภายในอ็อบเจกต์ blockMeshDict
รปู ท่ี 7.5 แสดงฟงั ก์ชนั hex และกำหนด boundary ของโดเมน ภายในออ็ บเจกต์ blockMeshDict
• ออ็ บเจก็ ต์ transportProperties ภายในแฟม้ constant
การกำหนดคุณสมบตั รความหนืดของน้ำจำเป็นต้องแก้ไขฟังก์ชัน nu ที่มคี ่าเท่ากบั µ/ เป็น
ค่าของความหนืดไคนีมาติก (Kinematic Viscosity) โดยจะแสดงค่าของความหนืดไคนีมาติกของของ
ไหลไดด้ ังสมการ (E-7.2) จึงนำไปแกไ้ ขโค้ดภายในอ็อบเจกต์ transportProperties ดังรูปท่ี 7.6
nu = µ = 0.00089 = 0.893 x 10-6 m/s2 (E-7.2)
997
รูปท่ี 7.6 แสดงฟงั ก์ชนั ภายในออ็ บเจกต์ transportProperties
• อ็อบเจก็ ต์ p ภายในแฟม้ 0
กำหนดสภาวะขอบเขตของความดนั ภายในอ็อบเจกต์ p ทบ่ี รรจุไว้ในแฟ้ม 0 โดยผนังที่ทางเข้า
ของการไหลของโดเมนอากาศจะถูกตง้ั ช่ือว่า “inletWall” มีความดันแบบ zeroGradient ผนังทางออก
มีชอ่ื วา่ “outletWall” มีความดันแบบ fixedValue โดยจะกำหนดคา่ value เท่ากบั คา่ คงที่ 0 Pa ผนัง
ทม่ี ีชื่อวา่ “upperWall” และ “lowerWall” จะเป็นผนงั ดา้ นบนและล่างของห้องส่เี หลีย่ ม กำหนดให้มี
ความดันแบบ zeroGradient ผนังที่มีชื่อว่า “frontWall” และ “backWall” เป็นผนังทางด้านหน้า
และหลังโดยจะกำหนดให้มีความดันเป็น empty บริเวณขอบเขตผิวโดเมน ทุกด้านจะถูกกำหนดให้มี
type เป็นแบบ calculated และมีค่าเป็น internalField รายละเอียดโค้ดของอ็อบเจกต์ p แสดงได้ดัง
รูปที่ 7.7 อ็อบเจ็กต์ p จะกำหนดให้มี dimensions [0 2 -2 0 0 0 0] และมีความดันเริ่มต้น 0 kPa
ดว้ ยฟงั ก์ชนั internalField เป็นคา่ uniform 0
รปู ท่ี 7.7 แสดงฟงั ก์ชนั ภายในอ็อบเจกต์ p
• อ็อบเจ็กต์ U ภายในแฟม้ 0
กำหนดสภาวะขอบเขตของความเร็วภายในอ็อบเจกต์ U ที่บรรจุไว้ในแฟ้ม 0 บริเวณขอบเขต
โดเมนจะใช้คำสั่ง type ซึ่งอยู่ภายในฟังก์ชันที่เป็นชื่อของผนังโดเมนแต่ละด้าน ด้านทางที่ของไหลไหล
เข้าโดเมนถูกกำหนดช่ือว่า “inletWall” เปน็ ผนงั ทางเข้าจะกำหนดใหม้ ีความเร็วแบบ fixedValue โดย
กำหนดให้มีความเร็ว 1 m/s หรือ uniform (1 0 0) ด้านทางออกของโดเมนถูกกำหนดชื่อว่า
“outletWall” และทางด้านบนและด้านล่างของพื้นผิวโดเมน ถูกกำหนดชื่อว่า “upperWall” และ
“lowerWall” จะถูกกำหนดให้มีค่าความเร็วแบบ zeroGradient และดา้ นหนา้ และดา้ นหลังของโดเมน
ถูกกำหนดชื่อว่า “frontWall” และ “backWall” ซ่ึงเป็นพื้นผิวที่ไม่มีการวิเคราะห์การพาและการ
แพร่กระจายความร้อนใดๆ จะถูกกำหนดให้มีค่าความเร็วเปน็ empty รายละเอียดการแก้ไขโค้ดภายใน
อ็อบเจกต์ U แสดงดังรูปที่ 7.8 ภายในอ็อบเจ็กต์ U จะกำหนด dimensions [0 1 -1 0 0 0 0] และ
กำหนดความเรว็ เร่มิ ตน้ ภายในท่อทง้ั หมดเทา่ กบั 0 m/s ดว้ ย
รูปที่ 7.8 แสดงฟงั กช์ นั ภายในออ็ บเจกต์ U
• ออ็ บเจก็ ต์ fvSolution ภายในโฟลเดอร์ system
ออ็ บเจก็ ต์ fvSolution จะมีการกำหนดให้ใช้ฟังกช์ ันวิธีการทำซำ้ แบบ SIMPLE และกำหนดให้
Under-Relaxation (α) ของ U และตัวแปรอื่นๆมีค่า 0.9 รายละเอียดของอ็อบเจ็กต์ fvSolution
แสดงได้ดังรูปที่ 7.9 การคำนวณทำซ้ำจะหยดุ ลงเมือ่ ความดันตรวจแกม้ ีค่าเข้าใกล้ 0.01 และความเรว็
ตรวจแกม้ คี า่ เข้าใกล้ 0.001
รปู ที่ 7.9 แสดงฟงั ก์ชันภายในออ็ บเจกต์ fvSolution
fvSolution fvSolution ห
• ออ็ บเจ็กต์ fvSchemes ภายในโฟลเดอร์ system
เป็นการกำหนดฟังก์ชันที่จะใช้ในการวิเคราะห์ผลของข้อมูล โดยจะกำหนดฟังก์ชัน
ddtSchemes ซึ่งเป็นฟังก์ชันการประเมินเชิงเส้นของพจน์ไม่คงที่กับเวลาเป็นแบบ steadyState ซ่ึง
การวิเคราะห์ในสภาวะคงตัวจะใช้ฟังก์ชัน divSchemes ซึ่งมีตัวแปร และ U วิธีการประมาณ
ค่าจะใช้ bounded Gauss linearUpwind grad(U) ฟังก์ชัน laplacianSchemes เป็นฟังก์ชันการ
ประมาณเชิงเส้นของพจน์การแพร่กระจาย ดังนั้น การประมาณค่าเชิงเส้นจะใช้วิธี Gauss linear
corrected ซ่งึ รายละเอยี ดการแก้ไขออ็ บเจกต์ fvSchemes แสดงไดด้ ังรูปท่ี 7.10
รูปท่ี 7.10 แสดงฟังก์ชนั ภายในอ็อบเจกต์ fvSchemes
• ออ็ บเจก็ ต์ controlDict ภายในแฟม้ system
อ็อบเจกต์ controlDict กำหนดให้มีการคำนวณเริ่มต้นตั้งแต่เวลา 0 วินาที ไปจนถึง 1000
วินาที โดยมชี ่วงเวลาในการคำนวณเท่ากับ 1 วนิ าที การบันทกึ ผลการคำนวณขนาดเท่ากับ 5 ช่วง ตาม
ฟังก์ชัน writeControl แบบ timeStep ซึ่งรายละเอียดการแก้ไขอ็อบเจกต์ controlDict แสดงได้ดัง
รูปที่ 7.11
รปู ท่ี 7.11 แสดงฟังกช์ นั ภายในออ็ บเจกต์ controlDict
• จากการกำหนดที่อ็อบเจ็กต์ต่างๆ จากนั้นป้อนคำสั่ง “simpleFoam” เพื่อแก้ปัญหาโจทย์
PitzDalily Case_72 ผ่าน Terminal จะมีแฟ้มชื่อ “5”, “10”, “15”, … จะกระทั้งคำตอบลู่เข้า
เกิดขึ้นมาภายในแฟ้ม PitzDalily Case_72ซึ่งภายในแฟ้มเหล่านี้จะบรรจุผลการคำนวณความเร็ว และ
ความดนั ทตี่ ำแหนง่ ก่ึงกลางของเซลลโ์ ดเมนบันทึกไว้
(ค) การจำลองและแสดงผลในรปู แบบเมช
• ในการจําลองและแสดงผลจะแสดงในโปรแกรมParaview5.6.2(blueCFD-Core) โดยการ
เปิดโปรแกรมParaview5.6.2 จะใช้คำสั่ง “paraFoam” ลงไปในTerminal ของ blueCFD-
Core2020terminal จะมีหน้าต่างของโปรแกรม Paraview 5.6.2 (blueCFD-Core) ขึ้นมา จากนั้นกด
ปุ่ม Apply แล้วจึงเลือกรูปแบบการจำลองความเร็วโดยคลิกที่ปุ่ม Play( ) ที่แถบเครื่องมือด้านบน
เพื่อจำลองผลการวิเคราะห์ความเร็วของปัญหาในช่วงเวลาที่กำหนดไว้ จะแสดงเฉดสีของความเร็ว ดัง
รปู ท่ี 7.12 เปน็ เฉดสขี องความเรว็ ณ วนิ าทที ี่ 5 และ รูปท่ี 7.13 เฉดสขี องความเรว็ ณ วนิ าทีท่ี 112
รปู ท่ี 7.12 แสดงเฉดสีความเรว็ ณ วนิ าทที ่ี 5 รปู ที่ 7.13 แสดงเฉดสคี วามเร็ว ณ วนิ าทีท่ี 112
• สามารถเลือกดผู ลการคำนวณความดัน ณ วินาทตี ่าง ๆ โดยเลอื กการแสดงผลท่ีแถบเคร่ืองมือ
ดา้ นบนเป็น “P” ( ) จากนนั้ กดปุ่ม Play จะแสดงพฤติกรรมและเฉดสีของความดัน
ทเ่ี กิดขึ้นภายในห้องสเ่ี หลี่ยมจัตรุ ัส ณ วนิ าทีต่าง ๆ ดงั รปู ที่ 7.14 เฉดสีของความดัน ณ วินาทีท่ี 5 และ
รปู ที่ 7.15 เฉดสขี องความเรว็ ณ วินาทที ี่ 112
รูปที่ 7.14 แสดงเฉดสีความดัน ณ วินาทีท่ี รูปท่ี 7.15 แสดงเฉดสีความดนั ณ วินาทีที่ 112
5
7.2 การหาผลเฉลยของสมการโมเมนตมั ไมค่ งที่กบั เวลา
ตัวอย่างที่ 2 น้ำมีความหนาแน่นเท่ากับ 997.05 kg/m3 และมีความหนืดพลวัตเท่ากับ
0.00089 Ns/m2 ที่อุณหภมู ิ 25 องศาเซลเซียส ไหลผ่านวตั ถุทรงกระบอกดังรูปที่ 7.16 สนามความเร็ว
ของการไหลของน้ำถูกควบคุมด้วยสมการนาเวียร์-สโตรกส์ ไม่คงที่กับเวลาแสดงได้ด้วยข้างต้น (E-7.3)
ภายใต้สภาวะความดันบรรยากาศ 110 kPa การไหลผ่านวัตถุทรงกระบอกของน้ำมีตัวเลขเรย์โนลด์
เทา่ กับ 30 จะแสดงสนามความเรว็ และการกระจายความดนั ของการไหลได้ดังต่อไปนี้
+ ∙ ∇ = - ∇ + ∇2 (E-7.3)
รูปที่ 7.16 แสดงลกั ษณะของโจทยท์ ใี่ ช้แกป้ ญั หา
ข้ันตอนการแกโ้ จทย์ปัญหาดว้ ยOpenFOAM
(ก) เปิดโปรแกรม OpenFOAM
• ไปยังแฟ้มเครื่องมือแก้ปัญหา icoFoam จากนั้นคัดลอกแฟ้มปัญหา cavity ที่ภายในแฟ้มบรรจุ แฟ้ม
0, constant และ system และต้ังช่อื แฟ้มปญั หาใหม่ ในตวั อยา่ งน้ตี ัง้ ช่ือ pisocase1
• เปิดโปรแกรม blueCFD-Core2020terminal ป้อนคำสั่ง cd (Current Directory) เพื่อนำตัว
โปรแกรมไปยังแฟ้มปญั หา ดังรูปท่ี 7.17
cd /home/ofuser/blueCFD/OpenFOAM-8/tutorials/incompressible /icoFoam/pisocase1/
รูปท่ี 7.17 คำสง่ั การเปิดแฟ้มปญั หา
หลังจากนัน้ กดปุ่ม Enter
(ข) การกําหนดขอบเขตและเง่ือนไขเบ้ืองตน้
• แก้ไขออ็ บเจกต์ blockMeshDict ภายในแฟ้ม system
โดยกำหนดจุดด้วยฟังก์ชัน vertices และตั้งชื่อผนงั ของโดเมนทั้งด้านหน้าและด้านหลัง แสดง
ดังรูปที่ 7.18 และรูปที่ 7.19 โดยการกำหนดจุดด้วยฟังก์ชัน block ซึ่งจะกำหนดให้มีจำนวนเซลล์ใน
แกน X และ เท่ากับ 10 เซลล์ ความยาวแกน Z ของโดเมนจะกำหนดให้ 1 เซลล์ รายละเอียดของการ
แก้ไขโค้ดโครงสร้างแสดงได้ดังรูปที่ 7.20 และโครงสร้างเซลล์ของโดเมนน้ำไหลผ่านวัตถุทรงกระบอก
ด้วยฟังก์ชัน hex และฟังก์ชัน arc แสดงดังรูปที่ 7.21 และรอบนอกโดเมนที่น้ำไหลผ่าน จะถูกกำหนด
โดยการตงั้ ช่อื แสดงไดใ้ นรูปท่ี 7.22
รูปที่ 7.18 กำหนดจุดในแตล่ ะสว่ นของผนงั ด้านหลงั
รปู ที่ 7.19 กำหนดจุดในแตล่ ะสว่ นของผนงั ดา้ นหนา้
รปู ที่ 7.20 แสดงจดุ ภายในออ็ บเจกต์ blockMeshDict
รปู ที่ 7.21 แสดงฟงั ก์ชนั hex และฟังกช์ นั arc
รปู ที่ 7.22 แสดงการต้งั ช่อื ลักษณะรอบนอกโดเมน
• ออ็ บเจก็ ต์ transportProperties ภายในแฟ้ม constant
คุณสมบัติความหนืดของน้ำเป็นของไหลนิวโทเนียน จำเป็นต้องกำหนดโดยแก้ไขฟังก์ชัน nu
ซึ่งอยู่ภายในอ็อบเจกต์ transportProperties แสดงดังรูปที่ 7.23 ตัวเลขซึ่งต่อจากวงเล็บของฟังก์ชัน
nu เปน็ คา่ ความหนดื ไคนีมาติก ซึ่งในตวั อยา่ งนี้จะมีค่าความหนดื ดงั สมการ (E-7.4)
= = 0.00089 = 0.893 × 10−6 2 (E-7.4)
997.05
รปู ท่ี 7.23 แสดงฟังกช์ นั nu ภายในอ็อบเจกต์ transportProperties
• อ็อบเจ็กต์ p ภายในแฟม้ 0
กำหนดสภาวะขอบเขตของความดันภายในอ็อบเจกต์ p ที่บรรจุไว้ในแฟ้ม 0 โดยใช้ฟังก์ชัน
boundaryField ความดันบริเวณขอบเขตผิวโดเมนจะใช้คำสั่ง type ซึ่งอยู่ภายในฟังก์ชันซึ่งถูกตั้งเป็น
ชื่อของผิวโดเมนใดๆ ผิวทางเข้า (inletWall) จะถูกกำหนดให้มีความดันแบบ “zeroGradient” ผิว
ทางด้านปลายโดเมนการไหลของน้ำ (outletWall) จะถูกำหนดให้มีค่าความดันแบบ “fixedValue”
โดยกำหนดค่า value เท่ากับค่าคงที่ 0 Pa ผิวผนังที่มีชื่อว่า upperWall และ loweWall จะกำหนด
ความดันเช่นเดียวกันกับ outletWall ผิวล้อมรอบวัตถุทรงกระบอกกำหนดให้มีชื่อว่า cylinderWall
กำหนดให้ค่าความดันแบบ “zeroGradient” ด้านหน้า (frontWall) และด้านหลังโดเมน (backWall)
จะถูกกำหนดให้มีค่าความดันแบบ empty เนื่องจากเป็นการวิเคราะห์แบบ 2 มิติ และกำหนดให้มี
dimensions [0 2 -2 0 0 0 0] และมีความดันเริ่มต้นที่ 0 Pa ด้วยฟังก์ชัน internalField เป็นค่า
uniform 0 ซง่ึ รายละเอียดการแก้ไขอ็อบเจกต์ p แสดงได้ดงั รูปท่ี 7.24
รูปที่ 7.24 แสดงฟังก์ชันของออ็ บเจกต์
p
• อ็อบเจก็ ต์ U ภายในแฟ้ม 0
กำหนดสภาวะขอบเขตของความเร็วภายในอ็อบเจกต์ U ที่บรรจุภายในแฟ้ม 0 จะใช้ฟังก์ชัน
boundaryField ความเร็วบริเวณขอบเขตของโดเมนจะใช้คำสงั่ type ซึง่ อยภู่ ายในฟงั ก์ชันซึ่งถูกต้ังเป็น
ชื่อของผิวโดเมนใดๆ ผิวทางเข้า (inletWall) จะถูกกำหนดให้มีความเร็วแบบ “fixedValue” โดย
กำหนดค่า value เท่ากับค่าคงที่ 26.79 x 10-5 m/s หรือ uniform (26.79e-0.5 0 0) มาจากตัวเลข
เรยโ์ นลด์ตามสมการ (E-7.5)
= ( ) (E-7.5)
ผนังทางออก (outletWall) ถูกกำหนดให้มีความเร็วแบบ “zeroGradient” ผิวผนังที่มีชื่อว่า
upperWall และ loweWall จะกำหนดความเร็วแบบ “zeroGradient” เช่นเดียวกันกับ outletWall
ผิวล้อมรอบวัตถุทรงกระบอกกำหนดให้มีชื่อว่า cylinderWall กำหนดให้ค่าความเร็วเป็นแบบ
“noSlip” ด้านหน้า (frontWall) และด้านหลังโดเมน (backWall) จะถูกกำหนดให้มีค่าความดันแบบ
empty เนื่องจากเป็นการวิเคราะห์แบบ 2 มิติ และกำหนดให้มี dimensions [0 1 -1 0 0 0 0] และมี
ความเร็วของน้ำภายในโดเมนทั้งหมดเท่ากับ 0 m/s ด้วยฟังก์ชัน internalField มีค่า uniform(0 0 0)
ซงึ่ รายละเอยี ดการแก้ไขอ็อบเจกต์ U แสดงไดด้ งั รูปที่ 7.25
รูปที่ 7.25 แสดงฟงั กช์ ันของออ็ บเจกต์ U
• ออ็ บเจก็ ต์ controlDict ภายในแฟ้ม system
อ็อบเจกต์ controlDict กำหนดให้มีการคำนวณเริ่มต้นตั้งแต่เวลา 0 วินาที ไปจนถึง 30000
วินาที โดยมีช่วงเวลาในการคำนวณเทา่ กับ 0.1 วนิ าที กรบนั ทกึ ผลการคำนวณขนาดเท่ากับ 1000 ช่วง
ตามฟังก์ชัน writeControl แบบ timeStep ซ่ึงรายละเอียดการแก้ไขอ็อบเจกต์ controlDict แสดงได้
ดังรปู ที่ 7.26
รปู ที่ 7.26 แสดงฟงั ก์ชันของอ็อบเจกต์ controlDict