Manipulate and conflict in options to update front end for long evaluation, SynchronousUpdating
- To: mathgroup at smc.vnet.net
- Subject: [mg80070] Manipulate and conflict in options to update front end for long evaluation, SynchronousUpdating
- From: "Nasser Abbasi" <nma at 12000.org>
- Date: Sun, 12 Aug 2007 07:08:11 -0400 (EDT)
- Reply-to: "Nasser Abbasi" <nma at 12000.org>
I seem to have a dilemma here in using Manipulate. There seem to be a design conflict in how Manipulate works. Manipulate, it seems, has a 6 seconds (or some limit) before the front end times out if an evaluation takes too long. When I use SynchronousUpdating->False option to Manipulate, then the front end will NOT time out no matter how long the evaluation takes, good, however, now when I click the 'play' button on the front end for example, or if I select a new parameter from the front end, then the front end will just advance the counters quickly without waiting for the last evaluation to complete, and so one does not see the result on the front end corresponding to the current values/parameters displayed. It is like the front end is running on its own pace while an evaluation 10 steps earlier still has not finished. I guess this is what I asked for when I did SynchronousUpdating->False. So when I use the SynchronousUpdating->True option, then the front end will block until the last evaluation completes, good, but a long evaluation will cause the front end to $Abort if it does not complete after the timeout set for the front end which I understand is 6 seconds. If I use wrap the evaluation byTimingConstrained and give it long time, it has no effect on the time out for the front end for Manipulate. So I am stuck. How can I make Manipulate front end block until the current evaluation complete fully and display its output before it jumps to the next value (say when I hit the 'play' button), no matter how long the evaluation? I tried to speed up the evaluation, but I am using symbolic integration many times in each step, and I can't seem to speed that any more. I wrote a smalll finite elements program and for each element, there are 2 symbolic integrations, As the number of elements go over 20 or 30, then it starts to take about 5-10 seconds to complete the whole thing, causing an $Abort. I did Timing and this is where all the time is being spend, in the Integrate[] function. I do not know how to remove the timeout build in Manipulate front end. Any ideas? thanks, Nasser
- Follow-Ups:
- Re: Manipulate and conflict in options to update front
- From: Carl Woll <carlw@wolfram.com>
- Re: Manipulate and conflict in options to update front