# Memory used is not released after finishing a calculation

The series depends on a parameter. I numerically calculate consecutively series for different values of the parameter. When Mathematica finishes the calculation of the first point the memory used is enlarged and after some point there is not enough memory (8Gb) for the calculation to proceed and my computer hangs. I see that Mathematica does not release the memory after finishing calculation of first point, though it does not need this information for calculation of second point. Is it possible to make Mathematica to release memory after calculation the first point? Maybe there is operator to do this?

I am using Mathematica 11 on Linux.

I used the following definitions

α[z_, p_] := 1/(1 + (z/p)^2);
λa = 0.0591966130391084;
ηgr = 0.0114; dgr = 0.3345; q = 2.74 10^-6 ;
Matm1[n_, x_, a_, η_, T_] :=
8(q T a)^3 n^3 x^2 E^(-2(q T a) n x) α[q T n, λa] (η x (1-1/(2x^2)))/(1 + η x)
fr1[n_, a_, η_, T_] :=
NIntegrate[Matm1[n, x, a, η, T], {x , 1, ∞},
Method -> {"LocalAdaptive", "SymbolicProcessing" -> False}]


Then I had the computer make the following calculations:

nn = {};
Do[tt = {1 + k/2, Sum[fr1[n, 1 + k/2, ηgr, 3], {n, 1, 5 10^5}]};
Print["a = ", 1 + k/2, " ", tt];
AppendTo[nn, tt], {k, 0, 18}]


Usually for k = 4 computer hangs due to memory expired.

• Are you re-evaluating the 2nd block of code multiple times? How does k get changed? Do you look at nn to see how it is growing? Sep 5, 2016 at 23:31
• Which version do you use? There is a well-known memory leak in NIntegrate that has persisted at least since version 6 (although I think it was finally fixed in 10.1 or 10.2). Sep 6, 2016 at 4:34