[petsc-users] Coordinate format internal reordering

Matthew Knepley knepley at gmail.com
Thu Oct 19 07:50:46 CDT 2023


On Thu, Oct 19, 2023 at 6:51 AM Enrico <degregori at dkrz.de> wrote:

> Hello,
>
> if I create an application ordering using AOCreateBasic, should I
> provide the same array for const PetscInt myapp[] and const PetscInt
> mypetsc[] in order to get the same ordering of the application within
> PETSC?
>

Are you asking if the identity permutation can be constructed using the
same array twice? Yes.


> And once I define the ordering so that the local vector and matrix are
> defined in PETSC as in my application, how can I use it to create the
> actual vector and matrix?
>

The vectors and matrices do not change. The AO is a permutation. You can
use it to permute
a vector into another order, or to convert on index to another.

  Thanks,

      Matt


> Thanks in advance for the help.
>
> Cheers,
> Enrico
>
> On 18/10/2023 13:39, Matthew Knepley wrote:
> > On Wed, Oct 18, 2023 at 5:55 AM Enrico <degregori at dkrz.de
> > <mailto:degregori at dkrz.de>> wrote:
> >
> >     Hello,
> >
> >     I'm trying to use Petsc to solve a linear system in an application.
> I'm
> >     using the coordinate format to define the matrix and the vector (it
> >     should work better on GPU but at the moment every test is on CPU).
> >     After
> >     the call to VecSetValuesCOO, I've noticed that the vector is storing
> >     the
> >     data in a different way from my application. For example with two
> >     processes in the application
> >
> >     process 0 owns cells 2, 3, 4
> >
> >     process 1 owns cells 0, 1, 5
> >
> >     But in the vector data structure of Petsc
> >
> >     process 0 owns cells 0, 1, 2
> >
> >     process 1 owns cells 3, 4, 5
> >
> >     This is in principle not a big issue, but after solving the linear
> >     system I get the solution vector x and I want to get the values in
> the
> >     correct processes. Is there a way to get vector values from other
> >     processes or to get a mapping so that I can do it myself?
> >
> >
> > By definition, PETSc vectors and matrices own contiguous row blocks. If
> > you want to have another,
> > global ordering, we support that with
> > https://petsc.org/main/manualpages/AO/
> > <https://petsc.org/main/manualpages/AO/>
> >
> >    Thanks,
> >
> >       Matt
> >
> >     Cheers,
> >     Enrico Degregori
> >
> >
> >
> > --
> > What most experimenters take for granted before they begin their
> > experiments is infinitely more interesting than any results to which
> > their experiments lead.
> > -- Norbert Wiener
> >
> > https://www.cse.buffalo.edu/~knepley/ <
> http://www.cse.buffalo.edu/~knepley/>
>


-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener

https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20231019/40012622/attachment.html>


More information about the petsc-users mailing list