Hi Thomas,
> I have a question to solving block systems in deal.II. My (linear)
> equation system looks like Ax=b where A represents a block matrix (with 9
> blocks) which looks like
>
> A = (A11 , A12, A13)
> (A21, 0 , A23)
> (A31, 0 , A33)
>
> It represents the Stokes system with an additional equation (a
> fluid-structure interaction problem to be exactly).
>
> Now, I want to treat the whole system in an all-at-once approach (as
> done in step-21,22,31) with a GMRES iteration. Hence, I need to build an
> appropriate block preconditioner P^{-1} for the system.
>
> My first idea was to reorder blocks of the system matrix in such a way
> that I have to solve:
>
> A_new = (A12 , A11, A13)
> (0 , A21, A23)
> (0 , A31, A33)
>
> Then, to create a block preconditioner via block Gauss elimination
> (procedure as in step-22, 31).
>
> My question: Is it possible and does it make sense to create a second
> system matrix A_new with the desired block structure? How can I realize
> this?
No. Conceptually, if you have a preconditioner P_new for A_new, and A_new is a
permutation of the columns of A, then P_new must be a permutation of the rows
of a preconditioner P. In your case, since
A = A_new X
with X = [[0,1,0], [1,0,0], [0,0,1]], you can write your linear system as
A_new X U = F
Now, if P_new is a good preconditioner for A_new, then X P_new should be a
good preconditioner for A. So just re-write the result of your block
elimination into this form and you should be done.
> Or does anyone have another idea to build an appropriate block
> preconditioner for system matrix A? The goal is to use multigrid
> techniques as done in step-31.
An alternative would be to build up a PointerMatrix that just has pointers for
the individual blocks within A.
Best
W.
--
-------------------------------------------------------------------------
Wolfgang Bangerth email: [email protected]
www: http://www.math.tamu.edu/~bangerth/
_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii