Well, you need to start somewhere. It is going to take a combination of
this, MatLUFactorSymbolic_SeqAIJ(), MatLUFactorSymbolic_SeqAIJ() and
MatLUFactorNumerical_SeqAIJ() to get what you want. Note that one of the first
things you need to do is given the MatGetVariableBlockSizes() determine the
nonzero pattern of the "variable block" matrix from the nonzero pattern of the
SeqAIJ matrix and then do a symbolic factorization on that new "reduced" sparse
matrix. Them you do a numerical factorization using the "reduced sparse matrix"
factorization.
Barry
> On Dec 1, 2018, at 4:54 PM, Ali Reza Khaz'ali <[email protected]> wrote:
>
> 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
>