<div dir="ltr">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.</div><br><div class="gmail_quote"><div dir="ltr">On Sat, Dec 1, 2018 at 6:20 PM Smith, Barry F. via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov">petsc-users@mcs.anl.gov</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Well, you need to start somewhere. It is going to take a combination of this, MatLUFactorSymbolic_SeqAIJ(), MatLUFactorSymbolic_SeqAIJ() and <br>
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.<br>
<br>
Barry<br>
<br>
<br>
> On Dec 1, 2018, at 4:54 PM, Ali Reza Khaz'ali <<a href="mailto:arkhazali@cc.iut.ac.ir" target="_blank">arkhazali@cc.iut.ac.ir</a>> wrote:<br>
> <br>
> Hi,<br>
> <br>
> 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.<br>
> <br>
> Any help is much appreciated.<br>
> <br>
> -- <br>
> Ali Reza Khaz’ali<br>
> Assistant Professor of Petroleum Engineering,<br>
> Department of Chemical Engineering<br>
> Isfahan University of Technology<br>
> Isfahan, Iran<br>
> <br>
<br>
</blockquote></div>