• จากการกำหนดที่อ็อบเจ็กต์ต่างๆ รูปร่างของปัญหาและการสร้างเมชของปัญหาดังกล่าวได้
ถูกสร้างไว้แล้วอยู่ในไฟล์ที่ ช่ือว่า blockMeshDict ดังท่แี สดงไปขา้ งตน้ ทำการปอ้ นคำสั่ง blockMesh
ลงไปใน blueCFD-Core2020terminal เพื่อให้โปรแกรมสร้างเมชของปัญหาได้ออกมาในแฟ้ม
polyMesh ซึ่งอยู่ในแฟ้ม constant จากนั้นป้อนคำสั่ง icoFoam เพื่อแก้ปัญหาโจทย์ pisocase1 จะ
ไดแ้ ฟม้ “100”, “200”, “300”, …, “30000” ขึน้ มาภายในแฟ้ม pisocase1 ซ่งึ ภายในแฟ้มเหล่านี้จะ
บรรจผุ ลการคำนวณความเร็วและความดันในแตล่ ะช่วงไว้
(ค) การจำลองและแสดงผลในรปู แบบเมช
• ในการจําลองและแสดงผลจะแสดงในโปรแกรมParaview5.6.2(blueCFD-Core) โดยการ
เปิดโปรแกรมParaview5.6.2 จะใช้คำสั่ง paraFoam & ลงไปในTerminal ของ blueCFD-
Core2020terminal จะมีหน้าต่างของโปรแกรม Paraview 5.6.2 (blueCFD-Core) ขึ้นมา จากนั้นกด
ปมุ่ Apply จะแสดงเฉดสีของความดนั และความเรว็ ในแตล่ ะช่วง ดงั รปู ท่ี 7.27 และ รูปท่ี 7.28
(ก) 1500 วนิ าที (ก) 1500 วินาที
(ข) 4500 วนิ าที (ข) 4500 วนิ าที
(ค) 30000 วนิ าที (ค) 30000 วนิ าที
รปู ที่ 7.27 ภาพเฉดสแี สดงความเร็วท่ีเวลา (ก) 1500 วนิ าที รปู ท่ี 7.28 ภาพเฉดสแี สดงความดนั ทเี่ วลา (ก) 1500 วินาที
(ข) 4500 วนิ าที และ (ค) 30000 วนิ าที (ข) 4500 วนิ าที และ (ค) 30000 วินาที
บทท่ี 8
ปญั หาการไหลป่ันปว่ น
8.1 การไหลผ่านวตั ถุทรงกระบอกโดยใช้แบบจำลอง S-A
ตัวอย่างที่ 1 น้ำมีความหนาแน่นเท่ากับ 997.05 kg/m3 และมีความหนืดพลวัตเท่ากับ
0.00089 Ns/m2 ที่อุณหภูมิ 25 องศาเซลเซียส ไหลผ่านวัตถุทรงกระบอกด้วยความเร็ว 1.786x10-4
m/s ดังรูปที่ 8.1 การไหลของน้ำผ่านวัตถุทรงกระบอกถูกควบคุมด้วยสมการการไหลแบบปั่นป่วนใน
สภาวะคงตัวแสดงได้ด้วยสมการข้างต้น (E-8.1) ภายใต้สภาวะความดันบรรยากาศ 100 kPa การไหล
ผ่านวตั ถุทรงกระบอกของน้ำมตี วั เลขเรยโ์ นลดเ์ ทา่ กับ 200 จะแสดงสนามความเร็วและความดันของการ
ไหลโดยใชแ้ บบจำลอง S-A ได้ดังตอ่ ไปน้ี
สมการการไหลแบบปนั่ ป่วนในสภาวะคงตวั
( ̅ ̅ ) = 1 (Γ ∙ ∇ ̅ ) − ( (̅ ̅ ̅′̅ ̅ ̅̅′) + ( ̅̅ ̅′̅ ̅ ̅̅′) + (̅ ̅ ̅′̅ ̅ ̅̅′)) + ∅ (E-8.1)
รูปที่ 8.1 แสดงลกั ษณะของโจทย์ทีใ่ ช้แก้ปัญหา
ขัน้ ตอนการแก้โจทยป์ ัญหาดว้ ยOpenFOAM
(ก) เปิดโปรแกรม OpenFOAM
• ไปยังแฟ้มเครื่องมือแก้ปัญหา simpleFoam จากนั้นคัดลอกแฟ้มปัญหา pitzDaily ที่ภายในแฟ้ม
บรรจุ แฟ้ม 0, constant และ system หลังจากนั้นทำการตั้งชื่อแฟ้มปัญหาใหม่ ในตัวอย่างนี้ตั้งช่ือ
“flowThroughCylindricalS-A”
• เปิดโปรแกรม blueCFD-Core2020terminal ป้อนคำสั่ง cd (Current Directory) เพื่อนำตัว
โปรแกรมไปยังแฟ้มปัญหา ดงั รปู ท่ี 8.2
cd /home/ofuser/blueCFD/OpenFOAM-8/tutorials/incompressible /simpleFoam/flowThroughCylindricalS-A/
รปู ท่ี 8.2 คำส่ังการเปิดแฟม้ ปัญหา
หลังจากนนั้ กดปมุ่ Enter
(ข) การกําหนดขอบเขตและเง่อื นไขเบ้ืองตน้
• แกไ้ ขอ็อบเจกต์ blockMeshDict ภายในแฟ้ม system
โดยกำหนดจุดด้วยฟังก์ชัน vertices และตั้งชื่อผนังของโดเมนทั้งด้านหน้าและด้านหลัง แสดง
ดังรูปที่ 8.3 และรูปที่ 8.4 โดยการกำหนดจุดด้วยฟงั ก์ชัน block ซึ่งจะกำหนดให้มีจำนวนเซลล์ในแกน
X และ เท่ากับ 20 เซลล์ ความยาวแกน Z ของโดเมนจะกำหนดให้ 1 เซลล์ รายละเอียดของการแก้ไข
โค้ดโครงสร้างแสดงได้ดังรูปที่ 8.5 และโครงสร้างเซลล์ของโดเมนน้ำไหลผ่านวัตถุทรงกระบอกด้วย
ฟังก์ชัน hex และฟังก์ชัน arc แสดงดังรูปที่ 8.6 และรอบนอกโดเมนที่น้ำไหลผ่าน จะถูกกำหนดโดย
การตั้งช่ือแสดงได้ในรูปท่ี 8.7
รูปท่ี 8.3 กำหนดจุดในแต่ละสว่ นของผนังด้านหลัง
รปู ที่ 8.4 กำหนดจดุ ในแตล่ ะส่วนของผนังด้านหน้า
รปู ที่ 8.5 แสดงจดุ ภายในออ็ บเจกต์ blockMeshDict
รปู ที่ 8.6 แสดงฟังกช์ ัน hex และฟังกช์ นั arc
รปู ที่ 8.7 แสดงการต้งั ช่อื ลักษณะรอบนอกโดเมน
• อ็อบเจก็ ต์ transportProperties ภายในแฟม้ constant
คุณสมบัติความหนืดของน้ำเป็นของไหลนิวโทเนียน จำเป็นต้องกำหนดโดยแก้ไขฟังก์ชัน nu
ซง่ึ อยภู่ ายในอ็อบเจกต์ transportProperties แสดงดังรูปท่ี 8.8 ตวั เลขซึง่ ตอ่ จากวงเล็บของฟงั ก์ชนั nu
เปน็ คา่ ความหนืดไคนมี าติก ซ่งึ ในตวั อยา่ งน้จี ะมีคา่ ความหนืดดงั สมการตอ่ ไปน้ี (E-8.2)
= = 0.00089 = 0.893 × 10−6 2 (E-8.2)
997.05
รปู ที่ 8.8 แสดงฟงั กช์ นั nu ภายในอ็อบเจกต์ transportProperties
• ออ็ บเจก็ ต์ momentumTransport ภายในแฟ้ม constant
กำหนดชนิดแบบจำลองการไหลปั่นป่วนโดยใช้ฟังก์ชัน RAS เพื่อเลือกใช้แบบจำลองในการ
ประมาณคา่ พจน์เรยโ์ นลด์เป็นแบบ SpalartAllmaras (S-A) ภายในอ็อบเจ็กต์ momentumTransport
รายละเอยี ดการแกไ้ ขแสดงดังรูปท่ี 8.9
รูปที่ 8.9 แสดงฟังก์ชนั ของอ็อบเจกต์ momentumTransport
• อ็อบเจก็ ต์ p ภายในแฟ้ม 0
กำหนดสภาวะขอบเขตของความดันภายในอ็อบเจกต์ p ที่บรรจุไว้ในแฟ้ม 0 โดยใช้ฟังก์ชัน
boundaryField ความดันบริเวณขอบเขตผิวโดเมนจะใช้คำสั่ง type ซึ่งอยู่ภายในฟังก์ชันซึ่งถูกตั้งเป็น
ชื่อของผิวโดเมนใด ๆ ผิวทางเข้า (inletWall) จะถูกกำหนดให้มีความดันแบบ “zeroGradient” ผิว
ทางด้านปลายโดเมนการไหลของน้ำ (outletWall) จะถูกกำหนดให้มีค่าความดันแบบ “fixedValue”
โดยกำหนดค่า value เท่ากับค่าคงที่ 0 Pa ผิวผนังด้านบนและด้านล่างกำหนดให้มีชื่อว่า upperWall
และ lowerWall จะกำหนดความดันเช่นเดียวกันกับ outletWall ผิวที่ล้อมรอบวัตถุทรงกระบอก
กำหนดให้มีชื่อว่า cylinderWall กำหนดให้ค่าความดันแบบ “zeroGradient” ด้านหน้าและด้านหลัง
โดเมน (frontAndBack) จะถกู กำหนดให้มีค่าความดันแบบ “empty” เน่ืองจากเป็นการวิเคราะห์แบบ
2 มิติ และกำหนดให้มี dimensions [0 2 -2 0 0 0 0] มีความดันเริ่มต้นที่ 0 Pa ด้วยฟังก์ชัน
internalField เป็นค่า uniform 0 ซึง่ รายละเอยี ดการแก้ไขอ็อบเจกต์ p แสดงไดด้ ังรูปท่ี 8.10
รูปที่ 8.10 แสดงฟังก์ชันของออ็ บเจกต์ p
• ออ็ บเจ็กต์ U ภายในแฟม้ 0
กำหนดสภาวะขอบเขตของความเร็วภายในอ็อบเจกต์ U ที่บรรจุภายในแฟ้ม 0 จะใช้ฟังก์ชัน
boundaryField ความเรว็ บรเิ วณขอบเขตของโดเมนจะใช้คำสง่ั type ซ่งึ อยภู่ ายในฟังกช์ นั ซึ่งถูกตั้งเป็น
ชื่อของผิวโดเมนใด ๆ ผิวทางเข้า (inletWall) จะถูกกำหนดให้มีความเร็วแบบ “fixedValue” โดย
กำหนดค่า value เท่ากับค่าคงที่ 1.786 x 10-4 m/s หรือ uniform (0.0001786 0 0) ความเร็วที่
กำหนดนี้จะทำใหค้ า่ เรย์โนลด์มคี ่าเทา่ กบั 200 จากตัวเลขเรย์โนลดต์ ามสมการดังนี้ (E-8.3)
= ( ) (E-8.3)
ผนังทางออก (outletWall) ถูกกำหนดให้มีความเร็วแบบ “zeroGradient” ผิวผนังด้านบนและ
ด้านล่างกำหนดให้มีชื่อว่า upperWall และ lowerWall จะกำหนดความเร็วแบบ “zeroGradient”
เช่นเดียวกันกับ outletWall ผิวล้อมรอบวัตถุทรงกระบอก cylinderWall กำหนดให้ค่าความเร็วเป็น
แบบ “noSlip” ด้านหน้าและด้านหลังโดเมน (frontAndBack) จะถูกกำหนดให้มีค่าความเร็วแบบ
“empty” เนอ่ื งจากเป็นการวิเคราะห์แบบ 2 มติ ิ และกำหนดให้มี dimensions [0 1 -1 0 0 0 0] และ
มีความเร็วของน้ำภายในโดเมนทั้งหมดเท่ากับ 0 m/s ด้วยฟังก์ชัน internalField มีค่า uniform (0 0
0) ซึ่งรายละเอยี ดการแก้ไขอ็อบเจกต์ U แสดงได้ดังรูปที่ 8.11
• อ็อบเจก็ ต์ nut ภายในแฟ้ม 0
กำหนดสภาวะขอบเขตความหนืดปั่นปว่ นไคนีมาติกภายในอ็อบเจกต์ nut ที่บรรจุภายในแฟม้
0 จะใช้ฟังก์ชัน boundaryField ความหนืดปั่นป่วนไคนีมาติกบริเวณขอบเขตของโดเมนจะใช้คำสั่ง
type ซึ่งอยู่ภายในฟังก์ชันซึ่งถูกตั้งเป็นชื่อของผิวโดเมนใด ๆ ผิวทางเข้า (inletWall) ผิวผนังทางออก
(outletWall) ผิวผนงั ด้านบน upperWall และ ผวิ ผนังดา้ นลา่ ง lowerWall จะถกู กำหนดใหม้ ีคา่ ความ
หนดื ปั่นปว่ นไคนีมาตกิ แบบ “calculated” โดยกำหนดคา่ value เท่ากับ uniform 0 ผวิ ลอ้ มรอบวัตถุ
ทรงกระบอก cylinderWall จะถูกกำหนดให้มีค่าความหนืดปั่นป่วนไคนีมาติกแบบ
“nutkWallFunction” โดยกำหนดค่า value เท่ากับ uniform 0 ด้านหน้าและด้านหลังโดเมน
(frontAndBack) จะถูกกำหนดให้มีค่าความหนืดป่ันป่วนไคนมี าตกิ เป็นแบบ empty เนื่องจากเป็นการ
วิเคราะหแ์ บบ 2 มติ ิ กำหนดใหม้ ี dimensions [0 2 -1 0 0 0 0] และ internalField มีค่า uniform 0
ซ่ึงรายละเอียดการแก้ไขอ็อบเจกต์ nut แสดงไดด้ ังรปู ที่ 8.12
รปู ที่ 8.11 แสดงฟงั ก์ชันของออ็ บเจกต์ U
• อ็อบเจก็ ต์ nuTilda ภายในแฟ้ม 0
กำหนดสภาวะขอบเขตความหนืดวนไคนีมาติกของโครงสร้างเซลล์ภายในอ็อบเจกต์ nuTilda
ทบ่ี รรจุภายในแฟม้ 0 จะใช้ฟงั ก์ชนั boundaryField ความหนืดวนไคนีมาติกบริเวณขอบเขตของโดเมน
จะใช้คำสั่ง type ซึ่งอยู่ภายในฟงั ก์ชันซึ่งถูกต้ังเป็นชื่อของผิวโดเมนใด ๆ ผิวทางเข้า (inletWall) จะถูก
กำหนดให้มีค่าความหนืดวนไคนีมาติกแบบ “fixedValue” โดยกำหนดค่า value เท่ากับ uniform 0
ผิวผนังทางออก (outletWall) ผิวผนังด้านบน upperWall ผิวผนังด้านล่าง lowerWall และ ผิว
ล้อมรอบวัตถุทรงกระบอก cylinderWall จะถูกกำหนดให้มีค่าความหนืดวนไคนีมาติกแบบ
“zeroGradient” ด้านหน้าและด้านหลังโดเมน (frontAndBack) จะถูกกำหนดให้มีค่าความหนืดวน
ไคนีมาตกิ แบบ empty เนื่องจากเป็นการวิเคราะห์แบบ 2 มิติ กำหนดให้มี dimensions [0 2 -1 0 0 0
0] และ internalField มีค่า uniform 0 ซึ่งรายละเอียดการแก้ไขอ็อบเจกต์ nuTilda แสดงได้ดังรูปท่ี
8.13
รปู ที่ 8.12 แสดงฟงั ก์ชนั ของออ็ บเจกต์ nut
รปู ที่ 8.13 แสดงฟังกช์ นั ของอ็อบเจกต์ nuTilda
• อ็อบเจก็ ต์ fvSolution ภายในแฟ้ม system
อ็อบเจกต์ fvSolution จะกำหนดให้ใช้ฟังก์ชันวิธีการทำซ้ำแบบ SIMPLE การทำซ้ำจะหยุด
เมื่อความดันตรวจแก้มีค่าเข้าใกล้ 1x10-6 ความเร็วตรวจแก้มีค่าเข้าใกล้ 1x10-8 ความหนืดวนไคนี
มาติกตรวจแก้มีค่าเข้าใกล้ 1x10-8 ตามลำดับ ซึ่งรายละเอียดการแก้ไขอ็อบเจกต์ fvSolution แสดงได้
ดงั รปู ท่ี 8.14
รปู ที่ 8.14 แสดงฟงั กช์ นั ของออ็ บเจกต์ fvSolution
• อ็อบเจ็กต์ fvSchemes ภายในแฟ้ม system
อ็อบเจกต์ fvSchemes จะกำหนดฟังก์ชันที่จะใชใ้ นการวิเคราะห์ผลของข้อมูล โดยจะกำหนด
ฟังก์ชัน ddtSchemes ซึ่งเป็นฟังก์ชันการประเมินเชิงเส้นเป็น steadyState ซึ่งการวิเคราะห์การไหล
ในสภาวะคงตัวจะใช้ฟังก์ชัน divSchemes ซึ่งมีสมาชิกตัวแปรเป็น U และ nuTilda วิธีการประมาณ
ค ่ าจะใช้ ฟ ั งก ์ ช ั น bounded Gauss linearUpwind grad(U) และฟ ั งก ์ ช ั น bounded Gauss
linearUpwind grad(nuTilda) ฟังก์ชัน laplacianSchemes ในการประมาณค่าเชิงเส้นจะใช้วิธี
Gauss linear corrected ซง่ึ รายละเอยี ดการแก้ไขอ็อบเจกต์ fvSchemes แสดงไดด้ ังรูปที่ 8.15
รปู ที่ 8.15 แสดงฟงั กช์ นั ของออ็ บเจกต์ fvSchemes
• อ็อบเจ็กต์ controlDict ภายในแฟ้ม system
อ็อบเจกต์ controlDict กำหนดให้มีการคำนวณเริ่มต้นตั้งแต่เวลา 0 วินาที ไปจนถึง 1000
วินาที โดยมีช่วงเวลาในการคำนวณเท่ากับ 1 วินาที การบันทึกผลการคำนวณขนาดเท่ากับ 10 ช่วง
ตามฟังกช์ นั writeControl แบบ timeStep ซ่งึ รายละเอียดการแก้ไขอ็อบเจกต์ controlDict แสดงได้
ดงั รปู ที่ 8.16
รูปท่ี 8.16 แสดงฟังกช์ ันของออ็ บเจกต์ controlDict
• จากการกำหนดที่อ็อบเจ็กต์ต่าง ๆ รูปร่างของปัญหาและการสร้างเมชของปัญหาดังกล่าวได้
ถูกสร้างไว้แล้วอยู่ในไฟล์ที่ ชื่อว่า blockMeshDict ดังที่แสดงไปข้างต้น ทำการป้อนคำสั่ง
“blockMesh” ลงไปใน blueCFD-Core2020terminal เพอื่ ให้โปรแกรมสรา้ งเมชของปัญหาได้ออกมา
ในแฟ้ม polyMesh ซึ่งอยู่ในแฟ้ม constant จากนั้นป้อนคำสั่ง “simpleFoam” เพื่อแก้ปัญหาโจทย์
flowThroughCylindricalS-A จะได้แฟ้ม “10”, “20”, “30”, …, “1000” ขึ้นมาภายในแฟ้ ม
flowThroughCylindricalS-A ซึ่งภายในแฟ้มเหล่านี้จะบรรจุผลการคำนวณความเร็วและความดันใน
แต่ละชว่ งไว้
(ค) การจำลองและแสดงผลในรูปแบบเมช
• ในการจําลองและแสดงผลจะแสดงในโปรแกรมParaview5.6.2(blueCFD-Core) โดยการ
เปิดโปรแกรมParaview5.6.2 จะใช้คำสั่ง “paraFoam” ลงไปใน Terminal ของ blueCFD-
Core2020terminal จะมีหน้าต่างของโปรแกรม Paraview 5.6.2 (blueCFD-Core) ขึ้นมา จากนั้นกด
ปุ่ม Apply จะแสดงเฉดสขี องความดนั และความเรว็ ในแต่ละช่วง ดังรูปท่ี 8.17 และ รปู ท่ี 8.18
(ก) 100 วนิ าที (ก) 100 วินาที
(ข) 500 วนิ าที (ข) 500 วินาที
(ค) 10(ค0)01ว0ิน0า0ที (ค) 1000 วินาที
รปู ท่ี 8.17 ภาพเฉดสแี สดงความเรว็ ทเ่ี วลา (ก) 100 วนิ าที รูปท่ี 8.18 ภาพเฉดสีแสดงความดนั ทเี่ วลา (ก) 100 วินาที
(ข) 500 วินาที และ (ค) 1000 วินาที (ข) 500 วินาที และ (ค) 1000 วินาที
8.2 การไหลผ่านวัตถุโดยใชแ้ บบจำลอง SGS อันดับสงู
ตวั อย่างท่ี 2 ลำนำ้ มีความหนืดไคนีมาติกเทา่ กับ 0.893 x 10-6 m2/s ไหลด้วยความเร็วสูงผ่าน
ช่องสี่เหลี่ยมเข้ามาในแท็งก์ที่มีน้ำบรรจุไว้จนเต็มจนทำให้การไหลมีค่าเรย์โนลด์เท่ากับ 6 ,000
รายละเอียดของขนาดและสภาวะของการไหลแสดงได้ ดังรูปที่ 8.19 กำหนดให้การไหลเป็นแบบ
ป่ันป่วนไมค่ งทก่ี บั เวลาโดยมสี มการดังสมการที่ 8.4 (E-8.4) วิเคราะหค์ วามเร็วภายในแท็งก์ไดด้ งั ต่อไปนี้
̃ + div( ̃ ̃ ) = -∇ + (∇ ̃ ) - ∇ (E-8.4)
รูปที่ 8.19 แสดงลักษณะของโจทย์ที่ใชแ้ ก้ปญั หา
ขน้ั ตอนการแก้โจทย์ปญั หาดว้ ยOpenFOAM
(ก) เปดิ โปรแกรม OpenFOAM
• ไปยังแฟ้มเครื่องมือแก้ปัญหา pisoFoam และเข้าไปในแฟ้ม LES จากนั้นคัดลอกแฟ้มปัญหา
PitzDaily ทภี่ ายในแฟ้มบรรจุ แฟ้ม 0, constant และ system และตงั้ ช่อื แฟม้ ปญั หาใหม่ ในตัวอยา่ งนี้
ตงั้ ช่อื “8.3”
• เปิดโปรแกรม blueCFD-Core2020terminal ป้อนคำสั่ง cd (Current Directory) เพื่อนำตัว
โปรแกรมไปยงั แฟ้มปัญหา ดังรูปที่ 8.20
cd /home/ofuser/blueCFD/OpenFOAM-8/tutorials/incompressible/pisoFoam/LES/8.3/
รูปที่ 8.20 คำสั่งการเปดิ แฟม้ ปญั หา
หลงั จากน้นั กดปมุ่ Enter
(ข) การกำหนดขอบเขตและเงอื่ นไขเบ้ืองตน้
• อ็อบเจกต์ blockMeshDict
ไปยังแฟ้มเครื่องมือแก้ปัญหา icoFoam เข้าไปยังแฟ้ม cavity คัดลอกอ็อบเจกต์
blockMeshDict ภายในแฟ้ม system และนำมาวางภายในแฟ้ม system ของแฟ้ม 8.3 ซึ่งการตั้งช่ือ
ผนงั ของโดเมนท้ังด้านหนา้ และดา้ นหลังแสดงดังรปู ที่ 8.21 จากนน้ั แก้ไขไฟล์โดยกำหนดจุดด้วยฟังก์ชัน
vertices และการสร้างเซลล์ด้วยฟังก์ชัน blocks และสร้างรูปทรงหกหน้าด้วยฟงั ก์ชนั hex สร้างเซลล์
จำนวน 150,000 เซลล์ รายละเอยี ดของการแก้ไขโคด้ โครงสรา้ งแสดงไดด้ ังรูปท่ี 8.22
รูปท่ี 8.21 การเรียงตำแหนง่ จุดบนโดเมนห้องสเ่ี หลี่ยม
• อ็อบเจ็กต์ transportProperties ภายในแฟ้ม constant
ความหนืดของของไหลนิวโทเนียน จะต้องแก้ไขฟังก์ชัน nu ซึ่งสามารถหาค่าความหนืดไคนี
มาติกของของไหลภายในโดเมนการไหลของน้ำได้จากสมการที่ 8.5 (E-8.5) แล้วจึงนำไปแก้ไขโค้ด
ภายในออ็ บเจกต์ transportProperties ได้ดังรูปท่ี 8.23
nu = = 0.00089 = 0.893 x 10-6 m2/s (E-8.5)
997.05
รปู ท่ี 8.22 แสดงฟังก์ชนั ภายในออ็ บเจกต์ blockMeshDict
รูปที่ 8.23 แสดงฟงั กช์ ันภายในออ็ บเจกต์ transportProperties
• อ็อบเจก็ ต์ momentumTransport ภายในแฟ้ม constant
เป็นกำหนดชนิดการจำลองความปั่นป่วน โดยจะเลือกใช้ฟังก์ชัน LES ในการประมาณความ
เค้น SGS โดยเลือกโมเดลเป็นแบบ dynamickEpn เป็นการจำลอง SGS อันดับสูง รายละเอียดการ
แก้ไขโค้ดภายในออ็ บเจกต์ momentumTransport แสดงได้ดังรูปท่ี 8.24
รปู ที่ 8.24 แสดงฟังกช์ ันภายในอ็อบเจกต์ momentumTransport
• อ็อบเจก็ ต์ p ภายในแฟ้ม 0
กำหนดสภาวะขอบเขตของความดันภายในอ็อบเจกต์ p ที่บรรจุไว้ในแฟ้ม 0 โดยใช้ฟังก์ชัน
boundaryField ด้านทางท่ขี องไหลไหลเข้าโดเมนถูกกำหนดช่ือวา่ “inlet” กำหนดให้มีการต้ังค่าความ
ดันแบบ zeroGradient และด้านทางออกของโดเมนถูกกำหนดชื่อว่า “outlet” กำหนดให้มีการตั้งค่า
ความดันแบบ fixedValue โดยกำหนดให้มีความดันเป็น 0 หรือ uniform 0 ทางด้านบนและด้านล่าง
ของพื้นผิวโดเมน ถูกกำหนดชื่อว่า “upperWall” และ “lowerWall” จะถูกกำหนดให้มีค่าความดัน
แบบ zeroGradient และด้านหน้าและด้านหลังของโดเมนถูกกำหนดชื่อว่า “frontAndBack” ซึ่งเป็น
พืน้ ผิวทีไ่ มม่ ีการวิเคราะห์ จะถูกกำหนดให้มีค่าความดันเป็น empty รายละเอียดการแก้ไขโค้ดภายในอ็
อบเจกต์ p แสดงดังรูปที่ 8.25
รปู ท่ี 8.25 แสดงฟังก์ชนั ภายในออ็ บเจกต์ p
• ออ็ บเจก็ ต์ U ภายในแฟ้ม 0
กำหนดสภาวะขอบเขตของความเร็วภายในอ็อบเจกต์ U ที่บรรจุไว้ในแฟ้ม 0 โดยใช้ฟังก์ชัน
boundaryField ด้านทางที่ของไหลไหลเข้าโดเมนถูกกำหนดชื่อว่า “inlet” กำหนดให้มีการตั้งค่า
ความเร็วแบบ fixedValue โดยกำหนดให้มีความเร็วคงที่เท่ากับ 0.536 m/s หรือ uniform (0.536 0
0) ดังสมการที่ 8.6 (E-8.6) ด้านทางออกของโดเมนถูกกำหนดชื่อว่า “outlet” เป็นด้านผนังที่อยู่ตรง
ขา้ มกับช่องส่เี หลี่ยม กำหนดให้ค่าความเรว็ แบบ inletOutlet เพื่อป้องกันการไหลย้อนกลับ กำหนดค่า
inletValue เท่ากับศูนย์ หรือ uniform(0 0 0) และค่า value ของการไหลที่ทางออกเท่ากับศูนย์ หรือ
uniform (0 0 0) และทางด้านบนและด้านล่างของพื้นผิวโดเมน ถูกกำหนดชื่อว่า “upperWall” และ
“lowerWall” จะถกู กำหนดให้มีคา่ ความเรว็ เป็นแบบ noSlip และด้านหนา้ และด้านหลังของโดเมนถูก
กำหนดชื่อว่า “frontAndBack” กำหนดให้มีค่าความเร็วแบบ empty รายละเอียดการแก้ไขโค้ด
ภายในออ็ บเจกต์ U แสดงดงั รปู ที่ 8.26
รปู ที่ 8.26 แสดงฟงั ก์ชันภายในอ็อบเจกต์ U
= ℎ (E-8.6)
= ( )( ) = (6,000)(0.893 × 10−6) = 0.536
ℎ 0.01
• อ็อบเจก็ ต์ k ภายในแฟ้ม 0
กำหนดสภาวะขอบเขตของพลังงานจลนป์ ัน่ ปว่ นภายในอ็อบเจกต์ k ที่บรรจไุ ว้ในแฟม้ 0 โดยใช้
ฟังก์ชัน boundaryField ด้านทางที่ของไหลไหลเข้า (inlet) เป็นผนังช่องสี่เหลี่ยมที่มีน้ำไหลเข้า
กำหนดให้เปน็ จดุ เริ่มต้นของค่า k เพือ่ คำนวณ จงึ ตอ้ งต้ังค่าเปน็ แบบ fixedValue โดยมีคา่ เท่ากับ 1.08
x 10-3 หรอื uniform 1.08e-03 แสดงการคำนวณได้ดังสมการท่ี 8.7 (E-8.7) และสมการที่ 8.8 (E-8.8)
และด้านทางออกของโดเมน (outlet) กำหนดให้มีการตั้งค่า k เป็นแบบ inletOutlet เพื่อป้องกันการ
ไหลย้อนกลับ โดยกำหนดค่า intervalue เท่ากับศูนย์ หรือ uniform 0 และค่า value ของทางไหล
ออกของ k เท่ากับศูนย์เช่นกัน หรือ uniform 0 ทางด้านบน(upperWall) และด้านล่าง (lowerWall)
ของพื้นผิวโดเมน จะถูกกำหนดให้มีค่า k เป็นแบบ fixedValue โดยมีค่าเท่ากับศูนย์ หรือ uniform 0
และด้านหน้าและด้านหลังของโดเมนถูกกำหนดชื่อว่า “frontAndBack” ซึ่งเป็นพื้นผิวที่ไม่มีการ
วเิ คราะห์ จะถูกกำหนดให้มีค่า k เป็น empty รายละเอียดการแก้ไขโคด้ ภายในอ็อบเจกต์ k แสดงดงั รูป
ที่ 8.27
= 1 ( ′)2 (E-8.7)
2 (E-8.8)
= 1 (( ′)2 + ( ′)2 + ( ′)2)
2
= 3 (5 ×0.536)2 = 1.08 x 10-3 m2/s2
2 100
กำหนดให้ความเร็วแกวง่ ทุกๆแกนของการไหลเกดิ ขึน้ 5 % ของความเร็วการไหลของนำ้
รปู ที่ 8.27 แสดงฟงั ก์ชนั ภายในอ็อบเจกต์ k
• ออ็ บเจก็ ต์ nut ภายในแฟ้ม 0
กำหนดสภาวะขอบเขตของความหนืดปั่นป่วนไคนีมาติกภายในอ็อบเจกต์ nut ที่บรรจุไว้ใน
แฟ้ม 0 โดยใช้ฟังก์ชัน boundaryField ทุกด้านของผนังยกเว้นผนังด้านหน้าและด้านหลัง
(frontAndBack) จะถูกกำหนดให้มีค่าความหนืดปั่นป่วนแบบไคนีมาติกเป็นแบบ zeroGradient ส่วน
ผนังดา้ นหนา้ และด้านหลัง (frontAndBack) จะถกู กำหนดให้มีค่าความหนดื ป่นั ปว่ นแบบไคนีมาติกเป็น
แบบ empty รายละเอียดการแกไ้ ขโค้ดภายในออ็ บเจกต์ nut แสดงดงั รปู ท่ี 8.28
รปู ที่ 8.28 แสดงฟงั ก์ชันภายในอ็อบเจกต์ nut
• อ็อบเจก็ ต์ nuTilda ภายในแฟ้ม 0
กำหนดสภาวะขอบเขตของความหนืดปน่ั ป่วนไคนมี าติกของแบบจำลอง LES ภายในอ็อบเจกต์
nuTilda ที่บรรจุไว้ในแฟ้ม 0 โดยใช้ฟังก์ชัน boundaryField ด้านทางที่ของไหลไหลเข้า (inlet) เป็น
ผนังช่องสี่เหลี่ยมที่มีน้ำไหลเข้า ถูกกำหนดให้มีค่าความหนืดปั่นป่วนแบบไคนีมาติกเป็นแบบ
fixedValue โดยมีค่าเท่ากับศูนย์ หรือ uniform 0 และด้านทางออกของโดเมน (outlet) กำหนดให้มี
การตั้งค่าความหนืดปั่นป่วนไคนีมาติกเป็นแบบ inletOutlet เพื่อป้องกันการไหลย้อนกลับ โดย
กำหนดค่า intervalue เท่ากับศูนย์ หรือ uniform 0 และค่า value ของทางไหลออกเท่ากับศูนย์
เช่นกัน ทางด้านบน(upperWall) และด้านล่าง(lowerWall) ของพื้นผิวโดเมน จะถูกกำหนดให้มีค่า
ความหนดื ปั่นป่วนไคนีมาติกเป็นแบบ fixedValue โดยมคี า่ เทา่ กับศูนย์ หรือ uniform 0 และด้านหน้า
และด้านหลังของโดเมนถูกกำหนดชื่อว่า “frontAndBack” ซึ่งเป็นพื้นผิวที่ไม่มีการวิเคราะห์ จะถูก
กำหนดใหม้ คี ่าเป็น empty รายละเอยี ดการแก้ไขโค้ดภายในอ็อบเจกต์ nuTilda แสดงดังรปู ที่ 8.29
รูปท่ี 8.29 แสดงฟงั ก์ชันภายในออ็ บเจกต์ nuTilda
• ออ็ บเจ็กต์ fvSchemes ภายในโฟลเดอร์ system
เป็นการกำหนดฟังก์ชันที่จะใช้ในการวิเคราะห์ผลของข้อมูล โดยจะกำหนดฟังก์ชัน
ddtSchemes ซ่งึ เป็นฟงั กช์ นั การประเมนิ เชิงเส้นพจน์ไม่คงท่ีเป็นแบบ backward ซึ่งการวเิ คราะห์การ
ไหลแบบไม่คงท่ีกับเวลา โดยแปลงพจน์จากสมการนาเวียร์-สโตกส์ แทนด้วยฟังกช์ ัน divSchemes ท่ีมี
สมาชิกเป็น (phi, U) โดยใช้วิธีประมาณค่าแบบ Gauss LUST grad(U) ฟังก์ชัน divSchemes ที่มี
สมาชิกเป็น (phi, k) โดยใช้วิธีประมาณค่าแบบ Gauss limitedLinear 1 และฟังก์ชัน divSchemes ท่ี
มีสมาชิกเป็น (phi, s) โดยใช้วิธีประมาณค่าแบบ bounded Gauss limitedLinear 1 ฟังก์ชัน
laplacianSchemes ในการประเมินสภาพพจน์การแพร่โดย การประมาณค่าเชิงเส้นจะใช้วิธี Gauss
linear corrected รายละเอียดการแก้ไขอ็อบเจกต์ fvSchemes แสดงได้ดังรปู ท่ี 8.30
รูปที่ 8.30 แสดงฟงั ก์ชนั ภายในออ็ บเจกต์ fvSchemes
• ออ็ บเจก็ ต์ controlDict ภายในแฟม้ system
อ็อบเจกต์ controlDict กำหนดให้มีการคำนวณเริ่มต้นตั้งแต่เวลา 0 วินาที ไปจนถึง 3 วินาที
โดยมีช่วงเวลาในการคำนวณเท่ากับ 1 x 10-3 วินาที การบันทึกผลการคำนวณขนาดเทา่ กับ 1000 ช่วง
ตามฟังก์ชนั writeControl แบบ timeStep ซึ่งรายละเอียดการแก้ไขอ็อบเจกต์ controlDict แสดงได้
ดังรูปท่ี 8.31
รูปท่ี 8.31 แสดงฟังก์ชนั ภายในอ็อบเจกต์ controlDict
• จากการกำหนดที่อ็อบเจ็กต์ต่างๆ รูปร่างของปัญหาและการสร้างเมชของปัญหาดังกล่าวได้
ถูกสร้างไว้แล้วอยู่ในไฟล์ที่ ชื่อว่า blockMeshDict ดังที่แสดงไปข้างต้น ทำการป้อนคำสั่ง
“blockMesh” ลงไปใน blueCFD-Core2020terminal เพอื่ ใหโ้ ปรแกรมสรา้ งเมชของปัญหาได้ออกมา
ในแฟม้ polyMesh ซง่ึ อยู่ในแฟ้ม constant
จากนั้นป้อนคำสั่ง “pisoFoam” เพื่อแก้ปัญหาโจทย์ 8.3 จะได้แฟ้ม “1”, “2” และ“3ขึ้นมา
ภายในแฟ้ม 8.3 ซึ่งภายในแฟ้มเหล่านี้จะบรรจุผลการคำนวณค่าต่างๆ ที่ตำแหน่งกึ่งกลางของเซลล์
โดเมนบนั ทกึ ไว้
(ค) การจำลองและแสดงผลในรูปแบบเมช
• ในการจําลองและแสดงผลจะแสดงในโปรแกรมParaview5.6.2(blueCFD-Core) โดยการ
เปิดโปรแกรมParaview5.6.2 จะใช้คำสั่ง “paraFoam” ลงไปในTerminal ของ blueCFD-
Core2020terminal จะมีหน้าต่างของโปรแกรม Paraview 5.6.2 (blueCFD-Core) ขึ้นมา จากนั้นกด
ปุ่ม Apply แล้วจึงเลือกรูปแบบการจำลองโดยกดทปี่ ุม่ ดังรูปที่ 8.32 จากน้นั จงึ คลกิ ที่ปุ่ม Play( ) ที่
แถบเคร่ืองมอื ด้านบน เพื่อจำลองผลการวเิ คราะห์การไหลของลำนำ้ ในช่วงเวลาที่กำหนดไว้ จะแสดงเฉด
สีของความเร็วในวนิ าทีที่ 1 วินาทีที่ 2 และ วินาทีที่ 3 ซึ่งเกิดขึ้นภายในโดเมน ดังรูปที่ 8.33 และเฉดสี
ของความดันในวินาทีที่ 1 วินาทที ่ี 2 และ วินาทีท่ี 3 ดงั รูปท่ี 8.34
รูปท่ี 8.32 แสดงปมุ่ เลอื กรูปแบบการจำลอง
(ก)
(ข)
(ค)
รูปที่ 8.33 แสดงความเร็วการไหลของลำนำ้ ท่เี วลา (ก) 1 วินาที (ข) 2 วินาที และ (ค) 3 วินาที
(ก)
(ข)
(ค)
รปู ที่ 8.34 แสดงความดันของการไหลของลำนำ้ ท่เี วลา (ก) 1 วนิ าที (ข) 2 วินาที และ (ค) 3 วนิ าที