Message Boards Message Boards

Avoid crashing the Kernel when I change the table intervals?

Posted 7 years ago

Hi all,

I am having a lot of trouble with a project right now, particularly with a table I am trying to create. For ease, I have attached a PDF of the entire code (please ignore the few stray calculations at the bottom, everything relevant comes before the e^-560 line). Note that everything is working as desired with the exception of this bit:

enter image description here

Specifically, I need to change the di interval of the table to be less than 1, perhaps about 0.1. When I do this, however, the entire thing crashes, and I get a message saying that the kernel "has stopped responding to the dynamic evaluation." I am kind of at my wits end with this, having tried everything I can think of (I'm not very well-versed in Mathematica, unfortunately), and I need to fix it soon for a project. Any help would be very much appreciated.

Also, I have already tried unchecking the Suggestions bar in Preferences, which is a commonly suggested solution online. It does not help in my case.

Attachments:
POSTED BY: Jillian Vlah
8 Replies

Please attach the Notebook and not the PDF.

POSTED BY: l van Veen

Here is a minimal example (which can be even further minimized), which you should post next time:

lookupT = {{335, 0.74`}, {560, 0.96`}, {5000, 1}}
Table[1 - Exp[-lookupT[[All, 1]]^enn], {enn, 3, 4, 0.5}]

not that you try to calculate Exp(-5000^4) which is a VERY VERY small number.

Then it gets stuck on:

1 - N[Exp[-5000^4]]

because I think it now it allocates 217 trillion of digits in memory, which generally is a bit of a problem...

Can be fixed by forcing a certain precision:

lookupT = {{335, 0.74`}, {560, 0.96`}, {5000, 1}}
Block[{$MinPrecision = 20, $MaxPrecision = 20}, Table[1 - Exp[-lookupT[[All, 1]]^enn], {enn, 3, 4, 0.5}]]

I'm not sure if there is a better way, but it is a way...

POSTED BY: Sander Huisman
Posted 7 years ago

This appears to be working well enough! Thank you - I greatly appreciate the help!

POSTED BY: Jillian Vlah

Welcome to Wolfram Community! Please make sure you know the rules: https://wolfr.am/READ-1ST

For the future please:

  • Do not use words as "URGENT" and capital letters - posts of other people are as important as yours
  • Post actual code - do not use code as images
  • Attach actual notebooks - do not attach code in .PDF files
  • Post minimal example of the code to reproduce the issue
POSTED BY: Moderation Team
Posted 7 years ago

Sorry, this is my first time doing this - I will certainly follow these rules in future posts.

POSTED BY: Jillian Vlah
Posted 7 years ago

Thank you very much, I really appreciate it - and I apologize in advance for my clunky code style. I believe I reduced it down to the least amount of code necessary, but please let me know if there is anything else you'd like.

POSTED BY: Jillian Vlah
Posted 7 years ago
Manipulate[
 DynamicModule[{pset, t300, t350, t400, t450, t500, t550, lookupT, 
   plotIt, jmak1, lookupN, lookupTau, lookupK, jmakFunction, varData, 
   varCalcY, vars, kay, tee, enn, sums, varList1, varList2, mins, 
   tots}, 

t300 = {{15, 0.01}, {55, 0.01}, {110, 0.06}, {180, 0.21}, {230, 
   0.41}, {295, 0.62}, {335, 0.74}, {560, 0.96}, {5000, 
   1}}; t350 = {{15, .01}, {30, 0.01}, {57, 0.06}, {89, 0.15}, {124, 
   0.77}, {170, 0.91}, {215, 0.97}, {280, 0.99}, {5000, 
   1}}; t400 = {{15, 0.01}, {17.5, 0.015}, {29, 0.02}, {53, 
   0.14}, {65, 0.25}, {110, 0.88}, {140, 0.96}, {170, 0.995}, {5000, 
   1}}; t450 = {{15, .01}, {50, 0.05`}, {61, 0.1`}, {78, 0.15`}, {81, 
   0.2`}, {95, 0.32`}, {107, 0.4`}, {125, 0.6`}, {180, 0.9`}, {200, 
   0.97`}, {220, 0.99`}, {5000, 1}}; t500 = {{15, .01}, {35, 
   0.01`}, {60, 0.04`}, {95, 0.15`}, {120, 0.31`}, {155, 0.5`}, {180, 
   0.6`}, {190, 0.75`}, {280, 0.96`}, {320, 0.99`}, {5000, 
   1}}; t550 = {{15, .01}, {105, 0.03`}, {200, 0.12`}, {270, 
   0.21`}, {320, 0.4`}, {380, 0.61`}, {1900, 1}, {5000, 1}};


  lookupT = Switch[Temperature,
    "300\[Degree] C", t300,
    "350\[Degree] C", t350,
    "400\[Degree] C", t400,
    "450\[Degree] C", t450,
    "500\[Degree] C", t500,
    "550\[Degree] C", t550];

varList1 = 
  Flatten[Table[(lookupT[[All, 
       2]] - (1 - E^(-kay*((lookupT[[All, 1]])^enn)))), {enn, 1, 4, 
     0.5}, {kay, 1, 3, 0.5}], 1];

Print[varList1]

],

{Temperature, {"300\[Degree] C", "350\[Degree] C", "400\[Degree] C", 
  "450\[Degree] C", "500\[Degree] C", "550\[Degree] C"}},

]
POSTED BY: Jillian Vlah

Can you reduce your example to the minimum and then post the code; not an image. I can't copy it. Also please give us lookupT.

POSTED BY: Sander Huisman
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract