[petsc-users] When to perform PETSc.Vec assembly with petsc4py
Barry Smith
bsmith at petsc.dev
Tue Jul 15 07:16:32 CDT 2025
> On Jul 15, 2025, at 8:13 AM, SCOTTO Alexandre via petsc-users <petsc-users at mcs.anl.gov> wrote:
>
> Hello Jose,
>
> Thanks for your answer. Then it seems that I have under the hood usages of setValues() in my code since I do not explicitly make use of it but still has problems when not assembling my vector. Do I need to assemble vectors after Mat.mult or Scatter.scatter?
Absolutely not. In such situations all the communication and putting the correct vector values in the correct location is done automatically by the routines you are calling.
>
> By the way, I did not know that PETSc.Vec objects supported direct assignments like x[i] = ..., so I rather use assignments of the form x.array = ...
>
> From what I understand from the GitHub page (https://urldefense.us/v3/__https://gitlab.com/petsc/petsc/-/blob/main/src/binding/petsc4py/src/petsc4py/PETSc/Vec.pyx__;!!G_uCfscf7eWS!f3M5SmfhSqew4tgfvFDjdLnd3q3kT_KzcCitJTJC0HRl1YvbSNBr5Uuzv6OWP1pVQBgbi_WJlekerylpGcBHQ9vsbzL1suFBQHkoPIwhdw$ ) it seems, that doing so, we only access the local portion of the array which should not require any assemble() am I right?
>
> Best regards,
> Alexandre.
>
>
> -----Message d'origine-----
> De : Jose E. Roman <jroman at dsic.upv.es>
> Envoyé : mardi 15 juillet 2025 12:21
> À : SCOTTO Alexandre <alexandre.scotto at irt-saintexupery.com>
> Cc : petsc-users at mcs.anl.gov
> Objet : Re: [petsc-users] When to perform PETSc.Vec assembly with petsc4py
>
> Assembly is needed after a call to x.setValues() or any of its variants.
> https://urldefense.us/v3/__https://petsc.org/main/petsc4py/reference/petsc4py.PETSc.Vec.html*petsc4py.PETSc.Vec.setValue__;Iw!!G_uCfscf7eWS!f3M5SmfhSqew4tgfvFDjdLnd3q3kT_KzcCitJTJC0HRl1YvbSNBr5Uuzv6OWP1pVQBgbi_WJlekerylpGcBHQ9vsbzL1suFBQHlKEPOyQg$
> Take into account that in python the notation x[i] = ... with call x.setValues() under the hood.
>
> Jose
>
>
>> El 15 jul 2025, a las 12:02, SCOTTO Alexandre via petsc-users <petsc-users at mcs.anl.gov> escribió:
>>
>> Dear PETSc community,
>> As a beginner in the MPI world and with the PETSc library, I come with a possibly very naive question.
>> I know from the documentation that assembling vectors must be done, but it is not clear to me when to perform this operation.
>> Is there a simple way to know when a vector need be assembled and when it is not?
>> Thanks in advance.
>> Regards,
>> Alexandre.
>
More information about the petsc-users
mailing list