Thanks for the hint! I should your advice. On May 27, 2012, at 2:12 PM, Dmitry Karpeev wrote:
> Have you looked at MatSetValuesLocal() > http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatSetValuesLocal.html? > > That routine might be close enough to what you need. > Dmitry. > > On Sun, May 27, 2012 at 4:01 AM, Hui Zhang <mike.hui.zhang at hotmail.com> > wrote: > Also, in the case that only a *subset* of v[] is used, the new function > sounds easy to me. > > > >> >> Current MatSetValues is >> MatSetValues(Mat mat,PetscInt m,const PetscInt idxm[],PetscInt n,const >> PetscInt idxn[],const PetscScalar v[],InsertMode addv) >> I want something like >> >> >> MatSetValues(Mat mat,PetscInt m,const PetscInt idxm[],PetscInt n,const >> PetscInt idxn[],const PetscScalar v[], const PetscInt idxv[], InsertMode >> addv) >> ----------------------- >> add a new parameter >> >> >> >> such that the values v[0..m*n] are first reordered to v[idxv[0..m*n]] before >> set to the mat. >> We may first do permutation on v before passing to current MatSetValues. >> But won't the >> >> >> new function be easier to use? >> >> >> In the case that idxm[], idxn[] are obtained from a certain application >> ordering >> but not the ordering of v[], I think I need the new function. >> Of course, this new function sounds unnecessary because reordering v is >> equivalent to reordering >> >> >> idxm[] and idxn[]. But the second method seems not an easy task to me, is >> it? >> >> Thanks! >> >> >> >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120527/640cfbfa/attachment.html>
