There is a reason PETSc does not have variable block matrices. It is messy and rarely a big win. It is doable, ML/Aztec does it, but it is messy.
On Sat, Dec 1, 2018 at 6:20 PM Smith, Barry F. via petsc-users < petsc-users@mcs.anl.gov> wrote: > > 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 <arkhaz...@cc.iut.ac.ir> > 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 > > > >