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

Reply via email to