Setting Initial Conditions
Pada bagian ini, dijelaskan tentang bagaimana mengatur kondisi awal dari sebuah simulasi. Kondisi awal menentukan nilai-nilai bidang internal pada awal simulasi. Ada berbagai macam alat yang berbeda yang menginisialisasi bidang sesuai dengan spesifikasi pengguna. Bab 8 menyediakan informasi tentang bagaimana mengembangkan aplikasi pra-pemrosesan baru.
Kondisi awal dapat sederhana, seperti dalam kasus cavity: kecepatan dan tekanan internal awal diatur menjadi nilai vektor seragam 0. Setelah langkah waktu pertama, solusi aliran yang dihitung biasanya cukup berbeda dari yang awalnya diatur. Untuk aliran tunggal fase tak bergerak yang diam, kondisi awal dapat dianggap sebagai tebakan awal yang mempercepat konvergensi ke keadaan mantap. Jika tebakan ini terlalu jauh dari solusi yang tepat, dapat terjadi divergensi solver.
Dalam situasi lain, kondisi awal sangat penting, karena mereka menentukan bagaimana bidang berkembang dari nilai awalnya seiring waktu. Simulasi aliran kompresibel sangat bergantung pada tekanan awal, suhu, dan/atau kepadatan untuk menghitung persamaan keadaan dengan benar. Simulasi multiphase tak bergerak memerlukan nilai awal yang sangat akurat untuk bidang penanda fase yang memisahkan fase-fluida. Kesalahan besar dalam penanda fase awal menyebabkan kesalahan yang lebih besar dalam aproksimasi lengkung, menyebabkan ketidakstabilan numerik yang kuat dan kemungkinan kegagalan yang serius.
Seperti yang disebutkan sebelumnya, kasus contoh cavity relatif toleran terhadap definisi kondisi awal. Kasus yang memiliki persyaratan khusus pada kondisi awal adalah kasus damBreak, disimulasikan dengan solver interFoam. Solver interFoam adalah solver aliran dua fase, menggunakan metode Volume-of-Fluid aljabar untuk membedakan antara dua fase fluida tak bergerak dan tidak dapat tercampur. Untuk tujuan ini, bidang skalar baru diperkenalkan: alpha.water. Fase gas dan cair dalam contoh ini akan memiliki nilai alpha.water masing-masing 0 dan 1. Untuk contoh pertama, tetes air akan ditambahkan ke kasus damBreak, seperti yang ditunjukkan dalam gambar 3.2.
Pertama, salin kasus tutorial damBreak dan ubah namanya:
Nilai-nilai bidang asli biasanya disimpan dalam sub-folder 0, atau dalam file bidang *.orig di folder 0. Untuk mengatur kembali nilai-nilai awal alpha.water, file 0/alpha.water disalin ke 0/alpha.water.
Memeriksa kondisi saat ini dari bidang 0/alpha.water pada titik ini, menunjukkan bahwa seluruh bidang internal memiliki nilai seragam 0:
Utilitas setFields dapat digunakan untuk membuat nilai bidang yang lebih kompleks dan tidak seragam. Utilitas ini dikendalikan oleh kamus sistem/setFieldsDict. File kamus templat untuk aplikasi setFields disimpan di direktori sumber aplikasi: $FOAM_APP/utilities/preProcessing/setFields. Karena file ini cukup panjang, isinya tidak ditampilkan. Namun, akan bermanfaat untuk menyelidiki isi setFieldsDict, karena itu menyimpan semua spesifikasi yang tersedia yang dapat digunakan oleh aplikasi setFields untuk pra-pemrosesan bidang tidak seragam. Isi setFieldsDict untuk kasus uji contoh ditunjukkan di bawah ini, bersama dengan entri sub-kamus sphereToCell yang ditambahkan yang digunakan untuk menginisialisasi sebuah tetesan kecil, yaitu sebuah lingkaran dengan nilai alpha.water sebesar 1:
Gambar 3.2: Samping demi samping kondisi awal sebelum dan setelah menambahkan tetesan.
defaultFieldValues akan mengatur bidang internal ke nilai default yang diberikan 0, sebelum melanjutkan untuk memproses sub-kamus daerah. Sintaks setFieldsDict sebagian besar dapat dimengerti sendiri untuk pemilihan volume bentuk sederhana seperti yang ditunjukkan di atas. Untuk volume yang dipilih, semua sel yang pusat selnya berada dalam volume ini akan memiliki bidang yang diberikan diatur sesuai. Sebagai contoh, sumber sphereToCell memilih sel yang pusat selnya berada dalam bola dengan pusat dan jari-jari yang ditentukan, dan mengatur nilai bidang dan U = (−1, 0, 0).
Untuk pra-pemrosesan bidang alpha.water dan menjalankan simulasi, langkah-langkah berikut perlu dieksekusi di baris perintah:
Ilustrasi kondisi awal yang berubah karena penambahan pada setFieldDict kita ditunjukkan di bawah ini dalam gambar 3.2.