I have a notebook that freezes the computer every time I run it (I mean the whole computer becomes unresponsive and do not react to ctrl-shift-esc and ctr-alt-delete as well as alt-tab and windows-tab). The weird thing is it used to work without any big differences in the code as far as I can remember. I have made sure that it is indeed the notebook that freezes the computer. Here is the code:

t1 = 1.696222702113381;

p1 = 5.604730078805160;

t2 = 1.439432831934896;

p2 = 2.373727848568306;

psiN2[a_, b_, t1_, p1_, t2_, p2_, k_, n_, twoS_] :=

Cos[a/2]^k*Sin[a/2]^(n – 1 – k)*

Exp[I*(k – (n – 1)/2)*

b]*((Cos[a/2]*Cos[t1/2]*Exp[I*(p1 – b)/2] +

Sin[a/2]*Sin[t1/2]*Exp[I*(b – p1)/2])^

twoS + (Cos[a/2]*Cos[t2/2]*Exp[I*(p2 – b)/2] +

Sin[a/2]*Sin[t2/2]*Exp[I*(b – p2)/2])^twoS);

PsiN2[a1_, b1_, a2_, b2_, t1_, p1_, t2_, p2_, k1_, k2_, n_, twoS_] :=

Det[{{psiN2[a1, b1, t1, p1, t2, p2, k1, n, twoS],

psiN2[a2, b2, t1, p1, t2, p2, k1, n, twoS]}, {psiN2[a1, b1, t1,

p1, t2, p2, k2, n, twoS],

psiN2[a2, b2, t1, p1, t2, p2, k2, n, twoS]}}];

NIntegrate[

Abs[PsiN2[a1, b1, a2, b2, t1, p1, t2, p2, 0, 1, 1, 3]]^2*Sin[a1]*

Sin[a2], {a1, 0, Pi}, {b1, 0, 2*Pi}, {a2, 0, Pi}, {b2, 0, 2*Pi},

WorkingPrecision -> 15]

It’s the numerical integration above that causes the freeze. I realize that it is a big calculation, but as mentioned it used to work (although it took a long time, around 30-60 minutes).

My specs are: Mathematica 10 on windows 7 with 4 cores and 20 GB of memory. Any idea what’s going on?

=================

1

Â

When you say it used to take a long time, give us a clue? A minute, an hour or a day ðŸ™‚

â€“Â Ymareth

Oct 13 ’14 at 16:35

Â Â

Â

Around 30-60 minutes I’d say.

â€“Â jorgen

Oct 13 ’14 at 16:50

1

Â

When you say your computer freezes, you mean other applications become unresponsive and you have to reboot? OR just that Mathematica itself is busy?

â€“Â Ymareth

Oct 14 ’14 at 8:00

1

Â

You’re probably going to say sometime after when your machine chewed all the way through its 20Gb memory. I have 16Gb on my machine and it became sluggish when the kernel passed 12Gb though I have other stuff going on too. So the question “why does this calculation burn through so much memory?” remains.

â€“Â Ymareth

Oct 14 ’14 at 12:55

1

Â

I have had similar experience! I use task manager to keep track of this. Sometimes, Mathematica uses memory suddenly jump from 200MB to 3.9GB in less than 30 seconds. That freezed my laptop as well. I have to force the kernel to close immediately, to avoid system crush. Mine specs: i7 940X, 4G, Win 7 X64, MMA 10 X64.

â€“Â Chen Stats Yu

Oct 14 ’14 at 14:53

=================

1 Answer

1

=================

The integrand goes to infinity along a1 == 0 and a2 == 0:

Manipulate[

Plot3D[

Abs[PsiN2[a1, b1, a2, b2, t1, p1, t2, p2, 0, 1, 1, 3]]^2 * Sin[a1] * Sin[a2],

{a1, 0, Pi}, {a2, 0, Pi}],

{b1, 0, 2*Pi}, {b2, 0, 2*Pi}]

One can see the divergence of the integral by controlling MaxRecursion:

Table[Quiet@

NIntegrate[

Abs[PsiN2[a1, b1, a2, b2, t1, p1, t2, p2, 0, 1, 1, 3]]^2*Sin[a1]*

Sin[a2], {a1, 0, Pi}, {b1, 0, 2*Pi}, {a2, 0, Pi}, {b2, 0, 2*Pi},

MaxRecursion -> r],

{r, 2, 5}]

(*

{6.67053*10^6 + 0. I,

1.06724*10^8 + 0. I,

1.70758*10^9 + 0. I,

2.73213*10^10 + 0. I}

*)

The kind of recursive subdivision that NIntegrate does quickly explodes the number of function evaluations in a high-dimensional integral, which in this case approaches a 16-fold increase in memory usage at each subdivision:

Table[MaxMemoryUsed[

Quiet@NIntegrate[

Abs[PsiN2[a1, b1, a2, b2, t1, p1, t2, p2, 0, 1, 1, 3]]^2*Sin[a1]*

Sin[a2], {a1, 0, Pi}, {b1, 0, 2*Pi}, {a2, 0, Pi}, {b2, 0, 2*Pi},

MaxRecursion -> r]

],

{r, 2, 5}]

N @ Ratios[%]

(*

{618704, 4407384, 64871808, 1032170480}

{7.12357, 14.7189, 15.9109}

*)