Hey Toby, >> you can use dealii::SolverGMRES with a PETSc block matrix, even in >> parallel. There are many options to precondition this matrix. Block >> triangular or block diagonal preconditioners using the schur >> complement come to mind (elman, wathen, ...). > > Generally speaking yes, but apparently I can't because the PETScWrappers > do not have a vmult () function for BlockVectors. (It turns out it works > fine for Vector like you say). There are some very versitile possibilities > that go with that interface (and related dealii::SolverXXXs).
I don't understand what you mean. Why can you not use it? I am using the deal solvers with PETSc block matrices for sure. There _is_ a PETScWrappers::MPI::BlockSparseMatrix::vmult (BlockVector &dst, const BlockVector &src) function. Or is this a misunderstanding from my side? > Thanks for the enlightment. It was an eye-opener for me when I found that out. In those moments I am impressed by the power of abstraction. Somebody wrote a simple, templated GMRES algorithm without thinking about parallelization and then you can use it to solve distributed block systems with thousands of CPUs without a single change. :-) -- Timo Heister http://num.math.uni-goettingen.de/~heister _______________________________________________ dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii
