I need to solve Ax=b, but I realize that even if it is sparse, storing the matrix coefficients of my problem will take too much memory. So now I'm considering using a matrix-free method, because the same coefficients appear a lot of time in the matrix, so I could use my own private storage scheme (and increase cache efficiency by the way).
I'm looking at petsc, which provides interface for such matrix-free linear operators, but what I don't really understand, is how the preconditioner is then computed by petsc ? Or should I provide my own preconditioner ? If so, are there tools or recipies available to construct preconditioner from a matrix-free linear operator ?
More information about my operator: it is unsymmetric, not diagonally dominant, but dominated by a few sidebands (but it is not banded diagonal either)