Saya telah mencoba untuk men-debug kesalahan ini beberapa hari terakhir saya bertanya-tanya apakah ada yang punya saran tentang cara melanjutkan.
Saya memecahkan persamaan Poisson untuk distribusi muatan langkah (masalah umum dalam fisika elektrostatik / semikonduktor) pada mesh volume terbatas yang tidak seragam di mana yang tidak diketahui didefinisikan pada pusat sel dan fluks pada permukaan sel.
profil biaya (istilah sumber) diberikan oleh,
dan kondisi batasnya adalah,
dan domainnya adalah .
Saya menggunakan kode yang dikembangkan untuk menyelesaikan persamaan reaksi-difusi-reaksi (saya telah menulis sendiri lihat catatan saya di sini, http://danieljfarrell.github.io/FVM ). Persamaan adveksi-difusi-reaksi adalah kasus yang lebih umum dari persamaan Poisson. Memang persamaan Poisson dapat dipulihkan dengan mengatur kecepatan gerak ke nol dan menghilangkan istilah transien.
Kode telah diuji terhadap sejumlah situasi untuk kisi-kisi yang seragam, tidak seragam dan acak dan selalu menghasilkan solusi yang masuk akal ( http://danieljfarrell.github.io/FVM/examples.html ) untuk persamaan reaksi-difusi-reaksi adveksi.
Untuk menunjukkan di mana kode rusak saya telah membuat contoh berikut. Saya memasang jaring seragam 20 sel dan kemudian membuatnya tidak seragam dengan menghapus satu sel. Pada gambar kiri saya telah menghapus sel dan di kanan Ω 9 telah dihapus. Sel ke-9 mencakup wilayah di mana istilah sumber (yaitu muatan) berubah tanda. Bug muncul ketika grid tidak seragam di wilayah di mana istilah reaksi berubah tanda . Seperti yang Anda lihat di bawah.
Adakah ide apa yang mungkin menyebabkan masalah ini? Beri tahu saya jika lebih banyak informasi mengenai diskresi akan membantu (saya tidak ingin memasukkan terlalu banyak detail dalam pertanyaan ini).
sumber
Jawaban:
Selain itu, dokumentasi github Anda sangat luar biasa.
Ini hanya tebakan dari metode DG, yang dapat memiliki masalah serupa jika fluks numerik tidak dipilih dengan hati-hati (saya pikir metode FV adalah bagian dari metode DG). Jika Anda menggunakan interpolasi dari pusat sel untuk menentukan fluks Anda, maka ini harus setara dengan menggunakan rata-rata sebagai fluks numerik dalam DG dan menggunakan basis konstan piecewise. Untuk metode DG standar untuk Poisson, ini mengarah ke solusi numerik non-unik - Anda bisa mendapatkan ruang nol non-sepele untuk operator diskrit, yang saya pikir adalah apa yang menyebabkan masalah Anda dalam contoh ke-2. Lihat kertas Ditjen ini untuk teori mereka tentang hal itu dari sisi Ditjen.
Saya akan mencoba untuk membuat contoh untuk FV yang menunjukkan bagaimana hal ini terjadi.
sumber
Hal pertama yang perlu diperhatikan adalah kondisi batas Anda. Karena Anda dapat mengubah kemiringan dan nilai, Anda tidak memiliki kondisi Dirichlet, atau Neumann.
Kemudian, setiap garis lurus adalah solusi di mana sisi kanannya nol. Anda dapat bagian itu.
sumber