Ok. I did not know that. I was under the impression that MatPreallocator does actually not allocate the nonzeros and just stores the nonzero structure. But if this is not the case then of course I just duplicate the matrix.
Thanks for the feedback. > Gesendet: Donnerstag, den 03.02.2022 um 03:09 Uhr > Von: "Jed Brown" <j...@jedbrown.org> > An: "Marius Buerkle" <mbuer...@web.de>, "Patrick Sanan" > <patrick.sa...@gmail.com> > Cc: "PETSc users list" <petsc-us...@mcs.anl.gov>, petsc-dev > <petsc-dev@mcs.anl.gov> > Betreff: Re: Aw: Re: [petsc-dev] [petsc-users] MatPreallocatorPreallocate > segfault with PETSC 3.16 > > Marius Buerkle <mbuer...@web.de> writes: > > > Thanks for they reply. Yes the example works, this is how I was doing it > > before. But the matrix is rather big and i need a matrix with the same > > structure at various points in my code. So it was convenient to create the > > matrix with preallocate, destroy it after using it to free the memory and > > creating it again later with the same preallocate. > > Anyway it works with MatDuplicate for now. > > I think it should take *less* memory to destroy the preallocator and > duplicate the actual matrix than to destroy the matrix and persist the > preallocator. If that is not the case (or close enough), we can make it so.