OK. It worksThank you
--- 09?12?1????, ming zhu <foolishzhu at yahoo.com.cn> ???
???: ming zhu <foolishzhu at yahoo.com.cn>
??: Re: How to copy global data to local ?
???: "PETSc users list" <petsc-users at mcs.anl.gov>
??: 2009?12?1?,??,??10:29
It seems that MatGetSubMatrix() only get the local matrix for the processor? If
U is global(PETSC_COMM_WORLD), the local matrix may not store the column or row
I wanted. For example, if U is 4*4, and there are 4 processors, processors one
has local matrix 2*2, but i need the third row, Then,MatGetSubmatrix() may not
work
--- 09?12?1????, Barry Smith <bsmith at mcs.anl.gov> ???
???: Barry Smith <bsmith at mcs.anl.gov>
??: Re: How to copy global data to local ?
???: "PETSc users list" <petsc-users at mcs.anl.gov>
??: 2009?12?1?,??,??10:23
On Nov 30, 2009, at 11:21 PM, ming zhu wrote:
> Hi
> I have a huge matrix U for
all processors (PETSC_COMM_WORLD). I only want to copy only two rows (i,j) for
each local processor. i,j is different for each processor and not related to
rank.? I was trying to use a vector filter (like, 00000010000). However, if the
vector is PETSC_COMM_WORLD, it will be changed by different processor. So, how
to make it ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ?
???^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
???I do not understand what this means. To do the multiply you can and should
use a vector of PETSC_COMM_WORLD.
???Also multiplying by a vector will not give you back "rows" of a matrix. Do
you truly want the entire row of nonzeros of the matrix or something else. If
you want the entire row or part of a row then you can use MatGetSubMatrix().
???Barry
> Thank you
>
> My original code is
>
> Vec filter
> VecCreate(PETSC_COMM_WORLD,&filter);
> VecSetsizes(filter,PETSC_DECIDE,m);
> VecSetFromOptions(filter);
>
> Vecset(filter,0);
> VecSetValue(filter,i,1,INSERT_VALUES);
>
> ...
> MatMult(U, filter,ui);
>
> If I create filter with PETSC_COMM_SELF, it is impossible for U and filter to
> multiply.
>
>
>
>
>
> ?????????????????
?????????????????
___________________________________________________________
?????????????????
http://card.mail.cn.yahoo.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20091202/bd7a0f30/attachment.htm>