[petsc-users] Sequential VecSetValues and VecAssembly

Timothée Nicolas timothee.nicolas at gmail.com
Tue Nov 13 08:48:51 CST 2018


Thank you for the clarification. I did use parallel before and was using
those calls indeed.

Cheers

Timothée

Le mar. 13 nov. 2018 à 15:46, Stefano Zampini <stefano.zampini at gmail.com> a
écrit :

> with sequential vectors (ie VECSEQ type), you don't need to call
> VecAssembly
> The VecAssembly calls are designed to communicate any off-process value
> set to the owner process (e.g with VECMPI) or to send the values to the GPU
> (VECCUDA).
> With VECSEQ, VecSetValues just writes the values you have specified into
> the raw memory of the vector.
> Anyway, it is good practice to add those calls, if in the future you would
> like to try a different class (parallel or that uses GPU) for which the
> VecAssembly call is needed.
>
> Il giorno mar 13 nov 2018 alle ore 17:15 Timothée Nicolas via petsc-users <
> petsc-users at mcs.anl.gov> ha scritto:
>
>> Dear all,
>>
>> I realized our code has some calls to VecSetValues not followed by calls
>> to VecAssemblyBegin/VecAssemblyEnd, and no errors are thrown, although the
>> manual says they must be called. The corresponding vectors are sequential
>> vectors created with VecCreateSeq. Is this normal behaviour? Do we still
>> need to call VecAssemblyBegin/End in this case? And btw what does assembly
>> exactly correspond to?
>>
>> Best regards
>>
>> Timothee
>>
>
>
> --
> Stefano
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20181113/c8bbeee6/attachment.html>


More information about the petsc-users mailing list