Diseksi bersarang pada grid biasa

9

Ketika memecahkan sistem linear jarang menggunakan metode faktorisasi langsung, strategi pemesanan yang digunakan secara signifikan berdampak pada faktor pengisian elemen yang tidak nol dalam faktor. Salah satu strategi pemesanan tersebut adalah diseksi bersarang. Saya bertanya-tanya apakah mungkin untuk datang dengan pemesanan diseksi bersarang sebelumnya hanya diberikan parameter grid (menganggap M x N kotak perbedaan hingga persegi dengan perbedaan urutan pertama).

Sunting Saya baru saja menemukan bahwa ada kode yang melakukan ini: http://www.cise.ufl.edu/research/sparse/meshnd/

Victor Liu
sumber

Jawaban:

8

Iya. Baru-baru ini saya menulis kode untuk melakukan hal ini.

Misalkan Anda memiliki kisi , dan dapat diterima untuk memiliki simpul daun dengan 100 simpul. Satu kemudian dapat mendefinisikan fungsi rekursif di mana argumennya adalah:nx×ny

  • dimensi dan offset subdomain persegi panjang
  • pointer ke array yang akan menyimpan pemesanan ulang

natural(x,y)=x+ynxnx×ny

Jack Poulson
sumber
Saya kira pertanyaan saya lebih dari: Apakah pembedahan bersarang benar-benar hanya secara rekursif mengiris ruang menjadi dua? Juga, apakah pemesanan untuk menempatkan indeks batas di depan masing-masing bagian kanan dan kiri? Saya belum pernah menemukan penjelasan sederhana tentang apa yang sedang terjadi.
Victor Liu
1
Ya, diseksi bersarang sangat mudah, tetapi Anda menyimpan indeks batas setelah bagian kiri dan kanan. Intinya adalah untuk memastikan bahwa dua subdomain tidak terhubung langsung, jadi, untuk perbedaan yang terbatas, penting untuk mempertimbangkan ukuran stensil Anda ketika memutuskan seberapa tebal pemisah harus. Saya sarankan Anda membaca ikhtisar Liu tentang metode multifrontal dan untuk membuat koneksi yang masing-masing pemisah diperlakukan sebagai supernode.
Jack Poulson
Ah ya, saya menyadari bahwa tidak lama setelah saya berkomentar dan kemudian melakukan edit. Terima kasih untuk referensi.
Victor Liu