[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: block preconditioning questions



Hi Gideon,
    I've created a small package built around petsc which contains implementations for representing block vectors, matrices and preconditioners. Whilst no documentation exist yet (sorry), a number of examples are included with the package. In addition, I have only defined a subset of operations for the block objects, but there are enough to allow you to setup, precondition and solve both linear & nonlinear block systems.

You can obtain the tarball from within the following URL
    http://www.mcc.monash.edu.au/Codes/PetscExt

If you do try to use this package, and encounter any difficulties, please don't hesitate to contact me.


Cheers,
    Dave May.



On Jan 8, 2008 8:19 AM, Gideon Simpson <grs2103@xxxxxxxxxxxx> wrote:
Is there a robust way to implement the following?

Suppose I have a block diagonal matrix
P = [A 0; 0 Q];
and I know the indices of A and Q in this block matrix.  I now want to apply different preconditioners on the A block and on the Q block.  

One way, that I've had some success with, is to write a PCSHELL, where I split the input and output vectors using index sets and apply the relevant preconditioner on each of these.  However, this hardwires things, and I was wondering if there was another method.


-gideon