> อัปเดต 28 กันยายน 2026: ทั้งสี่กริดจบ6000แล้ว มีเพียง N32 ผ่านทุก case gate; N30/N36/N44 ไม่ผ่าน residual จึงงด qualified sensitivity/GCI ดูรายงานสุดท้าย `ms1101-family-final-2026-09-28.md` ข้อความด้านล่างเป็นบันทึกสถานะในวันที่27

# MS1101 protocol v3: บันทึกการรันต่อและตรวจรับหลักฐาน

วันที่ 27 กันยายน 2026 · สถานะ: N30/N32 จบและประเมินแล้ว; N36/N44 กำลังคำนวณ

เอกสารนี้บันทึกการดำเนินงานหลังเริ่ม protocol v3 และไม่ได้แก้สมการ เงื่อนไขเริ่มต้น เกณฑ์ผ่าน หรือจำนวนรอบ 6,000 ที่ลงทะเบียนไว้

## การทำต่อจาก checkpoint

เมื่อรอบการเรียกใช้งานชนเพดาน 5,400 วินาที งานยังไม่ถือว่าเสร็จ การรันต่อใช้ค่าที่บันทึกไว้ล่าสุดตาม addendum เดิม โดยเครื่องมือตรวจเพิ่มก่อนเริ่มดังนี้:

1. ไม่มี solver หรือ wrapper ของกรณีนั้นทำงานอยู่
2. มี `processor0` ถึง `processor7` ครบ และโฟลเดอร์รอบล่าสุดตรงกันทั้งแปดส่วน
3. มีสนาม U, p, k, omega, nut และ phi ครบ 48 ไฟล์ พร้อมส่วนหัว สนามภายใน ขอบเขต และเครื่องหมายปิดไฟล์ของ OpenFOAM
4. hash ของ input ที่ลงทะเบียนไว้ตรงกัน รวมถึง geometry, mesh, สมการและเงื่อนไขเริ่มต้น
5. เก็บ SHA-256 ของไฟล์ checkpoint ก่อนเริ่มการคำนวณต่อ

นี่เป็นการตรวจความครบถ้วนของไฟล์และตัวตนของ input ไม่ใช่การพิสูจน์ว่าคำตอบลู่เข้าหรือถูกต้องทางกายภาพ หากส่วนใดไม่ครบ ระบบหยุดให้ตรวจ ไม่ลบโฟลเดอร์ใหม่หรือเลือกย้อนกลับอย่างเงียบ ๆ

ชุดคำสั่ง `finish_global_layer_family.py` เป็นงาน batch เฉพาะการศึกษานี้ มีขอบเขตเวลาและจำนวนการต่อ ไม่ใช่บริการตามกำหนดเวลา งานที่รันอยู่เดิมดำเนินต่อ ส่วนการเริ่มรอบใหม่จำกัดไม่เกินสองงานพร้อมกัน โดยแต่ละงานยังใช้ 8 ranks เหมือนเดิม เมื่อพบ error ทางตัว solver จะหยุดกรณีนั้นให้ตรวจ

## การตรวจรับผลหลัง solver จบ

ตรวจ mesh, End และรอบสุดท้าย 6,000 พร้อม residual ทั้งหกสมการทุกครั้งในช่วง 5,901–6,000 ค่า NaN/Infinity ถือว่าหลักฐานไม่ผ่าน ตรวจประวัติแรงและโมเมนต์จากไฟล์จริงว่าครบ 100 รอบที่กำหนด แล้วคำนวณเกณฑ์ความนิ่งซ้ำ และตรวจว่า y⁺ เป็นของรอบ 6,000

ผลของกริดที่ยังไม่ผ่านเกณฑ์จะเก็บไว้เพื่อวินิจฉัย แต่ไม่นำมาคำนวณความต่างของแรงที่อ้างว่าเป็น grid sensitivity ที่ผ่านการตรวจรับแล้ว การเทียบทั้งสี่ต้องตรวจ hash ของ input ทางฟิสิกส์และ numerical schemes ว่าตรงกันด้วย

## ข้อจำกัดที่ต้องอธิบายในการเรียนรู้

### ผลกริดแรก ณ iteration 6,000

N30 จบด้วย End และ checkpoint ครบ 8 ranks ผ่าน mesh และ force plateau แต่ residual ผ่าน **0/100 รอบ** ค่าสูงสุดในหน้าต่าง 5,901–6,000 คือ **5.02946694×10⁻⁵** สูงกว่าเกณฑ์ 10⁻⁵ จึงถูกปฏิเสธตาม protocol เดิม แรงขับเฉลี่ย 3.877982679432 N และแรงบิดเฉลี่ย 0.1042835512424 N·m เป็น **ค่าประกอบการวินิจฉัยเท่านั้น** ไม่ใช่ผลที่รับรองว่าลู่เข้า y⁺ ที่รอบ 6,000 มี min/mean/max = 0.2586/12.7054/205.2374 ตามการสรุป patch ของ OpenFOAM ไม่ใช่ค่าเฉลี่ยถ่วงพื้นที่จาก surface audit

บทเรียนจากกรณีนี้คือแรงที่นิ่งไม่ได้แทนเงื่อนไข residual ของสนามทั้งหมด หลักฐานอยู่ใน `tools/ms1101-cfd/results/layers/v3-global30-solver/`

N32 จบที่ 6,000 และผ่านทุก case gate: residual ผ่าน 100/100 รอบ สูงสุด 2.458127261×10⁻⁶, แรงขับเฉลี่ย 2.956402369968 N และแรงบิดเฉลี่ย 0.0926844387805 N·m; y⁺ min/mean/max = 0.2996/11.2567/164.6810 เป็นสถิติ patch ของ OpenFOAM เช่นกัน หลักฐานอยู่ใน `v3-global32-solver/` การผ่านของ N32 ไม่ทำให้ N30 ผ่านตามไปด้วย จึงยังไม่รายงานส่วนต่างแรงเป็น qualified grid sensitivity และไม่รายงาน GCI

หลัง N32 จบ ระบบตรวจ checkpoint N44 ที่รอบ 1,150 ผ่านครบ 48 fields และ input hashes แล้วเริ่มรันต่อโดยรักษา log ช่วงก่อนหน้า N36 และ N44 ยังต้องรอผลครบก่อนจัดทำกราฟสรุปทั้งชุด

**การรันต่อไม่ได้รับประกันผลเหมือนการรันรวดเดียวทุกบิต:** OpenFOAM เขียนข้อมูล ASCII ตาม `writePrecision`; เคสนี้ใช้ 10 significant figures ดังนั้น checkpoint เป็นข้อมูลที่บันทึกด้วยความละเอียดจำกัด การใช้ protocol เดิมหมายถึงคงวิธีและเกณฑ์ ไม่ใช่อ้างความเท่ากันระดับบิตกับการรันที่ไม่เคยหยุด ต้องเก็บจำนวนครั้งและจุดที่เริ่มต่อไว้ตรวจสอบ อ้างอิง [OpenFOAM: Time and data input/output control](https://www.openfoam.com/documentation/user-guide/6-solving/6.1-time-and-data-inputoutput-control)

**กริดที่ใกล้กันมากไม่ใช่หลักฐานความแม่นยำโดยลำพัง:** สำหรับ h = 0.84/N คู่ N30→N32 มี r = 32/30 ≈ 1.067 ขณะที่ NASA แนะนำอย่างน้อย 1.1 เพื่อช่วยแยกความคลาดเคลื่อนของกริดจากแหล่งอื่น คู่ N32→N36 และ N36→N44 มี r = 1.125 และ 1.222 ตามลำดับ อัตราส่วนจากจำนวนเซลล์จริงเป็นอีกตัวชี้วัดหนึ่ง จึงต้องรายงานนิยามให้ชัด ไม่สลับใช้เพื่อให้ผลดูดี และไม่ตัดกริดทิ้งย้อนหลังเพียงเพื่อให้ลำดับแรงเรียงสวย อ้างอิง [NASA NPARC: Examining Spatial (Grid) Convergence](https://www.grc.nasa.gov/www/wind/valid/tutorial/spatconv.html)

Richardson/GCI ยังต้องรอผลครบ ผ่านเกณฑ์ การตรวจลำดับแรง และหลักฐานว่าช่วงกริดรองรับการประมาณแบบ asymptotic การ fit สามจุดได้พอดีไม่ใช่หลักฐานอิสระยืนยันสมมติฐานนั้น การยืนยันกับผลทดลอง ENOLA ยังต้องมี metadata และ uncertainty ของการทดลองจริง
