<div dir="ltr">Good morning,<div><br></div><div>I am currently working on a PETSC application that will require a preconditioner that uses several block matrices.</div><div><br></div><div>For now, I have a simple problem that I am solving with a dmda structured grid with two fields. For presentation purposes (I know petsc does not use this ordering), lets assume a vector ordering [u1,u2,...,uN,v1,v2,...vN] where u and v are my two fields with N number of grid points. The coupling between these two fields is weak enough that an efficient preconditioner can be formed as the matrix P = [A1, 0;0,A2] where A1 (dependent on u only) and A2 (dependent on v only) are block matrices of size NxN. Therefore, I only require two linear solves of the reduced systems.</div><div><br></div><div>I am passing the preconditioner matrix P in the Jacobian function, and I hope this strategy is what I am telling PETSC to do with the following block of code:</div><div><br></div><div>ierr = KSPGetPC(snes,&pc);CHKERRQ(ierr);CHKERRQ(ierr);<br>ierr = PCSetType(pc,PCFIELDSPLIT);CHKERRQ(ierr);<br>ierr =  DMCreateFieldDecomposition(dau,NULL,NULL,&fields,NULL);CHKERRQ(ierr);<br>ierr =  PCFieldSplitSetIS(pc,NULL,fields[0]);CHKERRQ(ierr);<br>ierr =  PCFieldSplitSetIS(pc,NULL,fields[1]);CHKERRQ(ierr);<br clear="all"><div><br></div><div>Is this what is actually happening, or is the split also including some of the zero blocks on P? </div><div><br></div><div>Second, for a future application, I will need a slightly more complicated strategy. It will require solving a similar matrix to P as specified above with more fields (Block diagonal for the fields), and then using the answer to those independent systems for a smaller local solves. In summary, if i have M fields and N grid points, I will solve M systems of size N then followed by using solution as the right hand side to solve N systems of size M.</div><div><br></div><div>Is this something that the PCFIELDSPLIT can accomodate? Or will I have to implement my own PCSHELL?</div><div><br></div><div>Thank you,</div><div><br></div><div>-Alfredo</div><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><font face="arial, sans-serif">Alfredo Duarte</font><div><font face="arial, sans-serif">Graduate Research Assistant</font></div><div><font face="arial, sans-serif">The University of Texas at Austin</font></div></div></div></div></div></div></div>