> On May 26, 2021, at 10:39 AM, Francesco Brarda <[email protected]> 
> wrote:
> 
> 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?

   Yes, just have all ranks call it and ignore the result on the other ranks. 

> Should I build everything into an external function outside the main?

   It can be called in main, does not need to be in a different function.

> 
> Francesco
> 
> 
>> Il giorno 26 mag 2021, alle ore 16:20, Barry Smith <[email protected] 
>> <mailto:[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
>> 
> 

Reply via email to