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

Reply via email to