เริ่มต้นใช้งาน

FrontISTR / Getting Started

เริ่มต้นใช้งาน

ลองวิเคราะห์ชิ้นส่วนบานพับด้วย FrontISTR แล้วดูการกระจายความเค้นใน ParaView เพียงดาวน์โหลด solver และตัวอย่างที่เตรียมไว้ ก็ไม่จำเป็นต้องเริ่มจากการสร้าง mesh สำหรับการรันครั้งแรกนี้

ดูขั้นตอน

การกระจายความเค้น von Mises ในบานพับ โดยมีการกระจุกตัวของความเค้นรอบรู
ทำการวิเคราะห์สถิติเชิงเส้นของบานพับ เป้าหมายคือแสดง NodalMISES ซึ่งเป็นความเค้น von Mises ที่โหนด เป็นแผนภาพคอนทัวร์สี

01

เตรียม solver

เตรียมไบนารีสำหรับ Windows หรืออิมเมจ Docker ที่ใช้ได้บน Windows, macOS และ Linux

Windows (64-bit)

ดาวน์โหลดเวอร์ชัน Windows

แตกไฟล์ 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"

Build จากซอร์สโค้ด

ไบนารีและ container ใช้เวอร์ชัน master / LATEST ที่อัปเดตอย่างต่อเนื่อง สำหรับ release ที่ติด tag และสภาพแวดล้อมอื่น โปรดดูหน้าดาวน์โหลด เวอร์ชันและสภาพแวดล้อมอื่น

02

ดาวน์โหลดตัวอย่าง

ดาวน์โหลดและแตก ZIP ของตัวอย่าง ใช้ไฟล์ input สามไฟล์ในโฟลเดอร์ 01_elastic_hinge

ดาวน์โหลดตัวอย่าง (ZIP)

รันการวิเคราะห์ในโฟลเดอร์ 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_hinge

03

รันจากโฟลเดอร์ตัวอย่าง

รันการวิเคราะห์ในโฟลเดอร์ตัวอย่าง (01_elastic_hinge) และตรวจสอบว่า hecmw_ctrl.dat อยู่ในโฟลเดอร์นั้น

ไบนารี Windows

ดับเบิลคลิก fistr1.exe ในโฟลเดอร์ตัวอย่าง และเก็บ DLL ที่มาด้วยไว้ในโฟลเดอร์เดียวกัน หากหน้าต่างปิดเมื่อการรันเสร็จ ให้เปิดผลลัพธ์ที่เขียนไว้ในโฟลเดอร์ตัวอย่างด้วย ParaView

เมื่อต้องการตรวจสอบ log

หากหน้าต่างปิดทันทีโดยไม่มีผลลัพธ์ หรือหากต้องการตรวจสอบ log ให้เปิด PowerShell ในโฟลเดอร์ตัวอย่างแล้วรัน:

.\fistr1.exe

Docker (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

ตัวอย่างหน้าจอ: ParaView 6.1.0 บน macOS ขั้นตอนพื้นฐานเหมือนกันบน Windows และ Linux

  1. 04 / 1

    หลังเปิดไฟล์ทันที ให้คลิก Apply ทางซ้าย

    หลังเปิดไฟล์ทันที ให้คลิก Apply ทางซ้าย
  2. 04 / 2

    รูปทรงของบานพับจะแสดงหลังคลิก Apply

    รูปทรงของบานพับจะแสดงหลังคลิก Apply
  3. 04 / 3

    เปลี่ยน Solid Color บนแถบเครื่องมือด้านบนเป็น NodalMISES เพื่อแสดงการกระจายความเค้น von Mises

    เปลี่ยน Solid Color บนแถบเครื่องมือด้านบนเป็น NodalMISES เพื่อแสดงการกระจายความเค้น von Mises

สีและพื้นหลังขึ้นอยู่กับการตั้งค่า ParaView ไม่จำเป็นต้องเหมือนภาพตัวอย่าง หากมองไม่เห็นโมเดล ให้ลอง Reset Camera

การวิเคราะห์ครั้งแรกเสร็จสมบูรณ์

ขั้นต่อไป ลองดูการตั้งค่าโหลดและวัสดุในตัวอย่าง คู่มืออธิบายโมเดลนี้และแนะนำการวิเคราะห์ประเภทอื่น