[petsc-users] Whether can one set the row and col sizes of a Mat to zero when creating it?

Barry Smith bsmith at mcs.anl.gov
Mon May 10 16:55:53 CDT 2010


  You cannot call MatVecSetValues() on a zero size array in the same way that you cannot do v[0] = 2 on an array with size 0.

  PETSc only allows you to call VecMatSetValues() on indices that the Vec Mat has, since an empty Vec Mat has no indices you cannot call SetValues

   Barry

On May 10, 2010, at 4:41 PM, Yujie wrote:

> Dear Barry,
> 
> Thank you for your reply.
> 
> One can create an array with zero sizes. When he wants to set the
> values of the array, he can use
> "
> for(i=0; i<m;++i)
> "
> he doesn't need to consider whether the size of the array is zero
> since "loop for" can handle it even if the size of the array is zero.
> 
> Whether is the operation done for Mat and Vec? I mean
> one can use
> "
> Mat(Vec)SetValues()
> "
> regardless of the size of Mat and Vec.
> 
> Thanks again.
> 
> Regards,
> Yujie
> 
> On Mon, May 10, 2010 at 4:16 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>> 
>>  Yes, Mats and Vecs can have zero sizes. They are just like other Mats and Vecs but with no space allocated for data.
>> 
>>  Since these are not commonly used they may have glitches, let us know about them and we will fix them.
>> 
>>   Barry
>> 
>> On May 10, 2010, at 4:08 PM, Yujie wrote:
>> 
>>> Dear PETSc developers,
>>> 
>>> Whether can one set the row and col sizes of a Mat to zero when creating it?
>>> How about a Vec?
>>> 
>>> If we can, how about the object of Mat and Vec? thanks a lot.
>>> 
>>> Regards,
>>> Yujie
>> 
>> 



More information about the petsc-users mailing list