preconditioner untuk metode bebas-matriks untuk menyelesaikan Ax = b

9

Saya perlu menyelesaikan Ax = b, tetapi saya menyadari bahwa meskipun jarang, menyimpan koefisien matriks dari masalah saya akan memakan terlalu banyak memori. Jadi sekarang saya sedang mempertimbangkan menggunakan metode bebas-matriks, karena koefisien yang sama muncul banyak waktu dalam matriks, jadi saya bisa menggunakan skema penyimpanan pribadi saya sendiri (dan dengan cara meningkatkan efisiensi cache dengan cara).

Saya sedang melihat petsc, yang menyediakan antarmuka untuk operator linear bebas-matriks seperti itu, tetapi apa yang saya tidak benar-benar pahami, adalah bagaimana preconditioner kemudian dikomputasi oleh petsc? Atau haruskah saya menyediakan prekondisi saya sendiri? Jika demikian, apakah ada alat atau penerima yang tersedia untuk membangun preconditioner dari operator linear bebas-matriks?

Informasi lebih lanjut tentang operator saya: tidak simetris, tidak dominan diagonal, tetapi didominasi oleh beberapa sideband (tetapi juga bukan banded diagonal)

nat chouf
sumber

Jawaban:

7

Anda harus menggulung preconditioner Anda sendiri. Jika Anda tahu matriksnya, seharusnya tidak terlalu sulit untuk mengimplementasikan sesuatu seperti preconditioner SSOR, misalnya. Jika Anda mengetahui sesuatu tentang masalah tersebut, misalnya bahwa itu berasal dari PDE yang solusinya dapat didekati dengan baik pada mesh yang lebih kasar, maka Anda juga dapat mempertimbangkan untuk membangun prakondisi dengan membatasi masalah ke mesh yang lebih kasar, menyelesaikannya di sana, dan memperluas solusi kembali ke yang asli. Pembatasan dan perpanjangan dapat diimplementasikan sebagai operasi bebas matriks.

Wolfgang Bangerth
sumber