<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Jun 10, 2015 at 9:42 AM, Tim Steinhoff <span dir="ltr"><<a href="mailto:kandanovian@gmail.com" target="_blank">kandanovian@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Hi all<br><br></div>I want to use Petsc to solve some linear systems via the built-in Krylov subspace methods as well as by means of UMFPACK.<br><br></div>The considered matrix is block sparse with blocks of size 6x6. <br><br></div><div>Here is what I came up with after taking a look at some of the examples<br></div><div><br>MPI_Comm comm;<br>Mat A;<br>PetscInt n = 10000; /* dimension of matrix */<br>comm = PETSC_COMM_SELF;<br>MatCreate(comm,&A);<br>MatSetSizes(Amat,n,n,n,n);<br>MatSetBlockSize(A,6);<br>MatSetType(A,MATAIJ); /* UMFPACK compatible format due to comm = PETSC_COMM_SELF */<br><br></div><div>Questions:<br></div><div>1. <br>I work on a single node with 2-8 cores. Hence, comm = PETSC_COMM_SELF; I guess. Is it correct in this contect to set MatSetSizes(Amat,n,n,n,n); with 4-times n?<br></div></div></blockquote><div><br></div><div>Yes.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div></div><div>2. <br>After the above sequence of commands do I have to use something like<br>  MatSeqAIJSetPreallocation(A,0,d_nnz); /* d_nnz <-> number of nonzeros per row */<br>or is it possible to use<br>  MatSeqBAIJSetPreallocation(A,6,0,db_nnz); /* db_nnz <-> number of block nonzeros per block row */<br></div></div></blockquote><div><br></div><div>You should use this if using MATBAIJ.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>In any case, is something like<br>  MatSetValuesBlocked(A,1,idx_r,1,idx_c,myblockvals,INSERT_VALUES);<br>to fill values of one block into the matrix A ok?<br></div></div></blockquote><div><br></div><div>Yes, however in order to get improved performance, you need type MATBAIJ.</div><div><br></div><div>  Thanks,</div><div><br></div><div>    Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div></div><div>Regards<span class="HOEnZb"><font color="#888888"><br></font></span></div><span class="HOEnZb"><font color="#888888"><div>Tim<br></div></font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div>