[petsc-users] Implementing of a variable block size BILU preconditioner

Jed Brown jed at jedbrown.org
Sat Dec 1 17:16:55 CST 2018

This would use the blocks as indicated by MatSetVariableBlockSizes, not
by using a matrix format that explicitly blocks?  The information it
needs is too big/complex to yield to the preconditioner via a call like
MatInvertVariableBlockDiagonal.  Instead, I would model it off MatFactor
and the ILU code.  I think it would be okay to go into
MatILUFactorSymbolic_SeqAIJ and take a different code path (into your
new code) when (variable) block sizes are set.

Note that the benefits from this might be marginal -- I think the
algorithms will produce effectively identical results and doubt there is
much opportunity for performance improvement without changing data
structures (at least in the common regimes I can think of).

Ali Reza Khaz'ali via petsc-users <petsc-users at mcs.anl.gov> writes:

> Hi,
> I want to implement a variable block size BILU preconditioner in PETSc. 
> I am wondering if modifying the PCVPBJACOBI preconditioner 
> (vpbjacobi.c), to get what I want, is a good idea.
> Any help is much appreciated.
> -- 
> Ali Reza Khaz’ali
> Assistant Professor of Petroleum Engineering,
> Department of Chemical Engineering
> Isfahan University of Technology
> Isfahan, Iran

More information about the petsc-users mailing list