What you imply that this is a correct usage for block matrix if I use
gmres+any preconditioner (in this case, block jacobi) :

PETScWrappers::PreconditionBlockJacobi
preconditioner(precon_matrix.block(0,0));
gmres.solve (system_matrix.block(0,0), solution.block(0),
system_rhs.block(0) , preconditioner);


NOT :

PETScWrappers::PreconditionBlockJacobi preconditioner(precon_matrix);
gmres.solve (system_matrix, solution, system_rhs , preconditioner);


Thank you
Sungho Yoon

On Tue, September 9, 2008 6:36 pm, Wolfgang Bangerth wrote:
>
>> And, How could you sort out "PETScWrappers::PreconditionBlockJacobi
>> preconditioner(precon_matrix);" this problem?
>
> The "block" in PreconditionBlockJacobi denotes PETSc's notion of a part of
> a
> matrix that is distributed across a number of processors. The "block" in
> BlockSparseMatrix denotes deal.II's notion of subdividing a matrix into
> logical blocks that refer to quantities of different physical properties.
>
> As a consequence, you can only apply
> PETScWrappers::PreconditionBlockJacobi to
> an individual (deal.II) block of a BlockSparseMatrix.
>
> Does that explain it?
>
> Best
>  W.
>
> -------------------------------------------------------------------------
> Wolfgang Bangerth                email:            [EMAIL PROTECTED]
>                                  www: http://www.math.tamu.edu/~bangerth/
>



_______________________________________________

Reply via email to