On Oct 8, 2006, at 9:50 PM, Maciej M Latek wrote:
> I need to solve a problem concerning stopping and restarting a
> simulation. My bless point is to have a function on a schedule,
> which in each step checks a condition for ending a given run, if
> false does nothing, if true does some reporting, resets simulation
> parameters to some new values and restarts the simulation.
> Now, the condition checking, reporting and resetting values works
> fine, unfortunately I'm not able to get simulation started once
> again after finishing the first run (I'm using the start() SimState
If you're using the command line, it's fairly straightforward: write
your on top-level MASON loop.
A basic loop is really pretty simple; I think we cover it in one of
the tutorials. All you have to do
is write a version of it that repeats, something like:
1. Make a SimState
2. loop as long as you want
3. set up your parameters, reset your SimState variables as you
5. loop while schedule.step() is true
If you need to do this with a GUI, then I have to think about how
best to hack MASON to do this. Probably the right thing is to hack
the Console a little, along the lines of how the Console can restart
with a new seed upon pressing stop.
One gotcha lies in movies and time series -- they won't update unless
the timestamp is smaller than they've seen before (of course). Since
you're restarting, the timestamp is now small again. You'll need to
reset them as well, or else do a little hacking there too.