Solver Control (fv Solution)
Formulasi diskritisasi dari model matematika menghasilkan sistem persamaan aljabar berbentuk Ax = b. Sistem ini harus diselesaikan dengan cara tertentu, yang dapat dilakukan menggunakan metode langsung atau iteratif. Metode langsung memiliki biaya komputasi yang sangat tinggi, saat menyelesaikan matriks besar yang sparse, seperti yang disebutkan oleh [2]. Semua pengaturan yang terkait dengan proses penyelesaian persamaan matriks tersebut, serta kopling tekanan-kecepatan dilakukan dalam kamus sistem/fvSolution. Bergantung pada solver yang digunakan, isi dari file tersebut berubah. Untuk tutorial rongga yang digunakan sebelumnya dari solver icoFoam, definisi berikut dalam kamus fvSolution sudah disiapkan:
Kamus ini berisi dua subkamus utama: solver dan PISO. Subkamus solver harus hadir untuk semua solver, karena berisi pilihan dan parameter untuk berbagai solver matriks yang digunakan. Penting untuk membedakan solver matriks dari aplikasi solver, yang mengimplementasikan model matematika tertentu. Kamus kedua menyimpan parameter yang diperlukan oleh algoritma kopling tekanan-kecepatan PISO. Ada algoritma kopling tekanan-kecepatan lainnya dalam OpenFOAM, seperti SIMPLE dan PIMPLE. Masing-masing dari mereka memerlukan kamus dengan nama algoritma tertentu untuk hadir dalam fvSolution.
INFO
Ada dua jenis solver dalam OpenFOAM: aplikasi solver dan solver linier. Aplikasi solver adalah program yang digunakan langsung oleh pengguna akhir untuk menjalankan simulasi. Solver linier adalah algoritma yang digunakan untuk menyelesaikan sistem persamaan aljabar linier sebagai bagian dari prosedur solusi simulasi. Biasanya, aplikasi solver disebut “solver” singkat, jadi istilah ini digunakan untuk aplikasi solver mulai dari titik ini.
solver Linier
Contoh yang ditunjukkan di atas, menggunakan PCG untuk menyelesaikan persamaan tekanan dan matriksnya diprekonidisi menggunakan DIC, yang dapat digunakan untuk matriks simetris. Untuk persamaan momentum di sisi lain, solver asimetris PBiCG digunakan, bersama dengan prekondisioner DILU.
Terlepas dari solver matriks, parameter-parameter berikut dapat didefinisikan:
tolerance mendefinisikan kriteria keluar untuk solver. Ini berarti bahwa jika perubahan dari satu iterasi ke iterasi berikutnya berada di bawah ambang batas ini, proses penyelesaian diasumsikan sudah cukup konvergen dan dihentikan. Saat melakukan misalnya simulasi steady state dari masalah steady, toleransi harus cukup kecil, untuk meningkatkan konvergensi dan akurasi. Untuk masalah transien di sisi lain, solusi steady tidak bisa diperoleh dan oleh karena itu toleransi tidak boleh dipilih sangat kecil.
relTol mendefinisikan toleransi relatif sebagai kriteria keluar untuk solver. Jika diatur ke nilai lain selain 0, itu menggantikan pengaturan toleransi. Sedangkan toleransi mendefinisikan perubahan absolut antara dua iterasi berturut-turut, relTol mendefinisikan perubahan relatif. Nilai 0.01 memaksa solver untuk beriterasi sampai perubahan 100% tercapai, antara dua iterasi berturut-turut. Ini berguna, ketika sistem yang sangat tidak stabil di-simulasikan dan pengaturan toleransi menyebabkan jumlah iterasi yang tinggi.
maxIter adalah parameter opsional dan memiliki nilai default 1000. Ini mendefinisikan jumlah iterasi maksimal, sampai solver dihentikan.
Pressure-Velocity Coupling
Bergantung pada aplikasi solver yang dipilih, algoritma kopling tekanan-kecepatan yang berbeda diimplementasikan dalam solver yang bersangkutan. Aplikasi solver mencoba membaca subkamus di fvSolution, bergantung pada algoritma kopling tekanan-kecepatan yang diimplementasikan.
TIP
Untuk informasi latar belakang lebih lanjut tentang berbagai algoritma, pembaca disarankan untuk merujuk [2, 7]. Ada banyak informasi yang tersedia di OpenFOAM wiki juga.
Ada beberapa parameter yang harus didefinisikan bagaimanapun juga:
nNonOrthogonalCorrectors parameter mendefinisikan jumlah siklus loop internal yang digunakan untuk koreksi non-ortogonalitas mesh. Parameter ini diperlukan ketika misalnya mesh tetrahedral digunakan atau ketika penyesuaian mesh adaptif dinamis lokal diterapkan pada mesh heksahedral. Efek non-ortogonalitas terhadap diskritisasi persamaan dijelaskan secara detail oleh [3] dan [2]. Loop internal diperkenalkan karena koreksi bersifat eksplisit. Itu perlu diterapkan beberapa kali, karena setiap aplikasi mengurangi kesalahan dan tidak sepenuhnya menghapusnya.
pRefPoint/pRefCell Salah satu dari opsi ini mendefinisikan lokasi di mana tekanan referensi dianggap berada. pRefPoint mengambil vektor dalam sistem koordinat mesh, sedangkan pRefCell hanya mengambil label sel di mana tekanan seharusnya berada. Untuk aliran multiphase, titik harus selalu tertutup oleh salah satu fase dan tidak berubah di antara keduanya. Ini hanya diperlukan jika tekanan tidak ditentukan oleh kondisi batas apa pun.
pRefValue mendefinisikan nilai tekanan referensi dan biasanya nol.
Parameter lain mungkin diperlukan oleh algoritma kopling tekanan-kecepatan tertentu atau solver. Semakin kompleks solver, semakin banyak opsi yang biasanya diperlukan hadir di fvSolution. Tutorial untuk solver biasanya menyediakan informasi yang cukup untuk menjalankan kasus.