Dear all,
I am trying to parallelize a solution of a nonlinear time-dependent problem using FreeFEM++ 4.2.1 with the MUMPS package. At every time step I use “solve” in this way
load “MUMPS”
…
for (int m = 0; m<mmax; m++){
f=u1old^2+u2old^2;
solve PDE([u1,u2], [v1,v2], solver=sparsesolver,master=-1)=
int3d(th,mpirank)(u1 * v1/dt + u2 * v2/dt - u1old * v1/dt - u2old * v2/dt +f * u1 * v1+…)
…;
u1old=u1;
u2old=u2;
}
It works fine in the sense that the results are the same as for a non-parallel solver and there is a reasonable speed-up, but I have encountered memory leaks - something stays in the memory and after several loops, my laptop runs out of memory.
I think I use “solve” in the wrong way and the matrix or the solution stays in the memory. Is it so? Could you point out please, where I can find out about the master parameter?
I have tried to use “problem” in the same way and the results are the same (in the sense both the precision and memory leaks).
Thank you!