Latar Belakang:
Saya hanya membangun satu solusi numerik yang berfungsi untuk 2d Navier-Stokes, untuk kursus. Itu adalah solusi untuk aliran rongga yang digerakkan oleh tutup. Kursus ini, bagaimanapun, membahas sejumlah skema untuk diskritisasi spasial dan diskritisasi waktu. Saya juga telah mengambil lebih banyak kursus manipulasi simbol yang diterapkan pada NS.
Beberapa pendekatan numerik untuk menangani konversi persamaan analitik / simbolik dari PDE ke perbedaan hingga meliputi:
- Euler FTFS, FTCS, BTCS
- Longgar
- Leapfrog titik tengah
- Lax-Wendroff
- MacCormack
- grid offset (difusi spasial memungkinkan informasi menyebar)
- TVD
Bagi saya, pada saat itu, ini tampak seperti "masukkan-nama menemukan skema dan itu berhasil". Banyak dari ini berasal dari sebelum "silikon berlimpah". Mereka semua adalah perkiraan. Dalam batas mereka. secara teori, mengarah ke PDE.
Sementara Direct Numerical Simulation ( DNS ) menyenangkan, dan Reynolds Averaged Navier-Stokes ( RANS ) juga menyenangkan, mereka adalah dua "titik akhir" dari kontinum antara komputasional yang dapat ditelusur secara komputasional, dan sepenuhnya mewakili fenomena. Ada beberapa keluarga pendekatan yang hidup di dalamnya.
Saya mempunyai profesor CFD mengatakan, dalam perkuliahan, bahwa sebagian besar pemecah CFD membuat gambar yang bagus, tetapi sebagian besar, gambar-gambar itu tidak mewakili kenyataan dan itu bisa sangat sulit, dan membutuhkan banyak pekerjaan, untuk mendapatkan solusi solver yang memang mewakili kenyataan.
Urutan perkembangan (seperti yang saya mengerti, tidak lengkap) adalah:
- mulai dengan persamaan yang mengatur -> PDE
- tentukan diskritisasi spasial dan temporal Anda -> kisi dan aturan FD
- berlaku untuk domain termasuk kondisi awal dan kondisi batas
- memecahkan (banyak variasi pada inversi matriks)
melakukan pengecekan realitas kotor, cocok dengan solusi yang diketahui, dll.
membangun beberapa model fisik yang lebih sederhana yang berasal dari hasil analitik
- mengujinya, menganalisis, dan mengevaluasi
- iterate (melompat kembali ke langkah 6, 3, atau 2)
Pikiran:
Saya baru-baru ini bekerja dengan model CART, pohon miring, hutan acak, dan gradien meningkatkan pohon. Mereka mengikuti aturan yang diturunkan secara matematis, dan matematika menggerakkan bentuk pohon. Mereka bekerja untuk membuat formulir yang didiskritisasi dengan baik.
Meskipun pendekatan numerik yang diciptakan manusia ini agak berhasil, ada "voodoo" yang luas yang diperlukan untuk menghubungkan hasil mereka dengan fenomena fisik yang dimaksudkan untuk dimodelkan. Seringkali simulasi tidak secara substansial menggantikan pengujian dan verifikasi dunia nyata. Sangat mudah untuk menggunakan parameter yang salah, atau tidak memperhitungkan variasi dalam geometri atau parameter aplikasi yang dialami di dunia nyata.
Pertanyaan:
- Apakah ada pendekatan untuk membiarkan sifat masalah menentukan
diskritisasi yang sesuai, skema perbedaan spasial dan temporal, kondisi awal, atau solusi? - Dapatkah solusi definisi tinggi digabungkan dengan teknik pembelajaran mesin digunakan untuk membuat skema differencing yang memiliki ukuran langkah yang jauh lebih besar tetapi tetap mempertahankan konvergensi, akurasi, dan semacamnya?
- Semua skema ini dapat diakses "dapat ditiru secara manusiawi untuk diturunkan" - skema ini memiliki beberapa elemen. Apakah ada skema pembeda dengan ribuan elemen yang melakukan pekerjaan lebih baik? Bagaimana ini diturunkan?
Catatan: Saya akan menindaklanjuti dengan intialized secara empiris dan diturunkan secara empiris (sebagai lawan analitis) dalam pertanyaan terpisah.
MEMPERBARUI:
Penggunaan pembelajaran yang mendalam untuk mempercepat aliran kisi Boltzmann. Memberi ~ 9x percepatan untuk kasus khusus mereka
Hennigh, O. (dalam siaran pers). Lat-Net: Simulasi Aliran Kisi Boltzmann Terkompresi menggunakan Deep Neural Networks. Diperoleh dari: https://arxiv.org/pdf/1705.09036.pdf
Repo dengan kode (saya pikir):
https://github.com/loliverhennigh/Phy-NetSekitar 2 urutan lebih cepat dari GPU, 4 urutan lebih besar, atau ~ O (10.000x) lebih cepat dari CPU, dan perangkat keras yang sama.
Guo, X., Li, W. & Ioiro, F. Jaringan Syaraf Konvolusional untuk Perkiraan Aliran Mantap. Diperoleh dari: https://autodeskresearch.com/publications/convolutional-neural-networks-steady-flow-approximation
Orang lain yang telah melihat ke topik sekitar 20 tahun yang lalu:
Muller, S., Milano, M. & Koumoutsakos P. Aplikasi algoritma pembelajaran mesin untuk aliran pemodelan dan optimasi. Pusat Penelitian Tahunan Riset Turbulensi 1999 Diperoleh dari: https://web.stanford.edu/group/ctr/ResBriefs99/petros.pdf
Pembaruan (2017):
Ini mengkarakterisasi penggunaan metode non-gradien dalam pembelajaran mendalam, sebuah arena yang secara eksklusif berbasis gradien. Sementara implikasi langsung dari kegiatan adalah dalam pembelajaran yang mendalam, ini juga menunjukkan bahwa GA dapat digunakan sebagai setara dalam memecahkan masalah yang sangat sulit, sangat dalam, sangat kompleks pada tingkat yang konsisten dengan atau lebih unggul dari metode berbasis gradien keturunan.
Dalam lingkup pertanyaan ini, mungkin menyarankan bahwa serangan berbasis pembelajaran skala mesin yang lebih besar memungkinkan "templat" dalam waktu dan ruang yang secara substansial mempercepat konvergensi metode gradien-domain. Artikel ini lebih jauh mengatakan bahwa kadang-kadang pergi ke arah gradient descent bergerak menjauh dari solusi. Sementara dalam setiap masalah dengan optima lokal atau lintasan patologis (sebagian besar masalah dunia nyata bernilai tinggi memiliki beberapa di antaranya), diharapkan gradien tersebut tidak informatif secara global, masih bagus untuk memilikinya dikuantifikasi dan divalidasi secara empiris seperti sebelumnya. dalam makalah ini dan kemampuan untuk "melompat batas" tanpa memerlukan "pengurangan pembelajaran" saat Anda mendapatkan momentum atau kurang-relaksasi.
Pembaruan (2019):
Tampaknya google sekarang memiliki kontribusi "cara menemukan pemecah yang lebih baik" dari puzzle AI. tautan Ini adalah bagian dari pembuatan AI solver.
** Pembaruan (2020): ** Dan sekarang mereka melakukannya, dan melakukannya dengan baik ...
https://arxiv.org/pdf/1911.08655.pdf
Dapat dikatakan bahwa mereka kemudian dapat mendekonstruksi NN mereka untuk menentukan diskritisasi aktual. Saya sangat suka gambar 4.
sumber
Jawaban:
Ini adalah lelucon lama bahwa CFD adalah singkatan dari "fluid fluid dynamics". Namun demikian, ini digunakan - dan bermanfaat - dalam berbagai aplikasi. Saya percaya ketidakpuasan Anda berasal dari tidak cukup membedakan antara dua langkah yang saling berhubungan tetapi berbeda: menciptakan model matematika dari proses fisik dan menyelesaikannya secara numerik. Izinkan saya mengomentari ini sedikit:
Tidak ada model matematika (atau benar-benar, ada) realitas fisik yang pernah benar ; paling baik itu berguna untuk memprediksi hasil pengukuran dalam set keadaan yang sangat tepat (tapi mudah-mudahan besar). Ini termasuk fakta bahwa harus dimungkinkan untuk mendapatkan prediksi seperti itu dengan konfigurasi tertentu; inilah sebabnya kami memiliki seluruh hierarki model mulai dari teori medan kuantum hingga mekanika Newton. Secara khusus, persamaan Navier-Stokes tidak menggambarkan aliran fluida, mereka memberikan prediksi aspek spesifik dari perilaku cairan tertentu dalam kondisi tertentu.
Untuk model matematika yang lebih rumit (seperti persamaan Navier-Stokes), Anda tidak pernah bisa mendapatkan solusi yang tepat (dan karenanya prediksi), tetapi hanya perkiraan numerik. Ini bukan hal yang buruk seperti kedengarannya, karena pengukuran yang ingin Anda bandingkan dengan mereka sendiri tidak pernah tepat. Seperti halnya dalam pemilihan model, ada trade-off antara akurasi dan keterlacakan - tidak masuk akal untuk menghabiskan waktu atau uang untuk mendapatkan solusi yang lebih akurat daripada yang dibutuhkan. Pada titik ini, menjadi murni pertanyaan tentang bagaimana memperkirakan secara numerik solusi (dalam hal ini) persamaan diferensial parsial, yang merupakan subjek dari seluruh bidang matematika: analisis numerik. Bidang ini berkaitan dengan pembuktianperkiraan kesalahan untuk metode numerik tertentu (sekali lagi, dalam kondisi tertentu, ditentukan secara eksplisit,). Pernyataan Anda "masukkan-nama menemukan skema dan ternyata berhasil", sangat tidak adil - itu harus "masukkan-nama menemukan skema dan membuktikan bahwa itu berhasil". Juga, skema ini tidak ditarik keluar dari udara tipis - mereka berasal dari prinsip-prinsip matematika yang dipahami dengan baik.
(Sebagai contoh, skema perbedaan hingga dapat diturunkan menggunakan pendekatan Taylor-dari pesanan yang diberikan. Hal ini tentu mungkin untuk - dan beberapa orang melakukannya - mendapatkan skema perbedaan tingkat tinggi dan menerapkannya, tetapi ada hukum pengembalian yang semakin berkurang. : ini hanya dapat diotomatisasi sebagian, dan karenanya membutuhkan banyak usaha, dan kondisi tertentu yang semakin ketat harus dipenuhi untuk benar-benar mendapatkan akurasi yang lebih tinggi darinya. Juga, pada titik tertentu lebih baik menggunakan skema yang berbeda sama sekali seperti metode spektral.)
Tema umum di sini adalah bahwa kedua model dan skema numerik hadir dengan serangkaian penerapan, dan penting untuk memilih kombinasi yang tepat untuk tujuan tertentu. Inilah tepatnya mengapa seorang ilmuwan komputasi perlu mengetahui ilmu domain (untuk mengetahui model mana yang valid dalam situasi mana) dan matematika (untuk mengetahui metode mana yang berlaku untuk model mana, dan keakuratan mana)! Dengan mengabaikan label "hanya digunakan sebagai petunjuk" ini mengarah pada menghasilkan "omong kosong komputasi" (dalam pengertian teknis Harry Frankfurt) yang disebut oleh profesor CFD Anda.
Mengenai mengapa menggunakan model komputasi ketika Anda memiliki model fisik (seperti terowongan angin): Salah satu alasannya adalah bahwa menjalankan perangkat lunak dapat menjadi pesanan yang jauh lebih murah daripada membuat model dan memasukkannya ke dalam terowongan angin. Selain itu, biasanya bukan salah satu atau: Misalnya, ketika mendesain mobil atau pesawat terbang, Anda akan menjalankan ratusan atau ribuan simulasi untuk mempersempit segalanya, dan kemudian hanya untuk kandidat akhir (s) meletakkan model ke angin terowongan.
Memperbarui:
Menggunakan pembelajaran mesin daripada simulasi numerik seperti mengatakan "tidak memiliki model lebih baik daripada memiliki model perkiraan", yang saya ragu siapa pun dalam dinamika fluida (atau bidang lainnya) akan setuju dengan. Yang sedang berkata, itu tentu mungkin (dan benar-benar dilakukan) untuk menggunakan pembelajaran mesin untuk memilih "geometri atau parameter aplikasi" yang tidak diketahui berdasarkan kesepakatan dengan data yang diukur; Namun, di sini juga metode berbasis model seperti kuantifikasi ketidakpastian atau (Bayesian) masalah terbalik biasanya berkinerja lebih baik (dan didasarkan pada prinsip-prinsip matematika yang ketat). Memilih angka parameter seperti ukuran langkah atau urutan metode menggunakan pembelajaran mesin juga mungkin pada prinsipnya, tapi saya gagal melihat manfaatnya karena ada teori matematika yang memberi tahu Anda cara memilih parameter-parameter ini berdasarkan pada model (matematika) Anda.
Pembaruan 2:
Makalah yang Anda tautkan adalah tentang grafik komputer , bukan ilmu komputasi : tujuan mereka bukan untuk memiliki simulasi yang akurat (yaitu, solusi numerik dari model matematika) dari proses fisik, tetapi sesuatu yang hanya terlihat seperti mata telanjang. (kasus ekstrim "dinamika fluida berwarna" ...) - itu adalah masalah yang sangat berbeda. Secara khusus, tidak ada batasan kesalahan untuk output dari jaringan terlatih dibandingkan dengan solusi yang sesuai dengan persamaan Navier-Stokes, yang merupakan bagian yang tidak terpisahkan dari metode numerik apa pun.
(Dan pertanyaan pertama Anda dimulai dari premis yang salah: dalam setiap pendekatan, masalahnya menentukan model, model menentukan diskritisasi, diskritisasi menentukan pemecah.)
sumber
in every approach, the problem determines the model, the model determines the discretization, the discretization determines the solver.
Saya pikir Anda sedang mencampur beberapa ide berbeda yang menyebabkan kebingungan. Ya, ada berbagai cara untuk mendiskritisasi masalah yang diberikan. Memilih cara yang tepat mungkin terlihat seperti "voodoo" ketika Anda mempelajari hal-hal ini di kelas, tetapi ketika peneliti memilihnya, mereka melakukannya dengan memanfaatkan pengalaman gabungan dari lapangan, seperti yang diterbitkan dalam literatur. Oleh karena itu mereka membuat pilihan yang jauh lebih banyak informasi daripada yang dapat dilakukan seorang siswa.
Pertanyaan 1: Jika Anda memecahkan masalah, dan Anda beralih dari satu skema ke skema lain, waktu berjalan Anda akan berubah, kriteria konvergensi dapat berubah, atau perilaku asimptotik Anda, tetapi poin yang sangat penting adalah bahwa solusi konvergensi akhir Anda TIDAK boleh diubah . Jika ya, Anda harus memperbaiki jerat Anda, atau ada yang salah dengan skema numerik Anda. Mungkin Anda dapat menggunakan beberapa algoritma optimasi untuk membuat skema numerik Anda dan meningkatkan kinerja untuk kelas masalah tertentu, tetapi berkali-kali skema yang diturunkan dengan tangan dibuat dengan perilaku konvergensi / asimtotik optimal yang dapat dibuktikan secara matematis untuk sejumlah istilah yang terlibat atau tipe mesh yang digunakan.
Sekarang paragraf di atas tidak menjelaskan hal-hal seperti model turbulensi yang berbeda, yang merupakan formulasi / perkiraan matematika yang berbeda dari fisika, sehingga diharapkan memiliki solusi yang berbeda. Ini sekali lagi sangat dipelajari dalam literatur, dan saya tidak berpikir program pada titik bahwa mereka dapat melihat fenomena fisik dan menghasilkan model matematika yang memprediksi respon sistem fisik yang sama.
Pertanyaan 2: Ya, Anda bisa mendapatkan skema yang menggunakan seluruh jala sekaligus, menggunakan beberapa kode komputer untuk melakukannya. Saya bahkan merasa aman mengatakan bahwa untuk beberapa jerat, kode seperti itu ada, dan dapat memberi Anda skema Anda dalam beberapa jam (setelah Anda menemukan kode itu). Masalahnya adalah Anda tidak akan pernah bisa mengalahkan Nyquist. Ada batasan seberapa besar langkah waktu yang Anda ambil, tergantung pada frekuensi maksimal respons sistem Anda, dan batas seberapa besar sel / elemen mesh yang dapat Anda miliki tergantung pada frekuensi spasial dari solusi.
Itu bahkan tidak menjelaskan fakta bahwa sering kali pekerjaan komputasi yang terlibat dalam menggunakan skema yang lebih kompleks seringkali tidak linier dengan kompleksitas. Alasan sebagian besar siswa mempelajari metode RK4 untuk integrasi waktu adalah bahwa ketika Anda mulai pergi ke metode dengan urutan yang lebih tinggi dari itu, Anda mendapatkan lebih banyak evaluasi turunan Anda lebih cepat daripada Anda mendapatkan pesanan dari metode Anda. Di ranah spasial, metode orde tinggi sangat meningkatkan pengisian matriks, sehingga Anda membutuhkan lebih sedikit titik jala, tetapi pekerjaan yang Anda lakukan dalam membalikkan matriks jarang meningkat pesat, setidaknya sebagian mengimbangi keuntungan Anda.
Saya tidak yakin apa yang Anda maksud dalam pertanyaan ketiga. Apakah Anda berbicara tentang mengubah solusi dekat menjadi masalah menjadi solusi yang lebih baik? Jika demikian, saya merekomendasikan beberapa bacaan ringan tentang multigrid. Jika Anda bertanya tentang mengubah skema numerik yang layak menjadi yang luar biasa, saya pikir sisa jawaban saya setidaknya menyentuh itu.
sumber