Proses pembuatan mesh (meshing) merupakan salah satu tahap paling krusial dalam kustomisasi dan simulasi Computational Fluid Dynamics (CFD). Untuk geometri 3D yang rumit seperti bodi kendaraan, airfoil, maupun manifol industri membuat hex-dominant mesh berkualitas tinggi secara manual cukup menantang.

snappyHexMesh (sHM) adalah utilitas mesh generation bawaan OpenFOAM yang dirancang khusus untuk menghasilkan mesh hexahedral 3D secara otomatis dari berkas geometri permukaan seperti STL atau OBJ.

Mengapa Menggunakan snappyHexMesh?

  • Hexahedral Dominant: Menghasilkan elemen sel bermata enam yang mendukung akurasi serta konvergensi numerik tinggi pada solver OpenFOAM.
  • Otomatisasi Geometri Kompleks: Mampu menyesuaikan sel (snap) ke kontur permukaan rumit tanpa perlu pembagian blok domain (blockMesh) secara manual.
  • Refinement & Boundary Layer: Memungkinkan penambahan resolusi lokal (surface & region refinement) dan lapisan batas (inflation layers) untuk menangkap gradien kecepatan dekat dinding.

Alur Kerja Utama snappyHexMesh

Proses pemodelan pada snappyHexMesh mengeksekusi tiga tahap fungsional utama yang diatur dalam file konfigurasi system/snappyHexMeshDict:

  1. Castellated Mesh Generation: Memotong sel-sel dasar (background mesh) yang bersinggungan dengan geometri STL dan menghapus sel di luar/dalam domain fluida.
  2. Snapping Process: Menarik simpul-simpul sel tepi (surrounding nodes) agar menempel pas pada permukaan permukaan STL.
  3. Layer Addition: Menambahkan lapisan sel memanjang (prismatic layers) pada permukaan dinding (wall patch) untuk pemodelan boundary layer.

Panduan Langkah demi Langkah

1. Siapkan File Geometri dan Background Mesh:Pastikan skala geometri dalam satuan meter (m).

Ekspor geometri 3D Anda ke format .stl (disarankan ASCII/Binary terpisah per-patch) dan simpan ke folder constant/triSurface/. Buat background mesh berupa kubus dasar yang mencakup seluruh domain menggunakan blockMesh melalui konfigurasi system/blockMeshDict.

2. Konfigurasi system/snappyHexMeshDict:Atur parameter castellatedMeshControls.

Buka system/snappyHexMeshDict. Tentukan nama surface STL pada bagian geometry, lalu atur refinementSurfaces dan refinementRegions untuk menentukan tingkat kerapatan sel (refinement level).

3. Tentukan Titik Domain Fluida (locationInMesh):Titik harus berada tepat di dalam area fluida, bukan pada permukaan STL.

Atur parameter locationInMesh (x y z) di dalam castellatedMeshControls. Titik kooridnat ini memberi tahu OpenFOAM wilayah sel mana yang harus dipertahankan sebagai domain aliran fluida.

4. Jalankan Utilitas snappyHexMesh:Gunakan mode eksekusi paralel untuk geometri besar.

Jalankan perintah berikut pada terminal OpenFOAM:

Bash

snappyHexMesh -overwrite

Opsi -overwrite memastikan struktur folder waktu (time directories) tidak bertumpuk dan langsung memperbarui folder polyMesh.

5. Evaluasi dan Validasi Kualitas Mesh:Gunakan checkMesh dan ParaView.

Periksa kualitas elemen mesh dengan menjalankan perintah checkMesh. Pastikan kriteria seperti non-orthogonality, skewness, dan aspect ratio berada dalam rentang toleransi solver. Visualisasikan hasilnya menggunakan ParaView dengan mengetikkan paraFoam.

Tips Optimasi Kualitas Mesh

Parameter Fungsi Utama Rekomendasi Praktis
maxGlobalCells Batas maksimum sel dalam domain Sesuaikan dengan kapasitas RAM komputer Anda
nCellsBetweenLevels Transisi ukuran sel Gunakan nilai 3 atau 4 agar perubahan resolusi sel mulus
resolveFeatureAngles Deteksi sudut dan lekukan tajam Atur di kisaran 30 hingga 60 derajat