Ich muss Ax = b lösen, aber mir ist klar, dass das Speichern der Matrixkoeffizienten meines Problems zu viel Speicher benötigt, selbst wenn es spärlich ist. Jetzt überlege ich mir, eine matrixfreie Methode zu verwenden, da die gleichen Koeffizienten viel Zeit in der Matrix erscheinen, sodass ich mein eigenes privates Speicherschema verwenden (und übrigens die Cache-Effizienz erhöhen) kann.
Ich schaue auf Petsc, das eine Schnittstelle für solche matrixfreien linearen Operatoren bietet, aber was ich nicht wirklich verstehe, ist, wie der Vorkonditionierer dann von Petsc berechnet wird. Oder sollte ich meinen eigenen Vorkonditionierer bereitstellen? Wenn ja, gibt es Werkzeuge oder Rezepte, um Vorkonditionierer aus einem matrixfreien linearen Operator zu konstruieren?
Weitere Informationen zu meinem Operator: Es ist unsymmetrisch, nicht diagonal dominant, sondern wird von einigen Seitenbändern dominiert (aber es ist auch nicht diagonal gebändert).
quelle