[petsc-users] Setting values of a matrix in a blockwise manner

Tim Steinhoff kandanovian at gmail.com
Wed Jun 10 09:55:24 CDT 2015


Thanks for the quick reply!

"Yes, however in order to get improved performance, you need type MATBAIJ."

I considered MatSetType(A,MATAIJ); i.e. the non-block type since
UMFPACK seems to require the seqaij type according to the summary
page. So do I have to refrain from using the more amiable block-type
if I want to make use of UMFPACK?

2015-06-10 16:45 GMT+02:00 Matthew Knepley <knepley at gmail.com>:
> On Wed, Jun 10, 2015 at 9:42 AM, Tim Steinhoff <kandanovian at gmail.com>
> wrote:
>>
>> Hi all
>>
>> I want to use Petsc to solve some linear systems via the built-in Krylov
>> subspace methods as well as by means of UMFPACK.
>>
>> The considered matrix is block sparse with blocks of size 6x6.
>>
>> Here is what I came up with after taking a look at some of the examples
>>
>> MPI_Comm comm;
>> Mat A;
>> PetscInt n = 10000; /* dimension of matrix */
>> comm = PETSC_COMM_SELF;
>> MatCreate(comm,&A);
>> MatSetSizes(Amat,n,n,n,n);
>> MatSetBlockSize(A,6);
>> MatSetType(A,MATAIJ); /* UMFPACK compatible format due to comm =
>> PETSC_COMM_SELF */
>>
>> Questions:
>> 1.
>> 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?
>
>
> Yes.
>
>>
>> 2.
>> After the above sequence of commands do I have to use something like
>>   MatSeqAIJSetPreallocation(A,0,d_nnz); /* d_nnz <-> number of nonzeros
>> per row */
>> or is it possible to use
>>   MatSeqBAIJSetPreallocation(A,6,0,db_nnz); /* db_nnz <-> number of block
>> nonzeros per block row */
>
>
> You should use this if using MATBAIJ.
>
>>
>> In any case, is something like
>>   MatSetValuesBlocked(A,1,idx_r,1,idx_c,myblockvals,INSERT_VALUES);
>> to fill values of one block into the matrix A ok?
>
>
> Yes, however in order to get improved performance, you need type MATBAIJ.
>
>   Thanks,
>
>     Matt
>
>>
>> Regards
>> Tim
>
>
>
>
> --
> What most experimenters take for granted before they begin their experiments
> is infinitely more interesting than any results to which their experiments
> lead.
> -- Norbert Wiener


More information about the petsc-users mailing list