On Tue, 5 May 2009, SUN Chun wrote:

> Thanks Hong and Satish,
>
> Unfortunately I did use MatCreateMPIAIJ. It's difficult to change that part 
> of my code.
>Plus I have matrices dumped out with AIJ format and I want to read it as 
>BAIJ. It seems that I have no option other than MatCreateMPIBAIJ then 
>MatSetBlockSize then add entries one by one...?

You can call
ierr = MatLoad(fd,MATBAIJ,&newbaijmat);CHKERRQ(ierr);
and run your code with '-matload_block_size 6'.
In this way, a new baij matrix is created with bs=6.

>
> I was reading MatCopy and it says A and B should have same nnz pattern, which 
> won't happen between AIJ and BAIJ. Also I was reading MatConvert, but it 
> allocates new matrix for you without asking blocksize. I'm not sure either of 
> them can do this.
MatCopy() cannot be used because aij and baij have very differnt data 
structure. MatConvert() gives a baij matrix with bs=1, not the one you 
want.

Hong

>
> Thanks,
> Chun
>
> -----Original Message-----
> From: petsc-users-bounces at mcs.anl.gov [mailto:petsc-users-bounces at 
> mcs.anl.gov] On Behalf Of Satish Balay
> Sent: Tuesday, May 05, 2009 11:18 AM
> To: PETSc users list
> Subject: Re: AIJ and BAIJ convertion
>
> This is assuming MatCreate() is used - not MatCreateMPIAIJ()..
>
> Satish
>
> On Tue, 5 May 2009, Hong Zhang wrote:
>
>>
>> Run your code with the option
>> '-mat_type baij -mat_block_size 6'
>> You can use '-mat_view_info' to varify the matrix type
>> that is actually used.
>>
>> Hong
>>
>> On Tue, 5 May 2009, SUN Chun wrote:
>>
>>> Hi,
>>>
>>> I created a matrix with AIJ format. I knew the structure of this matrix
>>> should also fit BAIJ type with some certain block size (say 6). Now instead
>>> of creating another BAIJ matrix then fill in the values again, do I have an
>>> easier way to convert this AIJ matrix to BAIJ matrix with given block size?
>>> I'm willing to allocate another memory for the new matrix.
>>>
>>> Thanks,
>>> Chun
>>>
>>
>
>

Reply via email to