Fungsi Objek di OpenFOAM
Fungsi Objek di OpenFOAM. Objek fungsi dalam OpenFOAM memiliki antarmuka kelas yang berbeda dari objek fungsi C++ standar. Alih-alih mengandalkan pembebanan operator(), mereka mengikuti antarmuka kelas yang didefinisikan oleh kelas abstrak functionObject, yang ditunjukkan dalam daftar 75. Sebuah kelas dasar abstrak (functionObject) menetapkan antarmuka semua objek fungsi dalam OpenFOAM. Dibandingkan dengan objek fungsi C++ standar yang membebani operator panggilan, objek fungsi OpenFOAM menggunakan berbagai fungsi virtual yang memungkinkan mereka dipanggil pada langkah-langkah berbeda dari loop simulasi.

dipanggil dari dalam kelas mesh polyMesh, menggunakan akses konstan ke waktu simulasi.
Setiap entri dalam sub-kamus functions mendefinisikan parameter-parameter dari sebuah objek fungsi tunggal, yang kemudian diteruskan ke pemilih objek fungsi. Pemilih (functionObject::New) mengimplementasikan pola "Factory Pattern" yang dikenal dari OOP dan menggunakan tipe parameter kamus untuk menginisialisasi model konkret dari kelas abstrak functionObject selama runtime.
Objek fungsi dalam OpenFOAM juga merupakan objek yang melakukan operasi mirip fungsi selama simulasi, sehingga sifat tersebut membenarkan nama mereka. Deklarasi kelas functionObject juga menjadi contoh lain untuk menjelaskan perbedaan lebih lanjut:

