[petsc-users] Assembling primal Schur matrix in FETI-DP method

Jed Brown jedbrown at mcs.anl.gov
Fri Nov 18 07:31:12 CST 2011


On Fri, Nov 18, 2011 at 07:02, Thomas Witkowski <
thomas.witkowski at tu-dresden.de> wrote:

> In my current FETI-DP implementation, the solution of the Schur complement
> on the primal variables is done by an iterative solver. This works quite
> good, but for small and mid size 2D problems I would like to test it with
> direct assembling and inverting the Schur complement matrix. In my
> notation, the matrix is defined by
>
> S_PiPi = K_PiPi - K_PiB inv(K_BB) K_BPi
>
> "Pi" are the primal and "B" the non-primal variables. K_BB is factorized
> with a (local) direct solver (umpfack or mumps). But how can I create a
> matrix from the last expression? Is there a way to do a matrix-matrix
> multiplication in PETSc, where the first matrix is the (implicit defined)
> dense inverse of a sparse matrix, and the second matrix is a sparse matrix?
> Or is it required to extract the rows of K_BPi in some way and to perform
> than a matrix-vector multiplication with inv(K_BB)?
>

You should be able to construct the sparsity pattern of the resulting
matrix, therefore you can color it and get the explicit operator by
MatFDColoringApply() where the "base" vector is zero and the "function" is
just MatMult().

There should probably be a Mat function that does this for you given a
known sparsity pattern.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20111118/c7716a91/attachment.htm>


More information about the petsc-users mailing list