Thank you very much. > Based on the error message it appears that your code is requesting different > times on different MPI ranks. Is that what you intend to do? Yes. I want to save different times across a vector built with multiple MPI ranks (PETSC_DECIDE for the local length). The function is called only by the first proc (rank=0) and not from the others. Is there a way to force also other ranks to call that routine? Should I build everything into an external function outside the main?
Francesco > Il giorno 26 mag 2021, alle ore 16:20, Barry Smith <[email protected]> ha > scritto: > > > > > TSTrajectoryGetVecs() is listed as Collective on TS. This means all ranks > must call it with the same times in the same order of operations on all ranks > that share the TS. > > You do not need to use VecScatter. Each process must call > TSTrajectoryGetVecs with the same time but then you can have only the rank > you care about select the entries from the resulting vectors you care about > while the other ranks for that time just ignore the vectors since they do not > need to values from it. > > Barry > > > >> On May 26, 2021, at 5:20 AM, Francesco Brarda <[email protected] >> <mailto:[email protected]>> wrote: >> >> Hi! >> >> I solved an ODE system with TS. Now I would like to save one of the >> trajectories in specific times. To do so, I used TSTrajectoryGetVecs. >> The values of the variable I am interested in is on one processor. I want to >> collect these values in a parallel vector, but I had the error: >> >> [0]PETSC ERROR: Invalid argument >> [0]PETSC ERROR: Real value must be same on all processes, argument # 2 >> [0]PETSC ERROR: See https://www.mcs.anl.gov/petsc/documentation/faq.html >> <https://www.mcs.anl.gov/petsc/documentation/faq.html> for trouble shooting. >> [0]PETSC ERROR: Petsc Release Version 3.14.4, unknown >> [0]PETSC ERROR: ./petsc_sir on a arch-debug named srvulx13 by fbrarda Wed >> May 26 12:00:42 2021 >> [0]PETSC ERROR: Configure options --with-cc=gcc --with-cxx=g++ >> --with-fc=gfortran --with-openblas-dir=/opt/packages/openblas/0.2.13-gcc >> --download-mpich PETSC_ARCH=arch-debug >> [0]PETSC ERROR: #1 TSHistoryGetLocFromTime() line 134 in >> /home/fbrarda/petsc/src/ts/interface/tshistory.c >> [0]PETSC ERROR: #2 TSTrajectoryReconstruct_Private() line 55 in >> /home/fbrarda/petsc/src/ts/trajectory/utils/reconstruct.c >> [0]PETSC ERROR: #3 TSTrajectoryGetVecs() line 239 in >> /home/fbrarda/petsc/src/ts/trajectory/interface/traj.c >> >> Is there any specific routine I can use to overcome this issue? Should I use >> VecScatter? >> >> I hope I made myself clear. >> Best, >> Francesco >
