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

Thomas Witkowski Thomas.Witkowski at tu-dresden.de
Fri Nov 18 07:53:08 CST 2011


Zitat von Jed Brown <jedbrown at mcs.anl.gov>:

> 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.
>

Defining the sparsity pattern is no problem. But is there any  
documentation on MatFDColoringApply? The online function reference is  
quite short and is not mentioned in the manuel. So, I have no real  
idea how this is related to my question.

Thomas


More information about the petsc-users mailing list