[petsc-users] MatSetValues: reorder the values

Dmitry Karpeev karpeev at mcs.anl.gov
Sun May 27 07:12:34 CDT 2012


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/3c6fe56f/attachment-0001.html>


More information about the petsc-users mailing list