Мне нужно решить Ax = b, но я понимаю, что, даже если оно редкое, сохранение матричных коэффициентов моей задачи займет слишком много памяти. Поэтому сейчас я рассматриваю возможность использования метода без матрицы, потому что одни и те же коэффициенты появляются в матрице много раз, поэтому я мог бы использовать свою собственную схему частного хранения (и, между прочим, повысить эффективность кэширования).
Я смотрю на petsc, который предоставляет интерфейс для таких линейных операторов без матрицы, но что я не очень понимаю, так это то, как предварительный обработчик затем вычисляется petsc? Или я должен предоставить свой собственный предварительный кондиционер? Если да, то есть ли инструменты или средства, доступные для построения предобусловливателя из безматричного линейного оператора?
Больше информации о моем операторе: он несимметричен, не доминирует по диагонали, но доминирует несколько боковых полос (но он не является диагональной полосой)
источник