Numerical operations
Operasi numerik digunakan oleh solver dan bertanggung jawab atas komponen diskritisasi persamaan dari simulasi. Operasi numerik yang berbeda memiliki sifat yang berbeda dan memilihnya memerlukan pengalaman dalam CFD dan juga, idealnya, dalam matematika numerik.
Bagian dari OpenFOAM yang bertanggung jawab atas operasi numerik dari FVM dapat ditemukan dengan menjalankan alias foamfv di konsol, atau beralih ke direktori yang sesuai:
Operasi numerik terdiri dari skema interpolasi yang kemudian digunakan oleh operator diferensial diskrit untuk mengdiskritisasi persamaan model.Operator diferensial diskrit yang sering digunakan dalam CFD adalah: divergensi (∇·), gradien(∇), laplacian (∇· ∇), dan curl (∇×). Mereka dievaluasi secara eksplisit atau implisit. Operator eksplisit menghasilkan lapangan baru sebagai hasilnya.
Pilihan standar diskritisasi dalam OpenFOAM didasarkan pada teorema divergensi, dan perhitungan operator didelegasikan ke skema diskritisasi. Daftar kode sumber di bawah ini berisi implementasi kode yang mendelegasikan perhitungan divergensi dari operator ke skema konveksi.
Skema-skema dapat dipilih melalui RTS, namun mereka harus mematuhi antarmuka yang ditentukan oleh convectionScheme.H. Desain yang fleksibel seperti ini dapat dirangkum dengan cara berikut:
- Operator mengalihkan diskritisasi ke skema-skema,
- Skema-skema menyusun hierarki yang dapat dipilih saat runtime,
- Untuk menulis skema konveksi baru, seseorang hanya perlu mewarisi dari convectionScheme dan menambahkan RTS,
- Setelah skema konveksi diimplementasikan, tidak perlu mengubah kode aplikasi solver apa pun.
Dari sudut pandang desain perangkat lunak, skema interpolasi dienkapsulasi ke dalam kelas-kelas yang membentuk hierarki kelas. Beberapa skema berbagi atribut dan fungsionalitas, sehingga masuk akal untuk mengorganisir mereka sebagai hierarki kelas. Sebagai konsekuensi dari jenis organisasi ini, mekanisme RTS memungkinkan pengguna untuk memilih skema diskritisasi/interpolasi yang berbeda pada awal (atau bahkan selama) simulasi. Tidak diperlukan re-kompilasi dari kode program.