I wrote some emails in the past months, thanks for the suggestions. The fact is that I am translating a complex model from C to Mason, and the scheduling thing is the one that puzzled me the most.
static void main(String[] args) throws Exception {
SimState state = new SimulationEnvironment(System.currentTimeMillis());
state.nameThread();
doLoop(SimulationEnvironment.class, args);
System.exit(0);
}
and a start() method like:
public void start() {
super.start();
marketSpace.clear();
// two Bag
capitalGoodFirms.clear();
consumptionGoodFirms.clear();
for (int i = 0; i < N1; i++) {
CapitalGoodFirm p = new CapitalGoodFirm();
p.setId(i);
marketSpace.setObjectLocation(p,
new Int2D(random.nextInt(marketSpace.getWidth()),
random.nextInt(marketSpace.getHeight())));
capitalGoodFirms.add(p);
}
for (int i = 0; i < N2; i++) {
ConsumptionGoodFirm p = new ConsumptionGoodFirm();
p.setId(i);
marketSpace.setObjectLocation(p,
new Int2D(random.nextInt(marketSpace.getWidth()),
random.nextInt(marketSpace.getHeight())));
consumptionGoodFirms.add(p);
}
// do some stuff just once
Initialize.initialize((SimulationEnvironment) this);
// what agents have to do at each step
schedule.scheduleRepeating(
new Steppable() {
@Override
public void step(SimState state) {
// this follows a bit the C structure I had, where different procedures
// were called and each of the procedure called both agents types
CallProcedureOne((SimulationEnvironment) state);
CallProcedureTwo((SimulationEnvironment) state);
...
}
}, 0, 1);
}
My model is working now, so thanks for all the suggestions so far. Still, I would like a run to stop after 10 steps, this is a parameter that the user can set in the UI, but I don't know how to pass it to the SimState...
I understand that from command line I can specify the maximum steps and the number of jobs, like do this simulation 20 times and each of the runs stops after 10 steps. What I am missing now is: is it possible to stop from the UI the simulation after x steps?
Thanks in advance for your help.
Best,
Simone
--
-----------------------------------------------------------------
Simone Gabbriellini, PhD
Post-doctoral Researcher
ANR founded research project "DIFFCERAM"
GEMASS, CNRS & Paris-Sorbonne.
mobile: +39 340 39 75 626
email:
[log in to unmask]