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.

Reply via email to