# [petsc-users] Augmented Linear System

Thu Mar 30 12:41:43 CDT 2023

```You can lag the update of the Schur complement and use your solver as a
preconditioner.
If your problems don't change much you might converge fast enough (ie, < 4
iterations with one solve per iteration), but what you have is not bad if
the size of your auxiliary, p, space does not grow.

Mark

On Thu, Mar 30, 2023 at 11:56 AM Karabelas, Elias (
elias.karabelas at uni-graz.at) <elias.karabelas at uni-graz.at> wrote:

> Dear Community,
>
> I have a linear system of the form
>
> |K B| du    f1
>
>         =
>
> |C D| dp    f2
>
> where K is a big m x m sparsematrix that comes from some FE
> discretization, B is a coupling matrix (of the form m x 4), C is of the
> form (4 x m) and D is 4x4.
>
> I save B and C as 4 Vecs and D as a 4x4 double array. D might be
> singular so at the moment I use the following schur-complement approach
> to solve this system
>
> 1) Calculate the vecs v1 = KSP(K,PrecK) * f1, invB = [ KSP(K, PrecK) *
> B[0], KSP(K, PrecK) * B[1], KSP(K, PrecK) * B[2], KSP(K, PrecK) * B[3] ]
>
> 2) Build the schurcomplement S=[C ^ K^-1 B - D] via VecDots (C ^ K^-1 B
> [i, j] = VecDot(C[i], invB[j])
>
> 3) invert S (this seems to be mostly non-singular) to get dp
>
> 4) calculate du with dp
>
> So counting this, I need 5x to call KSP which can be expensive and I
> thought of somehow doing the Schur-Complement the other way around,
> however due to the (possible) singularity of D this seems like a bad
> idea (even using a pseudoinverse)
>
> Two things puzzle me here still
>
> A) Can this be done more efficiently?
>
> B) In case my above matrix is the Jacobian in a newton method, how do I
> make sure with any form of Schur Complement approach that I hit the
> correct residual reduction?
>
> Thanks
>
> Elias
>
> --
> Dr. Elias Karabelas
> Universitätsassistent | PostDoc
>
> Institut für Mathematik & Wissenschaftliches Rechnen | Institute of
> Mathematics & Scientific Computing
> Universität Graz | University of Graz
>
> Heinrichstraße 36, 8010 Graz
> Tel.:   +43/(0)316/380-8546
> E-Mail: elias.karabelas at uni-graz.at
> Web:    https://ccl.medunigraz.at
>
> Bitte denken Sie an die Umwelt, bevor Sie dieses E-Mail drucken. Danke!
> Please consider the environment before printing this e-mail. Thank you!
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20230330/f154a089/attachment.html>
```