Dear Junchao Zhang


I'm distributing a set of independent tasks over different processes, so I'm afraid sending everything to the zeroth process would rather thoroughly defeat the purpose of what I'm doing.


Med venlig hilsen / Best regards

Peder


Fra: Junchao Zhang <junchao.zhang@gmail.com>
Sendt: 30. juni 2021 16:00:25
Til: Peder Jørgensgaard Olesen
Cc: Matthew Knepley; petsc-users@mcs.anl.gov
Emne: Re: [petsc-users] Scatter parallel Vec to sequential Vec on non-zeroth process
 
That should work. But VecScatterCreateToZero() is more efficient. So if possible, better refactor your code in such a way. 

--Junchao Zhang

On Wed, Jun 30, 2021 at 7:13 AM Peder Jørgensgaard Olesen via petsc-users <petsc-users@mcs.anl.gov> wrote:

Dear Matt


Thank you for your reply. I'm guessing that the line

if (rank) N = 0;
should be changed to something like

if (rank != target_rank) N = 0;
such that an empty SEQVEC and scatter are created on each rank other than target_rank.


Med venlig hilsen / Best regards

Peder


Fra: Matthew Knepley <knepley@gmail.com>
Sendt: 30. juni 2021 13:58:49
Til: Peder Jørgensgaard Olesen
Cc: petsc-users@mcs.anl.gov
Emne: Re: [petsc-users] Scatter parallel Vec to sequential Vec on non-zeroth process
 
On Wed, Jun 30, 2021 at 6:49 AM Peder Jørgensgaard Olesen via petsc-users <petsc-users@mcs.anl.gov> wrote:

Hello


I have a parallel vector, and I'd like to copy its data to a sequential vector located on a given process that is not necessarily the 0th process, so using VecScatterCreateToZero wouldn't do here.


How might one approach this?

Just go in and replace '0' by the rank you want.

  Thanks,

     Matt 

Med venlig hilsen / Best Regards


Peder Jørgensgaard Olesen

PhD Student, Turbulence Research Lab

Dept. of Mechanical Engineering

Technical University of Denmark

Koppels Allé

Bygning 403, Rum 105

DK-2800 Kgs. Lyngby



--
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