infistream

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:
Berbeda dengan objek fungsi C++, penugasan dan konstruksi salinan keduanya dilarang untuk objek fungsi dalam OpenFOAM, sehingga tidak mungkin untuk melewatinya sebagai argumen nilai. Larangan penugasan dan konstruksi salinan tidak memiliki dampak negatif pada objek fungsi OpenFOAM: titik pusat penggunaan objek fungsi dalam OpenFOAM adalah atribut privat functionObjectList dalam kelas Waktu, sehingga tidak perlu menginstansiasi mereka secara manual dalam sebuah daftar atau melewatinya dengan nilai.
Open chat
Infichat
Hello 👋
Thank you for text me
Can we help you?