pré-condicionador para um método sem matriz para resolver Ax = b

9

Preciso resolver Ax = b, mas percebo que, mesmo que seja escasso, o armazenamento dos coeficientes da matriz do meu problema precisará de muita memória. Então, agora estou pensando em usar um método sem matriz, porque os mesmos coeficientes aparecem muito tempo na matriz, para que eu possa usar meu próprio esquema de armazenamento privado (e aumentar a eficiência do cache).

Estou olhando para o petsc, que fornece interface para operadores lineares sem matriz, mas o que realmente não entendo é como o pré-condicionador é calculado pelo petsc? Ou devo fornecer meu próprio pré-condicionador? Em caso afirmativo, existem ferramentas ou receitas disponíveis para construir pré-condicionador a partir de um operador linear sem matriz?

Mais informações sobre o meu operador: é assimétrico, não é diagonalmente dominante, mas dominado por algumas bandas laterais (mas também não é diagonal em faixas)

nat chouf
fonte

Respostas:

7

Você precisará lançar seu próprio pré-condicionador. Se você conhece a matriz, não deve ser terrivelmente difícil implementar algo como um pré-condicionador do SSOR, por exemplo. Se você souber algo mais sobre o problema, por exemplo, que vem de um PDE cuja solução pode ser bem aproximada em uma malha mais grossa, considere também a construção de pré-condicionadores restringindo o problema à malha mais grossa, resolvendo-a e estendendo o solução de volta ao original. Restrição e prolongamento podem ser implementados como operações sem matriz.

Wolfgang Bangerth
fonte