<div dir="ltr"><div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Barry, Jacob,</blockquote><div><br></div><div>Thank you very much for your clarification, I think the reference counting is what is preventing matDestroy() from releasing the matrix memory. </div><div><br></div><div>Just to give you a bit of context, in my CFD code I am solving momentum, pressure, plus two more equations for the turbulence model (k and omega). I have seen that allocating a matrix  for each equation and keep it in memory it's a bit optimistic for larger problems, so what I am trying to do is the following:</div><div><br></div><div>do itime=1,ntimes</div><div><br></div><div>momentum equation:</div><div><br></div><div>allocate the matrix</div><div>fill the matrix</div><div>ksp-solve()</div><div>matDestroy()</div><div><br></div><div>pressure equation </div><div><div>allocate the matrix</div><div>fill the matrix</div><div>ksp-solve()</div><div>matDestroy()</div></div><div><br></div><div>k equation</div><div><div>allocate the matrix</div><div>fill the matrix</div><div>ksp-solve()</div><div>matDestroy()</div></div><div><br></div><div>omega equation</div><div><div>allocate the matrix</div><div>fill the matrix</div><div>ksp-solve()</div><div>matDestroy()</div></div><div><br></div><div>enddo</div><div><br></div><div>Matrices for momentum, pressure, k and omega have the same size but belong to different objects so that's why I have 4 of them :)</div><div><br></div><div>The idea I have in mind is to destroy A after its use for each equation ,so that the next equation matrix to be solved can pick up the memory freed from the previous one. At the end of the story I'll just allocate space for 1 matrix and not 4, or at least this is what I am trying to achieve. </div><div><br></div><div>The thing is I do not destroy the ksp, so maybe that detail is preventing my code from working as intended! </div><div><br></div></div></div>