examples/advdiff istl - preconditioning of matrixfree operator
Hello all!
I'm trying to setup a preconditioned version of the examples/advdiff problem (with implicit time stepping). The goal is to study and quantify the effects of preconditioning on the number of kryloviterations per newtonstep. I've altered the AlgorithmConfigurator to use the ISTL Library (via Solver::Enum::istl) and set the appropiate flags in the advdiff parameterfile :
istl.preconditioning.method: amg-ilu #or jacobi or gauss-seidel or none istl.preconditioning.iterations: 1 istl.preconditioning.relaxation: 1
But using none and each of these preconditioners had no effect on the number of kryloviterations per newtonstep. After that I stepped line by line through the code in debug mode (netbeans stepper) and found out that for matrixfree operator the IdentityPreconditioner is used typedef Fem::IdentityPreconditionerWrapper< domain_type, range_type > PreconditionAdapterType;
. I've also tried using other PreconditionerWrappers but they need an MatrixObject (which I believe is not available or retrievable in an matrixfree operator implementation?)
So my issue / question / support request is: Is there a way to use other preconditioners for the fully discretized matrixfree advdiff operator and how can this be implemented?
Thanks for the help and have a nice day,
G.D.