On Wed, Oct 18, 2023 at 5:55 AM Enrico <[email protected]> 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/ 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/>
