[petsc-users] preallocate space for matrices if only the global number of nonzeros is known
Jed Brown
jed at jedbrown.org
Mon Apr 16 13:58:29 CDT 2018
Klaus Burkart <k_burkart at yahoo.com> writes:
> For a symmetric matrix:
> I assume, I should compute the number of nonzeros per row just for the upper triangle?
Yes.
>
> Am Montag, 16. April 2018, 14:23:19 MESZ hat Jed Brown <jed at jedbrown.org> Folgendes geschrieben:
>
> Klaus Burkart <k_burkart at yahoo.com> writes:
>
>> Hi,
>> How can I preallocate space for matrices (some symmetric, others
>> asymmetric) if I have the global number of nonzeros (NNZ) but not the
>> number of nonzeros per row?
>
> Unfortunately, this is not enough for efficient assembly. It is more
> efficient to over-estimate.
>
>> I could compute the NNZ for the upper or lower part separately if this
>> would be useful for symmetric matrices.
>>
>> I create the matrix this way:
>> MatCreate(PETSC_COMM_WORLD, &M);
>> MatSetSizes(M, PETSC_DECIDE, PETSC_DECIDE, N, N);
>> MatSetFromOptions(M);
>> Klaus
More information about the petsc-users
mailing list