FrontISTR / Getting Started
เริ่มต้นใช้งาน
ลองวิเคราะห์ชิ้นส่วนบานพับด้วย FrontISTR แล้วดูการกระจายความเค้นใน ParaView เพียงดาวน์โหลด solver และตัวอย่างที่เตรียมไว้ ก็ไม่จำเป็นต้องเริ่มจากการสร้าง mesh สำหรับการรันครั้งแรกนี้
01
เตรียม solver
เตรียมไบนารีสำหรับ Windows หรืออิมเมจ Docker ที่ใช้ได้บน Windows, macOS และ Linux
Windows (64-bit)
แตกไฟล์ ZIP หลังจากเตรียมตัวอย่างในขั้นตอนถัดไปแล้ว ให้คัดลอก fistr1.exe และ DLL ที่มาด้วยทั้งหมดไปยังโฟลเดอร์ตัวอย่าง (01_elastic_hinge)
Docker (Windows / macOS / Linux)
เริ่ม Docker แล้วรันคำสั่งต่อไปนี้ในเทอร์มินัล บน Windows ให้ใช้ Docker ในโหมด Linux container และรันคำสั่งใน PowerShell
docker pull --platform linux/amd64 registry.gitlab.com/frontistr-commons/frontistr/fistr1:master
อิมเมจทางการปัจจุบันสร้างสำหรับ amd64 บน Mac ที่ใช้ Apple Silicon อิมเมจจะทำงานผ่านการจำลอง จึงอาจใช้เวลานานขึ้น
Build จากซอร์สโค้ด
คุณยังสามารถ build FrontISTR จากซอร์สโค้ดได้เองบนระบบปฏิบัติการเหล่านี้ เมื่อติดตั้ง compiler และไลบรารีที่จำเป็นแล้ว CMake จะตรวจจับสภาพแวดล้อมและกำหนดค่า build
ติดตั้งเครื่องมือพื้นฐานด้วยคำสั่งด้านล่างให้เหมาะกับดิสทริบิวชันที่ใช้ สามารถเริ่มจากสภาพแวดล้อมพัฒนาที่มีอยู่ได้โดยไม่ต้องเพิ่ม MPI หรือไลบรารีเสริมอื่น
Ubuntu / Debian
sudo apt-get update
sudo apt-get install build-essential cmake git gfortran
RHEL / Rocky Linux / AlmaLinux
sudo dnf install gcc gcc-c++ gcc-gfortran make cmake git
คำสั่งต่อไปนี้เป็นตัวอย่างการ build และติดตั้งบน macOS และ Linux ไฟล์ executable จะถูกติดตั้งไว้ในไดเรกทอรี bin ภายใต้ home จึงไม่ต้องใช้ sudo หรือแก้ PATH สำหรับการเตรียมสภาพแวดล้อม macOS/Windows และไลบรารีเสริม โปรดดูคู่มือ build
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
cd FrontISTR
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$HOME"
cmake --build build --parallel
cmake --install build
สามารถรันตัวอย่างที่รวมมาได้โดยไม่ต้องดาวน์โหลดใหม่ รันการวิเคราะห์ด้วยคำสั่งด้านล่าง แล้วไปยังขั้นตอน 04 เพื่อดูผลใน ParaView
cd tutorial/01_elastic_hinge
"$HOME/bin/fistr1"
ไบนารีและ container ใช้เวอร์ชัน master / LATEST ที่อัปเดตอย่างต่อเนื่อง สำหรับ release ที่ติด tag และสภาพแวดล้อมอื่น โปรดดูหน้าดาวน์โหลด เวอร์ชันและสภาพแวดล้อมอื่น
02
ดาวน์โหลดตัวอย่าง
ดาวน์โหลดและแตก ZIP ของตัวอย่าง ใช้ไฟล์ input สามไฟล์ในโฟลเดอร์ 01_elastic_hinge
รันการวิเคราะห์ในโฟลเดอร์ 01_elastic_hinge ที่แตกไฟล์แล้ว หากแตกไฟล์ด้วย command line บน macOS และ Linux ให้ใช้ unzip
01_elastic_hinge/
hecmw_ctrl.dat- ตำแหน่งไฟล์ input และ output
hinge.cnt- วัสดุ โหลด เงื่อนไขยึดรั้ง และการตั้งค่าการวิเคราะห์
hinge.msh- Mesh ของบานพับ
หากต้องการเตรียมตัวอย่างด้วย command line ให้รันบล็อกคำสั่งทั้งหมดด้านล่าง ณ ตำแหน่งที่ต้องการเก็บตัวอย่าง ระบบจะดาวน์โหลดและแตกไฟล์ แล้วเข้าไปยังโฟลเดอร์ตัวอย่าง จากนั้นสามารถรันคำสั่งวิเคราะห์ต่อในเทอร์มินัลเดิมได้
Windows / PowerShell
curl.exe -fL -o 01_elastic_hinge.zip https://www.frontistr.com/sys/files/01_elastic_hinge.zip
if ($LASTEXITCODE -eq 0) {
Expand-Archive -Path 01_elastic_hinge.zip -DestinationPath . -ErrorAction Stop
cd 01_elastic_hinge
}macOS / Linux
curl -fL -o 01_elastic_hinge.zip https://www.frontistr.com/sys/files/01_elastic_hinge.zip &&
unzip 01_elastic_hinge.zip &&
cd 01_elastic_hinge03
รันจากโฟลเดอร์ตัวอย่าง
รันการวิเคราะห์ในโฟลเดอร์ตัวอย่าง (01_elastic_hinge) และตรวจสอบว่า hecmw_ctrl.dat อยู่ในโฟลเดอร์นั้น
ไบนารี Windows
ดับเบิลคลิก fistr1.exe ในโฟลเดอร์ตัวอย่าง และเก็บ DLL ที่มาด้วยไว้ในโฟลเดอร์เดียวกัน หากหน้าต่างปิดเมื่อการรันเสร็จ ให้เปิดผลลัพธ์ที่เขียนไว้ในโฟลเดอร์ตัวอย่างด้วย ParaView
เมื่อต้องการตรวจสอบ log
หากหน้าต่างปิดทันทีโดยไม่มีผลลัพธ์ หรือหากต้องการตรวจสอบ log ให้เปิด PowerShell ในโฟลเดอร์ตัวอย่างแล้วรัน:
.\fistr1.exeDocker (Windows / macOS / Linux)
docker run --rm --platform linux/amd64 -v "${PWD}:/work" -w /work registry.gitlab.com/frontistr-commons/frontistr/fistr1:master fistr1เปิดเทอร์มินัลในโฟลเดอร์ตัวอย่าง (ใช้ PowerShell บน Windows) แล้วรันคำสั่ง โฟลเดอร์ตัวอย่างจะถูก mount ที่ /work ภายใน container และผลลัพธ์จะถูกบันทึกไว้ในโฟลเดอร์ตัวอย่างบนเครื่อง
เมื่อรันในเทอร์มินัล หากข้อความต่อไปนี้ปรากฏท้าย log แสดงว่าการวิเคราะห์เสร็จแล้ว ระยะเวลารันขึ้นอยู่กับ PC
FrontISTR Completed !!หากทำงานไม่ถูกต้อง
หากไม่พบไฟล์ input ให้ตรวจสอบว่ากำลังรันจากโฟลเดอร์ 01_elastic_hinge บน Windows ให้ตรวจสอบด้วยว่า fistr1.exe และ DLL ที่มาด้วยทั้งหมดถูกคัดลอกไว้ในโฟลเดอร์เดียวกัน
04
เปิดผลลัพธ์ใน ParaView
ติดตั้ง ParaView เลือก File → Open แล้วเปิดไฟล์ต่อไปนี้ในโฟลเดอร์ตัวอย่าง
hinge_vis_psf.0001.pvtu
ผลลัพธ์จะถูกเขียนไว้ในโฟลเดอร์ 01_elastic_hinge เดิม ต้องเก็บโฟลเดอร์ hinge_vis_psf.0001 ที่อยู่ข้างกันไว้ด้วย จึงอย่าย้ายไฟล์ .pvtu เพียงไฟล์เดียว 0000 คือสถานะเริ่มต้น และ 0001 คือผลหลังใส่โหลด
ตัวอย่างหน้าจอ: ParaView 6.1.0 บน macOS ขั้นตอนพื้นฐานเหมือนกันบน Windows และ Linux
-
04 / 1
หลังเปิดไฟล์ทันที ให้คลิก Apply ทางซ้าย
-
04 / 2
รูปทรงของบานพับจะแสดงหลังคลิก Apply
-
04 / 3
เปลี่ยน Solid Color บนแถบเครื่องมือด้านบนเป็น NodalMISES เพื่อแสดงการกระจายความเค้น von Mises
สีและพื้นหลังขึ้นอยู่กับการตั้งค่า ParaView ไม่จำเป็นต้องเหมือนภาพตัวอย่าง หากมองไม่เห็นโมเดล ให้ลอง Reset Camera
การวิเคราะห์ครั้งแรกเสร็จสมบูรณ์
ขั้นต่อไป ลองดูการตั้งค่าโหลดและวัสดุในตัวอย่าง คู่มืออธิบายโมเดลนี้และแนะนำการวิเคราะห์ประเภทอื่น