[petsc-users] Bug report VecNorm
Barry Smith
bsmith at petsc.dev
Sun Dec 10 09:00:10 CST 2023
I don't fully understand your code and what it is trying to demonstrate, but VecGetArrayWrite is Logically Collective. Having
if(rank == 0)
{
PetscCall(VecGetArrayWrite(vec, &xx));
PetscCall(VecRestoreArrayWrite(vec, &xx));
}
is not allowed. The reason is that VecRestoreArrayWrite() changes the PetscObjectState of the vector, and this state must be changed consistently across all MPI processes that share the vector.
> On Dec 10, 2023, at 2:40 AM, Stephan Köhler <stephan.koehler at math.tu-freiberg.de> wrote:
>
> Dear PETSc/Tao team,
>
> there is a bug in the voector interface: In the function
> VecNorm, see, eg. https://petsc.org/release/src/vec/vec/interface/rvector.c.html#VecNorm line 197 the check for consistency in line 214 is done on the wrong communicator. The communicator should be PETSC_COMM_SELF.
> Otherwise the program may hang when PetscCheck is executed.
>
> Please find a minimal example attached.
>
>
> Kind regards,
> Stephan Köhler
> --
> Stephan Köhler
> TU Bergakademie Freiberg
> Institut für numerische Mathematik und Optimierung
>
> Akademiestraße 6
> 09599 Freiberg
> Gebäudeteil Mittelbau, Zimmer 2.07
>
> Telefon: +49 (0)3731 39-3188 (Büro)
> <minimal_ex_vec_norm.cpp><OpenPGP_0xC9BF2C20DFE9F713.asc>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20231210/8d155004/attachment.html>
More information about the petsc-users
mailing list