6.6.2 OpenFOAM®
Karena OpenFOAM® menggunakan platform grid tanpa struktur, semua entitas geometrisnya, seperti elemen, volume, luas, dan pusat massa, serta faktor pembobotan wajah, harus dievaluasi dan disimpan. Bagian ini memberikan gambaran umum tentang hubungan geometris yang diperlukan dalam evaluasi kuantitas geometris yang digunakan dalam OpenFOAM®.
6.6.2.1 Luas dan Pusat Massa Wajah
Untuk mengevaluasi luas dan pusat massa untuk wajah poligon generik, wajah tersebut didekomposisi menjadi serangkaian wajah segitiga. Metrik wajah poligon secara keseluruhan dihitung dengan menjumlahkan properti dari setiap bagian segitiga. Oleh karena itu, Persamaan (6.21)–(6.23) harus diterapkan untuk setiap sel komputasi.
OpenFOAM® membuat pusat-pusat wajah dan menghitung luasnya dalam file ” $FOAM_SRC/OpenFOAM/meshes/primitiveMesh/primitiveMeshFaceCentresAndAreas.C ” di mana fungsi berikut didefinisikan (Listing 6.3):

Listing 6.3 Fungsi yang digunakan untuk mendefinisikan pusat dan luas wajah
Fungsi ini memiliki tiga argumen, di mana argumen pertama, yang didefinisikan sebagai const, mewakili data yang dibaca dari file, sementara argumen kedua dan ketiga menunjukkan daftar balik dari objek-objek berdimensi sama dengan jumlah wajah di domain, yang berisi pusat-pusat (fCtrs) dan luas (fAreas) dari wajah poligonal, secara berturut-turut.
Data pointField adalah daftar semua titik mesh dengan setiap titik didefinisikan menggunakan tiga koordinat spasial. Data kedua yang diperlukan adalah definisi wajah. Dalam OpenFOAM®, ini disediakan dalam faceList (Listing 6.4), yang merupakan daftar identitas dari titik-titik yang mendefinisikan wajah-wajah mesh.

Listing 6.4 Daftar identitas titik yang mendefinisikan wajah-wajah
Kemudian dilakukan loop for untuk setiap wajah. Dalam loop, jumlah titik yang menggambarkan wajah dan identitasnya pertama-tama dibaca untuk mengakses koordinat dari vertex yang sesuai. Ketika sebuah wajah didefinisikan oleh hanya tiga vertex, maka perhitungan langsung dari lokasi pusat massa dan luasnya dilakukan, seperti yang ditunjukkan pada Listing 6.5.

Listing 6.5 Persamaan yang digunakan dalam menghitung pusat geometris dan luas wajah segitiga
Dalam kasus ini, pusat wajah fCtrs[facei] dievaluasi secara langsung menggunakan Persamaan (6.21) dengan k = 3, sementara luas wajah dihitung menggunakan Persamaan (6.23) di mana simbol “^” melambangkan produk vektor.
Untuk bentuk poligonal generik, wajah pertama-tama dipecah menjadi segitiga. Untuk tujuan itu, OpenFOAM® mendefinisikan pusat perkiraan untuk wajah berdasarkan nilai rata-rata dari vertex yang mendefinisikan wajah, seperti yang ditunjukkan dalam Listing 6.6.

Listing 6.6 Menghitung pusat perkiraan untuk wajah
Listing 6.7 menunjukkan bahwa dilakukan loop over semua wajah untuk menghitung pusat-pusat geometris dan luas segitiga ke dalam mana wajah tersebut dipecah.

Listing 6.7 Membongkar wajah poligonal menjadi segitiga dan menghitung pusat geometris serta luas segitiga tersebut
Ini dilakukan dengan menemukan pusat wajah “c” dari setiap segitiga menggunakan Persamaan (6.21) (faktor 1/3 diterapkan nanti), vektor normal wajah “n” dan magnitudenya “a” yang mendefinisikan luas segitiga seperti yang dinyatakan oleh Persamaan (6.23) (sekali lagi faktor 1/2 akan diterapkan nanti). Semua metrik segitiga yang dipecahkan kemudian dijumlahkan dan dinormalkan sesuai dengan Persamaan (6.22), di mana sekarang faktor 1/3 dan 1/2 diterapkan, seperti yang ditunjukkan dalam Listing 6.8.

Listing 6.8 Menghitung pusat massa dan luas wajah
Dalam kasus wajah degeneratif, yaitu, ketika “sumA < suatu angka yang sangat kecil”, nilai penyelamatan diatur untuk wajah tersebut.