[petsc-users] Matrix assembly in SNES problem

Adolfo Rodriguez adantra at gmail.com
Wed Jul 22 07:03:44 CDT 2020


I am trying to replace the non-linear solver in a flow simulation problem
where the matrix sparsity can change during the iterations. I tried
successfully to create the matrix within the FormJacobian function but I
have a memory leak which I don't know how to fix.

My FormJacobian function is something like this:

.. FormJacobian( ..){
     matrixconstruction(); // returns csr matrix in c++ regular vectors
     MatSeqAIJSetPreallocationCSR ...;
     //loop over the entries and
     MatSetValues;
     MatAssemblyBegin();
     MatAssemblyEnd();
     return 0;
}

This approach works for small problems but, when dealing with large ones I
observe a memory leak. I am pretty sure that It is related to the fact that
I am creating new matrices every time FormJacobian is called but I don't
know how to destroy it between iterations.

Any suggestions?

Regards,

Adolfo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200722/40a3fc0f/attachment.html>


More information about the petsc-users mailing list