<div dir="ltr">Dear Stefano, <div>Thank you for your answer. I tried to use VecScatterCreateToAll as you suggested but it does not work since the first processor can only view its part of the vector. Here's how I managed the code:</div><div><br></div><div>Vec    fePS</div><div>VecScatter    Scatter</div><div>(...)</div><div><div>call VecScatterCreateToAll(feP,Scatter,fePS,perr)</div><div>call VecScatterBegin(Scatter,feP,fePS,INSERT_VALUES,SCATTER_FORWARD,perr)</div><div>call VecScatterEnd(Scatter,feP,fePS,INSERT_VALUES,SCATTER_FORWARD,perr)</div><div>call VecScatterDestroy(Scatter,perr)     </div><div>call VecDestroy(fePS,perr)</div></div><div><br></div><div>As I said, after this piece of code, if I print all the entries of feP from one processor, the values are correct if they belong to the part of the processor randon values. </div><div><br></div><div>Bests, </div><div>Francesco</div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-06-05 16:44 GMT+02:00 Stefano Zampini <span dir="ltr"><<a href="mailto:stefano.zampini@gmail.com" target="_blank">stefano.zampini@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">Sorry, bad copy and paste<div dir="auto"><br></div><div dir="auto"><a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Vec/VecScatterCreateToAll.html" target="_blank">http://www.mcs.anl.gov/petsc/<wbr>petsc-current/docs/<wbr>manualpages/Vec/<wbr>VecScatterCreateToAll.html</a><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">Il 05 Giu 2017 4:43 PM, "Stefano Zampini" <<a href="mailto:stefano.zampini@gmail.com" target="_blank">stefano.zampini@gmail.com</a>> ha scritto:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto">petsc-current/docs/manualpages<wbr>/Vec/VecScatterCreateToAll.<wbr>html</div><div class="gmail_extra"><br><div class="gmail_quote">Il 05 Giu 2017 4:12 PM, "Francesco Migliorini" <<a href="mailto:francescomigliorini93@gmail.com" target="_blank">francescomigliorini93@gmail.c<wbr>om</a>> ha scritto:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello there!<div><br></div><div>I am working with an MPI code in which I should create a petsc vector such that all the processes can access to all its entries. So, I tried with VecCreateShared but it does not work with my machine. Then I tried VecCreateMPI but it seems to me that it does not change anything from the usual VecCreate. Finally I found the scatter commands but the examples are a bit tricky. So, are there any other way? If no, could someone please show me how to use scatter in this simple code?</div><div><br></div><div>Vec  feP    !The vector to be shared with all the processes</div><div>(...)</div><div>mpi_np = 2    !The number of processes</div><div><div>ind(1) = 10   !The global dimension of the vector</div><div>call VecCreate(PETSC_COMM_WORLD,feP<wbr>,perr)</div><div>call VecSetSizes(feP,PETSC_DECIDE,i<wbr>nd,perr)</div><div>call VecSetFromOptions(feP,perr)</div></div><div>(...)    !Here feP is filled in</div><div><div>call VecAssemblyBegin(feP,perr)</div><div>call VecAssemblyEnd(feP,perr)</div></div><div><br></div><div>Many thanks,</div><div>Francesco</div></div>
</blockquote></div></div>
</blockquote></div></div>
</div></div></blockquote></div><br></div>