[petsc-users] Customizeing MatSetValuesBlocked(...)

Jinquan Zhong jzhong at scsolutions.com
Wed Aug 8 14:32:41 CDT 2012

Thanks, Jed.

So would you prefer to using MatCreateAIJ(…) or MatXAIJSetPreallocation(…)?  I am having trouble to fill out the parameters.  My local dense matrix is A(LDA, LDB). The global size of square matrix is N.  What would be the parameters to use them?

I used
MatCreateAIJ(PETSC_COMM_WORLD,  LDA,LDB,  N,N,  d_nz, d_nnz,o_nz,o_nnz, &A);
MatXAIJSetPreallocation(PETSC_COMM_WORLD, 1, d_nz, d_nnz,o_nz,o_nnz, &A);

However, I have trouble to figure out the values for d_nz, d_nnz,o_nz, o_nnz since the local A is a block consisting of several sub-blocks from ScaLAPACK.  I think MatCreateAIJ and MatXAIJSetPreallocation both take several rows together.

Do you think it is still doable to preallocate A using either function?


From: petsc-users-bounces at mcs.anl.gov [mailto:petsc-users-bounces at mcs.anl.gov] On Behalf Of Jed Brown
Sent: Wednesday, August 08, 2012 12:22 PM
To: PETSc users list
Subject: Re: [petsc-users] Customizeing MatSetValuesBlocked(...)

On Wed, Aug 8, 2012 at 1:00 PM, Jinquan Zhong <jzhong at scsolutions.com<mailto:jzhong at scsolutions.com>> wrote:
This makes sense to me.  I thought the preallocation only applies to MatCreateMPIAIJwithArrays(…) and other more complicate functions.

The matrix coming out from ScaLAPACK will be repopulated into a sparse matrix in a much large scale.

I don't understand this exactly. You are taking the entries of the dense matrix and putting them into a much larger sparse matrix? In that case, you probably never need Elemental, but you definitely need to preallocate.

Do I need to install elemental package in PETSc in order to use MATELEMENTAL?

Yes, just configure petsc-dev with --download-elemental.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120808/02898269/attachment-0001.html>

More information about the petsc-users mailing list